From eebe766fc6f2444a690b8bfd2b0de41c91547e95 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 15 May 2014 14:16:36 +0200 Subject: [PATCH 001/158] - fixed default selected value in DATETIME form element --- interface/lib/classes/tform.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 5fc06279bc..05740b1768 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -1509,7 +1509,7 @@ class tform { */ function _getDateTimeHTML($form_element, $default_value, $display_seconds=false) { - $_datetime = strtotime($default_value); + $_datetime = ($default_value && $default_value != '0000-00-00 00:00:00' ? strtotime($default_value) : false); $_showdate = ($_datetime === false) ? false : true; $dselect = array('day', 'month', 'year', 'hour', 'minute'); -- GitLab From 8385934b059c4ea11d527ea580e9af31153b360d Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Tue, 20 May 2014 10:40:35 +0200 Subject: [PATCH 002/158] - backups: plugin checks mount point of wrong backup directory (e.g. /var/backup/web10 instead of /var/backup). --- server/plugins-available/backup_plugin.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php index 46be0a6006..c3ed1aee4f 100644 --- a/server/plugins-available/backup_plugin.inc.php +++ b/server/plugins-available/backup_plugin.inc.php @@ -75,10 +75,10 @@ class backup_plugin { $backup_dir_is_ready = true; $server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']); if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){ - if(!$app->system->is_mounted($backup_dir)){ + if(!$app->system->is_mounted($server_config['backup_dir'])){ exec(escapeshellcmd($server_config['backup_dir_mount_cmd'])); sleep(1); - if(!$app->system->is_mounted($backup_dir)) $backup_dir_is_ready = false; + if(!$app->system->is_mounted($server_config['backup_dir'])) $backup_dir_is_ready = false; } } -- GitLab From f93b6f4590d459f3aa7951ebdbcd4faa191fd366 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 21 May 2014 14:16:59 +0200 Subject: [PATCH 003/158] Fixed a syntax error in mail_user_password_edit.php --- interface/web/mailuser/mail_user_password_edit.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/web/mailuser/mail_user_password_edit.php b/interface/web/mailuser/mail_user_password_edit.php index f6d6d78231..07a19259ea 100644 --- a/interface/web/mailuser/mail_user_password_edit.php +++ b/interface/web/mailuser/mail_user_password_edit.php @@ -51,7 +51,8 @@ $app->load('tform_actions'); class page_action extends tform_actions { function onSubmit() { - + global $app, $conf; + $this->id = $app->functions->intval($_SESSION['s']['user']['mailuser_id']); parent::onSubmit(); -- GitLab From f1eacebbfa9aebc255b1b4c56c682b96da405b6c Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Thu, 22 May 2014 09:37:23 +0200 Subject: [PATCH 004/158] - Added client field to DNS and DNS slave list views. --- .../dns/lib/lang/de_dns_slave_admin_list.lng | 10 +++ .../dns/lib/lang/de_dns_soa_admin_list.lng | 11 +++ .../dns/lib/lang/en_dns_slave_admin_list.lng | 10 +++ .../dns/lib/lang/en_dns_soa_admin_list.lng | 11 +++ interface/web/dns/list/dns_slave.list.php | 22 ++++- interface/web/dns/list/dns_soa.list.php | 22 ++++- .../dns/templates/dns_slave_admin_list.htm | 83 ++++++++++++++++++ .../web/dns/templates/dns_soa_admin_list.htm | 86 +++++++++++++++++++ 8 files changed, 253 insertions(+), 2 deletions(-) create mode 100644 interface/web/dns/lib/lang/de_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/de_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/en_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/en_dns_soa_admin_list.lng create mode 100644 interface/web/dns/templates/dns_slave_admin_list.htm create mode 100644 interface/web/dns/templates/dns_soa_admin_list.htm diff --git a/interface/web/dns/lib/lang/de_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/de_dns_slave_admin_list.lng new file mode 100644 index 0000000000..974e214f63 --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb['list_head_txt'] = 'Slave DNS-Zonen'; +$wb['active_txt'] = 'Aktiv'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Neue Slave DNS-Zone hinzufügen'; +$wb['eg_domain_tld'] = 'Format: domain.tld.'; +$wb['sys_groupid_txt'] = 'Kunde'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng new file mode 100644 index 0000000000..363369c65b --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb['list_head_txt'] = 'DNS Zonen'; +$wb['active_txt'] = 'Aktiv'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'E-Mail'; +$wb['add_new_record_txt'] = 'Neue DNS Zone (SOA) hinzufügen'; +$wb['add_new_record_wizard_txt'] = 'Neue DNS Zone per Assistent hinzufügen'; +$wb['sys_groupid_txt'] = 'Kunde'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/en_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/list/dns_slave.list.php b/interface/web/dns/list/dns_slave.list.php index 5a242de14c..5c0be05fb3 100644 --- a/interface/web/dns/list/dns_slave.list.php +++ b/interface/web/dns/list/dns_slave.list.php @@ -13,7 +13,11 @@ // Name of the list -$liste["name"] = "dns_slave"; +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["name"] = "dns_slave_admin"; +} else { + $liste["name"] = "dns_slave"; +} // Database table $liste["table"] = "dns_slave"; @@ -70,6 +74,22 @@ $liste["item"][] = array( 'field' => "server_id", ), 'width' => "", 'value' => ""); + +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["item"][] = array( 'field' => "sys_groupid", + 'datatype' => "INTEGER", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT groupid, name FROM sys_group WHERE groupid != 1 ORDER BY name', + 'keyfield'=> 'groupid', + 'valuefield'=> 'name' + ), + 'width' => "", + 'value' => ""); +} $liste["item"][] = array( 'field' => "origin", 'datatype' => "VARCHAR", diff --git a/interface/web/dns/list/dns_soa.list.php b/interface/web/dns/list/dns_soa.list.php index e3b240a7cd..d6f56414e0 100644 --- a/interface/web/dns/list/dns_soa.list.php +++ b/interface/web/dns/list/dns_soa.list.php @@ -13,7 +13,11 @@ // Name of the list -$liste["name"] = "dns_soa"; +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["name"] = "dns_soa_admin"; +} else { + $liste["name"] = "dns_soa"; +} // Database table $liste["table"] = "dns_soa"; @@ -70,6 +74,22 @@ $liste["item"][] = array( 'field' => "server_id", ), 'width' => "", 'value' => ""); + +if($_SESSION['s']['user']['typ'] == 'admin') { + $liste["item"][] = array( 'field' => "sys_groupid", + 'datatype' => "INTEGER", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT groupid, name FROM sys_group WHERE groupid != 1 ORDER BY name', + 'keyfield'=> 'groupid', + 'valuefield'=> 'name' + ), + 'width' => "", + 'value' => ""); +} $liste["item"][] = array( 'field' => "origin", 'datatype' => "VARCHAR", diff --git a/interface/web/dns/templates/dns_slave_admin_list.htm b/interface/web/dns/templates/dns_slave_admin_list.htm new file mode 100644 index 0000000000..d4f13ce8c4 --- /dev/null +++ b/interface/web/dns/templates/dns_slave_admin_list.htm @@ -0,0 +1,83 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_dns_slave"> + + <div class="pnl_toolsarea"> + <tmpl_if name='datalog_changes_count' op='>' value='0'> + <div> + <div class="systemmonitor-state state-info"> + <div class="status"></div> + <div class="statusMsg"> + {tmpl_var name="datalog_changes_txt"} + <ul> + <tmpl_loop name="datalog_changes"> + <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li> + </tmpl_loop> + </ul> + {tmpl_var name="datalog_changes_end_txt"} + </div> + </div><br /> + </div> + </tmpl_if> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_slave_edit.php');"> + <span>{tmpl_var name="add_new_record_txt"}</span> + </button> + </div> + </fieldset> + </div> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr class="caption"> + <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> + <th class="tbl_col_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_origin" scope="col"><tmpl_var name="origin_txt"></th> + <th class="tbl_col_ns" scope="col"><tmpl_var name="ns_txt"></th> + <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> + </tr> + <tr class="filter"> + <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_origin"><input type="text" name="search_origin" value="{tmpl_var name='search_origin'}" /></td> + <td class="tbl_col_ns"><input type="text" name="search_ns" value="{tmpl_var name='search_ns'}" /></td> + <td class="tbl_col_buttons"> + <button type="button" class="button icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','dns/dns_slave_list.php');"><span>{tmpl_var name="filter_txt"}</span></button> + </td> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_active"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <td class="tbl_col_sys_groupid"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> + <td class="tbl_col_server_id"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_origin"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="origin"}</a></td> + <td class="tbl_col_ns"><a href="#" onclick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ns"}</a></td> + <td class="tbl_col_buttons"> + <a class="button icons16 icoDelete" href="javascript: del_record('dns/dns_slave_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </td> + </tr> + </tmpl_loop> + <tmpl_unless name="records"> + <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td colspan="6">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + </tr> + </tmpl_unless> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/dns/templates/dns_soa_admin_list.htm b/interface/web/dns/templates/dns_soa_admin_list.htm new file mode 100644 index 0000000000..b77f884499 --- /dev/null +++ b/interface/web/dns/templates/dns_soa_admin_list.htm @@ -0,0 +1,86 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_dns_soa"> + + <div class="pnl_toolsarea"> + <tmpl_if name='datalog_changes_count' op='>' value='0'> + <div> + <div class="systemmonitor-state state-info"> + <div class="status"></div> + <div class="statusMsg"> + {tmpl_var name="datalog_changes_txt"} + <ul> + <tmpl_loop name="datalog_changes"> + <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li> + </tmpl_loop> + </ul> + {tmpl_var name="datalog_changes_end_txt"} + </div> + </div><br /> + </div> + </tmpl_if> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_wizard.php');"><span>{tmpl_var name="add_new_record_wizard_txt"}</span></button> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_soa_edit.php');"><span>{tmpl_var name="add_new_record_txt"}</span></button> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('dns/dns_import.php');"><span>Import Zone File</span></button> + </div> + </fieldset> + </div> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr class="caption"> + <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> + <th class="tbl_col_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_origin" scope="col"><tmpl_var name="origin_txt"></th> + <th class="tbl_col_ns" scope="col"><tmpl_var name="ns_txt"></th> + <th class="tbl_col_mbox" scope="col"><tmpl_var name="mbox_txt"></th> + <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> + </tr> + <tr class="filter"> + <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_origin"><input type="text" name="search_origin" value="{tmpl_var name='search_origin'}" /></td> + <td class="tbl_col_ns"><input type="text" name="search_ns" value="{tmpl_var name='search_ns'}" /></td> + <td class="tbl_col_mbox"><input type="text" name="search_mbox" value="{tmpl_var name='search_mbox'}" /></td> + <td class="tbl_col_buttons"> + <button type="button" class="button icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','dns/dns_soa_list.php');"><span>{tmpl_var name="filter_txt"}</span></button> + </td> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_active"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</td> + <td class="tbl_col_sys_groupid"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> + <td class="tbl_col_server_id"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_origin"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="origin"}</a></td> + <td class="tbl_col_ns"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ns"}</a></td> + <td class="tbl_col_mbox"><a href="#" onclick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="mbox"}</a></td> + <td class="tbl_col_buttons"> + <a class="button icons16 icoDelete" href="javascript: del_record('dns/dns_soa_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </td> + </tr> + </tmpl_loop> + <tmpl_unless name="records"> + <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td colspan="7">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + </tr> + </tmpl_unless> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> \ No newline at end of file -- GitLab From 896a5820ec4bd985d1772d7e9b72602fbc6ebf91 Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Fri, 23 May 2014 01:36:48 +0200 Subject: [PATCH 005/158] - Fixed "no_domain_perm" error when trying to add proxy directives for subdomains or alias domains (nginx). --- interface/web/sites/web_aliasdomain_edit.php | 10 +++++++++- interface/web/sites/web_subdomain_edit.php | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/interface/web/sites/web_aliasdomain_edit.php b/interface/web/sites/web_aliasdomain_edit.php index 4131109821..008e7078a7 100644 --- a/interface/web/sites/web_aliasdomain_edit.php +++ b/interface/web/sites/web_aliasdomain_edit.php @@ -123,9 +123,17 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; + + // Get the record of the parent domain + if(!@$this->dataRecord["parent_domain_id"] && $this->id) { + $tmp = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + if($tmp) $this->dataRecord["parent_domain_id"] = $tmp['parent_domain_id']; + unset($tmp); + } // Get the record of the parent domain $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); /* check if the domain module is used - and check if the selected domain can be used! */ $app->uses('ini_parser,getconf'); @@ -153,7 +161,7 @@ class page_action extends tform_actions { //* make sure that the domain is lowercase if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); - + parent::onSubmit(); } diff --git a/interface/web/sites/web_subdomain_edit.php b/interface/web/sites/web_subdomain_edit.php index 0d485c4394..4d079ff7e2 100644 --- a/interface/web/sites/web_subdomain_edit.php +++ b/interface/web/sites/web_subdomain_edit.php @@ -130,6 +130,13 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; + + // Get the record of the parent domain + if(!@$this->dataRecord["parent_domain_id"] && $this->id) { + $tmp = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + if($tmp) $this->dataRecord["parent_domain_id"] = $tmp['parent_domain_id']; + unset($tmp); + } // Get the record of the parent domain $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); @@ -162,7 +169,7 @@ class page_action extends tform_actions { //* make sure that the domain is lowercase if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); - + parent::onSubmit(); } -- GitLab From bcd725da57d20004a30e6934d5bc9669241461e4 Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Tue, 27 May 2014 19:08:59 +0200 Subject: [PATCH 006/158] - Implemented non-interactive install/update mode. --- install/autoinstall.conf_sample.php | 44 +++++++ install/install.php | 172 +++++++++++++++++++++++----- install/lib/installer_base.lib.php | 15 ++- install/update.php | 60 ++++++++-- 4 files changed, 245 insertions(+), 46 deletions(-) create mode 100644 install/autoinstall.conf_sample.php diff --git a/install/autoinstall.conf_sample.php b/install/autoinstall.conf_sample.php new file mode 100644 index 0000000000..92ec008963 --- /dev/null +++ b/install/autoinstall.conf_sample.php @@ -0,0 +1,44 @@ +<?php +$autoinstall['language'] = 'en'; // de, en (default) +$autoinstall['install_mode'] = 'standard'; // standard (default), expert + +$autoinstall['hostname'] = 'server1.example.com'; // default +$autoinstall['mysql_hostname'] = 'localhost'; // default: localhost +$autoinstall['mysql_root_user'] = 'root'; // default: root +$autoinstall['mysql_root_password'] = 'howtoforge'; +$autoinstall['mysql_database'] = 'dbispconfig'; // default: dbispcongig +$autoinstall['mysql_charset'] = 'utf8'; // default: utf8 +$autoinstall['http_server'] = 'nginx'; // apache (default), nginx +$autoinstall['ispconfig_port'] = '8080'; // default: 8080 +$autoinstall['ispconfig_use_ssl'] = 'y'; // y (default), n + +/* optional expert mode settings, needed only for expert mode */ +$autoinstall['mysql_ispconfig_user'] = 'ispconfig'; // default: ispconfig +$autoinstall['mysql_ispconfig_password'] = md5(uniqid(rand())); +$autoinstall['join_multiserver_setup'] = 'n'; // y, n (default) +$autoinstall['mysql_master_hostname'] = 'master.example.com'; +$autoinstall['mysql_master_root_user'] = 'root'; +$autoinstall['mysql_master_root_password'] = 'howtoforge'; +$autoinstall['mysql_master_database'] = 'dbispconfig'; // default: dbispconfig +$autoinstall['configure_mail'] = 'y'; // y (default), n +$autoinstall['configure_jailkit'] = 'y'; // y (default), n +$autoinstall['configure_ftp'] = 'y'; // y (default), n +$autoinstall['configure_dns'] = 'y'; // y (default), n +$autoinstall['configure_apache'] = 'y'; // y (default), n +$autoinstall['configure_nginx'] = 'y'; // y (default), n +$autoinstall['configure_firewall'] = 'y'; // y (default), n +$autoinstall['install_ispconfig_web_interface'] = 'y'; // y (default), n + +/* optional update settings, needed only for updates */ +$autoupdate['do_backup'] = 'yes'; // yes (default), no +$autoupdate['mysql_root_password'] = 'howtoforge'; +$autoupdate['mysql_master_hostname'] = 'master.example.com'; +$autoupdate['mysql_master_root_user'] = 'root'; +$autoupdate['mysql_master_root_password'] = 'howtoforge'; +$autoupdate['mysql_master_database'] = 'dbispconfig'; // default: dbispconfig +$autoupdate['reconfigure_permissions_in_master_database'] = 'no'; // no (default), yes +$autoupdate['reconfigure_services'] = 'yes'; // yes (default), no +$autoupdate['ispconfig_port'] = '8080'; // default: 8080 +$autoupdate['create_new_ispconfig_ssl_cert'] = 'no'; // no (default), yes +$autoupdate['reconfigure_crontab'] = 'yes'; // yes (default), no +?> \ No newline at end of file diff --git a/install/install.php b/install/install.php index 796b0273fd..838209ec12 100644 --- a/install/install.php +++ b/install/install.php @@ -78,6 +78,10 @@ $dist = get_distname(); if($dist['id'] == '') die('Linux distribution or version not recognized.'); +//** Include the autoinstaller configuration (for non-interactive setups) +error_reporting(E_ALL ^ E_NOTICE); +if(is_file('autoinstall.conf.php')) include_once 'autoinstall.conf.php'; + //** Include the distribution-specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; include_once 'dist/lib/'.$dist['id'].'.lib.php'; @@ -109,7 +113,12 @@ if(is_dir('/usr/local/ispconfig')) { $inst->find_installed_apps(); //** Select the language and set default timezone -$conf['language'] = $inst->simple_query('Select language', array('en', 'de'), 'en'); +if($autoinstall['language'] == 'default') $autoinstall['language'] = 'en'; +if($autoinstall['language'] == 'en' || $autoinstall['language'] == 'de'){ + $conf['language'] = $autoinstall['language']; +} else { + $conf['language'] = $inst->simple_query('Select language', array('en', 'de'), 'en'); +} $conf['timezone'] = get_system_timezone(); //* Set default theme @@ -117,13 +126,19 @@ $conf['theme'] = 'default'; $conf['language_file_import_enabled'] = true; //** Select installation mode -$install_mode = $inst->simple_query('Installation mode', array('standard', 'expert'), 'standard'); +if($autoinstall['install_mode'] == 'default') $autoinstall['install_mode'] = 'standard'; +if($autoinstall['install_mode'] == 'standard' || $autoinstall['install_mode'] == 'expert'){ + $install_mode = $autoinstall['install_mode']; +} else { + $install_mode = $inst->simple_query('Installation mode', array('standard', 'expert'), 'standard'); +} //** Get the hostname $tmp_out = array(); exec('hostname -f', $tmp_out); -$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', @$tmp_out[0]); +if($autoinstall['hostname'] == 'default') $autoinstall['hostname'] = @$tmp_out[0]; +$conf['hostname'] = ($autoinstall['hostname'] != '' ? $autoinstall['hostname'] : $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', @$tmp_out[0])); unset($tmp_out); // Check if the mysql functions are loaded in PHP @@ -132,16 +147,24 @@ if(!function_exists('mysql_connect')) die('No PHP MySQL functions available. Ple //** Get MySQL root credentials $finished = false; do { - $tmp_mysql_server_host = $inst->free_query('MySQL server hostname', $conf['mysql']['host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL root username', $conf['mysql']['admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database']); - $tmp_mysql_server_charset = $inst->free_query('MySQL charset', $conf['mysql']['charset']); + if($autoinstall['mysql_hostname'] == 'default') $autoinstall['mysql_hostname'] = $conf['mysql']['host']; + if($autoinstall['mysql_root_user'] == 'default') $autoinstall['mysql_root_user'] = $conf['mysql']['admin_user']; + if($autoinstall['mysql_database'] == 'default') $autoinstall['mysql_database'] = $conf['mysql']['database']; + if($autoinstall['mysql_charset'] == 'default') $autoinstall['mysql_charset'] = $conf['mysql']['charset']; + + $tmp_mysql_server_host = ($autoinstall['mysql_hostname'] != ''? $autoinstall['mysql_hostname'] : $inst->free_query('MySQL server hostname', $conf['mysql']['host'])); + $tmp_mysql_server_admin_user = ($autoinstall['mysql_root_user'] != ''? $autoinstall['mysql_root_user'] : $inst->free_query('MySQL root username', $conf['mysql']['admin_user'])); + $tmp_mysql_server_admin_password = (isset($autoinstall['mysql_root_password'])? $autoinstall['mysql_root_password'] : $inst->free_query('MySQL root password', $conf['mysql']['admin_password'])); + $tmp_mysql_server_database = ($autoinstall['mysql_database'] != ''? $autoinstall['mysql_database'] : $inst->free_query('MySQL database to create', $conf['mysql']['database'])); + $tmp_mysql_server_charset = ($autoinstall['mysql_charset'] != ''? $autoinstall['mysql_charset'] : $inst->free_query('MySQL charset', $conf['mysql']['charset'])); if($install_mode == 'expert') { swriteln("The next two questions are about the internal ISPConfig database user and password.\nIt is recommended to accept the defaults which are 'ispconfig' as username and a random password.\nIf you use a different password, use only numbers and chars for the password.\n"); - $conf['mysql']['ispconfig_user'] = $inst->free_query('ISPConfig mysql database username', $conf['mysql']['ispconfig_user']); - $conf['mysql']['ispconfig_password'] = $inst->free_query('ISPConfig mysql database password', $conf['mysql']['ispconfig_password']); + + if($autoinstall['mysql_ispconfig_user'] == 'default') $autoinstall['mysql_ispconfig_user'] = $conf['mysql']['ispconfig_user']; + + $conf['mysql']['ispconfig_user'] = ($autoinstall['mysql_ispconfig_user'] != ''? $autoinstall['mysql_ispconfig_user'] : $inst->free_query('ISPConfig mysql database username', $conf['mysql']['ispconfig_user'])); + $conf['mysql']['ispconfig_password'] = (isset($autoinstall['mysql_ispconfig_password'])? $autoinstall['mysql_ispconfig_password'] : $inst->free_query('ISPConfig mysql database password', $conf['mysql']['ispconfig_password'])); } //* Initialize the MySQL server connection @@ -176,7 +199,12 @@ if($install_mode == 'standard') { //* Configure Webserver - Apache or nginx if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) { - $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); + if($autoinstall['http_server'] == 'default') $autoinstall['http_server'] = 'apache'; + if($autoinstall['http_server'] == 'apache' || $autoinstall['http_server'] == 'nginx'){ + $http_server_to_use = $autoinstall['http_server']; + } else { + $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); + } if($http_server_to_use == 'apache'){ $conf['nginx']['installed'] = false; } else { @@ -293,13 +321,19 @@ if($install_mode == 'standard') { swriteln('Installing ISPConfig'); //** Customize the port ISPConfig runs on - $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080'); + if($autoinstall['isspconfig_port'] == 'default') $autoinstall['ispconfig_port'] = '8080'; + $ispconfig_vhost_port = (intval($autoinstall['ispconfig_port']) > 0 ? intval($autoinstall['ispconfig_port']) : $inst->free_query('ISPConfig Port', '8080')); if($conf['apache']['installed'] == true) $conf['apache']['vhost_port'] = $ispconfig_vhost_port; if($conf['nginx']['installed'] == true) $conf['nginx']['vhost_port'] = $ispconfig_vhost_port; unset($ispconfig_vhost_port); - if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { - $inst->make_ispconfig_ssl_cert(); + if($autoinstall['ispconfig_use_ssl'] == 'default') $autoinstall['ispconfig_use_ssl'] = 'y'; + if($autoinstall['ispconfig_use_ssl'] == 'y' || $autoinstall['ispconfig_use_ssl'] == 'n'){ + if($autoinstall['ispconfig_use_ssl'] == 'y') $inst->make_ispconfig_ssl_cert(); + } else { + if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { + $inst->make_ispconfig_ssl_cert(); + } } $inst->install_ispconfig(); @@ -354,17 +388,26 @@ if($install_mode == 'standard') { //** Get Server ID // $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1'); // Server ID is an autoInc value of the mysql database now + $tmp_join_multiserver_setup = 'n'; + if($autoinstall['join_multiserver_setup'] == 'default') $autoinstall['join_multiserver_setup'] = 'n'; + if($autoinstall['join_multiserver_setup'] == 'y' || $autoinstall['join_multiserver_setup'] == 'n'){ + $tmp_join_multiserver_setup = $autoinstall['join_multiserver_setup']; + } else { + $tmp_join_multiserver_setup = strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n')); + } - if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n')) == 'y') { + if($tmp_join_multiserver_setup == 'y') { $conf['mysql']['master_slave_setup'] = 'y'; //** Get MySQL root credentials $finished = false; do { - $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); + if($autoinstall['mysql_master_database'] == 'default') $autoinstall['mysql_master_database'] = $conf['mysql']['master_database']; + + $tmp_mysql_server_host = ($autoinstall['mysql_master_hostname'] != ''? $autoinstall['mysql_master_hostname'] : $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'])); + $tmp_mysql_server_admin_user = ($autoinstall['mysql_master_root_user'] != ''? $autoinstall['mysql_master_root_user'] : $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'])); + $tmp_mysql_server_admin_password = (isset($autoinstall['mysql_master_root_password'])? $autoinstall['mysql_master_root_password'] : $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'])); + $tmp_mysql_server_database = ($autoinstall['mysql_master_database'] != ''? $autoinstall['mysql_master_database'] : $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'])); //* Initialize the MySQL server connection if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { @@ -397,7 +440,12 @@ if($install_mode == 'standard') { //* Configure Webserver - Apache or nginx if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) { - $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); + if($autoinstall['http_server'] == 'default') $autoinstall['http_server'] = 'apache'; + if($autoinstall['http_server'] == 'apache' || $autoinstall['http_server'] == 'nginx'){ + $http_server_to_use = $autoinstall['http_server']; + } else { + $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); + } if($http_server_to_use == 'apache'){ $conf['nginx']['installed'] = false; } else { @@ -410,8 +458,15 @@ if($install_mode == 'standard') { swriteln(''); $inst->add_database_server_record(); + $tmp_configure_mail = 'y'; + if($autoinstall['configure_mail'] == 'default') $autoinstall['configure_mail'] = 'y'; + if($autoinstall['configure_mail'] == 'y' || $autoinstall['configure_mail'] == 'n'){ + $tmp_configure_mail = $autoinstall['configure_mail']; + } else { + $tmp_configure_mail = strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y')); + } - if(strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y') ) == 'y') { + if($tmp_configure_mail == 'y') { $conf['services']['mail'] = true; @@ -470,20 +525,41 @@ if($install_mode == 'standard') { } //** Configure Jailkit - if(strtolower($inst->simple_query('Configure Jailkit', array('y', 'n'), 'y') ) == 'y') { + $tmp_configure_jailkit = 'y'; + if($autoinstall['configure_jailkit'] == 'default') $autoinstall['configure_jailkit'] = 'y'; + if($autoinstall['configure_jailkit'] == 'y' || $autoinstall['configure_jailkit'] == 'n'){ + $tmp_configure_jailkit = $autoinstall['configure_jailkit']; + } else { + $tmp_configure_jailkit = strtolower($inst->simple_query('Configure Jailkit', array('y', 'n'), 'y')); + } + if($tmp_configure_jailkit == 'y') { swriteln('Configuring Jailkit'); $inst->configure_jailkit(); } //** Configure Pureftpd - if(strtolower($inst->simple_query('Configure FTP Server', array('y', 'n'), 'y') ) == 'y') { + $tmp_configure_ftp = 'y'; + if($autoinstall['configure_ftp'] == 'default') $autoinstall['configure_ftp'] = 'y'; + if($autoinstall['configure_ftp'] == 'y' || $autoinstall['configure_ftp'] == 'n'){ + $tmp_configure_ftp = $autoinstall['configure_ftp']; + } else { + $tmp_configure_ftp = strtolower($inst->simple_query('Configure FTP Server', array('y', 'n'), 'y')); + } + if($tmp_configure_ftp == 'y') { swriteln('Configuring Pureftpd'); $inst->configure_pureftpd(); if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart')); } //** Configure DNS - if(strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y')) == 'y') { + $tmp_configure_dns = 'y'; + if($autoinstall['configure_dns'] == 'default') $autoinstall['configure_dns'] = 'y'; + if($autoinstall['configure_dns'] == 'y' || $autoinstall['configure_dns'] == 'n'){ + $tmp_configure_dns = $autoinstall['configure_dns']; + } else { + $tmp_configure_dns = strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y')); + } + if($tmp_configure_dns == 'y') { $conf['services']['dns'] = true; //* Configure DNS if($conf['powerdns']['installed'] == true) { @@ -522,7 +598,14 @@ if($install_mode == 'standard') { //** Configure Apache if($conf['apache']['installed'] == true){ swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure Apache Server' option.\n"); - if(strtolower($inst->simple_query('Configure Apache Server', array('y', 'n'), 'y')) == 'y') { + $tmp_configure_apache = 'y'; + if($autoinstall['configure_apache'] == 'default') $autoinstall['configure_apache'] = 'y'; + if($autoinstall['configure_apache'] == 'y' || $autoinstall['configure_apache'] == 'n'){ + $tmp_configure_apache = $autoinstall['configure_apache']; + } else { + $tmp_configure_apache = strtolower($inst->simple_query('Configure Apache Server', array('y', 'n'), 'y')); + } + if($tmp_configure_apache == 'y') { $conf['services']['web'] = true; swriteln('Configuring Apache'); $inst->configure_apache(); @@ -540,7 +623,14 @@ if($install_mode == 'standard') { //** Configure nginx if($conf['nginx']['installed'] == true){ swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure nginx Server' option.\n"); - if(strtolower($inst->simple_query('Configure nginx Server', array('y', 'n'), 'y')) == 'y') { + $tmp_configure_nginx = 'y'; + if($autoinstall['configure_nginx'] == 'default') $autoinstall['configure_nginx'] = 'y'; + if($autoinstall['configure_nginx'] == 'y' || $autoinstall['configure_nginx'] == 'n'){ + $tmp_configure_nginx = $autoinstall['configure_nginx']; + } else { + $tmp_configure_nginx = strtolower($inst->simple_query('Configure nginx Server', array('y', 'n'), 'y')); + } + if($tmp_configure_nginx == 'y') { $conf['services']['web'] = true; swriteln('Configuring nginx'); $inst->configure_nginx(); @@ -556,7 +646,14 @@ if($install_mode == 'standard') { } //** Configure Firewall - if(strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y')) == 'y') { + $tmp_configure_firewall = 'y'; + if($autoinstall['configure_firewall'] == 'default') $autoinstall['configure_firewall'] = 'y'; + if($autoinstall['configure_firewall'] == 'y' || $autoinstall['configure_firewall'] == 'n'){ + $tmp_configure_firewall = $autoinstall['configure_firewall']; + } else { + $tmp_configure_firewall = strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y')); + } + if($tmp_configure_firewall == 'y') { //if($conf['bastille']['installed'] == true) { //* Configure Bastille Firewall $conf['services']['firewall'] = true; @@ -579,7 +676,14 @@ if($install_mode == 'standard') { //** Configure ISPConfig :-) $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y'; - if(strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default)) == 'y') { + $tmp_install_ispconfig_web_interface = $install_ispconfig_interface_default; + if($autoinstall['install_ispconfig_web_interface'] == 'default') $autoinstall['install_ispconfig_web_interface'] = $install_ispconfig_interface_default; + if($autoinstall['install_ispconfig_web_interface'] == 'y' || $autoinstall['install_ispconfig_web_interface'] == 'n'){ + $tmp_install_ispconfig_web_interface = $autoinstall['install_ispconfig_web_interface']; + } else { + $tmp_install_ispconfig_web_interface = strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default)); + } + if($tmp_install_ispconfig_web_interface == 'y') { swriteln('Installing ISPConfig'); //** We want to check if the server is a module or cgi based php enabled server @@ -597,13 +701,19 @@ if($install_mode == 'standard') { */ //** Customise the port ISPConfig runs on - $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080'); + if($autoinstall['ispconfig_port'] == 'default') $autoinstall['ispconfig_port'] = '8080'; + $ispconfig_vhost_port = (intval($autoinstall['ispconfig_port']) > 0 ? intval($autoinstall['ispconfig_port']) : $inst->free_query('ISPConfig Port', '8080')); if($conf['apache']['installed'] == true) $conf['apache']['vhost_port'] = $ispconfig_vhost_port; if($conf['nginx']['installed'] == true) $conf['nginx']['vhost_port'] = $ispconfig_vhost_port; unset($ispconfig_vhost_port); - if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { - $inst->make_ispconfig_ssl_cert(); + if($autoinstall['ispconfig_use_ssl'] == 'default') $autoinstall['ispconfig_use_ssl'] = 'y'; + if($autoinstall['ispconfig_use_ssl'] == 'y' || $autoinstall['ispconfig_use_ssl'] == 'n'){ + if($autoinstall['ispconfig_use_ssl'] == 'y') $inst->make_ispconfig_ssl_cert(); + } else { + if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { + $inst->make_ispconfig_ssl_cert(); + } } $inst->install_ispconfig_interface = true; diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 7d6348bf39..2fc9e0b87a 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -750,8 +750,13 @@ class installer_base { if(!stristr($options, 'dont-create-certs')) { //* Create the SSL certificate - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + if(is_file('autoinstall.conf.php')){ + $command = 'cd '.$config_dir.'; ' + .'openssl req -new -subj \'/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd\' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } else { + $command = 'cd '.$config_dir.'; ' + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } exec($command); $command = 'chmod o= '.$config_dir.'/smtpd.key'; @@ -1683,7 +1688,11 @@ class installer_base { $ssl_pw = substr(md5(mt_rand()), 0, 6); exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); - exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); + if(is_file('autoinstall.conf.php')){ + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd' -key $ssl_key_file -out $ssl_csr_file"); + } else { + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); + } exec("openssl req -x509 -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -in $ssl_csr_file -out $ssl_crt_file -days 3650"); exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); rename($ssl_key_file, $ssl_key_file.'.secure'); diff --git a/install/update.php b/install/update.php index 6a1b9d13e2..1862ef218b 100644 --- a/install/update.php +++ b/install/update.php @@ -83,6 +83,10 @@ unset($conf); if($dist['id'] == '') die('Linux distribution or version not recognized.'); +//** Include the autoinstaller configuration (for non-interactive setups) +error_reporting(E_ALL ^ E_NOTICE); +if(is_file('autoinstall.conf.php')) include_once 'autoinstall.conf.php'; + //** Include the distribution-specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; include_once 'dist/lib/'.$dist['id'].'.lib.php'; @@ -131,7 +135,13 @@ $inst->find_installed_apps(); echo "This application will update ISPConfig 3 on your server.\n\n"; //* Make a backup before we start the update -$do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes'); +if($autoupdate['do_backup'] == 'default') $autoupdate['do_backup'] = 'yes'; +if($autoupdate['do_backup'] == 'yes' || $autoupdate['do_backup'] == 'no'){ + $do_backup = $autoupdate['do_backup']; +} else { + $do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes'); +} + if($do_backup == 'yes') { //* Create the backup directory @@ -180,7 +190,7 @@ do { $finished = true; } else { swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error()); - $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); + $conf["mysql"]["admin_password"] = (isset($autoupdate['mysql_root_password'])? $autoupdate['mysql_root_password'] : $inst->free_query('MySQL root password', $conf['mysql']['admin_password'])); } } while ($finished == false); unset($finished); @@ -198,10 +208,12 @@ if($conf['mysql']['master_slave_setup'] == 'y') { //** Get MySQL root credentials $finished = false; do { - $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); + if($autoupdate['mysql_master_database'] == 'default') $autoupdate['mysql_master_database'] = $conf['mysql']['master_database']; + + $tmp_mysql_server_host = ($autoupdate['mysql_master_hostname'] != ''? $autoupdate['mysql_master_hostname'] : $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'])); + $tmp_mysql_server_admin_user = ($autoupdate['mysql_master_root_user'] != ''? $autoupdate['mysql_master_root_user'] : $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'])); + $tmp_mysql_server_admin_password = (isset($autoupdate['mysql_master_root_password'])? $autoupdate['mysql_master_root_password'] : $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'])); + $tmp_mysql_server_database = ($autoupdate['mysql_master_database'] != ''? $autoupdate['mysql_master_database'] : $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'])); //* Initialize the MySQL server connection if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { @@ -244,7 +256,12 @@ updateDbAndIni(); */ //if($conf_old['dbmaster_user'] != '' or $conf_old['dbmaster_host'] != '') { //** Update master database rights -$reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no'); +if($autoupdate['reconfigure_permissions_in_master_database'] == 'default') $autoupdate['reconfigure_permissions_in_master_database'] = 'no'; +if($autoupdate['reconfigure_permissions_in_master_database'] == 'no' || $autoupdate['reconfigure_permissions_in_master_database'] == 'yes'){ + $reconfigure_master_database_rights_answer = $autoupdate['reconfigure_permissions_in_master_database']; +} else { + $reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no'); +} if($reconfigure_master_database_rights_answer == 'yes') { $inst->grant_master_database_rights(); @@ -252,7 +269,12 @@ if($reconfigure_master_database_rights_answer == 'yes') { //} //** Shall the services be reconfigured during update -$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes'); +if($autoupdate['reconfigure_services'] == 'default') $autoupdate['reconfigure_services'] = 'yes'; +if($autoupdate['reconfigure_services'] == 'yes' || $autoupdate['reconfigure_services'] == 'no'){ + $reconfigure_services_answer = $autoupdate['reconfigure_services']; +} else { + $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes'); +} if($reconfigure_services_answer == 'yes') { @@ -379,15 +401,23 @@ if($conf['nginx']['installed'] == true){ if ($conf['services']['web'] && $inst->install_ispconfig_interface) { //** Customise the port ISPConfig runs on $ispconfig_port_number = get_ispconfig_port_number(); + if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number; if($conf['webserver']['server_type'] == 'nginx'){ - $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number); + $conf['nginx']['vhost_port'] = (intval($autoupdate['ispconfig_port']) > 0 ? intval($autoupdate['ispconfig_port']) : $inst->free_query('ISPConfig Port', $ispconfig_port_number)); } else { - $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number); + $conf['apache']['vhost_port'] = (intval($autoupdate['ispconfig_port']) > 0 ? intval($autoupdate['ispconfig_port']) : $inst->free_query('ISPConfig Port', $ispconfig_port_number)); } // $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n'; - if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no')) == 'yes') { + $tmp_create_new_ispconfig_ssl_cert = 'no'; + if($autoupdate['create_new_ispconfig_ssl_cert'] == 'default') $autoupdate['create_new_ispconfig_ssl_cert'] = 'no'; + if($autoupdate['create_new_ispconfig_ssl_cert'] == 'no' || $autoupdate['create_new_ispconfig_ssl_cert'] == 'yes'){ + $tmp_create_new_ispconfig_ssl_cert = $autoupdate['create_new_ispconfig_ssl_cert']; + } else { + $tmp_create_new_ispconfig_ssl_cert = strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no')); + } + if($tmp_create_new_ispconfig_ssl_cert == 'yes') { $inst->make_ispconfig_ssl_cert(); } } @@ -395,7 +425,13 @@ if ($conf['services']['web'] && $inst->install_ispconfig_interface) { $inst->install_ispconfig(); //** Configure Crontab -$update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes'); +if($autoupdate['reconfigure_crontab'] == 'default') $autoupdate['reconfigure_crontab'] = 'yes'; +if($autoupdate['reconfigure_crontab'] == 'no' || $autoupdate['reconfigure_crontab'] == 'yes'){ + $update_crontab_answer = $autoupdate['reconfigure_crontab']; +} else { + $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes'); +} + if($update_crontab_answer == 'yes') { swriteln('Updating Crontab'); $inst->install_crontab(); -- GitLab From b491adf094bbf9bc9c5b8a386511ddafd8c97855 Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Sun, 1 Jun 2014 19:41:17 +0200 Subject: [PATCH 007/158] - FPM socket permissions need to be 660 also under Apache, otherwise you get the following error: [Sun Jun 01 18:52:24 2014] [error] [client 146.52.61.243] (13)Permission denied: FastCGI: failed to connect to server "/var/www/clients/client1/web2/cgi-bin/php5-fcgi-1.2.3.4-80-example.de": connect() failed [Sun Jun 01 18:52:24 2014] [error] [client 146.52.61.243] FastCGI: incomplete headers (0 bytes) received from server "/var/www/clients/client1/web2/cgi-bin/php5-fcgi-1.2.3.4-80-example.de" --- server/plugins-available/apache2_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 5f81fa6714..e3833b03ac 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -2654,7 +2654,7 @@ class apache2_plugin { $fpm_socket = $socket_dir.$pool_name.'.sock'; $tpl->setVar('fpm_socket', $fpm_socket); - $tpl->setVar('fpm_listen_mode', '0600'); + $tpl->setVar('fpm_listen_mode', '0660'); $tpl->setVar('fpm_pool', $pool_name); $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1); -- GitLab From 8fef1d91e66f478e4ede672508ac7f3063157937 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 2 Jun 2014 10:48:56 +0200 Subject: [PATCH 008/158] - set -Indexes option globally --- install/tpl/apache_ispconfig.conf.master | 1 + 1 file changed, 1 insertion(+) diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master index be6f637b7b..9086033101 100644 --- a/install/tpl/apache_ispconfig.conf.master +++ b/install/tpl/apache_ispconfig.conf.master @@ -18,6 +18,7 @@ CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m # Do not allow access to the root file system of the server for security reasons <Directory /> + Options -Indexes AllowOverride None <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all denied -- GitLab From e6fd3515639cbfbb54a8263c3eec26a961bd6a89 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 5 Jun 2014 16:23:47 +0200 Subject: [PATCH 009/158] - removed [PT] flags as it is causing problems with some php applications due to information in SCRIPT_NAME and PHP_SELF --- server/conf/vhost.conf.master | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 5a110cc119..f67b280f94 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -336,7 +336,7 @@ RewriteCond %{REQUEST_URI} !^<tmpl_var name='rewrite_target'> </tmpl_if> - RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target'><tmpl_if name="rewrite_add_path" op="==" value="y">$1</tmpl_if> <tmpl_if name='rewrite_type' value=''><tmpl_if name="rewrite_is_url" op="==" value="n">[PT]</tmpl_if></tmpl_else><tmpl_var name='rewrite_type'></tmpl_if> + RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target'><tmpl_if name="rewrite_add_path" op="==" value="y">$1</tmpl_if> <tmpl_var name='rewrite_type'> </tmpl_loop> </tmpl_if> -- GitLab From 5a6670bd3c1083f3c6f6652202e7c776745b5eff Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 6 Jun 2014 16:28:46 +0200 Subject: [PATCH 010/158] - fixed vhost template. website settings were overriding handlers of apache config files, e. g. roundcube --- server/conf/vhost.conf.master | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index f67b280f94..0dd805af84 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -57,6 +57,10 @@ </IfModule> <Directory {tmpl_var name='web_document_root_www'}> + # Clear PHP settings of this website + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler None + </FilesMatch> Options +FollowSymLinks AllowOverride <tmpl_var name='allow_override'> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> @@ -85,6 +89,10 @@ </tmpl_if> </Directory> <Directory {tmpl_var name='web_document_root'}> + # Clear PHP settings of this website + <FilesMatch ".+\.ph(p[345]?|t|tml)$"> + SetHandler None + </FilesMatch> Options +FollowSymLinks AllowOverride <tmpl_var name='allow_override'> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> @@ -186,10 +194,6 @@ SuexecUserGroup <tmpl_var name='system_user'> <tmpl_var name='system_group'> </IfModule> </tmpl_if> - # Clear PHP settings of this website - <FilesMatch ".+\.ph(p[345]?|t|tml)$"> - SetHandler None - </FilesMatch> <tmpl_if name='php' op='==' value='mod'> # mod_php enabled AddType application/x-httpd-php .php .php3 .php4 .php5 -- GitLab From c71d48f6593a35abf71e9dae97dd7a56499f20d9 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 6 Jun 2014 16:41:17 +0200 Subject: [PATCH 011/158] Fixed mailman problem when catchall email addresses are used on the same domain name. --- install/dist/lib/opensuse.lib.php | 1 + install/tpl/debian_postfix.conf.master | 2 +- install/tpl/fedora_postfix.conf.master | 2 +- install/tpl/opensuse_postfix.conf.master | 4 +++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 6e6a618678..7ff56de893 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -125,6 +125,7 @@ class installer_dist extends installer_base { //* Create aliasaes exec('/usr/lib/mailman/bin/genaliases 2>/dev/null'); + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); } function configure_postfix($options = '') diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index e17880e950..bab660e102 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -1,7 +1,7 @@ alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf, hash:/var/lib/mailman/data/virtual-mailman +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 0911f2a7e5..e2c68c0e1c 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -1,5 +1,5 @@ virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf, hash:/etc/mailman/virtual-mailman +virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 90ed2859fb..149e2bdfd0 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -1,5 +1,7 @@ +alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases +alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} -- GitLab From f43ef975d75a57973886e7f8eabb068d2ac15cc0 Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Mon, 16 Jun 2014 18:06:06 +0200 Subject: [PATCH 012/158] - Make sure ISPConfig shows the correct error message (instad of an SQL error) when a website is renamed after an alias domain that still exists. - It should be possible to create two websites with the same domain on the same server as long as the IP differs. I therefore changed the serverdomain index of the web_domain table to include the IP address. --- install/sql/incremental/upd_0078.sql | 1 + install/sql/ispconfig3.sql | 2 +- interface/lib/classes/validate_domain.inc.php | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 install/sql/incremental/upd_0078.sql diff --git a/install/sql/incremental/upd_0078.sql b/install/sql/incremental/upd_0078.sql new file mode 100644 index 0000000000..39b8c1ce9c --- /dev/null +++ b/install/sql/incremental/upd_0078.sql @@ -0,0 +1 @@ +ALTER TABLE `web_domain` DROP INDEX `serverdomain`, ADD UNIQUE `serverdomain` ( `server_id` , `ip_address`, `domain` ); \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 21c0644710..bf68e5d7cb 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1879,7 +1879,7 @@ CREATE TABLE `web_domain` ( `added_date` date NOT NULL DEFAULT '0000-00-00', `added_by` varchar(255) DEFAULT NULL, PRIMARY KEY (`domain_id`), - UNIQUE KEY `serverdomain` ( `server_id` , `domain` ) + UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- diff --git a/interface/lib/classes/validate_domain.inc.php b/interface/lib/classes/validate_domain.inc.php index 988945df4c..788b34bd60 100644 --- a/interface/lib/classes/validate_domain.inc.php +++ b/interface/lib/classes/validate_domain.inc.php @@ -137,7 +137,8 @@ class validate_domain { //if($check['cnt'] > 0) return false; // we can have the same domain on different servers or different IPs, so we have to check for identical domains on the same IP (or wildcard IPs) - $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (`domain` = '" . $app->db->quote($domain_name) . "'".$additional_sql1.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql1 != '' ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); + $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (`domain` = '" . $app->db->quote($domain_name) . "'".$additional_sql1.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql1 != '' && $domain['parent_domain_id'] > 0 ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); + if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ @@ -207,7 +208,7 @@ class validate_domain { //$check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE CONCAT(`subdomain`, '.', `domain`) = '" . $app->db->quote($domain_name) . "' AND `domain_id` != " . $app->functions->intval($primary_id)); //if($check['cnt'] > 0) return false; // we can have the same domain on different servers or different IPs, so we have to check for identical domains on the same IP (or wildcard IPs) - $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (CONCAT(`subdomain`, '.', `domain`) = '" . $app->db->quote($domain_name) . "'".$additional_sql2.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql2 != '' ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); + $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (CONCAT(`subdomain`, '.', `domain`) = '" . $app->db->quote($domain_name) . "'".$additional_sql2.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql2 != '' && $domain['parent_domain_id'] > 0 ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ if($domain['ip_address'] == '*') return false; -- GitLab From 9d57538ce8181a02f1652647aa940471fbee2cf3 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 17 Jun 2014 10:26:03 +0200 Subject: [PATCH 013/158] Allow + and @ in FTP user names for compatibility with cpanel. --- interface/web/sites/form/ftp_user.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php index 20e4565ff8..2b97832be7 100644 --- a/interface/web/sites/form/ftp_user.tform.php +++ b/interface/web/sites/form/ftp_user.tform.php @@ -91,7 +91,7 @@ $form["tabs"]['ftp'] = array ( 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'username_error_unique'), 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', + 'regex' => '/^[\w\.\-@\+]{0,64}$/', 'errmsg'=> 'username_error_regex'), ), 'default' => '', -- GitLab From b509d0056fda3793f81d3332c8f601559ae268aa Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 18 Jun 2014 09:20:20 +0200 Subject: [PATCH 014/158] Changed a function in tform.inc.php to make it compatible with php 5.1 (used in Centos 5.10). --- interface/lib/classes/tform.inc.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 05740b1768..452230414a 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -252,7 +252,9 @@ class tform { unset($tmp_recordid); $querystring = str_replace("{AUTHSQL}", $this->getAuthSQL('r'), $querystring); - $querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', "self::table_auth_sql", $querystring); + //$querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', "self::table_auth_sql", $querystring); + //*Used the ld form to be compatible with php < 5.3 + $querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', create_function('$matches','global $app; $tmp = $app->tform->getAuthSQL("r", $matches[1]); return $tmp;'), $querystring); // Getting the records $tmp_records = $app->db->queryAllRecords($querystring); @@ -293,10 +295,12 @@ class tform { return $values; } - + + /* function table_auth_sql($matches){ return $this->getAuthSQL('r', $matches[1]); } + */ //* If the parameter 'valuelimit' is set function applyValueLimit($limit, $values) { -- GitLab From 117ecd60c809bbc19a3c1f795f6db9e53465cdec Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Thu, 19 Jun 2014 13:00:44 +0200 Subject: [PATCH 015/158] - autoselect password if you use "Generate Password" function (saves a click if you want to copy the password). --- interface/web/js/scrigo.js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php index 4e51cd56ae..85a321c551 100644 --- a/interface/web/js/scrigo.js.php +++ b/interface/web/js/scrigo.js.php @@ -809,7 +809,7 @@ function generatePassword(passwordFieldID, repeatPasswordFieldID){ oldPWField.remove(); var pword = password(<?php echo $min_password_length; ?>, false, 1); jQuery('#'+repeatPasswordFieldID).val(pword); - newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup'); + newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup').select(); } var funcDisableClick = function(e) { e.preventDefault(); return false; }; -- GitLab From 1b8648682c8b403b8947afb8db711734a330b29e Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Thu, 19 Jun 2014 13:27:07 +0200 Subject: [PATCH 016/158] - force Google Chrome to NOT autocomplete user/password fields. --- interface/web/themes/blue/templates/main.tpl.htm | 1 + interface/web/themes/default-304/templates/main.tpl.htm | 1 + interface/web/themes/default/templates/main.tpl.htm | 1 + interface/web/themes/default_64_navimg/templates/main.tpl.htm | 1 + interface/web/themes/default_combobox/templates/main.tpl.htm | 1 + interface/web/themes/default_no_navimg/templates/main.tpl.htm | 1 + 6 files changed, 6 insertions(+) diff --git a/interface/web/themes/blue/templates/main.tpl.htm b/interface/web/themes/blue/templates/main.tpl.htm index 70c4f26cd4..0007256e0a 100644 --- a/interface/web/themes/blue/templates/main.tpl.htm +++ b/interface/web/themes/blue/templates/main.tpl.htm @@ -161,6 +161,7 @@ <!-- begin: #content --> <section id="content"> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> <div id="ie_clearing"> </div> diff --git a/interface/web/themes/default-304/templates/main.tpl.htm b/interface/web/themes/default-304/templates/main.tpl.htm index 862693bada..7f227e18af 100644 --- a/interface/web/themes/default-304/templates/main.tpl.htm +++ b/interface/web/themes/default-304/templates/main.tpl.htm @@ -168,6 +168,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 9146291bbf..3339d9f3bd 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -164,6 +164,7 @@ <!-- begin: #content --> <section id="content"> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> <div id="ie_clearing"> </div> diff --git a/interface/web/themes/default_64_navimg/templates/main.tpl.htm b/interface/web/themes/default_64_navimg/templates/main.tpl.htm index c0180e1e95..6d0395ba1f 100644 --- a/interface/web/themes/default_64_navimg/templates/main.tpl.htm +++ b/interface/web/themes/default_64_navimg/templates/main.tpl.htm @@ -168,6 +168,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> diff --git a/interface/web/themes/default_combobox/templates/main.tpl.htm b/interface/web/themes/default_combobox/templates/main.tpl.htm index 142794e07a..1df185fdad 100644 --- a/interface/web/themes/default_combobox/templates/main.tpl.htm +++ b/interface/web/themes/default_combobox/templates/main.tpl.htm @@ -323,6 +323,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> diff --git a/interface/web/themes/default_no_navimg/templates/main.tpl.htm b/interface/web/themes/default_no_navimg/templates/main.tpl.htm index 5f45a0af9e..adfc656e0b 100644 --- a/interface/web/themes/default_no_navimg/templates/main.tpl.htm +++ b/interface/web/themes/default_no_navimg/templates/main.tpl.htm @@ -169,6 +169,7 @@ <a id="content" name="content"></a> <!-- skiplink anchor: Content --> <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> + <input type="text" style="display:none" /><input type="password" style="display:none"/> <div id="pageContent"><!-- AJAX CONTENT --></div> </form> </div> -- GitLab From d5b5d443196f85cd540bb6af0a4d2350579788ca Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 20 Jun 2014 18:51:17 +0200 Subject: [PATCH 017/158] Changed warning message for git version update. --- server/scripts/ispconfig_update.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/scripts/ispconfig_update.php b/server/scripts/ispconfig_update.php index 3512de9e93..2a5deedbcd 100644 --- a/server/scripts/ispconfig_update.php +++ b/server/scripts/ispconfig_update.php @@ -86,9 +86,9 @@ echo " _____ ___________ _____ __ _ |___/ "; echo "\n".str_repeat('-', 80)."\n"; echo "\n\n>> Update \n\n"; -echo "Please choose the update method. For production systems select 'stable'. \nThe update from svn is only for development systems and may break your current setup.\nNote: Update all slave server, before you update master server.\n\n"; +echo "Please choose the update method. For production systems select 'stable'. \nWARNING: The update from GIT is only for development systems and may break your current setup. Do not use the GIT version on servers that host any live websites!\nNote: Update all slave server, before you update master server.\n\n"; -$method = simple_query('Select update method', array('stable', 'svn'), 'stable'); +$method = simple_query('Select update method', array('stable', 'git'), 'stable'); if($method == 'stable') { $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.'); -- GitLab From 71c5c2929078372d68b2d2dee65261a2bbbd3b25 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 1 Jul 2014 18:42:46 +0200 Subject: [PATCH 018/158] Fixed: reseller has_clients if limit_client is != 0, e.g. -1 or > 0. Thanks to Sergio for pointing out this issue. --- interface/lib/classes/auth.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 706dd04090..070662fda8 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -50,7 +50,7 @@ class auth { $userid = $app->functions->intval($userid); $client = $app->db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); - if($client['limit_client'] > 0) { + if($client['limit_client'] != 0) { return true; } else { return false; -- GitLab From 883f1fcb49818c49dcfbaaf9e7e18a5b74ab7965 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Tue, 8 Jul 2014 14:48:01 +0200 Subject: [PATCH 019/158] - Change from merge request #73 in master - keeping sql files in sync --- install/sql/ispconfig3.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index bf68e5d7cb..e1bfa900dd 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -897,8 +897,8 @@ CREATE TABLE `mail_user` ( `login` varchar(255) NOT NULL default '', `password` varchar(255) NOT NULL default '', `name` varchar(255) NOT NULL default '', - `uid` int(11) unsigned NOT NULL default '5000', - `gid` int(11) unsigned NOT NULL default '5000', + `uid` int(11) NOT NULL default '5000', + `gid` int(11) NOT NULL default '5000', `maildir` varchar(255) NOT NULL default '', `quota` bigint(20) NOT NULL default '-1', `cc` varchar(255) NOT NULL default '', -- GitLab From b04e827ae6c3c41de9ca7c16373e143f06797ce1 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 9 Jul 2014 12:50:10 +0200 Subject: [PATCH 020/158] - Cleaned up autoinstall code - Added autoinstall for centos, opensuse and gentoo - Added ini style config autoinstall option - Autoinstall sample configuration files are now in docs folder - Removed old autoupdate file --- .../autoinstall.conf_sample.php | 8 + .../autoinstall.ini.sample | 50 +++ install/autoupdate.php | 338 ------------------ install/dist/lib/fedora.lib.php | 9 +- install/dist/lib/gentoo.lib.php | 10 +- install/dist/lib/opensuse.lib.php | 10 +- install/install.php | 215 ++++------- install/lib/installer_base.lib.php | 44 ++- install/update.php | 99 ++--- 9 files changed, 242 insertions(+), 541 deletions(-) rename {install => docs/autoinstall samples}/autoinstall.conf_sample.php (85%) create mode 100644 docs/autoinstall samples/autoinstall.ini.sample delete mode 100644 install/autoupdate.php diff --git a/install/autoinstall.conf_sample.php b/docs/autoinstall samples/autoinstall.conf_sample.php similarity index 85% rename from install/autoinstall.conf_sample.php rename to docs/autoinstall samples/autoinstall.conf_sample.php index 92ec008963..ccd36aae6a 100644 --- a/install/autoinstall.conf_sample.php +++ b/docs/autoinstall samples/autoinstall.conf_sample.php @@ -12,6 +12,14 @@ $autoinstall['http_server'] = 'nginx'; // apache (default), nginx $autoinstall['ispconfig_port'] = '8080'; // default: 8080 $autoinstall['ispconfig_use_ssl'] = 'y'; // y (default), n +/* SSL Settings */ +$autoinstall['ssl_cert_country'] = 'AU'; +$autoinstall['ssl_cert_state'] = 'Some-State'; +$autoinstall['ssl_cert_locality'] = 'Chicago'; +$autoinstall['ssl_cert_organisation'] = 'Internet Widgits Pty Ltd'; +$autoinstall['ssl_cert_organisation_unit'] = 'IT department'; +$autoinstall['ssl_cert_common_name'] = $autoinstall['hostname']; + /* optional expert mode settings, needed only for expert mode */ $autoinstall['mysql_ispconfig_user'] = 'ispconfig'; // default: ispconfig $autoinstall['mysql_ispconfig_password'] = md5(uniqid(rand())); diff --git a/docs/autoinstall samples/autoinstall.ini.sample b/docs/autoinstall samples/autoinstall.ini.sample new file mode 100644 index 0000000000..1f4d9d7da0 --- /dev/null +++ b/docs/autoinstall samples/autoinstall.ini.sample @@ -0,0 +1,50 @@ +[install] +language=en +install_mode=standard +hostname=server1.example.com +mysql_hostname=localhost +mysql_root_user=root +mysql_root_password=ispconfig +mysql_database=dbispconfig +mysql_charset=utf8 +http_server=apache +ispconfig_port=8080 +ispconfig_use_ssl=y + +[ssl_cert] +ssl_cert_country=AU +ssl_cert_state=Some-State +ssl_cert_locality=Chicago +ssl_cert_organisation=Internet Widgits Pty Ltd +ssl_cert_organisation_unit=IT department +ssl_cert_common_name=server1.example.com + +[expert] +mysql_ispconfig_user=ispconfig +mysql_ispconfig_password=afStEratXBsgatRtsa42CadwhQ +join_multiserver_setup=n +mysql_master_hostname=master.example.com +mysql_master_root_user=root +mysql_master_root_password=ispconfig +mysql_master_database=dbispconfig +configure_mail=y +configure_jailkit=y +configure_ftp=y +configure_dns=y +configure_apache=y +configure_nginx=y +configure_firewall=y +install_ispconfig_web_interface=y + +[update] +do_backup=yes +mysql_root_password=ispconfig +mysql_master_hostname=master.example.com +mysql_master_root_user=root +mysql_master_root_password=ispconfig +mysql_master_database=dbispconfig +reconfigure_permissions_in_master_database=no +reconfigure_services=yes +ispconfig_port=8080 +create_new_ispconfig_ssl_cert=no +reconfigure_crontab=yes \ No newline at end of file diff --git a/install/autoupdate.php b/install/autoupdate.php deleted file mode 100644 index 8960e13587..0000000000 --- a/install/autoupdate.php +++ /dev/null @@ -1,338 +0,0 @@ -<?php -/* -Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - ISPConfig 3 updater. -*/ - -die("Autoupdate has been removed.\nPlease start the update on the shell with the command ispconfig_update.sh as root user.\n"); - -error_reporting(E_ALL|E_STRICT); - -/* - * If the auto-updater flag is not on (the file does not exist) then cancel the auto-update! -*/ -if (!file_exists('autoupdate')) { - - //** The banner on the command line - echo "\n\n".str_repeat('-', 80)."\n"; - echo " _____ ___________ _____ __ _ ____ -|_ _/ ___| ___ \ / __ \ / _(_) /__ \ - | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / - | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | - _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ - \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ - __/ | - |___/ "; - echo "\n".str_repeat('-', 80)."\n"; - echo "\n\n>>This script is for internal use only! Please use update.php! \n\n"; - exit; -} - -//** Include the library with the basic installer functions -require_once 'lib/install.lib.php'; - -//** Include the library with the basic updater functions -require_once 'lib/update.lib.php'; - -//** Include the base class of the installer class -require_once 'lib/installer_base.lib.php'; - -//** Ensure that current working directory is install directory -$cur_dir = getcwd(); -if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n"); - -//** Install logfile -define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); -define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); - -//** Get distribution identifier -$dist = get_distname(); - -include_once "/usr/local/ispconfig/server/lib/config.inc.php"; -$conf_old = $conf; -unset($conf); - -if($dist['id'] == '') die('Linux distribution or version not recognized.'); - -//** Include the distribution-specific installer class library and configuration -if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; -include_once 'dist/lib/'.$dist['id'].'.lib.php'; -include_once 'dist/conf/'.$dist['id'].'.conf.php'; - -//** Get hostname -exec('hostname -f', $tmp_out); -$conf['hostname'] = $tmp_out[0]; -unset($tmp_out); - -//** Set the mysql login information -$conf["mysql"]["host"] = $conf_old["db_host"]; -$conf["mysql"]["database"] = $conf_old["db_database"]; -$conf['mysql']['charset'] = 'utf8'; -$conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; -$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; -$conf['language'] = $conf_old['language']; -if($conf['language'] == '{language}') $conf['language'] = 'en'; - -if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"]; -if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"]; -if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"]; -if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"]; - -//* Check if this is a master / slave setup -$conf['mysql']['master_slave_setup'] = 'n'; -if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) { - $conf['mysql']['master_slave_setup'] = 'y'; -} - -// Resolve the IP address of the mysql hostname. -if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']); - -$conf['server_id'] = intval($conf_old["server_id"]); -$conf['ispconfig_log_priority'] = $conf_old["log_priority"]; - -$inst = new installer(); -$inst->is_update = true; - -//** Detect the installed applications -$inst->find_installed_apps(); - -//** Initialize the MySQL server connection -include_once 'lib/mysql.lib.php'; - -//** Database update is a bit brute force and should be rebuild later ;) - -/* - * Try to read the DB-admin settings - */ -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; -include_once "/usr/local/ispconfig/server/lib/mysql_clientdb.conf"; -$conf["mysql"]["admin_user"] = $clientdb_user; -$conf["mysql"]["admin_password"] = $clientdb_password; -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; - -//** There is a error if user for mysql admin_password if empty -if( empty($conf["mysql"]["admin_password"]) ) { - die("internal error - MYSQL-Root passord not known"); -} - -//** Test mysql root connection -if(!@mysql_connect($conf["mysql"]["host"], $conf["mysql"]["admin_user"], $conf["mysql"]["admin_password"])) { - die("internal error - MYSQL-Root passord wrong"); -} - -/* - * Check all tables -*/ -checkDbHealth(); - -/* - * Prepare the dump of the database -*/ -prepareDBDump(); - -//* initialize the database -$inst->db = new db(); - -/* - * The next line is a bit tricky! - * At the automated update we have no connection to the master-db (we don't need it, because - * there are only TWO points, where this is needed) - * 1) update the rights --> the autoupdater sets the rights of all clients when the server is - * autoupdated) - * 2) update the server-settings (is web installed, is mail installed) --> the autoupdates - * doesn't change any of this settings, so there ist no need to update this. - * This means, the autoupdater did not need any connection to the master-db (only to the local bd - * of the master-server). To avoid any problems, we set the master-db to the local one. - */ -$inst->dbmaster = $inst->db; - -/* - * If it is NOT a master-slave - Setup then we are at the Master-DB. So set all rights -*/ -if($conf['mysql']['master_slave_setup'] != 'y') { - $inst->grant_master_database_rights(true); -} - -/* - * dump the new Database and reconfigure the server.ini - */ -updateDbAndIni(); - -/* - * Reconfigure all Services - */ -if($conf['services']['mail'] == true) { - //** Configure postfix - swriteln('Configuring Postfix'); - $inst->configure_postfix('dont-create-certs'); - - //** Configure mailman - if($conf['mailman']['installed'] == true) { - swriteln('Configuring Mailman'); - $inst->configure_mailman('update'); - } - - //* Configure Jailkit - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); - - if($conf['dovecot']['installed'] == true) { - //* Configure dovecot - swriteln('Configuring Dovecot'); - $inst->configure_dovecot(); - } else { - //** Configure saslauthd - swriteln('Configuring SASL'); - $inst->configure_saslauthd(); - - //** Configure PAM - swriteln('Configuring PAM'); - $inst->configure_pam(); - - //* Configure courier - swriteln('Configuring Courier'); - $inst->configure_courier(); - } - - //** Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); - - //** Configure Amavis - swriteln('Configuring Amavisd'); - $inst->configure_amavis(); - - //** Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); -} - -if($conf['services']['web'] == true) { - //** Configure Pureftpd - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); -} - -if($conf['services']['dns'] == true) { - //* Configure DNS - if($conf['powerdns']['installed'] == true) { - swriteln('Configuring PowerDNS'); - $inst->configure_powerdns(); - } elseif($conf['bind']['installed'] == true) { - swriteln('Configuring BIND'); - $inst->configure_bind(); - } else { - swriteln('Configuring MyDNS'); - $inst->configure_mydns(); - } -} - -if($conf['services']['web']) { - if($conf['webserver']['server_type'] == 'apache'){ - //** Configure Apache - swriteln('Configuring Apache'); - $inst->configure_apache(); - - //** Configure vlogger - swriteln('Configuring vlogger'); - $inst->configure_vlogger(); - } else { - //** Configure nginx - swriteln('Configuring nginx'); - $inst->configure_nginx(); - } - - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); -} - - -//* Configure DBServer -swriteln('Configuring Database'); -$inst->configure_dbserver(); - - -//if(@is_dir('/etc/Bastille')) { -//* Configure Firewall -swriteln('Configuring Firewall'); -$inst->configure_firewall(); -//} - -//** Configure ISPConfig -swriteln('Updating ISPConfig'); - - -//** Customise the port ISPConfig runs on -$conf['apache']['vhost_port'] = get_ispconfig_port_number(); - -$inst->install_ispconfig(); - -//** Configure Crontab -swriteln('Updating Crontab'); -$inst->install_crontab(); - -//** Restart services: -swriteln('Restarting services ...'); -if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'reload')); -if($conf['services']['mail']) { - if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart')); - if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart')); - if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart')); - if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart')); - if($conf['courier']['installed'] == true){ - if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart')); - if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart')); - if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart')); - if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart')); - if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart')); - } - if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart')); - if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system($inst->getinitcommand($conf['mailman']['init_script'], 'restart')); -} -if($conf['services']['web']) { - if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart')); - //* Reload is enough for nginx - if($conf['webserver']['server_type'] == 'nginx' && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload')); - if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart')); -} -if($conf['services']['dns']) { - if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null'); - if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null'); - if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null'); -} - -echo "Update finished.\n"; - -?> diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 87fadb0284..d3efe6022f 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -229,8 +229,13 @@ class installer_dist extends installer_base { if(!stristr($options, 'dont-create-certs')) { //* Create the SSL certificate - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509'; + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".$autoinstall['ssl_cert_country']."/ST=".$autoinstall['ssl_cert_state']."/L=".$autoinstall['ssl_cert_locality']."/O=".$autoinstall['ssl_cert_organisation']."/OU=".$autoinstall['ssl_cert_organisation_unit']."/CN=".$autoinstall['ssl_cert_common_name']."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } exec($command); $command = 'chmod o= '.$config_dir.'/smtpd.key'; diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index b14cffe877..9a0d7c94ab 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -119,9 +119,13 @@ class installer extends installer_base //* Create the SSL certificate if (!stristr($options, 'dont-create-certs')) { - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509'; - exec($command); + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".$autoinstall['ssl_cert_country']."/ST=".$autoinstall['ssl_cert_state']."/L=".$autoinstall['ssl_cert_locality']."/O=".$autoinstall['ssl_cert_organisation']."/OU=".$autoinstall['ssl_cert_organisation_unit']."/CN=".$autoinstall['ssl_cert_common_name']."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } $command = 'chmod o= '.$config_dir.'/smtpd.key'; caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 7ff56de893..caef5409a8 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -257,9 +257,13 @@ class installer_dist extends installer_base { if(!stristr($options, 'dont-create-certs')) { //* Create the SSL certificate - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509'; - exec($command); + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } $command = 'chmod o= '.$config_dir.'/smtpd.key'; caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); diff --git a/install/install.php b/install/install.php index 838209ec12..108ed05b2e 100644 --- a/install/install.php +++ b/install/install.php @@ -30,6 +30,30 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* ISPConfig 3 installer. + + ------------------------------------------------------------------------------------- + - Interactive install + ------------------------------------------------------------------------------------- + run: + + php install.php + + ------------------------------------------------------------------------------------- + - Noninteractive (autoinstall) mode + ------------------------------------------------------------------------------------- + + The autoinstall mode can read the installer questions from a .ini style file or from + a php config file. Examples for both file types are in the docs folder. + See autoinstall.ini.sample and autoinstall.conf_sample.php. + + run: + + php install.php --autoinstall=autoinstall.ini + + or + + php install.php --autoinstall=autoinstall.conf.php + */ error_reporting(E_ALL|E_STRICT); @@ -80,7 +104,27 @@ if($dist['id'] == '') die('Linux distribution or version not recognized.'); //** Include the autoinstaller configuration (for non-interactive setups) error_reporting(E_ALL ^ E_NOTICE); -if(is_file('autoinstall.conf.php')) include_once 'autoinstall.conf.php'; + +//** Get commandline options +$cmd_opt = getopt('', array('autoinstall::')); + +//** Load autoinstall file +if(isset($cmd_opt['autoinstall']) && is_file($cmd_opt['autoinstall'])) { + $path_parts = pathinfo($cmd_opt['autoinstall']); + if($path_parts['extension'] == 'php') { + include_once $cmd_opt['autoinstall']; + } elseif($path_parts['extension'] == 'ini') { + $tmp = ini_to_array(file_get_contents('autoinstall.ini')); + $autoinstall = $tmp['install'] + $tmp['ssl_cert'] + $tmp['expert'] + $tmp['update']; + unset($tmp); + } + unset($path_parts); + define('AUTOINSTALL', true); +} else { + $autoinstall = array(); + define('AUTOINSTALL', false); +} + //** Include the distribution-specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; @@ -113,12 +157,7 @@ if(is_dir('/usr/local/ispconfig')) { $inst->find_installed_apps(); //** Select the language and set default timezone -if($autoinstall['language'] == 'default') $autoinstall['language'] = 'en'; -if($autoinstall['language'] == 'en' || $autoinstall['language'] == 'de'){ - $conf['language'] = $autoinstall['language']; -} else { - $conf['language'] = $inst->simple_query('Select language', array('en', 'de'), 'en'); -} +$conf['language'] = $inst->simple_query('Select language', array('en', 'de'), 'en','language'); $conf['timezone'] = get_system_timezone(); //* Set default theme @@ -126,19 +165,13 @@ $conf['theme'] = 'default'; $conf['language_file_import_enabled'] = true; //** Select installation mode -if($autoinstall['install_mode'] == 'default') $autoinstall['install_mode'] = 'standard'; -if($autoinstall['install_mode'] == 'standard' || $autoinstall['install_mode'] == 'expert'){ - $install_mode = $autoinstall['install_mode']; -} else { - $install_mode = $inst->simple_query('Installation mode', array('standard', 'expert'), 'standard'); -} +$install_mode = $inst->simple_query('Installation mode', array('standard', 'expert'), 'standard','install_mode'); //** Get the hostname $tmp_out = array(); exec('hostname -f', $tmp_out); -if($autoinstall['hostname'] == 'default') $autoinstall['hostname'] = @$tmp_out[0]; -$conf['hostname'] = ($autoinstall['hostname'] != '' ? $autoinstall['hostname'] : $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', @$tmp_out[0])); +$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', @$tmp_out[0],'hostname'); unset($tmp_out); // Check if the mysql functions are loaded in PHP @@ -147,24 +180,17 @@ if(!function_exists('mysql_connect')) die('No PHP MySQL functions available. Ple //** Get MySQL root credentials $finished = false; do { - if($autoinstall['mysql_hostname'] == 'default') $autoinstall['mysql_hostname'] = $conf['mysql']['host']; - if($autoinstall['mysql_root_user'] == 'default') $autoinstall['mysql_root_user'] = $conf['mysql']['admin_user']; - if($autoinstall['mysql_database'] == 'default') $autoinstall['mysql_database'] = $conf['mysql']['database']; - if($autoinstall['mysql_charset'] == 'default') $autoinstall['mysql_charset'] = $conf['mysql']['charset']; + $tmp_mysql_server_host = $inst->free_query('MySQL server hostname', $conf['mysql']['host'],'mysql_hostname'); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL root username', $conf['mysql']['admin_user'],'mysql_root_user'); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL root password', $conf['mysql']['admin_password'],'mysql_root_password'); + $tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database'],'mysql_database'); + $tmp_mysql_server_charset = $inst->free_query('MySQL charset', $conf['mysql']['charset'],'mysql_charset'); - $tmp_mysql_server_host = ($autoinstall['mysql_hostname'] != ''? $autoinstall['mysql_hostname'] : $inst->free_query('MySQL server hostname', $conf['mysql']['host'])); - $tmp_mysql_server_admin_user = ($autoinstall['mysql_root_user'] != ''? $autoinstall['mysql_root_user'] : $inst->free_query('MySQL root username', $conf['mysql']['admin_user'])); - $tmp_mysql_server_admin_password = (isset($autoinstall['mysql_root_password'])? $autoinstall['mysql_root_password'] : $inst->free_query('MySQL root password', $conf['mysql']['admin_password'])); - $tmp_mysql_server_database = ($autoinstall['mysql_database'] != ''? $autoinstall['mysql_database'] : $inst->free_query('MySQL database to create', $conf['mysql']['database'])); - $tmp_mysql_server_charset = ($autoinstall['mysql_charset'] != ''? $autoinstall['mysql_charset'] : $inst->free_query('MySQL charset', $conf['mysql']['charset'])); - if($install_mode == 'expert') { swriteln("The next two questions are about the internal ISPConfig database user and password.\nIt is recommended to accept the defaults which are 'ispconfig' as username and a random password.\nIf you use a different password, use only numbers and chars for the password.\n"); - if($autoinstall['mysql_ispconfig_user'] == 'default') $autoinstall['mysql_ispconfig_user'] = $conf['mysql']['ispconfig_user']; - - $conf['mysql']['ispconfig_user'] = ($autoinstall['mysql_ispconfig_user'] != ''? $autoinstall['mysql_ispconfig_user'] : $inst->free_query('ISPConfig mysql database username', $conf['mysql']['ispconfig_user'])); - $conf['mysql']['ispconfig_password'] = (isset($autoinstall['mysql_ispconfig_password'])? $autoinstall['mysql_ispconfig_password'] : $inst->free_query('ISPConfig mysql database password', $conf['mysql']['ispconfig_password'])); + $conf['mysql']['ispconfig_user'] = $inst->free_query('ISPConfig mysql database username', $conf['mysql']['ispconfig_user'],'mysql_ispconfig_user'); + $conf['mysql']['ispconfig_password'] = $inst->free_query('ISPConfig mysql database password', $conf['mysql']['ispconfig_password'],'mysql_ispconfig_password'); } //* Initialize the MySQL server connection @@ -199,12 +225,7 @@ if($install_mode == 'standard') { //* Configure Webserver - Apache or nginx if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) { - if($autoinstall['http_server'] == 'default') $autoinstall['http_server'] = 'apache'; - if($autoinstall['http_server'] == 'apache' || $autoinstall['http_server'] == 'nginx'){ - $http_server_to_use = $autoinstall['http_server']; - } else { - $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); - } + $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache','http_server'); if($http_server_to_use == 'apache'){ $conf['nginx']['installed'] = false; } else { @@ -321,19 +342,13 @@ if($install_mode == 'standard') { swriteln('Installing ISPConfig'); //** Customize the port ISPConfig runs on - if($autoinstall['isspconfig_port'] == 'default') $autoinstall['ispconfig_port'] = '8080'; - $ispconfig_vhost_port = (intval($autoinstall['ispconfig_port']) > 0 ? intval($autoinstall['ispconfig_port']) : $inst->free_query('ISPConfig Port', '8080')); + $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port'); if($conf['apache']['installed'] == true) $conf['apache']['vhost_port'] = $ispconfig_vhost_port; if($conf['nginx']['installed'] == true) $conf['nginx']['vhost_port'] = $ispconfig_vhost_port; unset($ispconfig_vhost_port); - if($autoinstall['ispconfig_use_ssl'] == 'default') $autoinstall['ispconfig_use_ssl'] = 'y'; - if($autoinstall['ispconfig_use_ssl'] == 'y' || $autoinstall['ispconfig_use_ssl'] == 'n'){ - if($autoinstall['ispconfig_use_ssl'] == 'y') $inst->make_ispconfig_ssl_cert(); - } else { - if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { - $inst->make_ispconfig_ssl_cert(); - } + if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y','ispconfig_use_ssl')) == 'y') { + $inst->make_ispconfig_ssl_cert(); } $inst->install_ispconfig(); @@ -388,26 +403,16 @@ if($install_mode == 'standard') { //** Get Server ID // $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1'); // Server ID is an autoInc value of the mysql database now - $tmp_join_multiserver_setup = 'n'; - if($autoinstall['join_multiserver_setup'] == 'default') $autoinstall['join_multiserver_setup'] = 'n'; - if($autoinstall['join_multiserver_setup'] == 'y' || $autoinstall['join_multiserver_setup'] == 'n'){ - $tmp_join_multiserver_setup = $autoinstall['join_multiserver_setup']; - } else { - $tmp_join_multiserver_setup = strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n')); - } - - if($tmp_join_multiserver_setup == 'y') { + if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup', array('y', 'n'), 'n','join_multiserver_setup')) == 'y') { $conf['mysql']['master_slave_setup'] = 'y'; //** Get MySQL root credentials $finished = false; do { - if($autoinstall['mysql_master_database'] == 'default') $autoinstall['mysql_master_database'] = $conf['mysql']['master_database']; - - $tmp_mysql_server_host = ($autoinstall['mysql_master_hostname'] != ''? $autoinstall['mysql_master_hostname'] : $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'])); - $tmp_mysql_server_admin_user = ($autoinstall['mysql_master_root_user'] != ''? $autoinstall['mysql_master_root_user'] : $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'])); - $tmp_mysql_server_admin_password = (isset($autoinstall['mysql_master_root_password'])? $autoinstall['mysql_master_root_password'] : $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'])); - $tmp_mysql_server_database = ($autoinstall['mysql_master_database'] != ''? $autoinstall['mysql_master_database'] : $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'])); + $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname'); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user'); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password'); + $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database'); //* Initialize the MySQL server connection if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { @@ -440,12 +445,7 @@ if($install_mode == 'standard') { //* Configure Webserver - Apache or nginx if($conf['apache']['installed'] == true && $conf['nginx']['installed'] == true) { - if($autoinstall['http_server'] == 'default') $autoinstall['http_server'] = 'apache'; - if($autoinstall['http_server'] == 'apache' || $autoinstall['http_server'] == 'nginx'){ - $http_server_to_use = $autoinstall['http_server']; - } else { - $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache'); - } + $http_server_to_use = $inst->simple_query('Apache and nginx detected. Select server to use for ISPConfig:', array('apache', 'nginx'), 'apache','http_server'); if($http_server_to_use == 'apache'){ $conf['nginx']['installed'] = false; } else { @@ -458,15 +458,7 @@ if($install_mode == 'standard') { swriteln(''); $inst->add_database_server_record(); - $tmp_configure_mail = 'y'; - if($autoinstall['configure_mail'] == 'default') $autoinstall['configure_mail'] = 'y'; - if($autoinstall['configure_mail'] == 'y' || $autoinstall['configure_mail'] == 'n'){ - $tmp_configure_mail = $autoinstall['configure_mail']; - } else { - $tmp_configure_mail = strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y')); - } - - if($tmp_configure_mail == 'y') { + if(strtolower($inst->simple_query('Configure Mail', array('y', 'n') , 'y','configure_mail') ) == 'y') { $conf['services']['mail'] = true; @@ -525,41 +517,20 @@ if($install_mode == 'standard') { } //** Configure Jailkit - $tmp_configure_jailkit = 'y'; - if($autoinstall['configure_jailkit'] == 'default') $autoinstall['configure_jailkit'] = 'y'; - if($autoinstall['configure_jailkit'] == 'y' || $autoinstall['configure_jailkit'] == 'n'){ - $tmp_configure_jailkit = $autoinstall['configure_jailkit']; - } else { - $tmp_configure_jailkit = strtolower($inst->simple_query('Configure Jailkit', array('y', 'n'), 'y')); - } - if($tmp_configure_jailkit == 'y') { + if(strtolower($inst->simple_query('Configure Jailkit', array('y', 'n'), 'y','configure_jailkit') ) == 'y') { swriteln('Configuring Jailkit'); $inst->configure_jailkit(); } //** Configure Pureftpd - $tmp_configure_ftp = 'y'; - if($autoinstall['configure_ftp'] == 'default') $autoinstall['configure_ftp'] = 'y'; - if($autoinstall['configure_ftp'] == 'y' || $autoinstall['configure_ftp'] == 'n'){ - $tmp_configure_ftp = $autoinstall['configure_ftp']; - } else { - $tmp_configure_ftp = strtolower($inst->simple_query('Configure FTP Server', array('y', 'n'), 'y')); - } - if($tmp_configure_ftp == 'y') { + if(strtolower($inst->simple_query('Configure FTP Server', array('y', 'n'), 'y','configure_ftp') ) == 'y') { swriteln('Configuring Pureftpd'); $inst->configure_pureftpd(); if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart')); } //** Configure DNS - $tmp_configure_dns = 'y'; - if($autoinstall['configure_dns'] == 'default') $autoinstall['configure_dns'] = 'y'; - if($autoinstall['configure_dns'] == 'y' || $autoinstall['configure_dns'] == 'n'){ - $tmp_configure_dns = $autoinstall['configure_dns']; - } else { - $tmp_configure_dns = strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y')); - } - if($tmp_configure_dns == 'y') { + if(strtolower($inst->simple_query('Configure DNS Server', array('y', 'n'), 'y','configure_dns')) == 'y') { $conf['services']['dns'] = true; //* Configure DNS if($conf['powerdns']['installed'] == true) { @@ -598,14 +569,7 @@ if($install_mode == 'standard') { //** Configure Apache if($conf['apache']['installed'] == true){ swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure Apache Server' option.\n"); - $tmp_configure_apache = 'y'; - if($autoinstall['configure_apache'] == 'default') $autoinstall['configure_apache'] = 'y'; - if($autoinstall['configure_apache'] == 'y' || $autoinstall['configure_apache'] == 'n'){ - $tmp_configure_apache = $autoinstall['configure_apache']; - } else { - $tmp_configure_apache = strtolower($inst->simple_query('Configure Apache Server', array('y', 'n'), 'y')); - } - if($tmp_configure_apache == 'y') { + if(strtolower($inst->simple_query('Configure Apache Server', array('y', 'n'), 'y','configure_apache')) == 'y') { $conf['services']['web'] = true; swriteln('Configuring Apache'); $inst->configure_apache(); @@ -623,14 +587,7 @@ if($install_mode == 'standard') { //** Configure nginx if($conf['nginx']['installed'] == true){ swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure nginx Server' option.\n"); - $tmp_configure_nginx = 'y'; - if($autoinstall['configure_nginx'] == 'default') $autoinstall['configure_nginx'] = 'y'; - if($autoinstall['configure_nginx'] == 'y' || $autoinstall['configure_nginx'] == 'n'){ - $tmp_configure_nginx = $autoinstall['configure_nginx']; - } else { - $tmp_configure_nginx = strtolower($inst->simple_query('Configure nginx Server', array('y', 'n'), 'y')); - } - if($tmp_configure_nginx == 'y') { + if(strtolower($inst->simple_query('Configure nginx Server', array('y', 'n'), 'y','configure_nginx')) == 'y') { $conf['services']['web'] = true; swriteln('Configuring nginx'); $inst->configure_nginx(); @@ -646,14 +603,7 @@ if($install_mode == 'standard') { } //** Configure Firewall - $tmp_configure_firewall = 'y'; - if($autoinstall['configure_firewall'] == 'default') $autoinstall['configure_firewall'] = 'y'; - if($autoinstall['configure_firewall'] == 'y' || $autoinstall['configure_firewall'] == 'n'){ - $tmp_configure_firewall = $autoinstall['configure_firewall']; - } else { - $tmp_configure_firewall = strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y')); - } - if($tmp_configure_firewall == 'y') { + if(strtolower($inst->simple_query('Configure Firewall Server', array('y', 'n'), 'y','configure_firewall')) == 'y') { //if($conf['bastille']['installed'] == true) { //* Configure Bastille Firewall $conf['services']['firewall'] = true; @@ -676,14 +626,7 @@ if($install_mode == 'standard') { //** Configure ISPConfig :-) $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y'; - $tmp_install_ispconfig_web_interface = $install_ispconfig_interface_default; - if($autoinstall['install_ispconfig_web_interface'] == 'default') $autoinstall['install_ispconfig_web_interface'] = $install_ispconfig_interface_default; - if($autoinstall['install_ispconfig_web_interface'] == 'y' || $autoinstall['install_ispconfig_web_interface'] == 'n'){ - $tmp_install_ispconfig_web_interface = $autoinstall['install_ispconfig_web_interface']; - } else { - $tmp_install_ispconfig_web_interface = strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default)); - } - if($tmp_install_ispconfig_web_interface == 'y') { + if(strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default,'install_ispconfig_web_interface')) == 'y') { swriteln('Installing ISPConfig'); //** We want to check if the server is a module or cgi based php enabled server @@ -701,19 +644,13 @@ if($install_mode == 'standard') { */ //** Customise the port ISPConfig runs on - if($autoinstall['ispconfig_port'] == 'default') $autoinstall['ispconfig_port'] = '8080'; - $ispconfig_vhost_port = (intval($autoinstall['ispconfig_port']) > 0 ? intval($autoinstall['ispconfig_port']) : $inst->free_query('ISPConfig Port', '8080')); + $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port'); if($conf['apache']['installed'] == true) $conf['apache']['vhost_port'] = $ispconfig_vhost_port; if($conf['nginx']['installed'] == true) $conf['nginx']['vhost_port'] = $ispconfig_vhost_port; unset($ispconfig_vhost_port); - if($autoinstall['ispconfig_use_ssl'] == 'default') $autoinstall['ispconfig_use_ssl'] = 'y'; - if($autoinstall['ispconfig_use_ssl'] == 'y' || $autoinstall['ispconfig_use_ssl'] == 'n'){ - if($autoinstall['ispconfig_use_ssl'] == 'y') $inst->make_ispconfig_ssl_cert(); - } else { - if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface', array('y', 'n'), 'y')) == 'y') { - $inst->make_ispconfig_ssl_cert(); - } + if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface', array('y', 'n'), 'y','ispconfig_use_ssl')) == 'y') { + $inst->make_ispconfig_ssl_cert(); } $inst->install_ispconfig_interface = true; diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 2fc9e0b87a..2cd48a0797 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -56,12 +56,21 @@ class installer_base { echo 'WARNING: '.$msg."\n"; } - public function simple_query($query, $answers, $default) { + public function simple_query($query, $answers, $default, $name = '') { + global $autoinstall; $finished = false; do { - $answers_str = implode(',', $answers); - swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); - $input = sread(); + if($name != '' && $autoinstall[$name] != '') { + if($autoinstall[$name] == 'default') { + $input = $default; + } else { + $input = $autoinstall[$name]; + } + } else { + $answers_str = implode(',', $answers); + swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); + $input = sread(); + } //* Stop the installation if($input == 'quit') { @@ -86,9 +95,18 @@ class installer_base { return $answer; } - public function free_query($query, $default) { - swrite($this->lng($query).' ['.$default.']: '); - $input = sread(); + public function free_query($query, $default, $name = '') { + global $autoinstall; + if($name != '' && $autoinstall[$name] != '') { + if($autoinstall[$name] == 'default') { + $input = $default; + } else { + $input = $autoinstall[$name]; + } + } else { + swrite($this->lng($query).' ['.$default.']: '); + $input = sread(); + } //* Stop the installation if($input == 'quit') { @@ -638,7 +656,7 @@ class installer_base { } public function configure_postfix($options = '') { - global $conf; + global $conf,$autoinstall; $cf = $conf['postfix']; $config_dir = $cf['config_dir']; @@ -750,9 +768,9 @@ class installer_base { if(!stristr($options, 'dont-create-certs')) { //* Create the SSL certificate - if(is_file('autoinstall.conf.php')){ + if(AUTOINSTALL){ $command = 'cd '.$config_dir.'; ' - .'openssl req -new -subj \'/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd\' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; } else { $command = 'cd '.$config_dir.'; ' .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; @@ -1676,7 +1694,7 @@ class installer_base { } public function make_ispconfig_ssl_cert() { - global $conf; + global $conf,$autoinstall; $install_dir = $conf['ispconfig_install_dir']; @@ -1688,8 +1706,8 @@ class installer_base { $ssl_pw = substr(md5(mt_rand()), 0, 6); exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); - if(is_file('autoinstall.conf.php')){ - exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd' -key $ssl_key_file -out $ssl_csr_file"); + if(AUTOINSTALL){ + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -key $ssl_key_file -out $ssl_csr_file"); } else { exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); } diff --git a/install/update.php b/install/update.php index 1862ef218b..36eb201817 100644 --- a/install/update.php +++ b/install/update.php @@ -30,6 +30,30 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* ISPConfig 3 updater. + + ------------------------------------------------------------------------------------- + - Interactive update + ------------------------------------------------------------------------------------- + run: + + php update.php + + ------------------------------------------------------------------------------------- + - Noninteractive (autoupdate) mode + ------------------------------------------------------------------------------------- + + The autoupdate mode can read the updater questions from a .ini style file or from + a php config file. Examples for both file types are in the docs folder. + See autoinstall.ini.sample and autoinstall.conf_sample.php. + + run: + + php update.php --autoinstall=autoinstall.ini + + or + + php update.php --autoinstall=autoinstall.conf.php + */ error_reporting(E_ALL|E_STRICT); @@ -85,7 +109,26 @@ if($dist['id'] == '') die('Linux distribution or version not recognized.'); //** Include the autoinstaller configuration (for non-interactive setups) error_reporting(E_ALL ^ E_NOTICE); -if(is_file('autoinstall.conf.php')) include_once 'autoinstall.conf.php'; + +//** Get commandline options +$cmd_opt = getopt('', array('autoinstall::')); + +//** Load autoinstall file +if(isset($cmd_opt['autoinstall']) && is_file($cmd_opt['autoinstall'])) { + $path_parts = pathinfo($cmd_opt['autoinstall']); + if($path_parts['extension'] == 'php') { + include_once $cmd_opt['autoinstall']; + } elseif($path_parts['extension'] == 'ini') { + $tmp = ini_to_array(file_get_contents('autoinstall.ini')); + $autoinstall = $tmp['install'] + $tmp['ssl_cert'] + $tmp['expert'] + $tmp['update']; + unset($tmp); + } + unset($path_parts); + define('AUTOINSTALL', true); +} else { + $autoinstall = array(); + define('AUTOINSTALL', false); +} //** Include the distribution-specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; @@ -135,12 +178,7 @@ $inst->find_installed_apps(); echo "This application will update ISPConfig 3 on your server.\n\n"; //* Make a backup before we start the update -if($autoupdate['do_backup'] == 'default') $autoupdate['do_backup'] = 'yes'; -if($autoupdate['do_backup'] == 'yes' || $autoupdate['do_backup'] == 'no'){ - $do_backup = $autoupdate['do_backup']; -} else { - $do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes'); -} +$do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes','do_backup'); if($do_backup == 'yes') { @@ -190,7 +228,7 @@ do { $finished = true; } else { swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error()); - $conf["mysql"]["admin_password"] = (isset($autoupdate['mysql_root_password'])? $autoupdate['mysql_root_password'] : $inst->free_query('MySQL root password', $conf['mysql']['admin_password'])); + $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password'],'mysql_root_password'); } } while ($finished == false); unset($finished); @@ -208,12 +246,10 @@ if($conf['mysql']['master_slave_setup'] == 'y') { //** Get MySQL root credentials $finished = false; do { - if($autoupdate['mysql_master_database'] == 'default') $autoupdate['mysql_master_database'] = $conf['mysql']['master_database']; - - $tmp_mysql_server_host = ($autoupdate['mysql_master_hostname'] != ''? $autoupdate['mysql_master_hostname'] : $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'])); - $tmp_mysql_server_admin_user = ($autoupdate['mysql_master_root_user'] != ''? $autoupdate['mysql_master_root_user'] : $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'])); - $tmp_mysql_server_admin_password = (isset($autoupdate['mysql_master_root_password'])? $autoupdate['mysql_master_root_password'] : $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'])); - $tmp_mysql_server_database = ($autoupdate['mysql_master_database'] != ''? $autoupdate['mysql_master_database'] : $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'])); + $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname'); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user'); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password'); + $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database'); //* Initialize the MySQL server connection if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { @@ -256,12 +292,7 @@ updateDbAndIni(); */ //if($conf_old['dbmaster_user'] != '' or $conf_old['dbmaster_host'] != '') { //** Update master database rights -if($autoupdate['reconfigure_permissions_in_master_database'] == 'default') $autoupdate['reconfigure_permissions_in_master_database'] = 'no'; -if($autoupdate['reconfigure_permissions_in_master_database'] == 'no' || $autoupdate['reconfigure_permissions_in_master_database'] == 'yes'){ - $reconfigure_master_database_rights_answer = $autoupdate['reconfigure_permissions_in_master_database']; -} else { - $reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no'); -} +$reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no','reconfigure_permissions_in_master_database'); if($reconfigure_master_database_rights_answer == 'yes') { $inst->grant_master_database_rights(); @@ -269,12 +300,7 @@ if($reconfigure_master_database_rights_answer == 'yes') { //} //** Shall the services be reconfigured during update -if($autoupdate['reconfigure_services'] == 'default') $autoupdate['reconfigure_services'] = 'yes'; -if($autoupdate['reconfigure_services'] == 'yes' || $autoupdate['reconfigure_services'] == 'no'){ - $reconfigure_services_answer = $autoupdate['reconfigure_services']; -} else { - $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes'); -} +$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services'); if($reconfigure_services_answer == 'yes') { @@ -403,21 +429,14 @@ if ($conf['services']['web'] && $inst->install_ispconfig_interface) { $ispconfig_port_number = get_ispconfig_port_number(); if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number; if($conf['webserver']['server_type'] == 'nginx'){ - $conf['nginx']['vhost_port'] = (intval($autoupdate['ispconfig_port']) > 0 ? intval($autoupdate['ispconfig_port']) : $inst->free_query('ISPConfig Port', $ispconfig_port_number)); + $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port'); } else { - $conf['apache']['vhost_port'] = (intval($autoupdate['ispconfig_port']) > 0 ? intval($autoupdate['ispconfig_port']) : $inst->free_query('ISPConfig Port', $ispconfig_port_number)); + $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port'); } // $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n'; - $tmp_create_new_ispconfig_ssl_cert = 'no'; - if($autoupdate['create_new_ispconfig_ssl_cert'] == 'default') $autoupdate['create_new_ispconfig_ssl_cert'] = 'no'; - if($autoupdate['create_new_ispconfig_ssl_cert'] == 'no' || $autoupdate['create_new_ispconfig_ssl_cert'] == 'yes'){ - $tmp_create_new_ispconfig_ssl_cert = $autoupdate['create_new_ispconfig_ssl_cert']; - } else { - $tmp_create_new_ispconfig_ssl_cert = strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no')); - } - if($tmp_create_new_ispconfig_ssl_cert == 'yes') { + if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no','create_new_ispconfig_ssl_cert')) == 'yes') { $inst->make_ispconfig_ssl_cert(); } } @@ -425,13 +444,7 @@ if ($conf['services']['web'] && $inst->install_ispconfig_interface) { $inst->install_ispconfig(); //** Configure Crontab -if($autoupdate['reconfigure_crontab'] == 'default') $autoupdate['reconfigure_crontab'] = 'yes'; -if($autoupdate['reconfigure_crontab'] == 'no' || $autoupdate['reconfigure_crontab'] == 'yes'){ - $update_crontab_answer = $autoupdate['reconfigure_crontab']; -} else { - $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes'); -} - +$update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab'); if($update_crontab_answer == 'yes') { swriteln('Updating Crontab'); $inst->install_crontab(); -- GitLab From 524b0e69a7d1275022967fedee3022fc100fc600 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 9 Jul 2014 13:05:06 +0200 Subject: [PATCH 021/158] Renamed autoinstall_samples folder. --- .../autoinstall.conf_sample.php | 0 .../autoinstall.ini.sample | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/{autoinstall samples => autoinstall_samples}/autoinstall.conf_sample.php (100%) rename docs/{autoinstall samples => autoinstall_samples}/autoinstall.ini.sample (100%) diff --git a/docs/autoinstall samples/autoinstall.conf_sample.php b/docs/autoinstall_samples/autoinstall.conf_sample.php similarity index 100% rename from docs/autoinstall samples/autoinstall.conf_sample.php rename to docs/autoinstall_samples/autoinstall.conf_sample.php diff --git a/docs/autoinstall samples/autoinstall.ini.sample b/docs/autoinstall_samples/autoinstall.ini.sample similarity index 100% rename from docs/autoinstall samples/autoinstall.ini.sample rename to docs/autoinstall_samples/autoinstall.ini.sample -- GitLab From 35846d387500082d24ae6218df1481856ac464e8 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 9 Jul 2014 13:10:28 +0200 Subject: [PATCH 022/158] Fixed issue in gentoo autoinstall. --- install/dist/lib/gentoo.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 9a0d7c94ab..4200a01398 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -121,10 +121,10 @@ class installer extends installer_base { if(AUTOINSTALL){ $command = 'cd '.$config_dir.'; ' - ."openssl req -new -subj '/C=".$autoinstall['ssl_cert_country']."/ST=".$autoinstall['ssl_cert_state']."/L=".$autoinstall['ssl_cert_locality']."/O=".$autoinstall['ssl_cert_organisation']."/OU=".$autoinstall['ssl_cert_organisation_unit']."/CN=".$autoinstall['ssl_cert_common_name']."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; } else { $command = 'cd '.$config_dir.'; ' - ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; } $command = 'chmod o= '.$config_dir.'/smtpd.key'; -- GitLab From 2150f0df966a438410603cacd2e4bdd3bf46909c Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Fri, 11 Jul 2014 14:34:29 +0200 Subject: [PATCH 023/158] - Raised pm.max_children to 500 for apps vhost and ispconfig vhost. --- install/tpl/apps_php_fpm_pool.conf.master | 2 +- install/tpl/php_fpm_pool.conf.master | 2 +- server/conf/apps_php_fpm_pool.conf.master | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/install/tpl/apps_php_fpm_pool.conf.master b/install/tpl/apps_php_fpm_pool.conf.master index ce6a92fcfb..7997e9bb69 100644 --- a/install/tpl/apps_php_fpm_pool.conf.master +++ b/install/tpl/apps_php_fpm_pool.conf.master @@ -9,7 +9,7 @@ user = {fpm_user} group = {fpm_group} pm = dynamic -pm.max_children = 50 +pm.max_children = 500 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 diff --git a/install/tpl/php_fpm_pool.conf.master b/install/tpl/php_fpm_pool.conf.master index dfa3059444..9cde75ab60 100644 --- a/install/tpl/php_fpm_pool.conf.master +++ b/install/tpl/php_fpm_pool.conf.master @@ -9,7 +9,7 @@ user = {fpm_user} group = {fpm_group} pm = dynamic -pm.max_children = 10 +pm.max_children = 500 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 diff --git a/server/conf/apps_php_fpm_pool.conf.master b/server/conf/apps_php_fpm_pool.conf.master index ce6a92fcfb..7997e9bb69 100644 --- a/server/conf/apps_php_fpm_pool.conf.master +++ b/server/conf/apps_php_fpm_pool.conf.master @@ -9,7 +9,7 @@ user = {fpm_user} group = {fpm_group} pm = dynamic -pm.max_children = 50 +pm.max_children = 500 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 -- GitLab From b00e475250e2b6bfbfa0475814869a72b0aa4dde Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Tue, 15 Jul 2014 17:43:09 +0200 Subject: [PATCH 024/158] - adjusted PHP settings regex to allow |, (, and ) (like in "error_reporting = E_ALL & ~(E_NOTICE | E_DEPRECATED | E_STRICT)") --- interface/web/sites/web_domain_edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index 990e8cd3d7..8edfffafb6 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -749,7 +749,7 @@ class page_action extends tform_actions { // value inside '' if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*\'.*\'\s*;*\s*$@', $custom_php_ini_settings_line)) continue; // everything else - if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\s]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; + if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\s|()]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; $custom_php_ini_settings_are_valid = false; break; } -- GitLab From 51569edba0f9598e08c7975490f9ca8254017425 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 24 Jul 2014 10:23:28 +0200 Subject: [PATCH 025/158] Fixed: db user not created in mysql user table if password is stored in cleartext (ISPConfig < 3.0.3.3) Fixed: db user not created on update if status not changed (e. g. on using resync tool) --- .../plugins-available/mysql_clientdb_plugin.inc.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index cba977cc05..6145db00c7 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -83,7 +83,14 @@ class mysql_clientdb_plugin { if(!is_array($host_list)) $host_list = explode(',', $host_list); $success = true; - + if(!preg_match('/\*[A-F0-9]{40}$/', $database_password)) { + $result = $link->query("SELECT PASSWORD('" . $link->escape_string($database_password) . "') as `crypted`"); + if($result) { + $row = $result->fetch_assoc(); + $database_password = $row['crypted']; + $result->free(); + } + } // loop through hostlist foreach($host_list as $db_host) { $db_host = trim($db_host); @@ -270,7 +277,7 @@ class mysql_clientdb_plugin { $old_host_list .= 'localhost'; // Create the database user if database was disabled before - if($data['new']['active'] == 'y' && $data['old']['active'] == 'n') { + if($data['new']['active'] == 'y') { if($db_user) { if($db_user['database_user'] == 'root') $app->log('User root not allowed for Client databases', LOGLEVEL_WARNING); else $this->process_host_list('GRANT', $data['new']['database_name'], $db_user['database_user'], $db_user['database_password'], $host_list, $link); -- GitLab From a6a997ee36ac59d0f079ac26da87412f5dfdef2c Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 13:32:23 +0200 Subject: [PATCH 026/158] FS#3574 - Improve corrupt maildir removal function --- server/plugins-available/mail_plugin.inc.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index 5bf37d14e4..6d109c5bd1 100644 --- a/server/plugins-available/mail_plugin.inc.php +++ b/server/plugins-available/mail_plugin.inc.php @@ -107,10 +107,11 @@ class mail_plugin { $maildomain_path .= '/Maildir'; } - //* When the mail user dir exists but it is not a valid maildir, remove it + //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log('Removed invalid maildir and rebuild it: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); + exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); } //* Create the maildir, if it doesn not exist, set permissions, set quota. @@ -238,10 +239,11 @@ class mail_plugin { $maildomain_path .= '/Maildir'; } - //* When the mail user dir exists but it is not a valid maildir, remove it + //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log('Removed invalid maildir and rebuild it: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); + exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); } //* Create the maildir, if it doesn not exist, set permissions, set quota. -- GitLab From 51910d3e188c441412010013efb4b3522e35c696 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 14:25:39 +0200 Subject: [PATCH 027/158] FS#3490 - Change permissions of folder protection files for nfs - Changed vhost.conf.master as php-fpm was not working after commit "5a6670bd3c1083f3c6f6652202e7c776745b5eff". --- server/conf/vhost.conf.master | 26 ++++++++++++++----- .../plugins-available/apache2_plugin.inc.php | 12 ++++----- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 0dd805af84..96b3443384 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -225,9 +225,16 @@ # php as cgi enabled ScriptAlias /php5-cgi <tmpl_var name='cgi_starter_path'><tmpl_var name='cgi_starter_script'> Action php5-cgi /php5-cgi - <FilesMatch "\.php[345]?$"> - SetHandler php5-cgi - </FilesMatch> + <Directory {tmpl_var name='web_document_root_www'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-cgi + </FilesMatch> + </Directory> + <Directory {tmpl_var name='web_document_root'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-cgi + </FilesMatch> + </Directory> <Directory {tmpl_var name='cgi_starter_path'}> <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all granted @@ -308,9 +315,16 @@ Allow from all </tmpl_if> </Directory> - <FilesMatch "\.php[345]?$"> - SetHandler php5-fcgi - </FilesMatch> + <Directory {tmpl_var name='web_document_root_www'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-fcgi + </FilesMatch> + </Directory> + <Directory {tmpl_var name='web_document_root'}> + <FilesMatch "\.php[345]?$"> + SetHandler php5-fcgi + </FilesMatch> + </Directory> Action php5-fcgi /php5-fcgi Alias /php5-fcgi {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} <tmpl_if name='use_tcp'> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index e3833b03ac..a1d247ca61 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1472,7 +1472,7 @@ class apache2_plugin { if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdir($data['new']['document_root'].'/' . $web_folder . '/stats'); $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user"; $app->system->file_put_contents($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', $ht_file); - $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0755); + $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0751); unset($ht_file); //} @@ -1482,7 +1482,7 @@ class apache2_plugin { $app->system->web_folder_protection($data['new']['document_root'], false); $app->system->file_put_contents($data['new']['document_root'].'/web/stats/.htpasswd_stats', $htp_file); $app->system->web_folder_protection($data['new']['document_root'], true); - $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0755); + $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0751); unset($htp_file); } } @@ -2009,7 +2009,7 @@ class apache2_plugin { //* Create empty .htpasswd file, if it does not exist if(!is_file($folder_path.'.htpasswd')) { $app->system->touch($folder_path.'.htpasswd'); - $app->system->chmod($folder_path.'.htpasswd', 0750); + $app->system->chmod($folder_path.'.htpasswd', 0751); $app->system->chown($folder_path.'.htpasswd', $website['system_user']); $app->system->chgrp($folder_path.'.htpasswd', $website['system_group']); $app->log('Created file '.$folder_path.'.htpasswd', LOGLEVEL_DEBUG); @@ -2063,7 +2063,7 @@ class apache2_plugin { unset($old_content); $app->system->file_put_contents($folder_path.'.htaccess', $ht_file); - $app->system->chmod($folder_path.'.htaccess', 0750); + $app->system->chmod($folder_path.'.htaccess', 0751); $app->system->chown($folder_path.'.htaccess', $website['system_user']); $app->system->chgrp($folder_path.'.htaccess', $website['system_group']); $app->log('Created/modified file '.$folder_path.'.htaccess', LOGLEVEL_DEBUG); @@ -2225,7 +2225,7 @@ class apache2_plugin { } $app->system->file_put_contents($new_folder_path.'.htaccess', $ht_file); - $app->system->chmod($new_folder_path.'.htaccess', 0750); + $app->system->chmod($new_folder_path.'.htaccess', 0751); $app->system->chown($new_folder_path.'.htaccess', $website['system_user']); $app->system->chgrp($new_folder_path.'.htaccess', $website['system_group']); $app->log('Created/modified file '.$new_folder_path.'.htaccess', LOGLEVEL_DEBUG); @@ -2233,7 +2233,7 @@ class apache2_plugin { //* Create empty .htpasswd file, if it does not exist if(!is_file($folder_path.'.htpasswd')) { $app->system->touch($new_folder_path.'.htpasswd'); - $app->system->chmod($new_folder_path.'.htpasswd', 0750); + $app->system->chmod($new_folder_path.'.htpasswd', 0751); $app->system->chown($new_folder_path.'.htpasswd', $website['system_user']); $app->system->chgrp($new_folder_path.'.htpasswd', $website['system_group']); $app->log('Created file '.$new_folder_path.'.htpasswd', LOGLEVEL_DEBUG); -- GitLab From 5aedfd4b6c0ebd2277f03b49bb21c409ac3595cc Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 14:36:37 +0200 Subject: [PATCH 028/158] FS#3572 - session.save_path directory listing possible for everyone --- server/plugins-available/apache2_plugin.inc.php | 4 ++-- server/plugins-available/nginx_plugin.inc.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index a1d247ca61..bfa435dea0 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -710,7 +710,7 @@ class apache2_plugin { $app->system->chmod($data['new']['document_root'].'/ssl', 0755); // make tmp directory writable for Apache and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { @@ -770,7 +770,7 @@ class apache2_plugin { $app->system->chmod($data['new']['document_root'].'/cgi-bin', 0755); // make temp directory writable for Apache and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index dcfc674b09..1947367c9a 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -714,7 +714,7 @@ class nginx_plugin { $app->system->chmod($data['new']['document_root'].'/ssl', 0755); // make tmp directory writable for nginx and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { @@ -774,7 +774,7 @@ class nginx_plugin { $app->system->chmod($data['new']['document_root'].'/cgi-bin', 0755); // make temp directory writable for nginx and the website users - $app->system->chmod($data['new']['document_root'].'/tmp', 0777); + $app->system->chmod($data['new']['document_root'].'/tmp', 0770); // Set Log directory to 755 to make the logs accessible by the FTP user if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') { -- GitLab From 8496f27bcca1977485984f2b99f75ed2ba69b986 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 14:53:59 +0200 Subject: [PATCH 029/158] Fixed: FS#3565 - Wrong Traffic Calculation - vlogger --- install/tpl/apache_ispconfig.conf.master | 2 +- server/conf/apache_ispconfig.conf.master | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master index 9086033101..cd9924a377 100644 --- a/install/tpl/apache_ispconfig.conf.master +++ b/install/tpl/apache_ispconfig.conf.master @@ -3,7 +3,7 @@ # ISPConfig Logfile configuration for vlogger ################################################ -LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig +LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig <Directory /var/www/clients> diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master index be6f637b7b..6b2accbc8e 100644 --- a/server/conf/apache_ispconfig.conf.master +++ b/server/conf/apache_ispconfig.conf.master @@ -3,7 +3,7 @@ # ISPConfig Logfile configuration for vlogger ################################################ -LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig +LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig <Directory /var/www/clients> -- GitLab From 4c842d6572cf623858e5d94cba5615b266466c6f Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 15:09:51 +0200 Subject: [PATCH 030/158] Fixed: FS#3525 - bind dlz plugin --- server/plugins-available/bind_dlz_plugin.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/bind_dlz_plugin.inc.php b/server/plugins-available/bind_dlz_plugin.inc.php index f6d367f273..21c0f86e43 100644 --- a/server/plugins-available/bind_dlz_plugin.inc.php +++ b/server/plugins-available/bind_dlz_plugin.inc.php @@ -188,7 +188,7 @@ class bind_dlz_plugin { //$_db = clone $app->db; //$_db->dbName = 'named'; - $app->db->query("DELETE FROM named.records WHERE ispconfig_id = {$data["old"]["id"]}"); + $app->db->query( "DELETE FROM named.dns_records WHERE zone = '".substr($data['old']['origin'], 0, -1)."'"); //unset($_db); } @@ -345,7 +345,7 @@ class bind_dlz_plugin { //$_db = clone $app->db; //$_db->dbName = 'named'; - $app->db->query("DELETE FROM named.records WHERE ispconfig_id = {$data["old"]["id"]} AND type != 'SOA'"); + $app->db->query( "DELETE FROM named.dns_records WHERE type != 'SOA' AND zone = '".substr($data['old']['origin'], 0, -1)."'"); //unset($_db); } -- GitLab From d678830e418467eeddaff394bac5998fd0cb8468 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 15:32:31 +0200 Subject: [PATCH 031/158] Added mail() function from interface to ispconfig server part. --- server/cron_daily.php | 2 +- server/lib/classes/ispcmail.inc.php | 869 ++++++++++++++++++++++++++++ server/lib/classes/system.inc.php | 31 + 3 files changed, 901 insertions(+), 1 deletion(-) create mode 100644 server/lib/classes/ispcmail.inc.php diff --git a/server/cron_daily.php b/server/cron_daily.php index b9b34324b0..75459be20a 100644 --- a/server/cron_daily.php +++ b/server/cron_daily.php @@ -647,7 +647,7 @@ if ($app->dbmaster == $app->db) { // function for sending notification emails //######## function send_notification_email($template, $placeholders, $recipients) { - global $conf; + global $conf, $app; if(!is_array($recipients) || count($recipients) < 1) return false; if(!is_array($placeholders)) $placeholders = array(); diff --git a/server/lib/classes/ispcmail.inc.php b/server/lib/classes/ispcmail.inc.php new file mode 100644 index 0000000000..930aabbca9 --- /dev/null +++ b/server/lib/classes/ispcmail.inc.php @@ -0,0 +1,869 @@ +<?php + +/* +Copyright (c) 2012, Marius Cramer, pixcept KG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * email class + * + * @package pxFramework + * + */ + + +class ispcmail { + + /**#@+ + * @access private + */ + private $html_part; + private $text_part; + + private $headers; + + private $_logged_in = false; + private $_smtp_conn = null; + + private $_crlf = "\n"; + + private $attach_type = 'application/octet-stream'; + private $attachments; + private $mime_boundary; + private $body = ''; + private $_mail_sender = ''; + private $_sent_mails = 0; + private $user_agent = 'ISPConfig/3 (Mailer Class)'; + /**#@-*/ + + + + /** + * set the mail charset + */ + private $mail_charset = 'UTF-8';//'ISO-8859-1'; + + /**#@+ + * Provide smtp credentials for smtp mail sending + * + * @access public + */ + + /** + * if set to true smtp is used instead of mail() to send emails + * @see mail + */ + private $use_smtp = false; + + /** + * the smtp helo string - use the mail server name here! + */ + private $smtp_helo = ''; + + /** + * the smtp server to send mails + */ + private $smtp_host = ''; + + /** + * the smtp port + */ + private $smtp_port = 25; + + /** + * if the smtp server needs authentication you can set the smtp user here + */ + private $smtp_user = ''; + + /** + * if the smtp server needs authentication you can set the smtp password here + */ + private $smtp_pass = ''; + + /** + * If you want to use tls/ssl specify it here + */ + private $smtp_crypt = ''; // tls or ssl + /** + * How many mails should be sent via one single smtp connection + */ + private $smtp_max_mails = 20; + + /** + * Should the mail be signed + */ + private $sign_email = false; + + /** + * The cert and key to use for email signing + */ + private $sign_key = ''; + private $sign_key_pass = ''; + private $sign_cert = ''; + private $sign_bundle = ''; + private $_is_signed = false; + + /** + * get disposition notification + */ + private $notification = false; + /**#@-*/ + + public function __construct($options = array()) { + $rand = md5(microtime()); + $this->mime_boundary = '==Multipart_Boundary_x' . $rand . 'x'; + + $this->headers = array(); + $this->attachments = array(); + + $this->headers['MIME-Version'] = '1.0'; + $this->headers['User-Agent'] = $this->user_agent; + if(is_array($options) && count($options) > 0) $this->setOptions($options); + } + + public function __destruct() { + $this->finish(); + } + + + + /** + * Set option + * + * @param string $key the option to set + * @param string $value the option value to set + */ + public function setOption($key, $value) { + switch($key) { + case 'smtp_helo': + $this->smtp_helo = $value; + break; + case 'smtp_host': + $this->smtp_host = $value; + break; + case 'smtp_server': + $this->smtp_host = $value; + break; + case 'smtp_port': + $this->smtp_port = $value; + break; + case 'smtp_user': + $this->smtp_user = $value; + break; + case 'smtp_pass': + $this->smtp_pass = $value; + break; + case 'smtp_max_mails': + $this->smtp_max_mails = intval($value); + if($this->smtp_max_mails < 1) $this->smtp_max_mails = 1; + break; + case 'use_smtp': + $this->use_smtp = ($value == true ? true : false); + if($value == true) $this->_crlf = "\r\n"; + break; + case 'smtp_crypt': + if($value != 'ssl' && $value != 'tls') $value = ''; + $this->smtp_crypt = $value; + break; + case 'sign_email': + $this->sign_email = ($value == true ? true : false); + break; + case 'sign_key': + $this->sign_key = $value; + break; + case 'sign_key_pass': + $this->sign_key_pass = $value; + break; + case 'sign_cert': + $this->sign_cert = $value; + break; + case 'sign_bundle': + $this->sign_bundle = $value; + break; + case 'mail_charset': + $this->mail_charset = $value; + break; + case 'notify': + $this->notification = ($value == true ? true : false); + break; + } + } + + + + /** Detect the helo string if none given + * + */ + private function detectHelo() { + if(isset($_SERVER['HTTP_HOST'])) $this->smtp_helo = (strpos($_SERVER['HTTP_HOST'], ':') !== false ? substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], ':')) : $_SERVER['HTTP_HOST']); + elseif(isset($_SERVER['SERVER_NAME'])) $this->smtp_helo = $_SERVER['SERVER_NAME']; + else $this->smtp_helo = php_uname('n'); + if($this->smtp_helo == '') $this->smtp_helo = 'localhost'; + return $this->smtp_helo; + } + + + + /** + * Set options + * + * @param array $options the options to set as an associative array key => value + */ + public function setOptions($options) { + foreach($options as $key => $value) $this->setOption($key, $value); + } + + + + /** + * Read a file's contents + * + * Simply gets the file's content + * + * @access public + * @param string $filename name and path of file to read + * @return string file content (can be binary) + */ + public function read_File($filename) { + $content = ''; + + $fp = fopen($filename, 'r'); + if(!$fp) return false; + + while(!feof($fp)) { + $content .= fread($fp, 1024); + } + fclose($fp); + + return $content; + } + + + + /** + * set smtp connection encryption + * + * @access public + * @param string $mode encryption mode (tls, ssl or empty string) + */ + public function setSMTPEncryption($mode = '') { + if($mode != 'ssl' && $mode != 'tls') $mode = ''; + $this->smtp_crypt = $mode; + } + + /** + * set a mail header + * + * Sets a single mail header to a given value + * + * @access public + * @param string $header header name to set + * @param string $value value to set in header field + */ + public function setHeader($header, $value) { + if(strtolower($header) == 'bcc') $header = 'Bcc'; + elseif(strtolower($header) == 'cc') $header = 'Cc'; + elseif(strtolower($header) == 'from') $header = 'From'; + $this->headers["$header"] = $value; + } + + + + /** + * get a mail header value + * + * Returns a value of a single mail header + * + * @access public + * @param string $header header name to get + * @return string header value + */ + public function getHeader($header) { + if(strtolower($header) == 'bcc') $header = 'Bcc'; + elseif(strtolower($header) == 'cc') $header = 'Cc'; + elseif(strtolower($header) == 'from') $header = 'From'; + return isset($this->headers["$header"]) ? $this->headers["$header"] : ''; + } + + + + /** + * Set email sender + * + * Sets the email sender and optionally the sender's name + * + * @access public + * @param string $email sender email address + * @param string $name sender name + */ + public function setSender($email, $name = '') { + if($name) $header = '"' . $name . '" <' . $email . '>'; + else $header = '<' . $email . '>'; + + $this->_mail_sender = $email; + + $this->setHeader('From', $header); + } + + + + /** + * Set mail subject + * + * @access public + * @param string $subject the mail subject + * @return string where-string for db query + */ + public function setSubject($subject) { + $this->setHeader('Subject', $subject); + } + + + + /** + * Get current mail subject + * + * @access public + * @return string mail subject + */ + public function getSubject() { + return $this->headers['Subject']; + } + + + + /** + * Set mail content + * + * Sets the mail html and plain text content + * + * @access public + * @param string $text plain text mail content (can be empty) + * @param string $html html mail content + */ + public function setMailText($text, $html = '') { + $this->text_part = $text; + $this->html_part = $html; + } + + + + /** + * Read and attach a file + * + * Reads a file and attaches it to the current email + * + * @access public + * @param string $filename the file to read and attach + * @param string $display_name the name that will be displayed in the mail + * @see read_File + */ + public function readAttachFile($filename, $display_name = '') { + if($display_name == '') { + $path_parts = pathinfo($filename); + $display_name = $path_parts["basename"]; + unset($path_parts); + } + $this->attachFile($this->read_File($filename), $display_name); + } + + + + /** + * Attach a file + * + * Attaches a string (can be binary) as a file to the mail + * + * @access public + * @param string $content attachment data string + * @param string $filename name for file attachment + */ + public function attachFile($content, $filename) { + $attachment = array('content' => $content, + 'filename' => $filename, + 'type' => 'application/octet-stream', + 'encoding' => 'base64' + ); + $this->attachments[] = $attachment; + } + + + + /** + * @access private + */ + private function create() { + $attach = false; + $html = false; + $text = false; + + if($this->html_part) $html = true; + if($this->text_part) $text = true; + if(count($this->attachments) > 0) $attach = true; + + $textonly = false; + $htmlonly = false; + if($text == true && $html == false && $attach == false) { + // only text + $content_type = 'text/plain; charset="' . strtolower($this->mail_charset) . '"'; + $textonly = true; + } elseif($text == true && $html == false && $attach == true) { + // text and attachment + $content_type = 'multipart/mixed;'; + $content_type .= "\n" . ' boundary="' . $this->mime_boundary . '"'; + } elseif($html == true && $text == true && $attach == false) { + // html only (or text too) + $content_type = 'multipart/alternative;'; + $content_type .= "\n" . ' boundary="' . $this->mime_boundary . '"'; + } elseif($html == true && $text == false && $attach == false) { + // html only (or text too) + $content_type = 'text/html; charset="' . strtolower($this->mail_charset) . '"'; + $htmlonly = true; + } elseif($html == true && $attach == true) { + // html and attachments + $content_type = 'multipart/mixed;'; + $content_type .= "\n" . ' boundary="' . $this->mime_boundary . '"'; + } + + $this->headers['Content-Type'] = $content_type; + + if($textonly == false && $htmlonly == false) { + $this->body = "This is a multi-part message in MIME format.\n\n"; + + if($text) { + /*$this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/plain; charset=\"" . strtolower($this->mail_charset) . "\"\n" . + "Content-Transfer-Encoding: 7bit\n\n" . $this->text_part . "\n\n";*/ + $this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/plain; charset=\"UTF-8\"\n" . + "Content-Transfer-Encoding: 8bit\n\n" . $this->text_part . "\n\n"; + } + + if($html) { + /*$this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/html; charset=\"" . strtolower($this->mail_charset) . "\"\n" . + "Content-Transfer-Encoding: 7bit\n\n" . $this->html_part . "\n\n";*/ + $this->body .= "--{$this->mime_boundary}\n" . + "Content-Type:text/html; charset=\"UTF-8\"\n" . + "Content-Transfer-Encoding: 8bit\n\n" . $this->html_part . "\n\n"; + } + + if($attach) { + foreach($this->attachments as $att) { + $this->body .= "--{$this->mime_boundary}\n" . + "Content-Type: " . $att['type'] . ";\n" . + " name=\"" . $att['filename'] . "\"\n" . + "Content-Transfer-Encoding: base64\n" . + "Content-Disposition: attachment;\n\n" . + chunk_split(base64_encode($att['content'])) . "\n\n"; + } + } + $this->body .= "--{$this->mime_boundary}--\n"; + } elseif($htmlonly == true) { + $this->body = $this->html_part; + } else { + $this->body = $this->text_part; + } + + if (isset($this->body)) { + // Add message ID header + $message_id = sprintf('<%s.%s@%s>', base_convert(time(), 10, 36), base_convert(rand(), 10, 36), $this->smtp_helo != '' ? $this->smtp_helo : $this->detectHelo()); + $this->headers['Message-ID'] = $message_id; + return true; + } else { + return false; + } + } + + + + /** + * Function to sign an email body + */ + private function sign() { + if($this->sign_email == false || $this->sign_key == '' || $this->sign_cert == '') return false; + if(function_exists('openssl_pkcs7_sign') == false) return false; + + $tmpin = tempnam(sys_get_temp_dir(), 'sign'); + $tmpout = tempnam(sys_get_temp_dir(), 'sign'); + if(!file_exists($tmpin) || !is_writable($tmpin)) return false; + + file_put_contents($tmpin, 'Content-Type: ' . $this->getHeader('Content-Type') . "\n\n" . $this->body); + $tmpf_key = tempnam(sys_get_temp_dir(), 'sign'); + file_put_contents($tmpf_key, $this->sign_key); + $tmpf_cert = tempnam(sys_get_temp_dir(), 'sign'); + file_put_contents($tmpf_cert, $this->sign_cert); + if($this->sign_bundle != '') { + $tmpf_bundle = tempnam(sys_get_temp_dir(), 'sign'); + file_put_contents($tmpf_bundle, $this->sign_bundle); + openssl_pkcs7_sign($tmpin, $tmpout, 'file://' . realpath($tmpf_cert), array('file://' . realpath($tmpf_key), $this->sign_key_pass), array(), PKCS7_DETACHED, realpath($tmpf_bundle)); + } else { + openssl_pkcs7_sign($tmpin, $tmpout, 'file://' . realpath($tmpf_cert), array('file://' . realpath($tmpf_key), $this->sign_key_pass), array()); + } + unlink($tmpin); + unlink($tmpf_cert); + unlink($tmpf_key); + if(file_exists($tmpf_bundle)) unlink($tmpf_bundle); + + if(!file_exists($tmpout) || !is_readable($tmpout)) return false; + $this->body = file_get_contents($tmpout); + unlink($tmpout); + + unset($this->headers['Content-Type']); + unset($this->headers['MIME-Version']); + + $this->_is_signed = true; + } + + private function _char_to_hex($matches) { + return '=' . strtoupper(dechex(ord($matches[1]))); + } + + + + /** + * Function to encode a header if necessary + * according to RFC2047 + * @access private + */ + private function _encodeHeader($input, $charset = 'ISO-8859-1') { + preg_match_all('/(\s?\w*[\x80-\xFF]+\w*\s?)/', $input, $matches); + foreach ($matches[1] as $value) { + $replacement = preg_replace_callback('/([\x20\x80-\xFF])/', array($this, '_char_to_hex'), $value); + $input = str_replace($value, '=?' . $charset . '?Q?' . $replacement . '?=', $input); + } + + return $input; + } + + + + /** + * Function to encode the subject if necessary + * according to RFC2047 + * @access private + */ + private function _encodeSubject($input, $charset = 'ISO-8859-1') { + /* + if($charset == 'UTF-8' && function_exists('imap_8bit')) { + $input = "=?utf-8?Q?" . imap_8bit($input) . "?="; + } else { + preg_match_all('/(\s?\w*[\x80-\xFF]+\w*\s?)/', $input, $matches); + foreach ($matches[1] as $value) { + $replacement = preg_replace('/([\x20\x80-\xFF])/e', '"=" . strtoupper(dechex(ord("\1")))', $value); + $input = str_replace($value, '=?' . $charset . '?Q?' . $replacement . '?=', $input); + } + }*/ + $input='=?UTF-8?B?'.base64_encode($input).'?='; + + return $input; + } + + + + /** + * @access private + */ + private function _smtp_login() { + $this->_smtp_conn = fsockopen(($this->smtp_crypt == 'ssl' ? 'ssl://' : '') . $this->smtp_host, $this->smtp_port, $errno, $errstr, 30); + $response = fgets($this->_smtp_conn, 515); + if(empty($this->_smtp_conn)) return false; + + //Say Hello to SMTP + if($this->smtp_helo == '') $this->detectHelo(); + fputs($this->_smtp_conn, 'HELO ' . $this->smtp_helo . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + // ENCRYPTED? + if($this->smtp_crypt == 'tls') { + fputs($this->_smtp_conn, 'STARTTLS' . $this->_crlf); + fgets($this->_smtp_conn, 515); + stream_socket_enable_crypto($this->_smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); + } + + //AUTH LOGIN + fputs($this->_smtp_conn, 'AUTH LOGIN' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Send username + fputs($this->_smtp_conn, base64_encode($this->smtp_user) . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Send password + fputs($this->_smtp_conn, base64_encode($this->smtp_pass) . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + $this->_logged_in = true; + return true; + } + + + + /** + * @access private + */ + private function _smtp_close() { + $this->_logged_in = false; + + if(empty($this->_smtp_conn)) { + return false; + } + + fputs($this->_smtp_conn, 'QUIT' . $this->_crlf); + $response = @fgets($this->_smtp_conn, 515); + return true; + } + + private function _extract_names($data) { + $senders = array(); + + $data = stripslashes(preg_replace("'(\t|\r|\n)'", '', $data)); + + if(trim($data) == '') return $senders; + + $armail = array(); + $counter = 0; $inthechar = 0; + $chartosplit = ',;'; $protectchar = '"'; $temp = ''; + $closed = 1; + + for($i = 0; $i < strlen($data); $i++) { + $thischar = $data[$i]; + if($thischar == '<' && $closed) $closed = 0; + if($thischar == '>' && !$closed) $closed = 1; + if($thischar == $protectchar) $inthechar = ($inthechar) ? 0 : 1; + if((strpos($chartosplit, $thischar) !== false) && !$inthechar && $closed) { + $armail[] = $temp; + $temp = ''; + } else { + $temp .= $thischar; + } + } + + if(trim($temp) != '') { + $armail[] = trim($temp); + unset($temp); + } + + foreach($armail as $thisPart) { + $thisPart = trim(preg_replace('/^"(.*)"$/i', '$1', trim($thisPart))); + if($thisPart != '') { + $email = ''; + $name = ''; + if(preg_match('/(.*)<(.*)>/i', $thisPart, $matches)) { + $email = trim($matches[2]); + $name = trim($matches[1]); + } else { + if(preg_match('/([-a-z0-9_$+.]+@[-a-z0-9_.]+[-a-z0-9_]+)((.*))/i', $thisPart, $matches)) { + $email = $matches[1]; + $name = $matches[2]; + } else { + $email = $thisPart; + } + } + + $email = preg_replace('/<(.*)\\>/', '$1', $email); + $name = preg_replace('/"(.*)"/', '$1', trim($name)); + $name = preg_replace('/\((.*)\)/', '$1', $name); + + if($name == '') $name = $email; + if($email == '') $email = $name; + $senders[] = array( + 'name' => $name, + 'mail' => $email + ); + unset($name); + unset($email); + } + } + unset($armail); + unset($thisPart); + + return $senders; + } + + /** + * Send the mail to one or more recipients + * + * The recipients can be either a string (1 recipient email without name) or an associative array of recipients with names as keys and email addresses as values. + * + * @access public + * @param mixed $recipients one email address or array of recipients with names as keys and email addresses as values + */ + public function send($recipients) { + if(!is_array($recipients)) $recipients = array($recipients); + + if($this->use_smtp == true) $this->_crlf = "\r\n"; + else $this->_crlf = "\n"; + + $this->create(); + if($this->sign_email == true) $this->sign(); + + $subject = ''; + if (!empty($this->headers['Subject'])) { + //$subject = $this->_encodeHeader($this->headers['Subject'], $this->mail_charset); + $subject = $this->headers['Subject']; + + //$enc_subject = $this->_encodeHeader($subject, $this->mail_charset); + $enc_subject = $this->_encodeSubject($subject, $this->mail_charset); + unset($this->headers['Subject']); + } + + if($this->notification == true) $this->setHeader('Disposition-Notification-To', $this->getHeader('From')); + + unset($this->headers['To']); // always reset the To header to prevent from sending to multiple users at once + $this->headers['Date'] = date('r'); //date('D, d M Y H:i:s O'); + + // Get flat representation of headers + foreach ($this->headers as $name => $value) { + if(strtolower($name) == 'to' || strtolower($name) == 'cc' || strtolower($name) == 'bcc') continue; // never add the To header + $headers[] = $name . ': ' . $this->_encodeHeader($value, $this->mail_charset); + } + + if($this->use_smtp == true) { + if(!$this->_logged_in || !$this->_smtp_conn) { + $result = $this->_smtp_login(); + if(!$result) return false; + } + $bcc_cc_sent = false; + foreach($recipients as $recipname => $recip) { + if($this->_sent_mails >= $this->smtp_max_mails) { + // close connection to smtp and reconnect + $this->_sent_mails = 0; + $this->_smtp_close(); + $result = $this->_smtp_login(); + if(!$result) return false; + } + $this->_sent_mails += 1; + + $recipname = trim(str_replace('"', '', $recipname)); + $recip = $this->_encodeHeader($recip, $this->mail_charset); + $recipname = $this->_encodeHeader($recipname, $this->mail_charset); + + //Email From + fputs($this->_smtp_conn, 'MAIL FROM: <' . $this->_mail_sender . '>' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Email To + fputs($this->_smtp_conn, 'RCPT TO: <' . $recip . '>' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + if($bcc_cc_sent == false) { + $add_recips = array(); + if($this->getHeader('Cc') != '') $add_recips = array_merge($add_recips, $this->_extract_names($this->getHeader('Cc'))); + if($this->getHeader('Bcc') != '') $add_recips = array_merge($add_recips, $this->_extract_names($this->getHeader('Bcc'))); + foreach($add_recips as $add_recip) { + if(!$add_recip['mail']) continue; + fputs($this->_smtp_conn, 'RCPT TO: <' . $this->_encodeHeader($add_recip['mail'], $this->mail_charset) . '>' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + } + unset($add_recips); + $bcc_cc_sent = true; + } + + //The Email + fputs($this->_smtp_conn, 'DATA' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + //Construct Headers + if($recipname && !is_numeric($recipname)) $this->setHeader('To', $recipname . ' <' . $recip . '>'); + else $this->setHeader('To', $recip); + + $mail_content = 'Subject: ' . $enc_subject . $this->_crlf; + $mail_content .= 'To: ' . $this->getHeader('To') . $this->_crlf; + if($this->getHeader('Cc') != '') $mail_content .= 'Cc: ' . $this->_encodeHeader($this->getHeader('Cc'), $this->mail_charset) . $this->_crlf; + $mail_content .= implode($this->_crlf, $headers) . $this->_crlf . ($this->_is_signed == false ? $this->_crlf : '') . $this->body; + + fputs($this->_smtp_conn, $mail_content . $this->_crlf . '.' . $this->_crlf); + $response = fgets($this->_smtp_conn, 515); + + // hopefully message was correctly sent now + $result = true; + } + } else { + if($this->getHeader('Bcc') != '') $headers[] = 'Bcc: ' . $this->_encodeHeader($this->getHeader('Bcc'), $this->mail_charset); + if($this->getHeader('Cc') != '') $headers[] = 'Cc: ' . $this->_encodeHeader($this->getHeader('Cc'), $this->mail_charset); + $rec_string = ''; + foreach($recipients as $recipname => $recip) { + $recipname = trim(str_replace('"', '', $recipname)); + + if($rec_string != '') $rec_string .= ', '; + if($recipname && !is_numeric($recipname)) $rec_string .= $recipname . '<' . $recip . '>'; + else $rec_string .= $recip; + } + $to = $this->_encodeHeader($rec_string, $this->mail_charset); + //$result = mail($to, $subject, $this->body, implode($this->_crlf, $headers)); + $result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers)); + } + + // Reset the subject in case mail is resent + if ($subject !== '') { + $this->headers['Subject'] = $subject; + } + + // Return + return $result; + } + + + + /** + * Close mail connections + * + * This closes an open smtp connection so you should always call this function in your script if you have finished sending all emails + * + * @access public + */ + public function finish() { + if($this->use_smtp == true) $this->_smtp_close(); + + $rand = md5(microtime()); + $this->mime_boundary = '==Multipart_Boundary_x' . $rand . 'x'; + + $this->headers = array(); + $this->attachments = array(); + $this->text_part = ''; + $this->html_part = ''; + + $this->headers['MIME-Version'] = '1.0'; + $this->headers['User-Agent'] = $this->user_agent; + + $this->smtp_helo = ''; + $this->smtp_host = ''; + $this->smtp_port = ''; + $this->smtp_user = ''; + $this->smtp_pass = ''; + $this->use_smtp = false; + $this->smtp_crypt = false; + $this->mail_charset = 'UTF-8'; + $this->_sent_mails = 0; + + return; + } + +} + +?> diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 16e91ae9b2..d9d85e5a31 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1785,6 +1785,37 @@ class system{ return $modules; } + + //* ISPConfig mail function + public function mail($to, $subject, $text, $from, $filepath = '', $filetype = 'application/pdf', $filename = '', $cc = '', $bcc = '', $from_name = '') { + global $app, $conf; + + if($conf['demo_mode'] == true) $app->error("Mail sending disabled in demo mode."); + + $app->uses('getconf,ispcmail'); + $mail_config = $app->getconf->get_global_config('mail'); + if($mail_config['smtp_enabled'] == 'y') { + $mail_config['use_smtp'] = true; + $app->ispcmail->setOptions($mail_config); + } + $app->ispcmail->setSender($from, $from_name); + $app->ispcmail->setSubject($subject); + $app->ispcmail->setMailText($text); + + if($filepath != '') { + if(!file_exists($filepath)) $app->error("Mail attachement does not exist ".$filepath); + $app->ispcmail->readAttachFile($filepath); + } + + if($cc != '') $app->ispcmail->setHeader('Cc', $cc); + if($bcc != '') $app->ispcmail->setHeader('Bcc', $bcc); + + $app->ispcmail->send($to); + $app->ispcmail->finish(); + + return true; + } + } ?> -- GitLab From ede489dea61c6a2a261c3bb22fca669faae7dec9 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 15:43:31 +0200 Subject: [PATCH 032/158] Fixed: FS#3534 - Check if mail quota check is working correctly --- interface/web/mail/mail_user_edit.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index 0c9110bb73..8166b5814e 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -166,7 +166,7 @@ class page_action extends tform_actions { } // Check the quota and adjust - if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0 && $app->functions->intval($this->dataRecord["quota"]) * 1024 * 1024 != $this->oldDataRecord['quota']) { + if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0 && (($app->functions->intval($this->dataRecord["quota"]) * 1024 * 1024 != $this->oldDataRecord['quota']) || ($_POST["quota"] <= 0))) { $tmp = $app->db->queryOneRecord("SELECT sum(quota) as mailquota FROM mail_user WHERE mailuser_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u')); $mailquota = $tmp["mailquota"] / 1024 / 1024; $new_mailbox_quota = $app->functions->intval($this->dataRecord["quota"]); @@ -179,6 +179,7 @@ class page_action extends tform_actions { unset($tmp); unset($tmp_quota); } + } // end if user is not admin -- GitLab From 95ae83a3ca7603981842571902cde18088879500 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 16:07:58 +0200 Subject: [PATCH 033/158] Fixed: FS#2811 - Creating a mail filter ends with Soap Error: target_error_regex --- interface/web/mail/form/mail_user_filter.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/mail/form/mail_user_filter.tform.php b/interface/web/mail/form/mail_user_filter.tform.php index e001f68426..d5f6a0ab5b 100644 --- a/interface/web/mail/form/mail_user_filter.tform.php +++ b/interface/web/mail/form/mail_user_filter.tform.php @@ -112,7 +112,7 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\p{Latin}0-9\.\-\_\ ]{0,100}$/u', + 'regex' => '/^[\p{Latin}0-9\.\-\_\ \&]{0,100}$/u', 'errmsg'=> 'target_error_regex'), ), 'default' => '', -- GitLab From 26f870eb89b6b5b62e2bcf25b161ac63851249d4 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 16:08:10 +0200 Subject: [PATCH 034/158] Fixed: FS#3576 - Login as button in cp user lits of system module not working --- interface/web/admin/templates/users_list.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/admin/templates/users_list.htm b/interface/web/admin/templates/users_list.htm index dece7f8f3d..cac25f54e7 100644 --- a/interface/web/admin/templates/users_list.htm +++ b/interface/web/admin/templates/users_list.htm @@ -44,7 +44,7 @@ <td class="tbl_col_groups">{tmpl_var name="groups"}</td> <td class="tbl_col_buttons"> <tmpl_if name="username" op="!=" value="admin"> - <a class="button icons16 icoLoginAs" href="javascript: loadContent('admin/login_as.php?id={tmpl_var name='id'}');"><span>{tmpl_var name='login_as_txt'}</span></a> + <a class="button icons16 icoLoginAs" href="javascript: loadContent('login/login_as.php?cid={tmpl_var name='client_id'}');"><span>{tmpl_var name='login_as_txt'}</span></a> <a class="button icons16 icoDelete" href="javascript: del_record('admin/users_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> </tmpl_if> </td> -- GitLab From 0df5269cc6432cf5eb1a47e846912e70a2949605 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 16:15:20 +0200 Subject: [PATCH 035/158] Fixed: FS#3499 - fetchmail to address not updated after domainname change --- interface/web/mail/mail_domain_edit.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 45a1ade3f1..02dc55bfae 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -359,7 +359,16 @@ class page_action extends tform_actions { //* Update the mailinglist $app->db->query("UPDATE mail_mailinglist SET sys_userid = $client_user_id, sys_groupid = $sys_groupid WHERE domain = '".$app->db->quote($this->oldDataRecord['domain'])."'"); - + + //* Update fetchmail accounts + $fetchmail = $app->db->queryAllRecords("SELECT * FROM mail_get WHERE destination like '%@".$app->db->quote($this->oldDataRecord['domain'])."'"); + if(is_array($fetchmail)) { + foreach($fetchmail as $rec) { + $destination = $app->db->quote(str_replace($this->oldDataRecord['domain'], $this->dataRecord['domain'], $rec['destination'])); + $app->db->datalogUpdate('mail_get', "destination = '$destination', sys_userid = $client_user_id, sys_groupid = '$sys_groupid'", 'mailget_id', $rec['mailget_id']); + } + } + //* Delete the old spamfilter record $tmp = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".$app->db->quote($this->oldDataRecord["domain"])."'"); $app->db->datalogDelete('spamfilter_users', 'id', $tmp["id"]); -- GitLab From 75cc840cbc3887d2734059c9b96550c7e67f3996 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 16:28:13 +0200 Subject: [PATCH 036/158] Fixed: FS#3546 - bug in srv records in bind_dlz plugin. --- server/plugins-available/bind_dlz_plugin.inc.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/plugins-available/bind_dlz_plugin.inc.php b/server/plugins-available/bind_dlz_plugin.inc.php index 21c0f86e43..63abcc48ce 100644 --- a/server/plugins-available/bind_dlz_plugin.inc.php +++ b/server/plugins-available/bind_dlz_plugin.inc.php @@ -252,6 +252,9 @@ class bind_dlz_plugin { if ($type == 'MX') { $app->db->query("INSERT INTO named.records (zone, ttl, type, host, mx_priority, data, ispconfig_id)". " VALUES ('$origin', $ttl, '$type', '$name', {$data["new"]["aux"]}, '$content', $ispconfig_id)"); + } elseif ($type == 'SRV') { + $app->db->query("INSERT INTO named.records (zone, ttl, type, data, ispconfig_id)". + " VALUES ('$origin', $ttl, '$type', '{$data["new"]["aux"]} $content', $ispconfig_id)"); } else { $app->db->query("INSERT INTO named.records (zone, ttl, type, host, data, ispconfig_id)". " VALUES ('$origin', $ttl, '$type', '$name', '$content', $ispconfig_id)"); @@ -327,6 +330,9 @@ class bind_dlz_plugin { if ($type == 'MX') { $app->db->query("UPDATE named.records SET zone = '$origin', ttl = $ttl, type = '$type', host = '$name', mx_priority = $prio, ". "data = '$content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); + } elseif ($type == 'SRV') { + $app->db->query("UPDATE named.records SET zone = '$origin', ttl = $ttl, type = '$type', ". + "data = '$prio $content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); } else { $app->db->query("UPDATE named.records SET zone = '$origin', ttl = $ttl, type = '$type', host = '$name', ". "data = '$content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); -- GitLab From e032124465a66e161e0306f1e910c29db000646e Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 17:10:44 +0200 Subject: [PATCH 037/158] Fixed: FS#3514 - pagination broken when changing search limit --- interface/lib/classes/listform.inc.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php index 14c1a13f75..04f4b375b7 100644 --- a/interface/lib/classes/listform.inc.php +++ b/interface/lib/classes/listform.inc.php @@ -248,6 +248,8 @@ class listform { public function getPagingSQL($sql_where = '1') { global $app, $conf; + + $old_search_limit = intval($_SESSION['search']['limit']); //* Add Global Limit from selectbox if(!empty($_POST['search_limit']) and $app->functions->intval($_POST['search_limit']) > 0){ @@ -272,6 +274,9 @@ class listform { //* set PAGE to worth request variable "PAGE" - ? setze page auf wert der request variablen "page" if(isset($_REQUEST["page"])) $_SESSION["search"][$list_name]["page"] = $app->functions->intval($_REQUEST["page"]); + + //* Set search to changed when search limit has been changed. + if(intval($_SESSION['search']['limit']) != $old_search_limit) $this->searchChanged = 1; //* PAGE to 0 set, if look for themselves ? page auf 0 setzen, wenn suche sich ge�ndert hat. if($this->searchChanged == 1) $_SESSION['search'][$list_name]['page'] = 0; -- GitLab From 99d6a59093484965ff4bd2f0a0499818d1bdae25 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 17:37:11 +0200 Subject: [PATCH 038/158] Fixed: FS#3520 - Default values in forms are invalid --- interface/web/sites/form/database.tform.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/sites/form/database.tform.php b/interface/web/sites/form/database.tform.php index a3e8772a41..fb600fd5c3 100644 --- a/interface/web/sites/form/database.tform.php +++ b/interface/web/sites/form/database.tform.php @@ -88,7 +88,7 @@ $form["tabs"]['database'] = array ( 'type' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', - 'default' => 'y', + 'default' => 'mysql', 'value' => array('mysql' => 'MySQL') ), 'database_name' => array ( @@ -139,7 +139,7 @@ $form["tabs"]['database'] = array ( 'database_charset' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', - 'default' => 'y', + 'default' => '', 'value' => array('' => 'DB-Default', 'latin1' => 'Latin 1', 'utf8' => 'UTF-8') ), 'remote_access' => array ( -- GitLab From b740e1ef903f8f868b029e8f1064f6cc283c2dfc Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 18:34:37 +0200 Subject: [PATCH 039/158] Fixed: FS#3550 - APS instaleld packages, group permission in DB wrong --- interface/lib/classes/aps_guicontroller.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index 7c4208fbdf..f6a0ff4e3d 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -333,7 +333,7 @@ class ApsGUIController extends ApsBase } //* Insert new package instance - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->functions->intval($websrv['sys_perm_group'])."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")"; + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$app->functions->intval($websrv['sys_userid']).", ".$app->functions->intval($websrv['sys_groupid']).", 'riud', '".$app->db->quote($websrv['sys_perm_group'])."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")"; $InstanceID = $app->db->datalogInsert('aps_instances', $insert_data, 'id'); //* Insert all package settings -- GitLab From 5332dc4d052b4ff48be343928344eb961dc4f027 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 18:45:19 +0200 Subject: [PATCH 040/158] Fixed: FS#3506 - Firewall rules get mirrored to slave servers --- .../plugins-available/firewall_plugin.inc.php | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php index 186e9b9180..2cca769fd5 100644 --- a/server/plugins-available/firewall_plugin.inc.php +++ b/server/plugins-available/firewall_plugin.inc.php @@ -76,29 +76,31 @@ class firewall_plugin { global $app, $conf; //* load the server configuration options - $app->uses('getconf'); - $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - if($server_config['firewall'] == 'ufw') { - $this->ufw_update($event_name, $data); - } else { - $this->bastille_update($event_name, $data); + if(!$data['mirrored']) { + $app->uses('getconf'); + $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); + if($server_config['firewall'] == 'ufw') { + $this->ufw_update($event_name, $data); + } else { + $this->bastille_update($event_name, $data); + } } - } public function delete($event_name, $data) { global $app, $conf; //* load the server configuration options - $app->uses('getconf'); - $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); + if(!$data['mirrored']) { + $app->uses('getconf'); + $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - if($server_config['firewall'] == 'ufw') { - $this->ufw_delete($event_name, $data); - } else { - $this->bastille_delete($event_name, $data); + if($server_config['firewall'] == 'ufw') { + $this->ufw_delete($event_name, $data); + } else { + $this->bastille_delete($event_name, $data); + } } - } private function ufw_update($event_name, $data) { -- GitLab From e99a709817259f6f0855bb5b4522c042921fd8f9 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 20:29:19 +0200 Subject: [PATCH 041/158] Fixed: FS#3466 - Wrong validator regex for customer number template --- interface/web/admin/form/system_config.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index ce4a0cbfab..c53d02bf30 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -449,7 +449,7 @@ $form["tabs"]['misc'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', + 'regex' => '/^[a-zA-Z0-9\-\_\[\]]{0,50}$/', 'errmsg'=> 'customer_no_template_error_regex'), ), 'default' => '', -- GitLab From 02797b78ce243def0adf008461212a14f7e23d6d Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 20:34:32 +0200 Subject: [PATCH 042/158] Fixed: FS#3478 - Postfix smtpd_recipient_restrictions are ordered incorrectly in default template --- install/tpl/debian_postfix.conf.master | 2 +- install/tpl/fedora_postfix.conf.master | 2 +- install/tpl/gentoo_postfix.conf.master | 2 +- install/tpl/opensuse_postfix.conf.master | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index bab660e102..9ae6c16e6c 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -11,7 +11,7 @@ inet_protocols=all smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index e2c68c0e1c..37248943d8 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -8,7 +8,7 @@ virtual_gid_maps = static:{vmail_groupid} smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index 90ed2859fb..e65f9a6891 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -8,7 +8,7 @@ virtual_gid_maps = static:{vmail_groupid} smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 149e2bdfd0..d4dc873948 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -10,7 +10,7 @@ virtual_gid_maps = static:{vmail_groupid} smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination{rbl_list} +smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert -- GitLab From b5b86263c933557a9869761364b7e4d97f2fe2e5 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 20:59:01 +0200 Subject: [PATCH 043/158] Fixed: FS#3504 - Switching between FastCGI and any other and VHost website issue --- server/plugins-available/apache2_plugin.inc.php | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index bfa435dea0..cbda9f67c3 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1205,18 +1205,15 @@ class apache2_plugin { } else { //remove the php fastgi starter script if available + $fastcgi_starter_script = $fastcgi_config['fastcgi_starter_script'].($data['old']['type'] == 'vhostsubdomain' ? '_web' . $data['old']['domain_id'] : ''); if ($data['old']['php'] == 'fast-cgi') { $fastcgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $fastcgi_config['fastcgi_starter_path']); $fastcgi_starter_path = str_replace('[client_id]', $client_id, $fastcgi_starter_path); if($data['old']['type'] == 'vhost') { - if (is_dir($fastcgi_starter_path)) { - exec('rm -rf '.$fastcgi_starter_path); - } + if(is_file($fastcgi_starter_script)) @unlink($fastcgi_starter_script); + if (is_dir($fastcgi_starter_path)) @rmdir($fastcgi_starter_path); } else { - $fcgi_starter_script = $fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].'_web' . $data['old']['domain_id']; - if (file_exists($fcgi_starter_script)) { - exec('rm -f '.$fcgi_starter_script); - } + if(is_file($fastcgi_starter_script)) @unlink($fastcgi_starter_script); } } } -- GitLab From 3fb802e577d71b66b9aec5593b687bcd4859581e Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 21:24:15 +0200 Subject: [PATCH 044/158] Fixed: FS#3509 - Apache log directory not unmounted when moving site --- server/plugins-available/apache2_plugin.inc.php | 5 +++++ server/plugins-available/nginx_plugin.inc.php | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index cbda9f67c3..addcd138b8 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -461,6 +461,9 @@ class apache2_plugin { $app->system->rename($data['new']['document_root'], $data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s')); $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'), LOGLEVEL_DEBUG); } + + //* Unmount the old log directory bfore we move the log dir + exec('umount '.escapeshellcmd($old_dir.'/log')); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); @@ -492,6 +495,8 @@ class apache2_plugin { $app->system->removeLine('/etc/fstab', $fstab_line); $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); + + exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 1947367c9a..d83ecf442f 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -465,6 +465,9 @@ class nginx_plugin { $app->system->rename($data['new']['document_root'], $data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s')); $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'), LOGLEVEL_DEBUG); } + + //* Unmount the old log directory bfore we move the log dir + exec('umount '.escapeshellcmd($old_dir.'/log')); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); @@ -496,6 +499,8 @@ class nginx_plugin { $app->system->removeLine('/etc/fstab', $fstab_line); $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); + + exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); } -- GitLab From ea39b94c5f11f4e2255bce5bde5e6c8d2f1f0a59 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 22:01:11 +0200 Subject: [PATCH 045/158] Fixed: FS#3463 - German: Translation of Proceted Folders user and inconsistency --- interface/web/sites/lib/lang/de_web_folder_list.lng | 1 + interface/web/sites/lib/lang/de_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/en_web_folder_list.lng | 1 + interface/web/sites/lib/lang/en_web_folder_user_list.lng | 1 + 4 files changed, 4 insertions(+) diff --git a/interface/web/sites/lib/lang/de_web_folder_list.lng b/interface/web/sites/lib/lang/de_web_folder_list.lng index 5491202ac6..9c85d51822 100644 --- a/interface/web/sites/lib/lang/de_web_folder_list.lng +++ b/interface/web/sites/lib/lang/de_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Aktiv'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webseite'; $wb['path_txt'] = 'Pfad'; +$wb["add_new_record_txt"] = 'Ordner hinzufügen'; ?> diff --git a/interface/web/sites/lib/lang/de_web_folder_user_list.lng b/interface/web/sites/lib/lang/de_web_folder_user_list.lng index 5357760eb4..2db8eb0524 100644 --- a/interface/web/sites/lib/lang/de_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/de_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Ordner Benutzer'; $wb['active_txt'] = 'Aktiv'; $wb['web_folder_id_txt'] = 'Ordner'; $wb['username_txt'] = 'Benutzername'; +$wb["add_new_record_txt"] = 'Ordner Benutzer hinzufügen'; ?> diff --git a/interface/web/sites/lib/lang/en_web_folder_list.lng b/interface/web/sites/lib/lang/en_web_folder_list.lng index 32780abda5..5966c03e8b 100644 --- a/interface/web/sites/lib/lang/en_web_folder_list.lng +++ b/interface/web/sites/lib/lang/en_web_folder_list.lng @@ -4,4 +4,5 @@ $wb["active_txt"] = 'Active'; $wb["server_id_txt"] = 'Server'; $wb["parent_domain_id_txt"] = 'Website'; $wb["path_txt"] = 'Path'; +$wb["add_new_record_txt"] = 'Add new Folder'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_folder_user_list.lng b/interface/web/sites/lib/lang/en_web_folder_user_list.lng index d0d9e05d1e..d0350c9d9a 100644 --- a/interface/web/sites/lib/lang/en_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/en_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb["list_head_txt"] = 'Folder User'; $wb["active_txt"] = 'Active'; $wb["web_folder_id_txt"] = 'Folder'; $wb["username_txt"] = 'Username'; +$wb["add_new_record_txt"] = 'Add new Folder User'; ?> \ No newline at end of file -- GitLab From be2cbbed24262e4dcaa9447c8c24fac8e82a7b4f Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 27 Jul 2014 22:24:33 +0200 Subject: [PATCH 046/158] Updated OS version lists. --- install/lib/install.lib.php | 21 +++++++++++++++++++++ server/lib/classes/monitor_tools.inc.php | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 379ae786ec..04205ccf41 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -86,6 +86,15 @@ function get_distname() { $mainver = array_filter($mainver); $mainver = current($mainver).'.'.next($mainver); switch ($mainver){ + case "14.04": + $relname = "(Trusty Tahr)"; + break; + case "13.10": + $relname = "(Saucy Salamander)"; + break; + case "13.04": + $relname = "(Raring Ringtail)"; + break; case "12.10": $relname = "(Quantal Quetzal)"; break; @@ -246,6 +255,18 @@ function get_distname() { $distid = 'centos53'; $distbaseid = 'fedora'; swriteln("Operating System: CentOS 5 or compatible\n"); + } elseif(stristr($content, 'CentOS Linux release 6')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 6 or compatible\n"); + } elseif(stristr($content, 'CentOS Linux release 7')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 7 or compatible\n"); } else { $distname = 'Redhat'; $distver = 'Unknown'; diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 2170b5cccc..ae1fbd3228 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -62,6 +62,15 @@ class monitor_tools { $mainver = array_filter($mainver); $mainver = current($mainver).'.'.next($mainver); switch ($mainver){ + case "14.04": + $relname = "(Trusty Tahr)"; + break; + case "13.10": + $relname = "(Saucy Salamander)"; + break; + case "13.04": + $relname = "(Raring Ringtail)"; + break; case "12.10": $relname = "(Quantal Quetzal)"; break; @@ -201,6 +210,18 @@ class monitor_tools { $distver = '5.3'; $distid = 'centos53'; $distbaseid = 'fedora'; + } elseif(stristr($content, 'CentOS Linux release 6')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 6 or compatible\n"); + } elseif(stristr($content, 'CentOS Linux release 7')) { + $distname = 'CentOS'; + $distver = 'Unknown'; + $distid = 'centos53'; + $distbaseid = 'fedora'; + swriteln("Operating System: CentOS 7 or compatible\n"); } else { $distname = 'Redhat'; $distver = 'Unknown'; -- GitLab From efdd1a3ffccc192f08b0fad4112b9eb5789dae01 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 28 Jul 2014 11:20:02 +0200 Subject: [PATCH 047/158] =?UTF-8?q?Fixed:=20FS#3556=20-=20Der=20in=20Sessi?= =?UTF-8?q?on-Timeout=20eingegebene=20Wert=20wird=20nicht=20durch=20Aktivi?= =?UTF-8?q?t=C3=A4t=20verl=C3=A4ngert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interface/lib/app.inc.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 1d80b8abc5..8832f45e1c 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -78,16 +78,16 @@ class app { $tmp = $this->ini_parser->parse_ini_string(stripslashes($tmp['config'])); if(!isset($tmp['misc']['session_allow_endless']) || $tmp['misc']['session_allow_endless'] != 'y') { $this->session->set_timeout($sess_timeout); - session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer + session_set_cookie_params(3600 * 24 * 365); // cookie timeout is never updated, so it must not be short } else { // we are doing login here, so we need to set the session data $this->session->set_permanent(true); $this->session->set_timeout(365 * 24 * 3600); // one year - session_set_cookie_params(365 * 24 * 3600); // make the cookie live 5 minutes longer + session_set_cookie_params(3600 * 24 * 365); // cookie timeout is never updated, so it must not be short } } else { $this->session->set_timeout($sess_timeout); - session_set_cookie_params(($sess_timeout * 60) + 300); // make the cookie live 5 minutes longer + session_set_cookie_params(3600 * 24 * 365); // cookie timeout is never updated, so it must not be short } } else { session_set_cookie_params(0); // until browser is closed -- GitLab From 0b6b84d85eff64352204a178f451bc49a6774b87 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 28 Jul 2014 19:11:34 +0200 Subject: [PATCH 048/158] Fixed: FS#3580 - Website cannot be modified when subdomain created as website this also fixes a problem with ignored vhost subdomains on validation --- interface/lib/classes/validate_domain.inc.php | 136 ++---------------- 1 file changed, 10 insertions(+), 126 deletions(-) diff --git a/interface/lib/classes/validate_domain.inc.php b/interface/lib/classes/validate_domain.inc.php index 788b34bd60..1280c895c6 100644 --- a/interface/lib/classes/validate_domain.inc.php +++ b/interface/lib/classes/validate_domain.inc.php @@ -123,157 +123,41 @@ class validate_domain { } // check if domain has alias/subdomains - if we move a web to another IP, make sure alias/subdomains are checked as well - $aliassubdomains = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$app->functions->intval($primary_id)." AND (type = 'alias' OR type = 'subdomain')"); + $aliassubdomains = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$app->functions->intval($primary_id)." AND (type = 'alias' OR type = 'subdomain' OR type = 'vhostsubdomain')"); $additional_sql1 = ''; $additional_sql2 = ''; if(is_array($aliassubdomains) && !empty($aliassubdomains)){ foreach($aliassubdomains as $aliassubdomain){ - $additional_sql1 .= " OR `domain` = '".$app->db->quote($aliassubdomain['domain'])."'"; - $additional_sql2 .= " OR CONCAT(`subdomain`, '.', `domain`) = '".$app->db->quote($aliassubdomain['domain'])."'"; + $additional_sql1 .= " OR d.domain = '".$app->db->quote($aliassubdomain['domain'])."'"; + $additional_sql2 .= " OR CONCAT(d.subdomain, '.', d.domain) = '".$app->db->quote($aliassubdomain['domain'])."'"; } } - - //$check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `domain` = '" . $app->db->quote($domain_name) . "' AND `domain_id` != " . $app->functions->intval($primary_id)); - //if($check['cnt'] > 0) return false; - - // we can have the same domain on different servers or different IPs, so we have to check for identical domains on the same IP (or wildcard IPs) - $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (`domain` = '" . $app->db->quote($domain_name) . "'".$additional_sql1.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql1 != '' && $domain['parent_domain_id'] > 0 ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); - + + $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (d.domain = '" . $app->db->quote($domain_name) . "'" . $additional_sql1 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . " AND d.parent_domain_id != " . $app->functions->intval($primary_id); + $checks = $app->db->queryAllRecords($qrystr); if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ if($domain['ip_address'] == '*') return false; if($check['ip_address'] == '*') return false; if($domain['ip_address'] != '' && $check['ip_address'] == $domain['ip_address']) return false; if($domain['ipv6_address'] != '' && $check['ipv6_address'] == $domain['ipv6_address']) return false; - // if alias/subdomain: check IP addresses of parent domain - if($check['ip_address'] == '' || $check['ipv6_address'] == ''){ - if($check['parent_domain_id'] > 0){ - $check_parent_domain = $app->db->queryOneRecord("SELECT * FROM `web_domain` WHERE `domain_id` = ".$check['parent_domain_id']); - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] == ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - } - } - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($check['ip_address'] == '' && $domain['ip_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - if($check_parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $domain['ip_address']) return false; - } - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] == ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($check['ipv6_address'] == '' && $domain['ipv6_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $domain['ipv6_address']) return false; - } - } - } } } - - + if($only_domain == false) { - //$check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE CONCAT(`subdomain`, '.', `domain`) = '" . $app->db->quote($domain_name) . "' AND `domain_id` != " . $app->functions->intval($primary_id)); - //if($check['cnt'] > 0) return false; - // we can have the same domain on different servers or different IPs, so we have to check for identical domains on the same IP (or wildcard IPs) - $checks = $app->db->queryAllRecords("SELECT * FROM `web_domain` WHERE (CONCAT(`subdomain`, '.', `domain`) = '" . $app->db->quote($domain_name) . "'".$additional_sql2.") AND `server_id` = ".intval($domain['server_id'])." AND `domain_id` != " . $app->functions->intval($primary_id).($additional_sql2 != '' && $domain['parent_domain_id'] > 0 ? " AND `parent_domain_id` != ".$app->functions->intval($primary_id) : "")); + $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (CONCAT(d.subdomain, '.', d.domain)= '" . $app->db->quote($domain_name) . "'" . $additional_sql2 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . " AND d.parent_domain_id != " . $app->functions->intval($primary_id); + $checks = $app->db->queryAllRecords($qrystr); if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ if($domain['ip_address'] == '*') return false; if($check['ip_address'] == '*') return false; if($domain['ip_address'] != '' && $check['ip_address'] == $domain['ip_address']) return false; if($domain['ipv6_address'] != '' && $check['ipv6_address'] == $domain['ipv6_address']) return false; - // if alias/subdomain: check IP addresses of parent domain - if($check['ip_address'] == '' || $check['ipv6_address'] == ''){ - if($check['parent_domain_id'] > 0){ - $check_parent_domain = $app->db->queryOneRecord("SELECT * FROM `web_domain` WHERE `domain_id` = ".$app->functions->intval($check['parent_domain_id'])); - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($domain['ip_address'] == '' && $check['ip_address'] == ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - } - } - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ip_address'] == '*') return false; - if($parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $parent_domain['ip_address']) return false; - } - } - - if($check['ip_address'] == '' && $domain['ip_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ip_address'] == '*') return false; - if($check_parent_domain['ip_address'] != '' && $check_parent_domain['ip_address'] == $domain['ip_address']) return false; - } - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] != ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($domain['ipv6_address'] == '' && $check['ipv6_address'] == ''){ - if(is_array($parent_domain) && !empty($parent_domain)){ - if($parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $parent_domain['ipv6_address']) return false; - } - } - - if($check['ipv6_address'] == '' && $domain['ipv6_address'] != ''){ - if($check['parent_domain_id'] > 0){ - if(is_array($check_parent_domain) && !empty($check_parent_domain)){ - if($check_parent_domain['ipv6_address'] != '' && $check_parent_domain['ipv6_address'] == $domain['ipv6_address']) return false; - } - } - } } } - } - + return true; } -- GitLab From 31895e66273668a589655be7f05f2d44e2b5404e Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 28 Jul 2014 19:29:19 +0200 Subject: [PATCH 049/158] - fixes previous commit --- interface/lib/classes/validate_domain.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/validate_domain.inc.php b/interface/lib/classes/validate_domain.inc.php index 1280c895c6..d92de9b943 100644 --- a/interface/lib/classes/validate_domain.inc.php +++ b/interface/lib/classes/validate_domain.inc.php @@ -134,7 +134,7 @@ class validate_domain { } - $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (d.domain = '" . $app->db->quote($domain_name) . "'" . $additional_sql1 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . " AND d.parent_domain_id != " . $app->functions->intval($primary_id); + $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (d.domain = '" . $app->db->quote($domain_name) . "'" . $additional_sql1 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . ($primary_id ? " AND d.parent_domain_id != " . $app->functions->intval($primary_id) : ""); $checks = $app->db->queryAllRecords($qrystr); if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ @@ -146,7 +146,7 @@ class validate_domain { } if($only_domain == false) { - $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (CONCAT(d.subdomain, '.', d.domain)= '" . $app->db->quote($domain_name) . "'" . $additional_sql2 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . " AND d.parent_domain_id != " . $app->functions->intval($primary_id); + $qrystr = "SELECT d.domain_id, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ip_address, d.ip_address) as `ip_address`, IF(d.parent_domain_id != 0 AND p.domain_id IS NOT NULL, p.ipv6_address, d.ipv6_address) as `ipv6_address` FROM `web_domain` as d LEFT JOIN `web_domain` as p ON (p.domain_id = d.parent_domain_id) WHERE (CONCAT(d.subdomain, '.', d.domain)= '" . $app->db->quote($domain_name) . "'" . $additional_sql2 . ") AND d.server_id = " . $app->functions->intval($domain['server_id']) . " AND d.domain_id != " . $app->functions->intval($primary_id) . ($primary_id ? " AND d.parent_domain_id != " . $app->functions->intval($primary_id) : ""); $checks = $app->db->queryAllRecords($qrystr); if(is_array($checks) && !empty($checks)){ foreach($checks as $check){ -- GitLab From 5742e4c99f53f9dbbcc962e9f967a4c377c209b9 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Tue, 29 Jul 2014 08:46:41 +0200 Subject: [PATCH 050/158] Fixed: FS#3581 - Website unaccessible under some circumstances when using seo redirection *.domain to www.domain (only for apache2, nginx still to do) --- server/conf/vhost.conf.master | 2 ++ server/plugins-available/apache2_plugin.inc.php | 2 ++ server/plugins-available/nginx_plugin.inc.php | 2 ++ 3 files changed, 6 insertions(+) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 96b3443384..c2af3edeeb 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -339,10 +339,12 @@ <tmpl_if name="rewrite_enabled"> RewriteEngine on <tmpl_if name='seo_redirect_enabled'> + RewriteCond %{HTTP_HOST} <tmpl_var name='seo_base_domain'>$ [NC] RewriteCond %{HTTP_HOST} <tmpl_var name='seo_redirect_operator'>^<tmpl_var name='seo_redirect_origin_domain'>$ [NC] RewriteRule ^(.*)$ http<tmpl_if name='ssl_enabled'>s</tmpl_if>://<tmpl_var name='seo_redirect_target_domain'>$1 [R=301,L] </tmpl_if> <tmpl_loop name="alias_seo_redirects"> + RewriteCond %{HTTP_HOST} <tmpl_var name='alias_seo_base_domain'>$ [NC] RewriteCond %{HTTP_HOST} <tmpl_var name='alias_seo_redirect_operator'>^<tmpl_var name='alias_seo_redirect_origin_domain'>$ [NC] RewriteRule ^(.*)$ http<tmpl_if name='ssl_enabled'>s</tmpl_if>://<tmpl_var name='alias_seo_redirect_target_domain'>$1 [R=301,L] </tmpl_loop> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index addcd138b8..525592dacc 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -2951,6 +2951,8 @@ class apache2_plugin { $seo_redirects[$prefix.'seo_redirect_target_domain'] = $web['domain']; $seo_redirects[$prefix.'seo_redirect_operator'] = '!'; } + + $seo_redirects[$prefix.'seo_base_domain'] = str_replace('.', '\.', $web['domain']); return $seo_redirects; } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index d83ecf442f..408a76bca2 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -2842,6 +2842,8 @@ class nginx_plugin { $seo_redirects[$prefix.'seo_redirect_operator'] = '!='; } } + + $seo_redirects[$prefix.'seo_base_domain'] = str_replace('.', '\.', $web['domain']); return $seo_redirects; } -- GitLab From 0b77531b9479a069753e9e25a5f3e8ec74204607 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Tue, 29 Jul 2014 10:43:38 +0200 Subject: [PATCH 051/158] Revert "Fixed: FS#3581 - Website unaccessible under some circumstances when using seo redirection *.domain to www.domain" This reverts commit 5742e4c99f53f9dbbcc962e9f967a4c377c209b9. --- server/conf/vhost.conf.master | 2 -- server/plugins-available/apache2_plugin.inc.php | 2 -- server/plugins-available/nginx_plugin.inc.php | 2 -- 3 files changed, 6 deletions(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index c2af3edeeb..96b3443384 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -339,12 +339,10 @@ <tmpl_if name="rewrite_enabled"> RewriteEngine on <tmpl_if name='seo_redirect_enabled'> - RewriteCond %{HTTP_HOST} <tmpl_var name='seo_base_domain'>$ [NC] RewriteCond %{HTTP_HOST} <tmpl_var name='seo_redirect_operator'>^<tmpl_var name='seo_redirect_origin_domain'>$ [NC] RewriteRule ^(.*)$ http<tmpl_if name='ssl_enabled'>s</tmpl_if>://<tmpl_var name='seo_redirect_target_domain'>$1 [R=301,L] </tmpl_if> <tmpl_loop name="alias_seo_redirects"> - RewriteCond %{HTTP_HOST} <tmpl_var name='alias_seo_base_domain'>$ [NC] RewriteCond %{HTTP_HOST} <tmpl_var name='alias_seo_redirect_operator'>^<tmpl_var name='alias_seo_redirect_origin_domain'>$ [NC] RewriteRule ^(.*)$ http<tmpl_if name='ssl_enabled'>s</tmpl_if>://<tmpl_var name='alias_seo_redirect_target_domain'>$1 [R=301,L] </tmpl_loop> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 525592dacc..addcd138b8 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -2951,8 +2951,6 @@ class apache2_plugin { $seo_redirects[$prefix.'seo_redirect_target_domain'] = $web['domain']; $seo_redirects[$prefix.'seo_redirect_operator'] = '!'; } - - $seo_redirects[$prefix.'seo_base_domain'] = str_replace('.', '\.', $web['domain']); return $seo_redirects; } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 408a76bca2..d83ecf442f 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -2842,8 +2842,6 @@ class nginx_plugin { $seo_redirects[$prefix.'seo_redirect_operator'] = '!='; } } - - $seo_redirects[$prefix.'seo_base_domain'] = str_replace('.', '\.', $web['domain']); return $seo_redirects; } -- GitLab From 061d7c84c49b9e63c311123f52a142fc66b4228f Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 29 Jul 2014 16:59:19 +0200 Subject: [PATCH 052/158] Removed backup_dir_mount_cmd option from Sysstem > server config. The option has been replaced by a script /usr/local/ispconfig/server/scripts/backup_dir_mount.sh. If this script exists, is exacutable and is owned by the root user, then it will be executed upfront of the backup jobs when the option "Backup directory is a mount?" is enabled in server config settings. --- install/tpl/server.ini.master | 1 - interface/web/admin/form/server_config.tform.php | 8 -------- interface/web/admin/lib/lang/en_server_config.lng | 1 - .../web/admin/templates/server_config_server_edit.htm | 4 ---- server/cron_daily.php | 10 +++++++--- 5 files changed, 7 insertions(+), 17 deletions(-) diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index dcac5808cc..8af63c3f2d 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -16,7 +16,6 @@ loglevel=2 admin_notify_events=1 backup_dir=/var/backup backup_dir_is_mount=n -backup_dir_mount_cmd= backup_mode=rootgz monit_url= monit_user= diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index e115c8b922..71de54e95c 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -177,14 +177,6 @@ $form["tabs"]['server'] = array( 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), - 'backup_dir_mount_cmd' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), 'backup_mode' => array( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 3dc1d0afd7..63027c733f 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -189,6 +189,5 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; ?> diff --git a/interface/web/admin/templates/server_config_server_edit.htm b/interface/web/admin/templates/server_config_server_edit.htm index d9b703ae21..e5034e6aa3 100644 --- a/interface/web/admin/templates/server_config_server_edit.htm +++ b/interface/web/admin/templates/server_config_server_edit.htm @@ -64,10 +64,6 @@ <div class="multiField"> {tmpl_var name='backup_dir_is_mount'} </div> - </div> - <div class="ctrlHolder"> - <label for="backup_dir_mount_cmd">{tmpl_var name='backup_dir_mount_cmd_txt'}</label> - <input name="backup_dir_mount_cmd" id="backup_dir_mount_cmd" value="{tmpl_var name='backup_dir_mount_cmd'}" size="40" maxlength="255" type="text" class="textInput" /> </div> <div class="ctrlHolder"> <label for="backup_mode">{tmpl_var name='backup_mode_txt'}</label> diff --git a/server/cron_daily.php b/server/cron_daily.php index 75459be20a..ee54a46207 100644 --- a/server/cron_daily.php +++ b/server/cron_daily.php @@ -1104,10 +1104,14 @@ if($backup_dir != '') { //* mount backup directory, if necessary $run_backups = true; - $server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']); - if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){ + $backup_dir_mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'; + if( $server_config['backup_dir_is_mount'] == 'y' && + is_file($backup_dir_mount_cmd) && + is_executable($backup_dir_mount_cmd) && + fileowner($backup_dir_mount_cmd) === 0 + ){ if(!$app->system->is_mounted($backup_dir)){ - exec(escapeshellcmd($server_config['backup_dir_mount_cmd'])); + exec($backup_dir_mount_cmd); sleep(1); if(!$app->system->is_mounted($backup_dir)) $run_backups = false; } -- GitLab From 64ea56164ad8f0f2cee5676f84d2d8f064e986e1 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Tue, 29 Jul 2014 17:55:13 +0200 Subject: [PATCH 053/158] Improved input validation --- interface/lib/classes/functions.inc.php | 18 +++++++++++++ interface/web/sites/web_domain_edit.php | 4 ++- server/lib/classes/system.inc.php | 26 ++++++++++++++++++- .../plugins-available/apache2_plugin.inc.php | 3 ++- .../cron_jailkit_plugin.inc.php | 14 +++++++--- server/plugins-available/cron_plugin.inc.php | 9 ++++--- server/plugins-available/nginx_plugin.inc.php | 5 +++- .../shelluser_base_plugin.inc.php | 14 ++++++++++ .../shelluser_jailkit_plugin.inc.php | 14 ++++++++++ 9 files changed, 96 insertions(+), 11 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 5f62f52ec9..ddee8da9f5 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -424,6 +424,24 @@ class functions { return implode("\n", $domains); } + public function is_allowed_user($username, $restrict_names = false) { + global $app; + + if($username == 'root') return false; + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; + + return true; + } + + public function is_allowed_group($groupname, $restrict_names = false) { + global $app; + + if($groupname == 'root') return false; + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; + + return true; + } + } ?> diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index 8edfffafb6..1208e48a1e 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -607,9 +607,11 @@ class page_action extends tform_actions { // When the record is updated if($this->id > 0) { // restore the server ID if the user is not admin and record is edited - $tmp = $app->db->queryOneRecord("SELECT server_id, `cgi`, `ssi`, `perl`, `ruby`, `python`, `suexec`, `errordocs`, `subdomain`, `ssl` FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + $tmp = $app->db->queryOneRecord("SELECT server_id, `system_user`, `system_group`, `cgi`, `ssi`, `perl`, `ruby`, `python`, `suexec`, `errordocs`, `subdomain`, `ssl` FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); $this->dataRecord["server_id"] = $tmp["server_id"]; + $this->dataRecord['system_user'] = $tmp['system_user']; + $this->dataRecord['system_group'] = $tmp['system_group']; // set the settings to current if not provided (or cleared due to limits) if($this->dataRecord['cgi'] == 'n') $this->dataRecord['cgi'] = $tmp['cgi']; if($this->dataRecord['ssi'] == 'n') $this->dataRecord['ssi'] = $tmp['ssi']; diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index d9d85e5a31..049eb618c1 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -34,7 +34,9 @@ class system{ var $server_id; var $server_conf; var $data; - + var $min_uid = 500; + var $min_gid = 500; + /** * Construct for this class * @@ -1816,6 +1818,28 @@ class system{ return true; } + public function is_allowed_user($username, $check_id = true, $restrict_names = false) { + global $app; + + if($username == 'root') return false; + if($check_id && intval($this->getuid($username)) < $this->min_uid) return false; + + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; + + return true; + } + + public function is_allowed_group($groupname, $restrict_names = false) { + global $app; + + if($groupname == 'root') return false; + if(intval($this->getgid($groupname)) < $this->min_gid) return false; + + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; + + return true; + } + } ?> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index addcd138b8..b1411c9f03 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -344,7 +344,8 @@ class apache2_plugin { if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set', LOGLEVEL_WARN); return 0; } - if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { + if(!$app->system->is_allowed_user($data['new']['system_user'], false, true) + || !$app->system->is_allowed_group($data['new']['system_group'], false, true)) { $app->log('Websites cannot be owned by the root user or group.', LOGLEVEL_WARN); return 0; } diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php index c3bd5b749b..4c95b83c2b 100644 --- a/server/plugins-available/cron_jailkit_plugin.inc.php +++ b/server/plugins-available/cron_jailkit_plugin.inc.php @@ -80,11 +80,15 @@ class cron_jailkit_plugin { if(!$parent_domain["domain_id"]) { $app->log("Parent domain not found", LOGLEVEL_WARN); return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { + } + + if(!$app->system->is_allowed_user($parent_domain['system_user'], true, true) + || !$app->system->is_allowed_group($parent_domain['system_group'], true, true)) { $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); - return 0; + return false; } + $this->parent_domain = $parent_domain; $app->uses('system'); @@ -155,9 +159,11 @@ class cron_jailkit_plugin { if(!$parent_domain["domain_id"]) { $app->log("Parent domain not found", LOGLEVEL_WARN); return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { + } + if(!$app->system->is_allowed_user($parent_domain['system_user'], true, true) + || !$app->system->is_allowed_group($parent_domain['system_group'], true, true)) { $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); - return 0; + return false; } $app->uses('system'); diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php index fe00713ecd..7f8070d78c 100644 --- a/server/plugins-available/cron_plugin.inc.php +++ b/server/plugins-available/cron_plugin.inc.php @@ -96,11 +96,14 @@ class cron_plugin { if(!$parent_domain["domain_id"]) { $app->log("Parent domain not found", LOGLEVEL_WARN); return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); - return 0; } + if(!$app->system->is_allowed_user($parent_domain['system_user'], true, true) + || !$app->system->is_allowed_group($parent_domain['system_group'], true, true)) { + $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); + return false; + } + // Get the client ID $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["new"]["sys_groupid"])); $client_id = intval($client["client_id"]); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index d83ecf442f..2837e0eb94 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -351,10 +351,13 @@ class nginx_plugin { if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set', LOGLEVEL_WARN); return 0; } - if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { + + if(!$app->system->is_allowed_user($data['new']['system_user'], false, true) + || !$app->system->is_allowed_group($data['new']['system_group'], false, true)) { $app->log('Websites cannot be owned by the root user or group.', LOGLEVEL_WARN); return 0; } + if(trim($data['new']['domain']) == '') { $app->log('domain is empty', LOGLEVEL_WARN); return 0; diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 0ceced99d0..e331624133 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -82,6 +82,13 @@ class shelluser_base_plugin { $app->log('Directory of the shell user is not valid.',LOGLEVEL_WARN); return false; } + + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } if($app->system->is_user($data['new']['puser'])) { @@ -151,6 +158,13 @@ class shelluser_base_plugin { return false; } + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index 90ed6777f1..9cf6fc89da 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -74,6 +74,13 @@ class shelluser_jailkit_plugin { $app->uses('system'); $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$data['new']['parent_domain_id']); + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); @@ -139,6 +146,13 @@ class shelluser_jailkit_plugin { $app->uses('system'); $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$data['new']['parent_domain_id']); + if(!$app->system->is_allowed_user($data['new']['username'], false, false) + || !$app->system->is_allowed_user($data['new']['puser'], true, true) + || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { + $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); -- GitLab From a43eb3b0ccaf84a6ab44a1f46f47cc4f8ce54844 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 29 Jul 2014 20:39:09 +0200 Subject: [PATCH 054/158] Implemented: FS#3568 - Configure server hostname trough ISPConfig --- .../web/admin/form/server_config.tform.php | 7 ++- .../web/admin/lib/lang/en_server_config.lng | 1 + .../network_settings_plugin.inc.php | 51 ++++++++++++++++++- 3 files changed, 56 insertions(+), 3 deletions(-) diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 71de54e95c..4fa71790cb 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -126,8 +126,11 @@ $form["tabs"]['server'] = array( 2 => array( 'event' => 'SAVE', 'type' => 'TOLOWER') ), - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'hostname_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'hostname_error_empty'), + 1 => array ('type' => 'REGEX', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', + 'errmsg'=> 'hostname_error_regex'), ), 'value' => '', 'width' => '40', diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 63027c733f..5ce704d9e8 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -49,6 +49,7 @@ $wb["ip_address_error_wrong"] = 'Invalid IP address format.'; $wb["netmask_error_wrong"] = 'Invalid Netmask format.'; $wb["gateway_error_wrong"] = 'Invalid Gateway format.'; $wb["hostname_error_empty"] = 'Hostname is empty.'; +$wb["hostname_error_regex"] = 'Invalid Hostname.'; $wb["nameservers_error_empty"] = 'Nameserver is empty.'; $wb["config_dir_txt"] = 'Config directory'; $wb["init_script_txt"] = 'Cron init script name'; diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php index 56e4980fe3..46242d9840 100644 --- a/server/plugins-available/network_settings_plugin.inc.php +++ b/server/plugins-available/network_settings_plugin.inc.php @@ -243,12 +243,61 @@ class network_settings_plugin { } else { if($data['mirrored'] == true) { - $app->log('Skipping network config request. IP addresses from amster are not configured on the mirror.', LOGLEVEL_DEBUG); + $app->log('Skipping network config request. IP addresses from master are not configured on the mirror.', LOGLEVEL_DEBUG); } if($server_config['auto_network_configuration'] == 'n') { $app->log('Network configuration disabled in server settings.', LOGLEVEL_DEBUG); } } + + //* Configure hostname + if($event_name == 'server_update' && $data['mirrored'] == false) { + + //* get old server config + $tmp = $app->ini_parser->parse_ini_string(stripslashes($data['old']['config'])); + $old_server_config = $tmp['server']; + unset($tmp); + + $new_hostname = trim($server_config['hostname']); + $old_hostname = trim($old_server_config['hostname']); + + if($new_hostname != '' && $old_hostname != $new_hostname) { + + if(is_file('/etc/hostname')) { + $app->system->file_put_contents('/etc/hostname',$new_hostname); + $app->log('Changed /etc/hostname to '.$new_hostname, LOGLEVEL_DEBUG); + } + + if(is_file('/etc/mailname')) { + $app->system->file_put_contents('/etc/mailname',$new_hostname); + $app->log('Changed /etc/mailname to '.$new_hostname, LOGLEVEL_DEBUG); + } + + $postconf_commands = array( + 'myhostname = '.$new_hostname, + 'mydestination = '.$new_hostname.', localhost, localhost.localdomain' + ); + + //* Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + exec($command); + } + + $app->log('Changed changed myhostname and mydestination in postfix main.cf to '.$new_hostname, LOGLEVEL_DEBUG); + + //* change /etc/hosts + $hosts = file_get_contents('/etc/hosts'); + $hosts = str_replace($old_hostname,$new_hostname,$hosts); + $app->system->file_put_contents('/etc/hosts',$hosts); + + exec($app->system->getinitcommand('postfix', 'restart').' 2>&1'); + exec($app->system->getinitcommand('networking', 'restart').' 2>&1'); + + } + + } + } -- GitLab From 0b786c8a2efe117ed9357a6d6836f123cb4911c6 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 29 Jul 2014 20:42:01 +0200 Subject: [PATCH 055/158] Fixed: FS#3584 - Misspelling in Postfix Whitelist --- interface/web/mail/form/mail_whitelist.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/mail/form/mail_whitelist.tform.php b/interface/web/mail/form/mail_whitelist.tform.php index 3edb132df3..aebcfe6cfc 100644 --- a/interface/web/mail/form/mail_whitelist.tform.php +++ b/interface/web/mail/form/mail_whitelist.tform.php @@ -51,7 +51,7 @@ $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete $form["tabs"]['whitelist'] = array ( - 'title' => "Witelist", + 'title' => "Whitelist", 'width' => 100, 'template' => "templates/mail_whitelist_edit.htm", 'fields' => array ( -- GitLab From 032b867c6a157f2a3a9be733a320e4a8259dfea2 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Wed, 30 Jul 2014 08:28:04 +0200 Subject: [PATCH 056/158] Fixed: FS#3555 - dovecot-sql.conf: add server_id --- install/dist/lib/debian60.lib.php | 1 + install/dist/lib/fedora.lib.php | 1 + install/dist/lib/opensuse.lib.php | 1 + install/lib/installer_base.lib.php | 1 + install/tpl/debian6_dovecot-sql.conf.master | 4 ++-- install/tpl/debian_dovecot-sql.conf.master | 4 ++-- install/tpl/fedora_dovecot-sql.conf.master | 4 ++-- install/tpl/opensuse_dovecot-sql.conf.master | 4 ++-- 8 files changed, 12 insertions(+), 8 deletions(-) diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 42da878c3d..49327239d7 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -111,6 +111,7 @@ class installer extends installer_base { $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf($config_dir.'/'.$configfile, $content); chmod($config_dir.'/'.$configfile, 0600); diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index d3efe6022f..7a08f93f13 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -450,6 +450,7 @@ class installer_dist extends installer_base { $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf("$config_dir/$configfile", $content); exec("chmod 600 $config_dir/$configfile"); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index caef5409a8..f990e91960 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -499,6 +499,7 @@ class installer_dist extends installer_base { $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf("$config_dir/$configfile", $content); exec("chmod 600 $config_dir/$configfile"); diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 2cd48a0797..548cf9382a 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1015,6 +1015,7 @@ class installer_base { $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); wf($config_dir.'/'.$configfile, $content); chmod($config_dir.'/'.$configfile, 0600); diff --git a/install/tpl/debian6_dovecot-sql.conf.master b/install/tpl/debian6_dovecot-sql.conf.master index 86eb4df6fe..61f86c4cfa 100644 --- a/install/tpl/debian6_dovecot-sql.conf.master +++ b/install/tpl/debian6_dovecot-sql.conf.master @@ -13,8 +13,8 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers diff --git a/install/tpl/debian_dovecot-sql.conf.master b/install/tpl/debian_dovecot-sql.conf.master index 9c55df358f..a4d5bbd95d 100644 --- a/install/tpl/debian_dovecot-sql.conf.master +++ b/install/tpl/debian_dovecot-sql.conf.master @@ -120,8 +120,8 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers diff --git a/install/tpl/fedora_dovecot-sql.conf.master b/install/tpl/fedora_dovecot-sql.conf.master index faf3be286c..769e0a4a0d 100644 --- a/install/tpl/fedora_dovecot-sql.conf.master +++ b/install/tpl/fedora_dovecot-sql.conf.master @@ -133,8 +133,8 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers diff --git a/install/tpl/opensuse_dovecot-sql.conf.master b/install/tpl/opensuse_dovecot-sql.conf.master index e33603a1c2..57515afe87 100644 --- a/install/tpl/opensuse_dovecot-sql.conf.master +++ b/install/tpl/opensuse_dovecot-sql.conf.master @@ -133,8 +133,8 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' +password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. # Do not enable it on Dovecot 1.x servers -- GitLab From 4ef653ec2d9e6b4bff7241effc447cec2a00e074 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 31 Jul 2014 20:00:06 +0200 Subject: [PATCH 057/158] Corrected commit for: FS#3478 - Postfix smtpd_recipient_restrictions are ordered incorrectly in default template --- install/tpl/debian_postfix.conf.master | 2 +- install/tpl/fedora_postfix.conf.master | 2 +- install/tpl/gentoo_postfix.conf.master | 2 +- install/tpl/opensuse_postfix.conf.master | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index 9ae6c16e6c..4775002b64 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -11,7 +11,7 @@ inet_protocols=all smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 37248943d8..330b1f95f7 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -8,7 +8,7 @@ virtual_gid_maps = static:{vmail_groupid} smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index e65f9a6891..a775c4b032 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -8,7 +8,7 @@ virtual_gid_maps = static:{vmail_groupid} smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index d4dc873948..7baa703ed4 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -10,7 +10,7 @@ virtual_gid_maps = static:{vmail_groupid} smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes -smtpd_recipient_restrictions = reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf, permit_mynetworks, permit_sasl_authenticated{rbl_list} +smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list} smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert -- GitLab From f2fc77f29ce81b6493ab629e0f8f9da2b3df857d Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 31 Jul 2014 21:46:18 +0200 Subject: [PATCH 058/158] Improved input validation. --- interface/lib/classes/functions.inc.php | 12 ++++++++++-- interface/web/sites/form/ftp_user.tform.php | 5 ++++- interface/web/sites/form/shell_user.tform.php | 13 +++++++++++-- interface/web/sites/ftp_user_edit.php | 13 +++++++++++++ interface/web/sites/lib/lang/en_ftp_user.lng | 2 ++ interface/web/sites/lib/lang/en_shell_user.lng | 3 +++ interface/web/sites/shell_user_edit.php | 14 ++++++++++++++ server/lib/classes/system.inc.php | 12 ++++++++++-- 8 files changed, 67 insertions(+), 7 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index ddee8da9f5..29feffde7f 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -427,7 +427,11 @@ class functions { public function is_allowed_user($username, $restrict_names = false) { global $app; - if($username == 'root') return false; + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($username,$name_blacklist)) return false; + + if(preg_match('/^[\w\.\-]{0,32}$/', $username) == false) return false; + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; return true; @@ -436,7 +440,11 @@ class functions { public function is_allowed_group($groupname, $restrict_names = false) { global $app; - if($groupname == 'root') return false; + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($groupname,$name_blacklist)) return false; + + if(preg_match('/^[\w\.\-]{0,32}$/', $groupname) == false) return false; + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; return true; diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php index 2b97832be7..f328f7fdb6 100644 --- a/interface/web/sites/form/ftp_user.tform.php +++ b/interface/web/sites/form/ftp_user.tform.php @@ -187,7 +187,10 @@ if($app->auth->is_admin()) { 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directory_error_empty'), + 'errmsg'=> 'directory_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', + 'errmsg'=> 'directory_error_regex'), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index ab7cef1bfa..d8df458aa0 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -197,6 +197,12 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'shell' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'shell_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\/]{5,20}$/', + 'errmsg'=> 'shell_error_regex'), + ), 'default' => '/bin/bash', 'value' => '', 'width' => '30', @@ -205,8 +211,11 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'dir' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directory_error_empty'), + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'directory_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', + 'errmsg'=> 'directory_error_regex'), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/ftp_user_edit.php b/interface/web/sites/ftp_user_edit.php index 034620168b..edf47a38d8 100644 --- a/interface/web/sites/ftp_user_edit.php +++ b/interface/web/sites/ftp_user_edit.php @@ -138,6 +138,11 @@ class page_action extends tform_actions { $dir = $app->db->quote($web["document_root"]); $uid = $app->db->quote($web["system_user"]); $gid = $app->db->quote($web["system_group"]); + + // Check system user and group + if($app->functions->is_allowed_user($uid) == false || $app->functions->is_allowed_group($gid) == false) { + $app->error('Invalid system user or group'); + } // The FTP user shall be owned by the same group then the website $sys_groupid = $app->functions->intval($web['sys_groupid']); @@ -148,7 +153,15 @@ class page_action extends tform_actions { function onBeforeUpdate() { global $app, $conf, $interfaceConf; + + // Check system user and group + if(isset($this->dataRecord['uid'])) { + if($app->functions->is_allowed_user(strtolower($this->dataRecord['uid']),true) == false || $app->functions->is_allowed_group(strtolower($this->dataRecord['gid']),true) == false) { + $app->tform->errorMessage .= $app->tform->lng('invalid_system_user_or_group_txt'); + } + } + /* * If the names should be restricted -> do it! */ diff --git a/interface/web/sites/lib/lang/en_ftp_user.lng b/interface/web/sites/lib/lang/en_ftp_user.lng index ed5fe0287c..2c8e2a9869 100644 --- a/interface/web/sites/lib/lang/en_ftp_user.lng +++ b/interface/web/sites/lib/lang/en_ftp_user.lng @@ -32,4 +32,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/en_shell_user.lng b/interface/web/sites/lib/lang/en_shell_user.lng index c15d1b56d4..2ae9b4e6a1 100644 --- a/interface/web/sites/lib/lang/en_shell_user.lng +++ b/interface/web/sites/lib/lang/en_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php index 3c72a5f843..9731889b74 100644 --- a/interface/web/sites/shell_user_edit.php +++ b/interface/web/sites/shell_user_edit.php @@ -135,6 +135,8 @@ class page_action extends tform_actions { } } unset($blacklist); + + if($app->functions->is_allowed_user(trim(strtolower($this->dataRecord['username']))) == false) $app->tform->errorMessage .= $app->tform->lng('username_not_allowed_txt'); /* * If the names should be restricted -> do it! @@ -163,6 +165,11 @@ class page_action extends tform_actions { $dir = $app->db->quote($web["document_root"]); $uid = $app->db->quote($web["system_user"]); $gid = $app->db->quote($web["system_group"]); + + // Check system user and group + if($app->functions->is_allowed_user($uid) == false || $app->functions->is_allowed_group($gid) == false) { + $app->error($app->tform->lng('invalid_system_user_or_group_txt')); + } // The FTP user shall be owned by the same group then the website $sys_groupid = $app->functions->intval($web['sys_groupid']); @@ -183,6 +190,13 @@ class page_action extends tform_actions { } } unset($blacklist); + + // Check system user and group + if(isset($this->dataRecord['puser'])) { + if($app->functions->is_allowed_user(strtolower($this->dataRecord['puser']),true) == false || $app->functions->is_allowed_group(strtolower($this->dataRecord['pgroup']),true) == false) { + $app->tform->errorMessage .= $app->tform->lng('invalid_system_user_or_group_txt'); + } + } /* * If the names should be restricted -> do it! diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 049eb618c1..3001c6459e 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1821,7 +1821,11 @@ class system{ public function is_allowed_user($username, $check_id = true, $restrict_names = false) { global $app; - if($username == 'root') return false; + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($username,$name_blacklist)) return false; + + if(preg_match('/^[\w\.\-]{0,32}$/', $username) == false) return false; + if($check_id && intval($this->getuid($username)) < $this->min_uid) return false; if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; @@ -1832,7 +1836,11 @@ class system{ public function is_allowed_group($groupname, $restrict_names = false) { global $app; - if($groupname == 'root') return false; + $name_blacklist = array('root','ispconfig','vmail','getmail'); + if(in_array($groupname,$name_blacklist)) return false; + + if(preg_match('/^[\w\.\-]{0,32}$/', $groupname) == false) return false; + if(intval($this->getgid($groupname)) < $this->min_gid) return false; if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; -- GitLab From b1ed926b6759ccd343fc9d43c60f51f6b25db670 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 1 Aug 2014 09:41:24 +0200 Subject: [PATCH 059/158] Improved input validation --- interface/web/admin/language_edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/admin/language_edit.php b/interface/web/admin/language_edit.php index fda70a62a3..8199244921 100644 --- a/interface/web/admin/language_edit.php +++ b/interface/web/admin/language_edit.php @@ -57,7 +57,7 @@ if(isset($_POST['records']) && is_array($_POST['records'])) { $file_content = "<?php\n"; foreach($_POST['records'] as $key => $val) { $val = stripslashes($val); - $val = str_replace('"', '\"', $val); + $val = preg_replace('/(^|[^\\\\])((\\\\\\\\)*)"/', '$1$2\\"', $val); $val = str_replace('$', '', $val); $file_content .= '$wb['."'$key'".'] = "'.$val.'";'."\n"; $msg = 'File saved.'; -- GitLab From e98a15838d8aed330ac7b1bb373b54524ea2a269 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 1 Aug 2014 11:47:00 +0200 Subject: [PATCH 060/158] Improved input validation for settings that are acessible by the admin user. --- .../lib/classes/validate_systemuser.inc.php | 64 ++++ .../web/admin/form/server_config.tform.php | 353 +++++++++++++----- .../web/admin/lib/lang/en_server_config.lng | 50 +++ interface/web/sites/form/ftp_user.tform.php | 14 + interface/web/sites/form/shell_user.tform.php | 14 + interface/web/sites/ftp_user_edit.php | 8 - interface/web/sites/shell_user_edit.php | 7 - .../web/sites/web_vhost_subdomain_edit.php | 2 + 8 files changed, 407 insertions(+), 105 deletions(-) create mode 100644 interface/lib/classes/validate_systemuser.inc.php diff --git a/interface/lib/classes/validate_systemuser.inc.php b/interface/lib/classes/validate_systemuser.inc.php new file mode 100644 index 0000000000..f1bbd2bb39 --- /dev/null +++ b/interface/lib/classes/validate_systemuser.inc.php @@ -0,0 +1,64 @@ +<?php + +/* +Copyright (c) 2014, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class validate_systemuser { + + /* + Validator function to check if a given user is ok. + */ + function check_sysuser($field_name, $field_value, $validator) { + global $app; + + $errmsg = $validator['errmsg']; + $check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false; + + if($app->functions->is_allowed_user(trim(strtolower($field_value)),$check_names) == false) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } + } + + /* + Validator function to check if a given group is ok. + */ + function check_sysgroup($field_name, $field_value, $validator) { + global $app; + + $errmsg = $validator['errmsg']; + $check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false; + + if($app->functions->is_allowed_group(trim(strtolower($field_value)),$check_names) == false) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } + } + + + + +} diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 4fa71790cb..01ac5681d9 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -167,8 +167,11 @@ $form["tabs"]['server'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '/var/backup', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'backup_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'backup_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'backup_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -274,8 +277,11 @@ $form["tabs"]['mail'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '/home/vmail/[domain]/[localpart]/', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'maildir_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'maildir_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', + 'errmsg'=> 'maildir_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -285,8 +291,11 @@ $form["tabs"]['mail'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '/home/vmail/', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'homedir_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'homedir_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'homedir_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -308,8 +317,11 @@ $form["tabs"]['mail'] = array( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', 'default' => '5000', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_uid_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_uid_error_empty'), + 1 => array('type' => 'RANGE', + 'range' => '1999:', + 'errmsg' => 'mailuser_uid_error_range'), ), 'value' => '', 'width' => '10', @@ -319,8 +331,11 @@ $form["tabs"]['mail'] = array( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', 'default' => '5000', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_gid_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_gid_error_empty'), + 1 => array('type' => 'RANGE', + 'range' => '1999:', + 'errmsg' => 'mailuser_gid_error_range'), ), 'value' => '', 'width' => '10', @@ -330,8 +345,11 @@ $form["tabs"]['mail'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => 'vmail', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_name_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_name_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'mailuser_name_error_regex'), ), 'value' => '', 'width' => '10', @@ -341,8 +359,11 @@ $form["tabs"]['mail'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => 'vmail', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_group_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_group_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'mailuser_group_name_error_regex'), ), 'value' => '', 'width' => '10', @@ -450,8 +471,11 @@ $form["tabs"]['getmail'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'getmail_config_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'getmail_config_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'getmail_config_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -481,8 +505,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_basedir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'website_basedir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'website_basedir_error_regex'), ), 'value' => '', 'width' => '40', @@ -492,8 +519,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_path_error_empty'), + 'validators' => array( 0 => array( 'type' => 'NOTEMPTY', + 'errmsg' => 'website_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', + 'errmsg'=> 'website_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -503,8 +533,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_symlinks_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'website_symlinks_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]\:]{5,128}$/', + 'errmsg'=> 'website_symlinks_error_regex'), ), 'value' => '', 'width' => '40', @@ -536,8 +569,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vhost_conf_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vhost_conf_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'vhost_conf_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -547,8 +583,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vhost_conf_enabled_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vhost_conf_enabled_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'vhost_conf_enabled_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -558,8 +597,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_vhost_conf_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_vhost_conf_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'nginx_vhost_conf_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -569,8 +611,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_vhost_conf_enabled_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_vhost_conf_enabled_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'nginx_vhost_conf_enabled_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -579,6 +624,10 @@ $form["tabs"]['web'] = array( 'CA_path' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{0,128}$/', + 'errmsg'=> 'ca_path_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -678,6 +727,13 @@ $form["tabs"]['web'] = array( 'default' => '', 'validators' => array(0 => array('type' => 'NOTEMPTY', 'errmsg' => 'apache_user_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => false, + 'errmsg' => 'invalid_apache_user_txt' + ), ), 'value' => '', 'width' => '40', @@ -689,6 +745,13 @@ $form["tabs"]['web'] = array( 'default' => '', 'validators' => array(0 => array('type' => 'NOTEMPTY', 'errmsg' => 'apache_group_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => false, + 'errmsg' => 'invalid_apache_group_txt' + ), ), 'value' => '', 'width' => '40', @@ -715,8 +778,15 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_user_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_user_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => false, + 'errmsg' => 'invalid_nginx_user_txt' + ), ), 'value' => '', 'width' => '40', @@ -726,8 +796,15 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_group_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_group_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => false, + 'errmsg' => 'invalid_nginx_group_txt' + ), ), 'value' => '', 'width' => '40', @@ -737,8 +814,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_ini_path_apache_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_ini_path_apache_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_ini_path_apache_error_regex'), ), 'value' => '', 'width' => '40', @@ -748,8 +828,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_ini_path_cgi_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_ini_path_cgi_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_ini_path_cgi_error_regex'), ), 'value' => '', 'width' => '40', @@ -759,8 +842,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_init_script_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_init_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_]{1,128}$/', + 'errmsg'=> 'php_fpm_init_script_error_regex'), ), 'value' => '', 'width' => '40', @@ -770,8 +856,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_ini_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_ini_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_ini_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -781,8 +870,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_pool_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_pool_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_pool_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -792,7 +884,7 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'validators' => array(0 => array('type' => 'ISPOSITIVE', 'errmsg' => 'php_fpm_start_port_error_empty'), ), 'value' => '', @@ -803,8 +895,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_socket_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_socket_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_socket_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -814,8 +909,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_open_basedir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_open_basedir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\]\[\:]{1,}$/', + 'errmsg'=> 'php_open_basedir_error_regex'), ), 'value' => '', 'width' => '40', @@ -825,8 +923,11 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_cgi_socket_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_cgi_socket_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'nginx_cgi_socket_error_regex'), ), 'value' => '', 'width' => '40', @@ -836,8 +937,8 @@ $form["tabs"]['web'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'htaccess_allow_override_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'htaccess_allow_override_error_empty'), ), 'value' => '', 'width' => '40', @@ -884,6 +985,12 @@ $form["tabs"]['web'] = array( 'awstats_data_dir' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_data_dir_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_data_dir_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -892,6 +999,12 @@ $form["tabs"]['web'] = array( 'awstats_pl' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_pl_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_pl_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -900,6 +1013,12 @@ $form["tabs"]['web'] = array( 'awstats_buildstaticpages_pl' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_buildstaticpages_pl_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_buildstaticpages_pl_error_regex'), + ), 'default' => '', 'value' => '', 'width' => '40', @@ -923,8 +1042,11 @@ $form["tabs"]['dns'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_user_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_user_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'invalid_bind_user_txt'), ), 'value' => '', 'width' => '40', @@ -934,8 +1056,11 @@ $form["tabs"]['dns'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_group_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_group_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'invalid_bind_group_txt'), ), 'value' => '', 'width' => '40', @@ -945,8 +1070,11 @@ $form["tabs"]['dns'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_zonefiles_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_zonefiles_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'bind_zonefiles_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -956,8 +1084,11 @@ $form["tabs"]['dns'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'named_conf_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'named_conf_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'named_conf_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -967,8 +1098,11 @@ $form["tabs"]['dns'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'named_conf_local_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'named_conf_local_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'named_conf_local_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -992,8 +1126,11 @@ $form["tabs"]['fastcgi'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_starter_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_starter_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_starter_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -1003,8 +1140,11 @@ $form["tabs"]['fastcgi'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_starter_script_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_starter_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'fastcgi_starter_script_error_regex'), ), 'value' => '', 'width' => '40', @@ -1014,8 +1154,11 @@ $form["tabs"]['fastcgi'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_alias_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_alias_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'fastcgi_alias_error_regex'), ), 'value' => '', 'width' => '40', @@ -1025,8 +1168,11 @@ $form["tabs"]['fastcgi'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_phpini_path_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_phpini_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_phpini_path_error_regex'), ), 'value' => '', 'width' => '40', @@ -1036,7 +1182,7 @@ $form["tabs"]['fastcgi'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'validators' => array(0 => array('type' => 'ISPOSITIVE', 'errmsg' => 'fastcgi_children_error_empty'), ), 'value' => '', @@ -1061,8 +1207,11 @@ $form["tabs"]['fastcgi'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_bin_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_bin_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_bin_error_regex'), ), 'value' => '', 'width' => '40', @@ -1095,8 +1244,11 @@ $form["tabs"]['jailkit'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_home_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_home_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'jailkit_chroot_home_error_regex'), ), 'value' => '', 'width' => '40', @@ -1106,8 +1258,11 @@ $form["tabs"]['jailkit'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_app_sections_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_app_sections_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\-\_\ ]{1,128}$/', + 'errmsg'=> 'jailkit_chroot_app_sections_error_regex'), ), 'value' => '', 'width' => '40', @@ -1117,8 +1272,11 @@ $form["tabs"]['jailkit'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_app_programs_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_app_programs_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', + 'errmsg'=> 'jailkit_chroot_app_programs_error_regex'), ), 'value' => '', 'width' => '40', @@ -1128,8 +1286,11 @@ $form["tabs"]['jailkit'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_cron_programs_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_cron_programs_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', + 'errmsg'=> 'jailkit_chroot_cron_programs_error_regex'), ), 'value' => '', 'width' => '40', @@ -1217,8 +1378,11 @@ $form["tabs"]['vlogger'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vlogger_config_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vlogger_config_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'vlogger_config_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -1244,8 +1408,11 @@ $form["tabs"]['cron'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'cron_init_script_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'cron_init_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\-\_]{1,30}$/', + 'errmsg'=> 'cron_init_script_error_regex'), ), 'value' => '', 'width' => '40', @@ -1255,8 +1422,11 @@ $form["tabs"]['cron'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'crontab_dir_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'crontab_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'crontab_dir_error_regex'), ), 'value' => '', 'width' => '40', @@ -1266,8 +1436,11 @@ $form["tabs"]['cron'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'cron_wget_error_empty'), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'cron_wget_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'cron_wget_error_regex'), ), 'value' => '', 'width' => '40', diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index 5ce704d9e8..cc34e05ac3 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -191,4 +191,54 @@ $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php index f328f7fdb6..ef11b6058a 100644 --- a/interface/web/sites/form/ftp_user.tform.php +++ b/interface/web/sites/form/ftp_user.tform.php @@ -166,6 +166,13 @@ if($app->auth->is_admin()) { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'uid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', @@ -177,6 +184,13 @@ if($app->auth->is_admin()) { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'gid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index d8df458aa0..062ed6e0b0 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -177,6 +177,13 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'uid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', @@ -188,6 +195,13 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'uid_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '0', 'value' => '', diff --git a/interface/web/sites/ftp_user_edit.php b/interface/web/sites/ftp_user_edit.php index edf47a38d8..ba695e0ff8 100644 --- a/interface/web/sites/ftp_user_edit.php +++ b/interface/web/sites/ftp_user_edit.php @@ -154,14 +154,6 @@ class page_action extends tform_actions { function onBeforeUpdate() { global $app, $conf, $interfaceConf; - - // Check system user and group - if(isset($this->dataRecord['uid'])) { - if($app->functions->is_allowed_user(strtolower($this->dataRecord['uid']),true) == false || $app->functions->is_allowed_group(strtolower($this->dataRecord['gid']),true) == false) { - $app->tform->errorMessage .= $app->tform->lng('invalid_system_user_or_group_txt'); - } - } - /* * If the names should be restricted -> do it! */ diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php index 9731889b74..f301139d40 100644 --- a/interface/web/sites/shell_user_edit.php +++ b/interface/web/sites/shell_user_edit.php @@ -190,13 +190,6 @@ class page_action extends tform_actions { } } unset($blacklist); - - // Check system user and group - if(isset($this->dataRecord['puser'])) { - if($app->functions->is_allowed_user(strtolower($this->dataRecord['puser']),true) == false || $app->functions->is_allowed_group(strtolower($this->dataRecord['pgroup']),true) == false) { - $app->tform->errorMessage .= $app->tform->lng('invalid_system_user_or_group_txt'); - } - } /* * If the names should be restricted -> do it! diff --git a/interface/web/sites/web_vhost_subdomain_edit.php b/interface/web/sites/web_vhost_subdomain_edit.php index 37359a25d5..ef1fc4ca02 100644 --- a/interface/web/sites/web_vhost_subdomain_edit.php +++ b/interface/web/sites/web_vhost_subdomain_edit.php @@ -341,6 +341,8 @@ class page_action extends tform_actions { $this->dataRecord["ipv6_address"] = $parent_domain["ipv6_address"]; $this->dataRecord["client_group_id"] = $parent_domain["client_group_id"]; $this->dataRecord["vhost_type"] = 'name'; + $this->dataRecord["system_user"] = $parent_domain["system_user"]; + $this->dataRecord["system_group"] = $parent_domain["system_group"]; $this->parent_domain_record = $parent_domain; -- GitLab From cda33c161a1145d4652b2a8537d5833f144e11e2 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 1 Aug 2014 11:53:40 +0200 Subject: [PATCH 061/158] Merged language files. --- interface/lib/lang/el.lng | 2 +- interface/lib/lang/fr.lng | 2 +- interface/lib/lang/se.lng | 3 +- .../web/admin/lib/lang/ar_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/bg_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/br_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/cz_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/de_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/el_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/el_system_config.lng | 2 +- .../web/admin/lib/lang/es_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/fi_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/fr_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/fr_system_config.lng | 2 +- .../web/admin/lib/lang/hr_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/hu_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/id_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/it_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/ja_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/nl_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/pl_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/pt_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/ro_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/ru_server_config.lng | 52 +++++++++++++++++- interface/web/admin/lib/lang/se.lng | 1 - .../admin/lib/lang/se_directive_snippets.lng | 1 - .../lib/lang/se_directive_snippets_list.lng | 1 - interface/web/admin/lib/lang/se_firewall.lng | 1 - .../web/admin/lib/lang/se_firewall_list.lng | 1 - interface/web/admin/lib/lang/se_groups.lng | 1 - .../web/admin/lib/lang/se_groups_list.lng | 1 - interface/web/admin/lib/lang/se_iptables.lng | 1 - .../web/admin/lib/lang/se_iptables_list.lng | 1 - .../web/admin/lib/lang/se_language_add.lng | 1 - .../admin/lib/lang/se_language_complete.lng | 1 - .../web/admin/lib/lang/se_language_edit.lng | 1 - .../web/admin/lib/lang/se_language_export.lng | 1 - .../web/admin/lib/lang/se_language_import.lng | 1 - .../web/admin/lib/lang/se_language_list.lng | 1 - interface/web/admin/lib/lang/se_login_as.lng | 12 ----- .../web/admin/lib/lang/se_package_install.lng | 1 - .../web/admin/lib/lang/se_remote_action.lng | 1 - .../web/admin/lib/lang/se_remote_user.lng | 1 - .../admin/lib/lang/se_remote_user_list.lng | 1 - interface/web/admin/lib/lang/se_server.lng | 1 - .../web/admin/lib/lang/se_server_config.lng | 53 ++++++++++++++++++- .../admin/lib/lang/se_server_config_list.lng | 1 - interface/web/admin/lib/lang/se_server_ip.lng | 1 - .../web/admin/lib/lang/se_server_ip_list.lng | 1 - .../web/admin/lib/lang/se_server_list.lng | 1 - .../web/admin/lib/lang/se_server_php.lng | 1 - .../web/admin/lib/lang/se_server_php_list.lng | 1 - .../admin/lib/lang/se_software_package.lng | 1 - .../lib/lang/se_software_package_install.lng | 1 - .../lib/lang/se_software_package_list.lng | 1 - .../web/admin/lib/lang/se_software_repo.lng | 1 - .../admin/lib/lang/se_software_repo_list.lng | 1 - .../lib/lang/se_software_update_list.lng | 1 - .../web/admin/lib/lang/se_system_config.lng | 3 +- .../admin/lib/lang/se_tpl_default_admin.lng | 1 - interface/web/admin/lib/lang/se_users.lng | 1 - .../web/admin/lib/lang/se_users_list.lng | 1 - .../web/admin/lib/lang/sk_server_config.lng | 52 +++++++++++++++++- .../web/admin/lib/lang/tr_server_config.lng | 52 +++++++++++++++++- interface/web/client/lib/lang/el_reseller.lng | 2 +- interface/web/client/lib/lang/fr_client.lng | 2 +- interface/web/client/lib/lang/fr_reseller.lng | 2 +- interface/web/client/lib/lang/se.lng | 1 - interface/web/client/lib/lang/se_client.lng | 3 +- .../web/client/lib/lang/se_client_circle.lng | 1 - .../client/lib/lang/se_client_circle_list.lng | 1 - .../web/client/lib/lang/se_client_del.lng | 1 - .../web/client/lib/lang/se_client_message.lng | 1 - .../lib/lang/se_client_message_template.lng | 1 - .../lang/se_client_message_template_list.lng | 1 - .../client/lib/lang/se_client_template.lng | 1 - .../lib/lang/se_client_template_list.lng | 1 - .../web/client/lib/lang/se_clients_list.lng | 1 - interface/web/client/lib/lang/se_domain.lng | 1 - .../web/client/lib/lang/se_domain_list.lng | 1 - interface/web/client/lib/lang/se_reseller.lng | 1 - .../web/client/lib/lang/se_resellers_list.lng | 1 - interface/web/dashboard/lib/lang/se.lng | 1 - .../dashboard/lib/lang/se_dashlet_limits.lng | 1 - .../lib/lang/se_dashlet_mailquota.lng | 1 - .../dashboard/lib/lang/se_dashlet_modules.lng | 1 - .../dashboard/lib/lang/se_dashlet_quota.lng | 1 - interface/web/designer/lib/lang/se.lng | 1 - .../web/designer/lib/lang/se_form_edit.lng | 1 - .../web/designer/lib/lang/se_form_list.lng | 1 - .../web/designer/lib/lang/se_form_show.lng | 1 - .../web/designer/lib/lang/se_module_edit.lng | 1 - .../web/designer/lib/lang/se_module_list.lng | 1 - .../designer/lib/lang/se_module_nav_edit.lng | 1 - .../lib/lang/se_module_nav_item_edit.lng | 1 - .../web/designer/lib/lang/se_module_show.lng | 1 - .../dns/lib/lang/ar_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/ar_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/bg_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/bg_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/br_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/br_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/cz_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/cz_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/el_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/el_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/es_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/es_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/fi_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/fi_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/fr_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/fr_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/hr_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/hr_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/hu_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/hu_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/id_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/id_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/it_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/it_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/ja_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/ja_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/nl_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/nl_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/pl_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/pl_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/pt_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/pt_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/ro_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/ro_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/ru_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/ru_dns_soa_admin_list.lng | 11 ++++ interface/web/dns/lib/lang/se.lng | 1 - interface/web/dns/lib/lang/se_dns_a.lng | 1 - interface/web/dns/lib/lang/se_dns_a_list.lng | 1 - interface/web/dns/lib/lang/se_dns_aaaa.lng | 1 - interface/web/dns/lib/lang/se_dns_alias.lng | 1 - interface/web/dns/lib/lang/se_dns_cname.lng | 1 - interface/web/dns/lib/lang/se_dns_hinfo.lng | 1 - interface/web/dns/lib/lang/se_dns_import.lng | 1 - interface/web/dns/lib/lang/se_dns_mx.lng | 1 - interface/web/dns/lib/lang/se_dns_ns.lng | 1 - interface/web/dns/lib/lang/se_dns_ptr.lng | 1 - interface/web/dns/lib/lang/se_dns_rp.lng | 1 - interface/web/dns/lib/lang/se_dns_slave.lng | 1 - .../dns/lib/lang/se_dns_slave_admin_list.lng | 10 ++++ .../web/dns/lib/lang/se_dns_slave_list.lng | 1 - interface/web/dns/lib/lang/se_dns_soa.lng | 1 - .../dns/lib/lang/se_dns_soa_admin_list.lng | 11 ++++ .../web/dns/lib/lang/se_dns_soa_list.lng | 1 - interface/web/dns/lib/lang/se_dns_srv.lng | 1 - .../web/dns/lib/lang/se_dns_template.lng | 1 - .../web/dns/lib/lang/se_dns_template_list.lng | 1 - interface/web/dns/lib/lang/se_dns_txt.lng | 1 - interface/web/dns/lib/lang/se_dns_wizard.lng | 1 - .../dns/lib/lang/sk_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/sk_dns_soa_admin_list.lng | 11 ++++ .../dns/lib/lang/tr_dns_slave_admin_list.lng | 10 ++++ .../dns/lib/lang/tr_dns_soa_admin_list.lng | 11 ++++ interface/web/help/lib/lang/se.lng | 1 - interface/web/help/lib/lang/se_faq_form.lng | 1 - .../lib/lang/se_faq_manage_questions_list.lng | 1 - .../help/lib/lang/se_faq_sections_form.lng | 1 - .../web/help/lib/lang/se_help_faq_list.lng | 1 - .../lib/lang/se_help_faq_sections_list.lng | 1 - .../web/help/lib/lang/se_support_message.lng | 1 - .../help/lib/lang/se_support_message_list.lng | 1 - interface/web/login/lib/lang/se.lng | 1 - interface/web/login/lib/lang/se_login_as.lng | 7 ++- interface/web/mail/lib/lang/fr_mail_get.lng | 2 +- interface/web/mail/lib/lang/se.lng | 1 - interface/web/mail/lib/lang/se_mail_alias.lng | 1 - .../web/mail/lib/lang/se_mail_alias_list.lng | 1 - .../web/mail/lib/lang/se_mail_aliasdomain.lng | 1 - .../lib/lang/se_mail_aliasdomain_list.lng | 1 - .../web/mail/lib/lang/se_mail_blacklist.lng | 1 - .../mail/lib/lang/se_mail_blacklist_list.lng | 1 - .../mail/lib/lang/se_mail_content_filter.lng | 1 - .../lib/lang/se_mail_content_filter_list.lng | 1 - .../web/mail/lib/lang/se_mail_domain.lng | 1 - .../lib/lang/se_mail_domain_admin_list.lng | 1 - .../mail/lib/lang/se_mail_domain_catchall.lng | 1 - .../lib/lang/se_mail_domain_catchall_list.lng | 1 - .../web/mail/lib/lang/se_mail_domain_list.lng | 1 - .../web/mail/lib/lang/se_mail_forward.lng | 1 - .../mail/lib/lang/se_mail_forward_list.lng | 1 - interface/web/mail/lib/lang/se_mail_get.lng | 3 +- .../web/mail/lib/lang/se_mail_get_list.lng | 1 - .../web/mail/lib/lang/se_mail_mailinglist.lng | 1 - .../lib/lang/se_mail_mailinglist_list.lng | 1 - .../mail/lib/lang/se_mail_relay_recipient.lng | 1 - .../lib/lang/se_mail_relay_recipient_list.lng | 1 - .../web/mail/lib/lang/se_mail_spamfilter.lng | 1 - .../mail/lib/lang/se_mail_spamfilter_list.lng | 1 - .../web/mail/lib/lang/se_mail_transport.lng | 1 - .../mail/lib/lang/se_mail_transport_list.lng | 1 - interface/web/mail/lib/lang/se_mail_user.lng | 1 - .../web/mail/lib/lang/se_mail_user_filter.lng | 1 - .../lib/lang/se_mail_user_filter_list.lng | 1 - .../web/mail/lib/lang/se_mail_user_list.lng | 1 - .../mail/lib/lang/se_mail_user_stats_list.lng | 1 - .../web/mail/lib/lang/se_mail_whitelist.lng | 1 - .../mail/lib/lang/se_mail_whitelist_list.lng | 1 - .../mail/lib/lang/se_spamfilter_blacklist.lng | 1 - .../lib/lang/se_spamfilter_blacklist_list.lng | 1 - .../mail/lib/lang/se_spamfilter_config.lng | 1 - .../lib/lang/se_spamfilter_config_list.lng | 1 - .../mail/lib/lang/se_spamfilter_policy.lng | 1 - .../lib/lang/se_spamfilter_policy_list.lng | 1 - .../web/mail/lib/lang/se_spamfilter_users.lng | 1 - .../lib/lang/se_spamfilter_users_list.lng | 1 - .../mail/lib/lang/se_spamfilter_whitelist.lng | 1 - .../lib/lang/se_spamfilter_whitelist_list.lng | 1 - .../lib/lang/se_user_quota_stats_list.lng | 1 - interface/web/mailuser/lib/lang/se.lng | 1 - interface/web/mailuser/lib/lang/se_index.lng | 1 - .../lib/lang/se_mail_user_autoresponder.lng | 1 - .../web/mailuser/lib/lang/se_mail_user_cc.lng | 1 - .../mailuser/lib/lang/se_mail_user_filter.lng | 1 - .../lib/lang/se_mail_user_filter_list.lng | 1 - .../lib/lang/se_mail_user_password.lng | 1 - .../lib/lang/se_mail_user_spamfilter.lng | 1 - interface/web/monitor/lib/lang/se.lng | 1 - .../web/monitor/lib/lang/se_datalog_list.lng | 1 - .../web/monitor/lib/lang/se_syslog_list.lng | 1 - interface/web/sites/lib/lang/ar_ftp_user.lng | 2 + .../web/sites/lib/lang/ar_shell_user.lng | 3 ++ .../web/sites/lib/lang/ar_web_folder_list.lng | 1 + .../lib/lang/ar_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/bg_ftp_user.lng | 2 + .../web/sites/lib/lang/bg_shell_user.lng | 3 ++ .../web/sites/lib/lang/bg_web_folder_list.lng | 1 + .../lib/lang/bg_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/br_ftp_user.lng | 2 + .../web/sites/lib/lang/br_shell_user.lng | 3 ++ .../web/sites/lib/lang/br_web_folder_list.lng | 1 + .../lib/lang/br_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/cz_ftp_user.lng | 2 + .../web/sites/lib/lang/cz_shell_user.lng | 3 ++ .../web/sites/lib/lang/cz_web_folder_list.lng | 1 + .../lib/lang/cz_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/de_ftp_user.lng | 2 + .../web/sites/lib/lang/de_shell_user.lng | 3 ++ .../web/sites/lib/lang/de_web_folder_list.lng | 2 +- .../lib/lang/de_web_folder_user_list.lng | 2 +- interface/web/sites/lib/lang/el_ftp_user.lng | 2 + .../web/sites/lib/lang/el_shell_user.lng | 3 ++ .../web/sites/lib/lang/el_web_folder_list.lng | 1 + .../lib/lang/el_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/es_ftp_user.lng | 2 + .../web/sites/lib/lang/es_shell_user.lng | 3 ++ .../web/sites/lib/lang/es_web_folder_list.lng | 1 + .../lib/lang/es_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/fi_ftp_user.lng | 2 + .../web/sites/lib/lang/fi_shell_user.lng | 3 ++ .../web/sites/lib/lang/fi_web_folder_list.lng | 1 + .../lib/lang/fi_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/fr.lng | 2 +- interface/web/sites/lib/lang/fr_aps.lng | 16 +++--- interface/web/sites/lib/lang/fr_ftp_user.lng | 2 + .../web/sites/lib/lang/fr_shell_user.lng | 3 ++ .../web/sites/lib/lang/fr_web_folder_list.lng | 1 + .../lib/lang/fr_web_folder_user_list.lng | 1 + .../web/sites/lib/lang/fr_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/hr_ftp_user.lng | 2 + .../web/sites/lib/lang/hr_shell_user.lng | 3 ++ .../web/sites/lib/lang/hr_web_folder_list.lng | 1 + .../lib/lang/hr_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/hu_ftp_user.lng | 2 + .../web/sites/lib/lang/hu_shell_user.lng | 3 ++ .../web/sites/lib/lang/hu_web_folder_list.lng | 1 + .../lib/lang/hu_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/id_ftp_user.lng | 2 + .../web/sites/lib/lang/id_shell_user.lng | 3 ++ .../web/sites/lib/lang/id_web_folder_list.lng | 1 + .../lib/lang/id_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/it_ftp_user.lng | 2 + .../web/sites/lib/lang/it_shell_user.lng | 3 ++ .../web/sites/lib/lang/it_web_folder_list.lng | 1 + .../lib/lang/it_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/ja_ftp_user.lng | 2 + .../web/sites/lib/lang/ja_shell_user.lng | 3 ++ .../web/sites/lib/lang/ja_web_folder_list.lng | 1 + .../lib/lang/ja_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/nl_ftp_user.lng | 2 + .../web/sites/lib/lang/nl_shell_user.lng | 3 ++ .../web/sites/lib/lang/nl_web_folder_list.lng | 1 + .../lib/lang/nl_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/pl_ftp_user.lng | 2 + .../web/sites/lib/lang/pl_shell_user.lng | 3 ++ .../web/sites/lib/lang/pl_web_folder_list.lng | 1 + .../lib/lang/pl_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/pt_ftp_user.lng | 2 + .../web/sites/lib/lang/pt_shell_user.lng | 3 ++ .../web/sites/lib/lang/pt_web_folder_list.lng | 1 + .../lib/lang/pt_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/ro_ftp_user.lng | 2 + .../web/sites/lib/lang/ro_shell_user.lng | 3 ++ .../web/sites/lib/lang/ro_web_folder_list.lng | 1 + .../lib/lang/ro_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/ru_ftp_user.lng | 2 + .../web/sites/lib/lang/ru_shell_user.lng | 3 ++ .../web/sites/lib/lang/ru_web_folder_list.lng | 1 + .../lib/lang/ru_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/se.lng | 3 +- interface/web/sites/lib/lang/se_aps.lng | 17 +++--- .../sites/lib/lang/se_aps_instances_list.lng | 1 - .../sites/lib/lang/se_aps_packages_list.lng | 1 - .../lib/lang/se_aps_update_packagelist.lng | 1 - interface/web/sites/lib/lang/se_cron.lng | 1 - interface/web/sites/lib/lang/se_cron_list.lng | 1 - interface/web/sites/lib/lang/se_database.lng | 1 - .../sites/lib/lang/se_database_admin_list.lng | 1 - .../web/sites/lib/lang/se_database_list.lng | 1 - .../web/sites/lib/lang/se_database_user.lng | 1 - .../lib/lang/se_database_user_admin_list.lng | 1 - .../sites/lib/lang/se_database_user_list.lng | 1 - interface/web/sites/lib/lang/se_ftp_user.lng | 3 +- .../web/sites/lib/lang/se_ftp_user_list.lng | 1 - .../web/sites/lib/lang/se_shell_user.lng | 4 +- .../web/sites/lib/lang/se_shell_user_list.lng | 1 - .../lib/lang/se_user_quota_stats_list.lng | 1 - .../web/sites/lib/lang/se_web_aliasdomain.lng | 1 - .../lib/lang/se_web_aliasdomain_list.lng | 1 - .../web/sites/lib/lang/se_web_backup_list.lng | 1 - .../web/sites/lib/lang/se_web_domain.lng | 1 - .../lib/lang/se_web_domain_admin_list.lng | 1 - .../web/sites/lib/lang/se_web_domain_list.lng | 1 - .../web/sites/lib/lang/se_web_folder.lng | 1 - .../web/sites/lib/lang/se_web_folder_list.lng | 2 +- .../web/sites/lib/lang/se_web_folder_user.lng | 1 - .../lib/lang/se_web_folder_user_list.lng | 2 +- .../lib/lang/se_web_sites_stats_list.lng | 1 - .../web/sites/lib/lang/se_web_subdomain.lng | 3 +- .../sites/lib/lang/se_web_subdomain_list.lng | 1 - .../sites/lib/lang/se_web_vhost_subdomain.lng | 1 - .../lib/lang/se_web_vhost_subdomain_list.lng | 1 - .../web/sites/lib/lang/se_webdav_user.lng | 1 - .../sites/lib/lang/se_webdav_user_list.lng | 1 - interface/web/sites/lib/lang/sk_ftp_user.lng | 2 + .../web/sites/lib/lang/sk_shell_user.lng | 3 ++ .../web/sites/lib/lang/sk_web_folder_list.lng | 1 + .../lib/lang/sk_web_folder_user_list.lng | 1 + interface/web/sites/lib/lang/tr_ftp_user.lng | 2 + .../web/sites/lib/lang/tr_shell_user.lng | 3 ++ .../web/sites/lib/lang/tr_web_folder_list.lng | 1 + .../lib/lang/tr_web_folder_user_list.lng | 1 + .../lib/lang/se_strengthmeter.lng | 1 - interface/web/tools/lib/lang/se.lng | 1 - .../tools/lib/lang/se_import_ispconfig.lng | 1 - interface/web/tools/lib/lang/se_index.lng | 1 - interface/web/tools/lib/lang/se_interface.lng | 1 - .../web/tools/lib/lang/se_tpl_default.lng | 1 - .../web/tools/lib/lang/se_usersettings.lng | 1 - interface/web/vm/lib/lang/se.lng | 1 - .../web/vm/lib/lang/se_openvz_action.lng | 1 - interface/web/vm/lib/lang/se_openvz_ip.lng | 1 - .../web/vm/lib/lang/se_openvz_ip_list.lng | 1 - .../web/vm/lib/lang/se_openvz_ostemplate.lng | 1 - .../vm/lib/lang/se_openvz_ostemplate_list.lng | 1 - .../web/vm/lib/lang/se_openvz_template.lng | 1 - .../vm/lib/lang/se_openvz_template_list.lng | 1 - interface/web/vm/lib/lang/se_openvz_vm.lng | 1 - .../web/vm/lib/lang/se_openvz_vm_list.lng | 1 - 364 files changed, 1752 insertions(+), 276 deletions(-) delete mode 100644 interface/web/admin/lib/lang/se_login_as.lng create mode 100644 interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/br_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/br_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/el_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/el_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/es_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/es_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/id_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/id_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/it_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/it_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/se_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/se_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng create mode 100644 interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng create mode 100644 interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index 5f7cb709e9..20f26a448d 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -145,6 +145,6 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; ?> diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng index f344dc3a43..613f2a3428 100644 --- a/interface/lib/lang/fr.lng +++ b/interface/lib/lang/fr.lng @@ -145,6 +145,6 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; ?> diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index 5f493339ec..41a972f5ca 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -145,7 +145,6 @@ $wb['strength_2'] = 'SÃ¥där'; $wb['strength_3'] = 'Bra'; $wb['strength_4'] = 'Starkt'; $wb['strength_5'] = 'Väldigt starkt'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of "{strength}".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; ?> - diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 2a404c6734..7f23b7d2bf 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index ef13ef5502..b15c3c6d01 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 66bacf2511..2b0dd67050 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index 41d1bf8c46..c2db3bab0f 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin heslo'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Zástupný symbol'; $wb['backup_dir_is_mount_txt'] = 'PÅ™ipojit adresář pro zálohy ?'; -$wb['backup_dir_mount_cmd_txt'] = 'PÅ™Ãkaz pÅ™ipojenÃ, pokud adresář pro zálohy nenà pÅ™ipojen . (napÅ™. mount ...)'; $wb['monitor_system_updates_txt'] = 'Kontrolovat aktualizace Linuxu'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 3711d4a0d4..b040dba086 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin-Passwort'; $wb['munin_url_error_regex'] = 'Ungültige Munin-URL'; $wb['munin_url_note_txt'] = 'Platzhalter:'; $wb['backup_dir_is_mount_txt'] = 'Backupverzeichnis ist ein eigener Mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount-Befehl, falls Backupverzeichnis nicht gemountet'; $wb['monitor_system_updates_txt'] = 'Suche nach Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 38da1e4024..6ab52a93c9 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 41dff65d03..6c4f9a61da 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 1942704007..42aeb0942a 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index a1a5c6308a..13ef9f3337 100755 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index cee1433739..d66d977f16 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 9abcd05a23..3c07c65fcc 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 39bbc2a84b..1b71f0b74c 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 178a323a2e..4a1752564d 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index 4ef64144d9..ac67571dfb 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index d2a6288b93..fac8b35bb8 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 06e2bb6598..110148ce11 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index d94b5679db..fb97a2ce24 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 6d74f7d43c..ada98882b1 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index b31598ca2d..e9fcd3736a 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 06b78eb38c..078910fc12 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 9c8e58fc24..9f881ae248 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/se.lng b/interface/web/admin/lib/lang/se.lng index 510119279a..0df5d1aa40 100644 --- a/interface/web/admin/lib/lang/se.lng +++ b/interface/web/admin/lib/lang/se.lng @@ -48,4 +48,3 @@ $wb['Do OS-Update'] = 'Utför OS-uppdatering'; $wb['Do ISPConfig-Update'] = 'Utför ISPConfig-uppdatering'; $wb['Directive Snippets'] = 'Directive Snippets'; ?> - diff --git a/interface/web/admin/lib/lang/se_directive_snippets.lng b/interface/web/admin/lib/lang/se_directive_snippets.lng index 5366bf17a3..0f09c12ee0 100644 --- a/interface/web/admin/lib/lang/se_directive_snippets.lng +++ b/interface/web/admin/lib/lang/se_directive_snippets.lng @@ -8,4 +8,3 @@ $wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.'; $wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.'; $wb['variables_txt'] = 'Variables'; ?> - diff --git a/interface/web/admin/lib/lang/se_directive_snippets_list.lng b/interface/web/admin/lib/lang/se_directive_snippets_list.lng index 3eac528a20..4124ea3464 100644 --- a/interface/web/admin/lib/lang/se_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/se_directive_snippets_list.lng @@ -5,4 +5,3 @@ $wb['name_txt'] = 'Name of Snippet'; $wb['type_txt'] = 'Type'; $wb['add_new_record_txt'] = 'Add Directive Snippet'; ?> - diff --git a/interface/web/admin/lib/lang/se_firewall.lng b/interface/web/admin/lib/lang/se_firewall.lng index 4ae1ed6738..123a648300 100644 --- a/interface/web/admin/lib/lang/se_firewall.lng +++ b/interface/web/admin/lib/lang/se_firewall.lng @@ -9,4 +9,3 @@ $wb['firewall_error_unique'] = 'Det finns redan ett brandväggsinlägg för den $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.'; ?> - diff --git a/interface/web/admin/lib/lang/se_firewall_list.lng b/interface/web/admin/lib/lang/se_firewall_list.lng index eff32d328c..6f6f9ce17d 100644 --- a/interface/web/admin/lib/lang/se_firewall_list.lng +++ b/interface/web/admin/lib/lang/se_firewall_list.lng @@ -6,4 +6,3 @@ $wb['tcp_port_txt'] = 'Öppna TCP-portar'; $wb['udp_port_txt'] = 'Öppna UDP-portar'; $wb['add_new_record_txt'] = 'Lägg till brandväggsinlägg'; ?> - diff --git a/interface/web/admin/lib/lang/se_groups.lng b/interface/web/admin/lib/lang/se_groups.lng index 175a422551..4bb34b109d 100644 --- a/interface/web/admin/lib/lang/se_groups.lng +++ b/interface/web/admin/lib/lang/se_groups.lng @@ -3,4 +3,3 @@ $wb['description_txt'] = 'Beskrivning'; $wb['name_txt'] = 'Grupp'; $wb['name_err'] = 'Gruppnamnet mÃ¥ste ha minst 1 och max 30 tecken.'; ?> - diff --git a/interface/web/admin/lib/lang/se_groups_list.lng b/interface/web/admin/lib/lang/se_groups_list.lng index b5486da5a8..fe3f4bec52 100644 --- a/interface/web/admin/lib/lang/se_groups_list.lng +++ b/interface/web/admin/lib/lang/se_groups_list.lng @@ -5,4 +5,3 @@ $wb['name_txt'] = 'Grupp'; $wb['add_new_record_txt'] = 'Lägg till ny grupp'; $wb['warning_txt'] = '<b>VARNING:</b> Ändra inte nÃ¥gra användarinställningar här. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; ?> - diff --git a/interface/web/admin/lib/lang/se_iptables.lng b/interface/web/admin/lib/lang/se_iptables.lng index 7c7dbfdb3c..b4e6bf8f25 100644 --- a/interface/web/admin/lib/lang/se_iptables.lng +++ b/interface/web/admin/lib/lang/se_iptables.lng @@ -11,4 +11,3 @@ $wb['source_ip_txt'] = 'Källadress'; $wb['active_txt'] = 'Aktiv'; $wb['iptables_error_unique'] = 'Det finns redan brandväggsinlägg för den här servern'; ?> - diff --git a/interface/web/admin/lib/lang/se_iptables_list.lng b/interface/web/admin/lib/lang/se_iptables_list.lng index 3d400b4cd3..74a06dfbca 100644 --- a/interface/web/admin/lib/lang/se_iptables_list.lng +++ b/interface/web/admin/lib/lang/se_iptables_list.lng @@ -13,4 +13,3 @@ $wb['source_ip_txt'] = 'Källadress'; $wb['active_txt'] = 'Aktiv'; $wb['iptables_error_unique'] = 'Det finns redan ett brandväggsinlägg för den här servern'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_add.lng b/interface/web/admin/lib/lang/se_language_add.lng index a0607f2c16..59dbeeed35 100644 --- a/interface/web/admin/lib/lang/se_language_add.lng +++ b/interface/web/admin/lib/lang/se_language_add.lng @@ -6,4 +6,3 @@ $wb['btn_save_txt'] = 'Skapa nya sprÃ¥kfiler'; $wb['btn_cancel_txt'] = 'Tillbaka'; $wb['language_new_hint_txt'] = '2 characters ISO 639-1 language-code (See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_complete.lng b/interface/web/admin/lib/lang/se_language_complete.lng index 9fc84589d5..539c95641d 100644 --- a/interface/web/admin/lib/lang/se_language_complete.lng +++ b/interface/web/admin/lib/lang/se_language_complete.lng @@ -5,4 +5,3 @@ $wb['btn_save_txt'] = 'SlÃ¥ ihop filer nu'; $wb['btn_cancel_txt'] = 'Tillbaka'; $wb['list_desc_txt'] = 'SlÃ¥ ihop sprÃ¥kfilen med den engelska huvudfilen. <br />Detta lägger till saknade fraser frÃ¥n den engelska sprÃ¥kfilen till den valda sprÃ¥kfilen'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_edit.lng b/interface/web/admin/lib/lang/se_language_edit.lng index e02c9a9e02..076caaa0fa 100644 --- a/interface/web/admin/lib/lang/se_language_edit.lng +++ b/interface/web/admin/lib/lang/se_language_edit.lng @@ -6,4 +6,3 @@ $wb['lang_file_txt'] = 'SprÃ¥kfil'; $wb['btn_save_txt'] = 'Spara'; $wb['btn_cancel_txt'] = 'Tillbaka'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_export.lng b/interface/web/admin/lib/lang/se_language_export.lng index a4d7147fae..21ff513005 100644 --- a/interface/web/admin/lib/lang/se_language_export.lng +++ b/interface/web/admin/lib/lang/se_language_export.lng @@ -4,4 +4,3 @@ $wb['language_select_txt'] = 'Välj sprÃ¥k'; $wb['btn_save_txt'] = 'Exportera de valda sprÃ¥kfilerna'; $wb['btn_cancel_txt'] = 'Tillbaka'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_import.lng b/interface/web/admin/lib/lang/se_language_import.lng index 8ecca37dc8..59af5bc6f8 100644 --- a/interface/web/admin/lib/lang/se_language_import.lng +++ b/interface/web/admin/lib/lang/se_language_import.lng @@ -7,4 +7,3 @@ $wb['btn_cancel_txt'] = 'Tillbaka'; $wb['ignore_version_txt'] = 'Hoppa över ISPConfig versionskontroll'; $wb['list_desc_txt'] = 'VARNING: Importera inte sprÃ¥kfiler frÃ¥n opÃ¥litliga källor!'; ?> - diff --git a/interface/web/admin/lib/lang/se_language_list.lng b/interface/web/admin/lib/lang/se_language_list.lng index b23024d947..9949044ab3 100644 --- a/interface/web/admin/lib/lang/se_language_list.lng +++ b/interface/web/admin/lib/lang/se_language_list.lng @@ -5,4 +5,3 @@ $wb['module_txt'] = 'Modul'; $wb['lang_file_txt'] = 'SprÃ¥kfil'; $wb['lang_file_date_txt'] = 'Senast ändrad'; ?> - diff --git a/interface/web/admin/lib/lang/se_login_as.lng b/interface/web/admin/lib/lang/se_login_as.lng deleted file mode 100644 index 284a75b55a..0000000000 --- a/interface/web/admin/lib/lang/se_login_as.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['login_1_txt'] = 'Vill du logga in som användare'; -$wb['login_2_txt'] = 'Om du gör det kan du klicka pÃ¥ "gÃ¥ tillbaka" genom att först klicka pÃ¥ logga ut.'; -$wb['btn_yes_txt'] = 'Ja, logga in som kund'; -$wb['btn_back_txt'] = 'Nej, tillbaka till listan'; -$wb['udp_port_help_txt'] = 'Kommaseparerade'; -$wb['active_txt'] = 'Aktiv'; -$wb['firewall_error_unique'] = 'Det finns redan ett brandväggsinlägg för den här servern.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".'; -?> - diff --git a/interface/web/admin/lib/lang/se_package_install.lng b/interface/web/admin/lib/lang/se_package_install.lng index 438f1d8038..2fb833056e 100644 --- a/interface/web/admin/lib/lang/se_package_install.lng +++ b/interface/web/admin/lib/lang/se_package_install.lng @@ -5,4 +5,3 @@ $wb['repo_username_txt'] = 'Användare (Frivilligt)'; $wb['repo_password_txt'] = 'Lösenord (Frivilligt)'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/admin/lib/lang/se_remote_action.lng b/interface/web/admin/lib/lang/se_remote_action.lng index 99d9e2c9aa..68d2bbd4c3 100644 --- a/interface/web/admin/lib/lang/se_remote_action.lng +++ b/interface/web/admin/lib/lang/se_remote_action.lng @@ -10,4 +10,3 @@ $wb['select_all_server'] = 'Alla servrar'; $wb['ispconfig_update_title'] = 'ISPConfig uppdateringsinstruktioner'; $wb['ispconfig_update_text'] = 'Logga in som root pÃ¥ din server och kör kommandot<br /><br /> <strong>ispconfig_update.sh</strong><br /><br />för att pÃ¥börja ISPConfig-uppdateringen.<br /><br /><a href=http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/ target=_blank>Klicka här för detaljerade instruktioner</a>'; ?> - diff --git a/interface/web/admin/lib/lang/se_remote_user.lng b/interface/web/admin/lib/lang/se_remote_user.lng index 5fedddc555..1b3b731fc8 100644 --- a/interface/web/admin/lib/lang/se_remote_user.lng +++ b/interface/web/admin/lib/lang/se_remote_user.lng @@ -45,4 +45,3 @@ $wb['repeat_password_txt'] = 'Upprepa lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/admin/lib/lang/se_remote_user_list.lng b/interface/web/admin/lib/lang/se_remote_user_list.lng index 9f490230a9..152a75fba4 100644 --- a/interface/web/admin/lib/lang/se_remote_user_list.lng +++ b/interface/web/admin/lib/lang/se_remote_user_list.lng @@ -5,4 +5,3 @@ $wb['add_new_record_txt'] = 'Add new user'; $wb['parent_remote_userid_txt'] = 'ID'; $wb['username_txt'] = 'Username'; ?> - diff --git a/interface/web/admin/lib/lang/se_server.lng b/interface/web/admin/lib/lang/se_server.lng index 29f32a7383..54df6f2ee3 100644 --- a/interface/web/admin/lib/lang/se_server.lng +++ b/interface/web/admin/lib/lang/se_server.lng @@ -13,4 +13,3 @@ $wb['- None -'] = '- Ingen'; $wb['proxy_server_txt'] = 'Proxy-server'; $wb['firewall_server_txt'] = 'Brandväggsserver'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 565659e7d2..fc5b2017c5 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -189,7 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_config_list.lng b/interface/web/admin/lib/lang/se_server_config_list.lng index 9ff7f9b640..191b2c8d32 100644 --- a/interface/web/admin/lib/lang/se_server_config_list.lng +++ b/interface/web/admin/lib/lang/se_server_config_list.lng @@ -2,4 +2,3 @@ $wb['list_head_txt'] = 'Serverkonfiguration'; $wb['server_name_txt'] = 'Server'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_ip.lng b/interface/web/admin/lib/lang/se_server_ip.lng index ad887bbd67..c6f92d8b60 100644 --- a/interface/web/admin/lib/lang/se_server_ip.lng +++ b/interface/web/admin/lib/lang/se_server_ip.lng @@ -9,4 +9,3 @@ $wb['ip_type_txt'] = 'Typ'; $wb['virtualhost_port_txt'] = 'HTTP-portar'; $wb['error_port_syntax'] = 'Invalid chars in port field, please enter only comma separated numbers. Example: 80,443'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_ip_list.lng b/interface/web/admin/lib/lang/se_server_ip_list.lng index 67884b3587..8f20a3b029 100644 --- a/interface/web/admin/lib/lang/se_server_ip_list.lng +++ b/interface/web/admin/lib/lang/se_server_ip_list.lng @@ -8,4 +8,3 @@ $wb['virtualhost_txt'] = 'HTTP Vhost'; $wb['virtualhost_port_txt'] = 'HTTP-portar'; $wb['ip_type_txt'] = 'Typ'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_list.lng b/interface/web/admin/lib/lang/se_server_list.lng index 23d6940f7c..031ac767f0 100644 --- a/interface/web/admin/lib/lang/se_server_list.lng +++ b/interface/web/admin/lib/lang/se_server_list.lng @@ -11,4 +11,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny server'; $wb['proxy_server_txt'] = 'Proxy'; $wb['firewall_server_txt'] = 'Brandvägg'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_php.lng b/interface/web/admin/lib/lang/se_server_php.lng index 3b6096e2b4..addbfa4935 100644 --- a/interface/web/admin/lib/lang/se_server_php.lng +++ b/interface/web/admin/lib/lang/se_server_php.lng @@ -14,4 +14,3 @@ $wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script'; $wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory'; $wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory'; ?> - diff --git a/interface/web/admin/lib/lang/se_server_php_list.lng b/interface/web/admin/lib/lang/se_server_php_list.lng index 353e156f10..f5762ad3a6 100644 --- a/interface/web/admin/lib/lang/se_server_php_list.lng +++ b/interface/web/admin/lib/lang/se_server_php_list.lng @@ -5,4 +5,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny PHP-version'; $wb['client_id_txt'] = 'Kund'; $wb['name_txt'] = 'PHP-namn'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_package.lng b/interface/web/admin/lib/lang/se_software_package.lng index f06ca05fe0..086902db0c 100644 --- a/interface/web/admin/lib/lang/se_software_package.lng +++ b/interface/web/admin/lib/lang/se_software_package.lng @@ -4,4 +4,3 @@ $wb['package_key_txt'] = 'Packetnyckel'; $wb['Software Package'] = 'Mjukvarupaket'; $wb['Modify software package details'] = 'Redigera mjukvarupaketets uppgifter'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_package_install.lng b/interface/web/admin/lib/lang/se_software_package_install.lng index 7b0b28bc06..434fc4bc98 100644 --- a/interface/web/admin/lib/lang/se_software_package_install.lng +++ b/interface/web/admin/lib/lang/se_software_package_install.lng @@ -4,4 +4,3 @@ $wb['install_key_txt'] = 'Fyll i installationsnyckel'; $wb['btn_save_txt'] = 'PÃ¥börja installation'; $wb['btn_cancel_txt'] = 'Avbryt'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_package_list.lng b/interface/web/admin/lib/lang/se_software_package_list.lng index 7762e62a2c..c0222e1ba4 100644 --- a/interface/web/admin/lib/lang/se_software_package_list.lng +++ b/interface/web/admin/lib/lang/se_software_package_list.lng @@ -11,4 +11,3 @@ $wb['no_packages_txt'] = 'Inga paket tillgängliga'; $wb['edit_txt'] = 'Redigera'; $wb['delete_txt'] = 'Radera'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_repo.lng b/interface/web/admin/lib/lang/se_software_repo.lng index db59a1b06d..a0e0de6822 100644 --- a/interface/web/admin/lib/lang/se_software_repo.lng +++ b/interface/web/admin/lib/lang/se_software_repo.lng @@ -6,4 +6,3 @@ $wb['repo_password_txt'] = 'Lösenord (Frivilligt)'; $wb['active_txt'] = 'Aktiv'; $wb['Software Repository which may contain addons or updates'] = 'Pragarmvarubibliotek som kan innehÃ¥lla uppdateringar eller tillägg'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_repo_list.lng b/interface/web/admin/lib/lang/se_software_repo_list.lng index d997091998..b7a219ffa8 100644 --- a/interface/web/admin/lib/lang/se_software_repo_list.lng +++ b/interface/web/admin/lib/lang/se_software_repo_list.lng @@ -4,4 +4,3 @@ $wb['active_txt'] = 'Active'; $wb['repo_name_txt'] = 'Repository'; $wb['repo_url_txt'] = 'URL'; ?> - diff --git a/interface/web/admin/lib/lang/se_software_update_list.lng b/interface/web/admin/lib/lang/se_software_update_list.lng index 41728b2563..0cf7c0eddc 100644 --- a/interface/web/admin/lib/lang/se_software_update_list.lng +++ b/interface/web/admin/lib/lang/se_software_update_list.lng @@ -7,4 +7,3 @@ $wb['action_txt'] = 'Händelse'; $wb['server_select_txt'] = 'Välj server'; $wb['no_updates_txt'] = 'Inga tillgängliga uppdateringar'; ?> - diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index 25b3593585..7e9618102f 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -64,9 +64,8 @@ $wb['customer_no_template_error_regex_txt'] = 'Kundnummermallen innehÃ¥ller otil $wb['customer_no_start_txt'] = 'Kundnummer startvärde'; $wb['customer_no_counter_txt'] = 'Kundnummer räknare'; $wb['session_timeout_txt'] = 'Session timeout (minuter)'; -$wb['session_allow_endless_txt'] = 'Aktivera "hÃ¥ll mig inloggad"'; +$wb['session_allow_endless_txt'] = 'Aktivera \"hÃ¥ll mig inloggad\"'; $wb['No'] = 'Nej'; $wb['min_password_length_txt'] = 'Minsta lösenordslängd'; $wb['min_password_strength_txt'] = 'Minsta lösenordsstyrka'; ?> - diff --git a/interface/web/admin/lib/lang/se_tpl_default_admin.lng b/interface/web/admin/lib/lang/se_tpl_default_admin.lng index d8989edcc4..88945588a3 100644 --- a/interface/web/admin/lib/lang/se_tpl_default_admin.lng +++ b/interface/web/admin/lib/lang/se_tpl_default_admin.lng @@ -16,4 +16,3 @@ $wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script'; $wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory'; $wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory'; ?> - diff --git a/interface/web/admin/lib/lang/se_users.lng b/interface/web/admin/lib/lang/se_users.lng index 3acec5318e..9a819be74e 100644 --- a/interface/web/admin/lib/lang/se_users.lng +++ b/interface/web/admin/lib/lang/se_users.lng @@ -32,4 +32,3 @@ $wb['password_match_txt'] = 'Lösenorden matchar'; $wb['username_error_collision'] = 'Användarnamnet fÃ¥r inte vara web eller web och ett nummer'; $wb['client_not_admin_err'] = 'En användare som tillhör en kund kan inte sättas som admin'; ?> - diff --git a/interface/web/admin/lib/lang/se_users_list.lng b/interface/web/admin/lib/lang/se_users_list.lng index f9ea803049..a6580d3089 100644 --- a/interface/web/admin/lib/lang/se_users_list.lng +++ b/interface/web/admin/lib/lang/se_users_list.lng @@ -7,4 +7,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny användare'; $wb['warning_txt'] = '<b>VARNING:</b> Ändra inte nÃ¥gra användarinställningar här. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; $wb['groups_txt'] = 'Grupper'; ?> - diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index de4573dd96..776357db68 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 5b2d389d78..6d6e05d552 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -189,6 +189,56 @@ $wb['munin_password_txt'] = 'Munin Password'; $wb['munin_url_error_regex'] = 'Invalid Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; $wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; $wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; +$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; +$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; ?> diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng index d336b3b7eb..0c1ca59777 100644 --- a/interface/web/client/lib/lang/el_reseller.lng +++ b/interface/web/client/lib/lang/el_reseller.lng @@ -157,5 +157,5 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; ?> diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng index f37d32618c..2de8e0a5c0 100644 --- a/interface/web/client/lib/lang/fr_client.lng +++ b/interface/web/client/lib/lang/fr_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Saisissez une adresse email valide.'; $wb['customer_no_error_unique'] = 'Le numéro client doit être unique (ou vide).'; $wb['paypal_email_error_isemail'] = 'Saisissez un compte Paypal valide.'; $wb['paypal_email_txt'] = 'Compte Paypal'; -$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \"custom\" est sélectionné.'; +$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \\"custom\\" est sélectionné.'; $wb['aps_limits_txt'] = 'Nombre max d\'Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d\'instances APS'; $wb['limit_aps_error_notint'] = 'La limite d\'instances APS doit être un nombre'; diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng index c71020df3c..a4b0d62118 100644 --- a/interface/web/client/lib/lang/fr_reseller.lng +++ b/interface/web/client/lib/lang/fr_reseller.lng @@ -157,5 +157,5 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; ?> diff --git a/interface/web/client/lib/lang/se.lng b/interface/web/client/lib/lang/se.lng index 271f69d050..3f396d6465 100644 --- a/interface/web/client/lib/lang/se.lng +++ b/interface/web/client/lib/lang/se.lng @@ -24,4 +24,3 @@ $wb['error_domain_in webuse'] = 'Den här domänen kan inte tas bort dÃ¥ den anv $wb['error_client_can_not_add_domain'] = 'Du kan inte lägga till en ny domän'; $wb['error_client_group_id_empty'] = 'Du mÃ¥ste välja en kund<br>'; ?> - diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index c8540a69d4..f6336149ce 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Vänligen ange en giltig epostadress'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal epostadress'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than "custom" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; @@ -154,4 +154,3 @@ $wb['added_date_txt'] = 'Tillagd datum'; $wb['parent_client_id_txt'] = 'Kund till Ã¥terförsäljare'; $wb['none_txt'] = 'ingen'; ?> - diff --git a/interface/web/client/lib/lang/se_client_circle.lng b/interface/web/client/lib/lang/se_client_circle.lng index f30732ea01..df3c995116 100644 --- a/interface/web/client/lib/lang/se_client_circle.lng +++ b/interface/web/client/lib/lang/se_client_circle.lng @@ -7,4 +7,3 @@ $wb['client_ids_txt'] = 'Kunder/Ã…terförsäljare'; $wb['description_txt'] = 'BEskrivning'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/client/lib/lang/se_client_circle_list.lng b/interface/web/client/lib/lang/se_client_circle_list.lng index 21ae4d6026..f98f551c51 100644 --- a/interface/web/client/lib/lang/se_client_circle_list.lng +++ b/interface/web/client/lib/lang/se_client_circle_list.lng @@ -8,4 +8,3 @@ $wb['filter_txt'] = 'Filter'; $wb['delete_txt'] = 'Radera'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/client/lib/lang/se_client_del.lng b/interface/web/client/lib/lang/se_client_del.lng index 9cf44fcfe1..99aa9d8a42 100644 --- a/interface/web/client/lib/lang/se_client_del.lng +++ b/interface/web/client/lib/lang/se_client_del.lng @@ -5,4 +5,3 @@ $wb['btn_save_txt'] = 'Radera kunden'; $wb['btn_cancel_txt'] = 'Avbryt utan att radera kunden'; $wb['confirm_client_delete_txt'] = 'Är du säker pÃ¥ att du vill radera den här kunden?'; ?> - diff --git a/interface/web/client/lib/lang/se_client_message.lng b/interface/web/client/lib/lang/se_client_message.lng index 625b0db7ad..e6f9aba919 100644 --- a/interface/web/client/lib/lang/se_client_message.lng +++ b/interface/web/client/lib/lang/se_client_message.lng @@ -18,4 +18,3 @@ $wb['variables_txt'] = 'Variabler:'; $wb['gender_m_txt'] = 'Herr'; $wb['gender_f_txt'] = 'Fru'; ?> - diff --git a/interface/web/client/lib/lang/se_client_message_template.lng b/interface/web/client/lib/lang/se_client_message_template.lng index 3ff9480909..e406d37caf 100644 --- a/interface/web/client/lib/lang/se_client_message_template.lng +++ b/interface/web/client/lib/lang/se_client_message_template.lng @@ -9,4 +9,3 @@ $wb['variables_txt'] = 'Variabler'; $wb['variables_description_txt'] = '(Användarnamn- och lösenordsvariablerna är endast tillgängliga i välkomstmail.)'; $wb['duplicate_welcome_error'] = 'Det kan bara finnas en standardmall för välkomstmail. Vänligen redigera den existerande mallen istället för att lägga till en ny.'; ?> - diff --git a/interface/web/client/lib/lang/se_client_message_template_list.lng b/interface/web/client/lib/lang/se_client_message_template_list.lng index f94a106973..088d2698eb 100644 --- a/interface/web/client/lib/lang/se_client_message_template_list.lng +++ b/interface/web/client/lib/lang/se_client_message_template_list.lng @@ -3,4 +3,3 @@ $wb['list_head_txt'] = 'Epostmallar'; $wb['template_type_txt'] = 'Meddelande till'; $wb['template_name_txt'] = 'Mallnamn'; ?> - diff --git a/interface/web/client/lib/lang/se_client_template.lng b/interface/web/client/lib/lang/se_client_template.lng index 12e4355439..353960c946 100644 --- a/interface/web/client/lib/lang/se_client_template.lng +++ b/interface/web/client/lib/lang/se_client_template.lng @@ -90,4 +90,3 @@ $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; ?> - diff --git a/interface/web/client/lib/lang/se_client_template_list.lng b/interface/web/client/lib/lang/se_client_template_list.lng index cc9d5d5a6b..b594337e7c 100644 --- a/interface/web/client/lib/lang/se_client_template_list.lng +++ b/interface/web/client/lib/lang/se_client_template_list.lng @@ -4,4 +4,3 @@ $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Mallnamn'; $wb['template_id_txt'] = 'Mall-ID'; ?> - diff --git a/interface/web/client/lib/lang/se_clients_list.lng b/interface/web/client/lib/lang/se_clients_list.lng index 89fe0edeef..263912f0d5 100644 --- a/interface/web/client/lib/lang/se_clients_list.lng +++ b/interface/web/client/lib/lang/se_clients_list.lng @@ -9,4 +9,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny kund'; $wb['username_txt'] = 'Användarnamn'; $wb['customer_no_txt'] = 'Kundnummer'; ?> - diff --git a/interface/web/client/lib/lang/se_domain.lng b/interface/web/client/lib/lang/se_domain.lng index 7d648de16d..df60bbeca2 100644 --- a/interface/web/client/lib/lang/se_domain.lng +++ b/interface/web/client/lib/lang/se_domain.lng @@ -4,4 +4,3 @@ $wb['domain_error_unique'] = 'Domänen finns redan'; $wb['domain_error_regex'] = 'Denna domän är ogiltig'; $wb['Domain'] = 'Domän'; ?> - diff --git a/interface/web/client/lib/lang/se_domain_list.lng b/interface/web/client/lib/lang/se_domain_list.lng index da7504fd45..1262367a9d 100644 --- a/interface/web/client/lib/lang/se_domain_list.lng +++ b/interface/web/client/lib/lang/se_domain_list.lng @@ -4,4 +4,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny domän'; $wb['domain_txt'] = 'Domän'; $wb['user_txt'] = 'Kund'; ?> - diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng index de8f50456d..7fab36deea 100644 --- a/interface/web/client/lib/lang/se_reseller.lng +++ b/interface/web/client/lib/lang/se_reseller.lng @@ -159,4 +159,3 @@ $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; ?> - diff --git a/interface/web/client/lib/lang/se_resellers_list.lng b/interface/web/client/lib/lang/se_resellers_list.lng index 3448e5cd4d..5e03807c7f 100644 --- a/interface/web/client/lib/lang/se_resellers_list.lng +++ b/interface/web/client/lib/lang/se_resellers_list.lng @@ -9,4 +9,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny Ã¥terförsäljare'; $wb['customer_no_txt'] = 'Kundnummer'; $wb['username_txt'] = 'Användarnamn'; ?> - diff --git a/interface/web/dashboard/lib/lang/se.lng b/interface/web/dashboard/lib/lang/se.lng index 11700f0cac..307e9e1ca1 100644 --- a/interface/web/dashboard/lib/lang/se.lng +++ b/interface/web/dashboard/lib/lang/se.lng @@ -2,4 +2,3 @@ $wb['welcome_user_txt'] = 'Välkommen %s'; $wb['available_modules_txt'] = 'Tillgängliga moduler'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_limits.lng b/interface/web/dashboard/lib/lang/se_dashlet_limits.lng index 49473b7a0f..9fbfe97cbd 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_limits.lng @@ -28,4 +28,3 @@ $wb['limit_client_txt'] = 'Antal kunder'; $wb['limit_database_txt'] = 'Antal databaser'; $wb['limit_mailmailinglist_txt'] = 'Antal mailinglistor'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng index 883b2a5aff..1ed6f3f228 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng @@ -6,4 +6,3 @@ $wb['used_txt'] = 'Använt utrymme'; $wb['quota_txt'] = 'Kvot'; $wb['no_email_accounts_txt'] = 'Inga epostkonton hittades'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_modules.lng b/interface/web/dashboard/lib/lang/se_dashlet_modules.lng index 4dff679c73..a6f9728044 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_modules.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_modules.lng @@ -1,4 +1,3 @@ <?php $wb['available_modules_txt'] = 'Tillgängliga moduler'; ?> - diff --git a/interface/web/dashboard/lib/lang/se_dashlet_quota.lng b/interface/web/dashboard/lib/lang/se_dashlet_quota.lng index 325b04dfff..7a9603b0f5 100644 --- a/interface/web/dashboard/lib/lang/se_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/se_dashlet_quota.lng @@ -6,4 +6,3 @@ $wb['hard_txt'] = 'HÃ¥rd gräns'; $wb['soft_txt'] = 'Mjuk gräns'; $wb['no_sites_txt'] = 'Ingen webbsida hittades.'; ?> - diff --git a/interface/web/designer/lib/lang/se.lng b/interface/web/designer/lib/lang/se.lng index 29f4a51efe..acb6c3546c 100644 --- a/interface/web/designer/lib/lang/se.lng +++ b/interface/web/designer/lib/lang/se.lng @@ -1,3 +1,2 @@ <?php ?> - diff --git a/interface/web/designer/lib/lang/se_form_edit.lng b/interface/web/designer/lib/lang/se_form_edit.lng index 72d80e52ec..1a3a831ff0 100644 --- a/interface/web/designer/lib/lang/se_form_edit.lng +++ b/interface/web/designer/lib/lang/se_form_edit.lng @@ -22,4 +22,3 @@ $wb['auth_preset_perm_user_txt'] = 'Beh. Användare'; $wb['auth_preset_perm_group_txt'] = 'Beh. Grupp'; $wb['auth_preset_perm_other_txt'] = 'Beh. Andra'; ?> - diff --git a/interface/web/designer/lib/lang/se_form_list.lng b/interface/web/designer/lib/lang/se_form_list.lng index 7951bb77b3..10f41870b9 100644 --- a/interface/web/designer/lib/lang/se_form_list.lng +++ b/interface/web/designer/lib/lang/se_form_list.lng @@ -5,4 +5,3 @@ $wb['module_txt'] = 'Modul'; $wb['title_txt'] = 'Titel'; $wb['description_txt'] = 'Beskrivning'; ?> - diff --git a/interface/web/designer/lib/lang/se_form_show.lng b/interface/web/designer/lib/lang/se_form_show.lng index 1d5de499b0..3e21d62ef4 100644 --- a/interface/web/designer/lib/lang/se_form_show.lng +++ b/interface/web/designer/lib/lang/se_form_show.lng @@ -16,4 +16,3 @@ $wb['module_del_txt'] = 'Ta bort modulen och alla undermappar?'; $wb['menu_del_txt'] = 'Ta bort meny och allt menyinnehÃ¥ll?'; $wb['item_del_txt'] = 'Ta bort menyinnehÃ¥ll?'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_edit.lng b/interface/web/designer/lib/lang/se_module_edit.lng index 992a0747c1..ba828ebbfc 100644 --- a/interface/web/designer/lib/lang/se_module_edit.lng +++ b/interface/web/designer/lib/lang/se_module_edit.lng @@ -10,4 +10,3 @@ $wb['cancel_txt'] = 'Avbryt'; $wb['header_txt'] = 'Modulinställningar'; $wb['description_txt'] = '<b>Description</b><br><br><b>Modulename:</b> Namn pÃ¥ modul mappen. Endast siffror, bokstäver och understreck är tillÃ¥tna.<br><b>Moduletitle:</b> Kommer att visas i (övre) huvud navigerigsramen.<br><b>Template file:</b> Mall fil för modulen. Just nu finns: module.tpl.htm och module_tree.tpl.htm. Standard är module.tpl.htm.<br><b>NaviFrame:</b> Om module module_tree.tpl.htm väljs som mall file, skriv här sökvägen till skriptfilen för den vänstra ramen.<br><b>Default page:</b> Dessa sidor kommer att visas när modulen öppnas.<br><b>Tab width:</b> Bredd pÃ¥ Flikarna i huvud navigerings ramen. Detta fält är tomt som standard. Du kan skriva in ett absolutvärde i pixlar (ex. 20) eller relativt värde (ex. 20%).<br><b>Hint:</b> Alla sökvägar är relativa till mappen web.'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_list.lng b/interface/web/designer/lib/lang/se_module_list.lng index d8408e28e4..47ff228608 100644 --- a/interface/web/designer/lib/lang/se_module_list.lng +++ b/interface/web/designer/lib/lang/se_module_list.lng @@ -3,4 +3,3 @@ $wb['list_head_txt'] = 'Huvudmodul'; $wb['module_txt'] = 'Modul'; $wb['title_txt'] = 'Titel'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_nav_edit.lng b/interface/web/designer/lib/lang/se_module_nav_edit.lng index 28bf0ac905..468f8d8ebe 100644 --- a/interface/web/designer/lib/lang/se_module_nav_edit.lng +++ b/interface/web/designer/lib/lang/se_module_nav_edit.lng @@ -4,4 +4,3 @@ $wb['header_txt'] = 'Nav-egenskaper'; $wb['save_txt'] = 'Spara'; $wb['cancel_txt'] = 'Avbryt'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_nav_item_edit.lng b/interface/web/designer/lib/lang/se_module_nav_item_edit.lng index b9f8639832..f5df090578 100644 --- a/interface/web/designer/lib/lang/se_module_nav_item_edit.lng +++ b/interface/web/designer/lib/lang/se_module_nav_item_edit.lng @@ -6,4 +6,3 @@ $wb['header_txt'] = 'Nav. egenskaper'; $wb['save_txt'] = 'Spara'; $wb['cancel_txt'] = 'Avbryt'; ?> - diff --git a/interface/web/designer/lib/lang/se_module_show.lng b/interface/web/designer/lib/lang/se_module_show.lng index 497a62ddf6..391947cba0 100644 --- a/interface/web/designer/lib/lang/se_module_show.lng +++ b/interface/web/designer/lib/lang/se_module_show.lng @@ -14,4 +14,3 @@ $wb['module_del_txt'] = 'Ta bort modulen och alla undermappar?'; $wb['menu_del_txt'] = 'Ta bort meny och allt menyinnehÃ¥ll?'; $wb['item_del_txt'] = 'Ta bort menyinnehÃ¥ll?'; ?> - diff --git a/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/se.lng b/interface/web/dns/lib/lang/se.lng index 80c391890a..4f443f079e 100644 --- a/interface/web/dns/lib/lang/se.lng +++ b/interface/web/dns/lib/lang/se.lng @@ -20,4 +20,3 @@ $wb['Templates'] = 'Mallar'; $wb['Secondary Zones'] = 'Sekundära zoner'; $wb['Import Zone File'] = 'Importera zonfiler'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_a.lng b/interface/web/dns/lib/lang/se_dns_a.lng index a69314db68..7dcfc37ca2 100644 --- a/interface/web/dns/lib/lang/se_dns_a.lng +++ b/interface/web/dns/lib/lang/se_dns_a.lng @@ -15,4 +15,3 @@ $wb['data_error_regex'] = 'IP-Address format invalid'; $wb['data_error_duplicate'] = 'Duplicate A-Record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_a_list.lng b/interface/web/dns/lib/lang/se_dns_a_list.lng index b92f4c0f64..3fa1e7f8a7 100644 --- a/interface/web/dns/lib/lang/se_dns_a_list.lng +++ b/interface/web/dns/lib/lang/se_dns_a_list.lng @@ -13,4 +13,3 @@ $wb['page_txt'] = 'Page'; $wb['page_of_txt'] = 'of'; $wb['delete_confirmation'] = 'Do you really want to delete this record?'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_aaaa.lng b/interface/web/dns/lib/lang/se_dns_aaaa.lng index a8cfbf1ed1..b4c5b279be 100644 --- a/interface/web/dns/lib/lang/se_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/se_dns_aaaa.lng @@ -14,4 +14,3 @@ $wb['data_error_empty'] = 'IP-Address empty'; $wb['data_error_regex'] = 'IP-Address format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_alias.lng b/interface/web/dns/lib/lang/se_dns_alias.lng index 05c3f629d9..bd4be9f219 100644 --- a/interface/web/dns/lib/lang/se_dns_alias.lng +++ b/interface/web/dns/lib/lang/se_dns_alias.lng @@ -14,4 +14,3 @@ $wb['data_error_empty'] = 'Target hostname empty'; $wb['data_error_regex'] = 'Target hostname format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_cname.lng b/interface/web/dns/lib/lang/se_dns_cname.lng index b4e8ae1abd..b7ceb5d9c9 100644 --- a/interface/web/dns/lib/lang/se_dns_cname.lng +++ b/interface/web/dns/lib/lang/se_dns_cname.lng @@ -15,4 +15,3 @@ $wb['data_error_regex'] = 'Target hostname format invalid'; $wb['data_error_duplicate'] = 'Duplicate A-Record or CNAME-Record'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_hinfo.lng b/interface/web/dns/lib/lang/se_dns_hinfo.lng index df19a84913..937bd9b4ac 100644 --- a/interface/web/dns/lib/lang/se_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/se_dns_hinfo.lng @@ -14,4 +14,3 @@ $wb['data_error_empty'] = 'Host information empty'; $wb['data_error_regex'] = 'Host Information format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_import.lng b/interface/web/dns/lib/lang/se_dns_import.lng index aea47ba1e9..4d703fa868 100644 --- a/interface/web/dns/lib/lang/se_dns_import.lng +++ b/interface/web/dns/lib/lang/se_dns_import.lng @@ -12,4 +12,3 @@ $wb['title'] = 'Importera zonfiler'; $wb['no_file_uploaded_error'] = 'Ingen zonfil uppladdad'; $wb['zone_file_import_txt'] = 'Zonfilsimport'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_mx.lng b/interface/web/dns/lib/lang/se_dns_mx.lng index 0bfc2348ff..58921d35fc 100644 --- a/interface/web/dns/lib/lang/se_dns_mx.lng +++ b/interface/web/dns/lib/lang/se_dns_mx.lng @@ -16,4 +16,3 @@ $wb['data_error_regex'] = 'Mailserver hostname format invalid'; $wb['duplicate_mx_record_txt'] = 'Duplicate MX record.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_ns.lng b/interface/web/dns/lib/lang/se_dns_ns.lng index 2ce51da7b9..d8d652cc5a 100644 --- a/interface/web/dns/lib/lang/se_dns_ns.lng +++ b/interface/web/dns/lib/lang/se_dns_ns.lng @@ -14,4 +14,3 @@ $wb['data_error_empty'] = 'Namnserver tom'; $wb['data_error_regex'] = 'Namnserverformatet är ogiltigt'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_ptr.lng b/interface/web/dns/lib/lang/se_dns_ptr.lng index 6c42a8f94a..254b45c070 100644 --- a/interface/web/dns/lib/lang/se_dns_ptr.lng +++ b/interface/web/dns/lib/lang/se_dns_ptr.lng @@ -14,4 +14,3 @@ $wb['data_error_empty'] = 'Canonical hostname empty'; $wb['data_error_regex'] = 'Canonical hostname format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_rp.lng b/interface/web/dns/lib/lang/se_dns_rp.lng index e37bc8f93e..91c4f07bd9 100644 --- a/interface/web/dns/lib/lang/se_dns_rp.lng +++ b/interface/web/dns/lib/lang/se_dns_rp.lng @@ -14,4 +14,3 @@ $wb['data_error_empty'] = 'Responsible person field empty'; $wb['data_error_regex'] = 'Responsible person field format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_slave.lng b/interface/web/dns/lib/lang/se_dns_slave.lng index 254f360d37..c426df7ed5 100644 --- a/interface/web/dns/lib/lang/se_dns_slave.lng +++ b/interface/web/dns/lib/lang/se_dns_slave.lng @@ -15,4 +15,3 @@ $wb['eg_domain_tld'] = 'e.g. domain.tld.'; $wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4'; $wb['secondary_zone_txt'] = 'Secondary DNS Zone'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_slave_list.lng b/interface/web/dns/lib/lang/se_dns_slave_list.lng index 6e7951de27..4ced2ddb59 100644 --- a/interface/web/dns/lib/lang/se_dns_slave_list.lng +++ b/interface/web/dns/lib/lang/se_dns_slave_list.lng @@ -7,4 +7,3 @@ $wb['ns_txt'] = 'NS'; $wb['add_new_record_txt'] = 'Add new secondary DNS Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_soa.lng b/interface/web/dns/lib/lang/se_dns_soa.lng index 4f2eefabcb..935211a060 100644 --- a/interface/web/dns/lib/lang/se_dns_soa.lng +++ b/interface/web/dns/lib/lang/se_dns_soa.lng @@ -36,4 +36,3 @@ $wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['xfer_error_regex'] = 'Also notify: Please use an IP address.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_soa_list.lng b/interface/web/dns/lib/lang/se_dns_soa_list.lng index b534641c1d..da7b8e28d2 100644 --- a/interface/web/dns/lib/lang/se_dns_soa_list.lng +++ b/interface/web/dns/lib/lang/se_dns_soa_list.lng @@ -8,4 +8,3 @@ $wb['mbox_txt'] = 'Email'; $wb['add_new_record_txt'] = 'Add new DNS Zone (SOA)'; $wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_srv.lng b/interface/web/dns/lib/lang/se_dns_srv.lng index fae1b70186..866f44dab3 100644 --- a/interface/web/dns/lib/lang/se_dns_srv.lng +++ b/interface/web/dns/lib/lang/se_dns_srv.lng @@ -18,4 +18,3 @@ $wb['srv_error_regex'] = 'Invalid server record format. The server record must c $wb['aux_txt'] = 'Priority'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_template.lng b/interface/web/dns/lib/lang/se_dns_template.lng index 6fd5b5c498..516d5c2759 100644 --- a/interface/web/dns/lib/lang/se_dns_template.lng +++ b/interface/web/dns/lib/lang/se_dns_template.lng @@ -4,4 +4,3 @@ $wb['fields_txt'] = 'Fält'; $wb['template_txt'] = 'Mall'; $wb['visible_txt'] = 'Synlig'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_template_list.lng b/interface/web/dns/lib/lang/se_dns_template_list.lng index 120335f511..8d9d730e50 100644 --- a/interface/web/dns/lib/lang/se_dns_template_list.lng +++ b/interface/web/dns/lib/lang/se_dns_template_list.lng @@ -4,4 +4,3 @@ $wb['visible_txt'] = 'Visible'; $wb['name_txt'] = 'Name'; $wb['add_new_record_txt'] = 'Add new record'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_txt.lng b/interface/web/dns/lib/lang/se_dns_txt.lng index 0fc9b2515a..31da6ebf1a 100644 --- a/interface/web/dns/lib/lang/se_dns_txt.lng +++ b/interface/web/dns/lib/lang/se_dns_txt.lng @@ -14,4 +14,3 @@ $wb['data_error_empty'] = 'Text empty'; $wb['data_error_regex'] = 'Text format invalid'; $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> - diff --git a/interface/web/dns/lib/lang/se_dns_wizard.lng b/interface/web/dns/lib/lang/se_dns_wizard.lng index 3bb0a63f3a..52955fdcc3 100644 --- a/interface/web/dns/lib/lang/se_dns_wizard.lng +++ b/interface/web/dns/lib/lang/se_dns_wizard.lng @@ -36,4 +36,3 @@ $wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; $wb['list_head_txt'] = 'DNS Zone Wizard'; $wb['list_desc_txt'] = 'Create a DNS Zone via a wizard'; ?> - diff --git a/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng new file mode 100644 index 0000000000..43f67783ce --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng @@ -0,0 +1,10 @@ +<?php +$wb["list_head_txt"] = 'Secondary DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['eg_domain_tld'] = 'e.g. domain.tld.'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng new file mode 100644 index 0000000000..44cec900b9 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng @@ -0,0 +1,11 @@ +<?php +$wb["list_head_txt"] = 'DNS-Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["mbox_txt"] = 'Email'; +$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; +$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; +$wb["sys_groupid_txt"] = 'Client'; +?> diff --git a/interface/web/help/lib/lang/se.lng b/interface/web/help/lib/lang/se.lng index e09625785d..58fe6a006c 100644 --- a/interface/web/help/lib/lang/se.lng +++ b/interface/web/help/lib/lang/se.lng @@ -12,4 +12,3 @@ $wb['Manage Sections'] = 'Hantera kategorier'; $wb['Add a Question & Answer Pair'] = 'Lägg till frÃ¥ga och svar'; $wb['Manage Questions'] = 'Hantera frÃ¥gor'; ?> - diff --git a/interface/web/help/lib/lang/se_faq_form.lng b/interface/web/help/lib/lang/se_faq_form.lng index 743e02d5eb..5a7f384831 100644 --- a/interface/web/help/lib/lang/se_faq_form.lng +++ b/interface/web/help/lib/lang/se_faq_form.lng @@ -4,4 +4,3 @@ $wb['faq_question_txt'] = 'FrÃ¥ga'; $wb['faq_answer_txt'] = 'Svar'; $wb['faq_section_txt'] = 'Kategori'; ?> - diff --git a/interface/web/help/lib/lang/se_faq_manage_questions_list.lng b/interface/web/help/lib/lang/se_faq_manage_questions_list.lng index c8021763a5..d615cdabf5 100644 --- a/interface/web/help/lib/lang/se_faq_manage_questions_list.lng +++ b/interface/web/help/lib/lang/se_faq_manage_questions_list.lng @@ -7,4 +7,3 @@ $wb['faq_sections_txt'] = 'Kategori'; $wb['faq_faq_questions_txt'] = 'Vanliga frÃ¥gor'; $wb['faq_new_question_txt'] = 'Lägg till ny frÃ¥ga och svar'; ?> - diff --git a/interface/web/help/lib/lang/se_faq_sections_form.lng b/interface/web/help/lib/lang/se_faq_sections_form.lng index 9367eeb9fd..5cc812f8e9 100644 --- a/interface/web/help/lib/lang/se_faq_sections_form.lng +++ b/interface/web/help/lib/lang/se_faq_sections_form.lng @@ -1,4 +1,3 @@ <?php $wb['faq_section_name_txt'] = 'Kategorinamn'; ?> - diff --git a/interface/web/help/lib/lang/se_help_faq_list.lng b/interface/web/help/lib/lang/se_help_faq_list.lng index c8aebaf36d..bc1d42103a 100644 --- a/interface/web/help/lib/lang/se_help_faq_list.lng +++ b/interface/web/help/lib/lang/se_help_faq_list.lng @@ -1,4 +1,3 @@ <?php $wb['edit_txt'] = 'Redigera'; ?> - diff --git a/interface/web/help/lib/lang/se_help_faq_sections_list.lng b/interface/web/help/lib/lang/se_help_faq_sections_list.lng index 021feb36f3..5ea1a7163f 100644 --- a/interface/web/help/lib/lang/se_help_faq_sections_list.lng +++ b/interface/web/help/lib/lang/se_help_faq_sections_list.lng @@ -6,4 +6,3 @@ $wb['faq_sections_txt'] = 'Kategori'; $wb['faq_faq_sections_txt'] = 'FAQ-kategorier'; $wb['faq_new_section_txt'] = 'Lägg till ny kategori'; ?> - diff --git a/interface/web/help/lib/lang/se_support_message.lng b/interface/web/help/lib/lang/se_support_message.lng index 0de8420416..b3cefaa1a0 100644 --- a/interface/web/help/lib/lang/se_support_message.lng +++ b/interface/web/help/lib/lang/se_support_message.lng @@ -13,4 +13,3 @@ $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request h $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> - diff --git a/interface/web/help/lib/lang/se_support_message_list.lng b/interface/web/help/lib/lang/se_support_message_list.lng index f68bb58088..af9663f7bd 100644 --- a/interface/web/help/lib/lang/se_support_message_list.lng +++ b/interface/web/help/lib/lang/se_support_message_list.lng @@ -5,4 +5,3 @@ $wb['subject_txt'] = 'Ämne'; $wb['add_new_record_txt'] = 'Skapa nyttt supportmeddelande'; $wb['date_txt'] = 'Datum'; ?> - diff --git a/interface/web/login/lib/lang/se.lng b/interface/web/login/lib/lang/se.lng index e3301e086e..aeb58b1588 100644 --- a/interface/web/login/lib/lang/se.lng +++ b/interface/web/login/lib/lang/se.lng @@ -25,4 +25,3 @@ $wb['back_txt'] = 'Tillbaka'; $wb['email_error'] = 'Epostadressen innehÃ¥ller otillÃ¥tna tecken eller är felformatterad.'; $wb['stay_logged_in_txt'] = 'HÃ¥ll mig inloggad'; ?> - diff --git a/interface/web/login/lib/lang/se_login_as.lng b/interface/web/login/lib/lang/se_login_as.lng index e831784766..fea3abca03 100644 --- a/interface/web/login/lib/lang/se_login_as.lng +++ b/interface/web/login/lib/lang/se_login_as.lng @@ -1,12 +1,11 @@ <?php $wb['login_1_txt'] = 'Vill du loggga in som användare'; -$wb['login_2_txt'] = 'If you do so, you can "go back" by clicking at logout.'; +$wb['login_2_txt'] = 'If you do so, you can \"go back\" by clicking at logout.'; $wb['btn_yes_txt'] = 'Ja, logga in som kund'; $wb['btn_back_txt'] = 'Nej, tillbaka till listan'; $wb['udp_port_help_txt'] = 'Avdelade med kommatecken'; $wb['active_txt'] = 'Aktiv'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".'; ?> - diff --git a/interface/web/mail/lib/lang/fr_mail_get.lng b/interface/web/mail/lib/lang/fr_mail_get.lng index 6779ce3c42..934af5e2e7 100644 --- a/interface/web/mail/lib/lang/fr_mail_get.lng +++ b/interface/web/mail/lib/lang/fr_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Le mot de passe est vide.'; $wb['destination_error_isemail'] = 'Pas de destination sélectionnée.'; $wb['source_server_error_regex'] = 'Le serveur POP3 / IMAP n\'est pas un nom de domaine valide.'; $wb['source_read_all_txt'] = 'Récupérer tous les emails (incl. les emails lus)'; -$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \"Supprimer les emails après récupération\" = non avec \"Récupérer tous les emails\" = oui'; +$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \\"Supprimer les emails après récupération\\" = non avec \\"Récupérer tous les emails\\" = oui'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/se.lng b/interface/web/mail/lib/lang/se.lng index 6542378057..3edc2034d0 100644 --- a/interface/web/mail/lib/lang/se.lng +++ b/interface/web/mail/lib/lang/se.lng @@ -46,4 +46,3 @@ $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_alias.lng b/interface/web/mail/lib/lang/se_mail_alias.lng index 4dc4e255f9..e0f6135c03 100644 --- a/interface/web/mail/lib/lang/se_mail_alias.lng +++ b/interface/web/mail/lib/lang/se_mail_alias.lng @@ -12,4 +12,3 @@ $wb['domain_txt'] = 'Domän'; $wb['duplicate_email_alias_txt'] = 'Detta epostalias finns redan'; $wb['source_txt'] = 'Alias'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_alias_list.lng b/interface/web/mail/lib/lang/se_mail_alias_list.lng index e72d91bdde..3b63170e45 100644 --- a/interface/web/mail/lib/lang/se_mail_alias_list.lng +++ b/interface/web/mail/lib/lang/se_mail_alias_list.lng @@ -6,4 +6,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['source_txt'] = 'Källa'; $wb['add_new_record_txt'] = 'Lägg till nytt epostalias'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_aliasdomain.lng b/interface/web/mail/lib/lang/se_mail_aliasdomain.lng index 9a2c5c39aa..e2105fb2b5 100644 --- a/interface/web/mail/lib/lang/se_mail_aliasdomain.lng +++ b/interface/web/mail/lib/lang/se_mail_aliasdomain.lng @@ -9,4 +9,3 @@ $wb['source_error_empty'] = 'Källdomän är tomt.'; $wb['source_error_unique'] = 'Källdomänen finns redan.'; $wb['source_error_regex'] = 'Ogiltig källdomän..'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng index d04d8cd789..e8740393db 100644 --- a/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng +++ b/interface/web/mail/lib/lang/se_mail_aliasdomain_list.lng @@ -5,4 +5,3 @@ $wb['source_txt'] = 'Källa'; $wb['destination_txt'] = 'Destination'; $wb['add_new_record_txt'] = 'Lägg till nytt domänalias'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_blacklist.lng b/interface/web/mail/lib/lang/se_mail_blacklist.lng index 70b1be58d3..34b1f76db9 100644 --- a/interface/web/mail/lib/lang/se_mail_blacklist.lng +++ b/interface/web/mail/lib/lang/se_mail_blacklist.lng @@ -7,4 +7,3 @@ $wb['source_error_notempty'] = 'Adressfältet är tomt.'; $wb['type_txt'] = 'Typ'; $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter för ditt konto är uppnÃ¥tt.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_blacklist_list.lng b/interface/web/mail/lib/lang/se_mail_blacklist_list.lng index d3da0de6d5..158b989ad3 100644 --- a/interface/web/mail/lib/lang/se_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/se_mail_blacklist_list.lng @@ -8,4 +8,3 @@ $wb['type_txt'] = 'Typ'; $wb['recipient_txt'] = 'Mottagare'; $wb['access_txt'] = 'Ã¥tkomst'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_content_filter.lng b/interface/web/mail/lib/lang/se_mail_content_filter.lng index c7fb5954fa..2f82e76e86 100644 --- a/interface/web/mail/lib/lang/se_mail_content_filter.lng +++ b/interface/web/mail/lib/lang/se_mail_content_filter.lng @@ -7,4 +7,3 @@ $wb['action_txt'] = 'Händelse'; $wb['active_txt'] = 'Aktiv'; $wb['pattern_error_empty'] = 'Matchningsfältet är tomt.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_content_filter_list.lng b/interface/web/mail/lib/lang/se_mail_content_filter_list.lng index c612f9b37b..6eac1932c6 100644 --- a/interface/web/mail/lib/lang/se_mail_content_filter_list.lng +++ b/interface/web/mail/lib/lang/se_mail_content_filter_list.lng @@ -6,4 +6,3 @@ $wb['pattern_txt'] = 'Mönster'; $wb['action_txt'] = 'Händelse'; $wb['add_new_record_txt'] = 'Lägg till nytt innehÃ¥llsfilter'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain.lng b/interface/web/mail/lib/lang/se_mail_domain.lng index e07dd25f08..295d10a31f 100644 --- a/interface/web/mail/lib/lang/se_mail_domain.lng +++ b/interface/web/mail/lib/lang/se_mail_domain.lng @@ -11,4 +11,3 @@ $wb['limit_maildomain_txt'] = 'Det maximala antalet epostdomäner för ditt kont $wb['policy_txt'] = 'Spamfilter'; $wb['no_policy'] = '- ej aktiverat -'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng index bf8cd12ee0..a4a203d7b9 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_admin_list.lng @@ -6,4 +6,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny domän'; $wb['active_txt'] = 'Aktiv'; $wb['sys_groupid_txt'] = 'Kund'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng index 9e03e6954b..7ef1116390 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng @@ -9,4 +9,3 @@ $wb['limit_mailcatchall_txt'] = 'Det maximala antalet catchall-adresser för dit $wb['source_txt'] = 'Källa'; $wb['destination_error_isemail'] = 'Destinationen när inte en giltig epostadress.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng index 0e6958eb58..51789ee522 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_catchall_list.lng @@ -7,4 +7,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny catchall'; $wb['active_txt'] = 'Aktiv'; $wb['source_txt'] = 'källa'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_domain_list.lng b/interface/web/mail/lib/lang/se_mail_domain_list.lng index 96120f5b7d..4f3b5488f7 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_list.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_list.lng @@ -5,4 +5,3 @@ $wb['domain_txt'] = 'Domän'; $wb['add_new_record_txt'] = 'Lägg till ny domän'; $wb['active_txt'] = 'Aktiv'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_forward.lng b/interface/web/mail/lib/lang/se_mail_forward.lng index 511e0b69ab..af583f0474 100644 --- a/interface/web/mail/lib/lang/se_mail_forward.lng +++ b/interface/web/mail/lib/lang/se_mail_forward.lng @@ -7,4 +7,3 @@ $wb['duplicate_mailbox_txt'] = 'Det finns redan ett epostkonto med denna adress' $wb['domain_txt'] = 'Domän'; $wb['source_txt'] = 'Källadress'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_forward_list.lng b/interface/web/mail/lib/lang/se_mail_forward_list.lng index f271306937..e1d7464baa 100644 --- a/interface/web/mail/lib/lang/se_mail_forward_list.lng +++ b/interface/web/mail/lib/lang/se_mail_forward_list.lng @@ -6,4 +6,3 @@ $wb['destination_txt'] = 'Mottagare'; $wb['add_new_record_txt'] = 'Lägg till ny vidarebefordran'; $wb['source_txt'] = 'källa'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_get.lng b/interface/web/mail/lib/lang/se_mail_get.lng index f15208cdcb..db4440210e 100644 --- a/interface/web/mail/lib/lang/se_mail_get.lng +++ b/interface/web/mail/lib/lang/se_mail_get.lng @@ -14,7 +14,6 @@ $wb['source_password_error_isempty'] = 'Lösenord är tomt.'; $wb['destination_error_isemail'] = 'Ingen destination vald.'; $wb['source_server_error_regex'] = 'POP3-/Imapserver är inte ett giltigt domännamn.'; $wb['source_read_all_txt'] = 'Hämta all epost (även läst epost)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use "Delete emails after retrieval" = no together with "Retrieve all emails" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Vänligen kontrollera först om eposthämtning fungerar innan du aktiverar detta val..'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_get_list.lng b/interface/web/mail/lib/lang/se_mail_get_list.lng index 0d06cadd58..9369095102 100644 --- a/interface/web/mail/lib/lang/se_mail_get_list.lng +++ b/interface/web/mail/lib/lang/se_mail_get_list.lng @@ -7,4 +7,3 @@ $wb['source_username_txt'] = 'Användarnamn'; $wb['destination_txt'] = 'Destination'; $wb['add_new_record_txt'] = 'Lägg till nytt konto'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_mailinglist.lng b/interface/web/mail/lib/lang/se_mail_mailinglist.lng index 68a713097f..e7f927b4a8 100644 --- a/interface/web/mail/lib/lang/se_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/se_mail_mailinglist.lng @@ -20,4 +20,3 @@ $wb['listname_error_unique'] = 'There is already a mailinlist with name on the s $wb['email_error_isemail'] = 'Epostadressen är ogiltig'; $wb['mailinglist_txt'] = 'Epostlista'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng index 11a82be460..2e9f364414 100644 --- a/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng +++ b/interface/web/mail/lib/lang/se_mail_mailinglist_list.lng @@ -3,4 +3,3 @@ $wb['list_head_txt'] = 'Epostlista'; $wb['domain_txt'] = 'Domän'; $wb['listname_txt'] = 'Listnamn'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_relay_recipient.lng b/interface/web/mail/lib/lang/se_mail_relay_recipient.lng index ffb64adefd..75061987ea 100644 --- a/interface/web/mail/lib/lang/se_mail_relay_recipient.lng +++ b/interface/web/mail/lib/lang/se_mail_relay_recipient.lng @@ -7,4 +7,3 @@ $wb['source_error_notempty'] = 'Adressfältet är tomt.'; $wb['type_txt'] = 'Typ'; $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter för ditt konto är uppnÃ¥tt.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng index 4c34ebfe69..c9176c7dbd 100644 --- a/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng +++ b/interface/web/mail/lib/lang/se_mail_relay_recipient_list.lng @@ -7,4 +7,3 @@ $wb['recipient_txt'] = 'Mottagare'; $wb['add_new_record_txt'] = 'Lägg till ny relämottagare'; $wb['access_txt'] = 'Ã¥tkomst'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_spamfilter.lng b/interface/web/mail/lib/lang/se_mail_spamfilter.lng index 3080425959..c83f09c974 100644 --- a/interface/web/mail/lib/lang/se_mail_spamfilter.lng +++ b/interface/web/mail/lib/lang/se_mail_spamfilter.lng @@ -15,4 +15,3 @@ $wb['email_error_unique'] = 'Det finns redan ett spamfilterinlägg för den här $wb['spam_redirect_maildir_purge_txt'] = 'Töm mappen efter'; $wb['days_txt'] = 'Dagar'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng index 407d5163e9..2c361e1356 100644 --- a/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/se_mail_spamfilter_list.lng @@ -6,4 +6,3 @@ $wb['server_name_txt'] = 'servernamn'; $wb['email_txt'] = 'Epost'; $wb['add_new_record_txt'] = 'Lägg till nytt spamfilter'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_transport.lng b/interface/web/mail/lib/lang/se_mail_transport.lng index 198f8075fe..70e26b78f9 100644 --- a/interface/web/mail/lib/lang/se_mail_transport.lng +++ b/interface/web/mail/lib/lang/se_mail_transport.lng @@ -9,4 +9,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['limit_mailrouting_txt'] = 'Det maximala antalet epostrutter för ditt konto är uppnÃ¥tt.'; $wb['transport_txt'] = 'Transport'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_transport_list.lng b/interface/web/mail/lib/lang/se_mail_transport_list.lng index 63474a881a..2ce6dd8cdf 100644 --- a/interface/web/mail/lib/lang/se_mail_transport_list.lng +++ b/interface/web/mail/lib/lang/se_mail_transport_list.lng @@ -7,4 +7,3 @@ $wb['transport_txt'] = 'Transport'; $wb['sort_order_txt'] = 'Sortera pÃ¥'; $wb['add_new_record_txt'] = 'Lägg till ny transport'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user.lng b/interface/web/mail/lib/lang/se_mail_user.lng index 62be339c0b..d6df113077 100644 --- a/interface/web/mail/lib/lang/se_mail_user.lng +++ b/interface/web/mail/lib/lang/se_mail_user.lng @@ -51,4 +51,3 @@ $wb['email_error_isascii'] = 'Please do not use special unicode characters for y $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; $wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_filter.lng b/interface/web/mail/lib/lang/se_mail_user_filter.lng index ed9574fe72..e6e62decf6 100644 --- a/interface/web/mail/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/se_mail_user_filter.lng @@ -18,4 +18,3 @@ $wb['ends_with_txt'] = 'Slutar med'; $wb['move_to_txt'] = 'Flytta till'; $wb['delete_txt'] = 'Radera'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_filter_list.lng b/interface/web/mail/lib/lang/se_mail_user_filter_list.lng index 7825393aeb..7d6e0c5004 100644 --- a/interface/web/mail/lib/lang/se_mail_user_filter_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_filter_list.lng @@ -5,4 +5,3 @@ $wb['page_txt'] = 'Sida'; $wb['page_of_txt'] = 'av'; $wb['delete_confirmation'] = 'Vill du verkligen radera epostfiltret?'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_list.lng b/interface/web/mail/lib/lang/se_mail_user_list.lng index f18bc713a8..af96af83ce 100644 --- a/interface/web/mail/lib/lang/se_mail_user_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_list.lng @@ -6,4 +6,3 @@ $wb['add_new_record_txt'] = 'Lägg till nytt epostkonto'; $wb['name_txt'] = 'Riktigt namn'; $wb['login_txt'] = 'Logga in'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_user_stats_list.lng b/interface/web/mail/lib/lang/se_mail_user_stats_list.lng index 1bec4d4b0d..de6afd7c51 100644 --- a/interface/web/mail/lib/lang/se_mail_user_stats_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_stats_list.lng @@ -6,4 +6,3 @@ $wb['last_month_txt'] = 'FöregÃ¥ende mÃ¥nad'; $wb['this_year_txt'] = 'I Ã¥r'; $wb['last_year_txt'] = 'FöregÃ¥ende Ã¥r'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_whitelist.lng b/interface/web/mail/lib/lang/se_mail_whitelist.lng index 40eaf8693d..7ce682ff6b 100644 --- a/interface/web/mail/lib/lang/se_mail_whitelist.lng +++ b/interface/web/mail/lib/lang/se_mail_whitelist.lng @@ -7,4 +7,3 @@ $wb['source_error_notempty'] = 'Adressen är tom.'; $wb['type_txt'] = 'Typ'; $wb['limit_mailfilter_txt'] = 'Maximala antalet epostfilter för ditt konto är uppnÃ¥tt.'; ?> - diff --git a/interface/web/mail/lib/lang/se_mail_whitelist_list.lng b/interface/web/mail/lib/lang/se_mail_whitelist_list.lng index a9f52a8daf..f72e8e290d 100644 --- a/interface/web/mail/lib/lang/se_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/se_mail_whitelist_list.lng @@ -8,4 +8,3 @@ $wb['type_txt'] = 'Typ'; $wb['recipient_txt'] = 'Mottagare'; $wb['access_txt'] = 'Ã¥tkomst'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng index 2839c6ce27..873e43d073 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_blacklist.lng @@ -10,4 +10,3 @@ $wb['10 - highest'] = '10 - högsta'; $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lägsta'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng index edf0842411..d5cac76f10 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_blacklist_list.lng @@ -7,4 +7,3 @@ $wb['rid_txt'] = 'Användare'; $wb['email_txt'] = 'Vitlistad epostadress'; $wb['add_new_record_txt'] = 'Lägg till svartlistning'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_config.lng b/interface/web/mail/lib/lang/se_spamfilter_config.lng index ebfedb3fdd..a67fb5b2d5 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_config.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_config.lng @@ -18,4 +18,3 @@ $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_config_list.lng b/interface/web/mail/lib/lang/se_spamfilter_config_list.lng index 52b398babc..9d2ec141f1 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_config_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_config_list.lng @@ -3,4 +3,3 @@ $wb['list_head_txt'] = 'Serverkonfiguration'; $wb['server_name_txt'] = 'Server'; $wb['server_id_txt'] = 'server_id'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_policy.lng b/interface/web/mail/lib/lang/se_spamfilter_policy.lng index d5a429b17e..e876330a68 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_policy.lng @@ -36,4 +36,3 @@ $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng index da678a48f2..04491ae4cd 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_policy_list.lng @@ -7,4 +7,3 @@ $wb['banned_files_lover_txt'] = 'Banned Files lover'; $wb['bad_header_lover_txt'] = 'Bad Header lover'; $wb['add_new_record_txt'] = 'Add Policy record'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_users.lng b/interface/web/mail/lib/lang/se_spamfilter_users.lng index babb3048e7..ba3b60e273 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_users.lng @@ -11,4 +11,3 @@ $wb['10 - highest'] = '10 - högsta'; $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lägsta'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_users_list.lng b/interface/web/mail/lib/lang/se_spamfilter_users_list.lng index 830ac39c31..4ff87848e7 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_users_list.lng @@ -8,4 +8,3 @@ $wb['fullname_txt'] = 'Namn'; $wb['email_txt'] = 'Epost'; $wb['add_new_record_txt'] = 'Lägg till spamfilteranvändare'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng index 2839c6ce27..873e43d073 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_whitelist.lng @@ -10,4 +10,3 @@ $wb['10 - highest'] = '10 - högsta'; $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lägsta'; ?> - diff --git a/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng index 00185a0909..080ec2760b 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_whitelist_list.lng @@ -7,4 +7,3 @@ $wb['rid_txt'] = 'Användare'; $wb['email_txt'] = 'Vitlistad epostadress'; $wb['add_new_record_txt'] = 'Lägg till vitlistning'; ?> - diff --git a/interface/web/mail/lib/lang/se_user_quota_stats_list.lng b/interface/web/mail/lib/lang/se_user_quota_stats_list.lng index 380cf5bf5f..dc57c61c8d 100755 --- a/interface/web/mail/lib/lang/se_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/se_user_quota_stats_list.lng @@ -6,4 +6,3 @@ $wb['email_txt'] = 'Epostadress'; $wb['used_txt'] = 'Använt utrymme'; $wb['percentage_txt'] = 'Använt %'; ?> - diff --git a/interface/web/mailuser/lib/lang/se.lng b/interface/web/mailuser/lib/lang/se.lng index f9e6f5bbd8..b0d55d478a 100644 --- a/interface/web/mailuser/lib/lang/se.lng +++ b/interface/web/mailuser/lib/lang/se.lng @@ -7,4 +7,3 @@ $wb['Send copy'] = 'Skicka kopia'; $wb['Spamfilter'] = 'Spamfilter'; $wb['Email Filters'] = 'Epostfilter'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_index.lng b/interface/web/mailuser/lib/lang/se_index.lng index a23c6a6568..785507b292 100644 --- a/interface/web/mailuser/lib/lang/se_index.lng +++ b/interface/web/mailuser/lib/lang/se_index.lng @@ -10,4 +10,3 @@ $wb['unlimited_txt'] = 'Obegränsat'; $wb['mb_txt'] = 'MB'; $wb['none_txt'] = 'Inget'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng index 9429978911..4a9215c884 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_autoresponder.lng @@ -11,4 +11,3 @@ $wb['autoresponder_active'] = 'Aktivera autosvaret'; $wb['now_txt'] = 'Nu'; $wb['autoresponder_subject_txt'] = 'Ämnesrad'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_cc.lng b/interface/web/mailuser/lib/lang/se_mail_user_cc.lng index 203a9284c7..b01ae1b1ab 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_cc.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_cc.lng @@ -7,4 +7,3 @@ $wb['email_is_cc_error'] = 'Epostadress och -Skicka kopia till- kan inte vara sa $wb['name_optional_txt'] = '(Frivilligt)'; $wb['cc_note_txt'] = '(Separera flera epostadresser med kommatecken)'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_filter.lng b/interface/web/mailuser/lib/lang/se_mail_user_filter.lng index 17da57ac76..8cf96ce86f 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_filter.lng @@ -18,4 +18,3 @@ $wb['ends_with_txt'] = 'Slutar med'; $wb['move_to_txt'] = 'Flytta till'; $wb['delete_txt'] = 'Radera'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng index f4f757ddc4..c21eef0550 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_filter_list.lng @@ -6,4 +6,3 @@ $wb['page_txt'] = 'Sida'; $wb['page_of_txt'] = 'av'; $wb['delete_confirmation'] = 'Vill du verkligen radera epostfiltret?'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_password.lng b/interface/web/mailuser/lib/lang/se_mail_user_password.lng index 27ebb37050..c78430162a 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_password.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_password.lng @@ -8,4 +8,3 @@ $wb['repeat_password_txt'] = 'Upprepa lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng index e457b5a016..7ec5f2a7d8 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng @@ -5,4 +5,3 @@ $wb['email_txt'] = 'Epost'; $wb['no_policy'] = '- ej aktiverat -'; $wb['policy_txt'] = 'Policy'; ?> - diff --git a/interface/web/monitor/lib/lang/se.lng b/interface/web/monitor/lib/lang/se.lng index 0df65289b6..b550f80a35 100644 --- a/interface/web/monitor/lib/lang/se.lng +++ b/interface/web/monitor/lib/lang/se.lng @@ -153,4 +153,3 @@ $wb['Show Munin'] = 'Visa Munin'; $wb['no_munin_url_defined_txt'] = 'Ingen Munin-URL definierad.'; $wb['no_permissions_to_view_munin_txt'] = 'Du har inte behörighet att visa Munin.'; ?> - diff --git a/interface/web/monitor/lib/lang/se_datalog_list.lng b/interface/web/monitor/lib/lang/se_datalog_list.lng index 527b14993a..e3e76ea7dd 100644 --- a/interface/web/monitor/lib/lang/se_datalog_list.lng +++ b/interface/web/monitor/lib/lang/se_datalog_list.lng @@ -6,4 +6,3 @@ $wb['dbtable_txt'] = 'Databastabell'; $wb['action_txt'] = 'Händelse'; $wb['status_txt'] = 'Status'; ?> - diff --git a/interface/web/monitor/lib/lang/se_syslog_list.lng b/interface/web/monitor/lib/lang/se_syslog_list.lng index f3194b692c..6c7268cb76 100644 --- a/interface/web/monitor/lib/lang/se_syslog_list.lng +++ b/interface/web/monitor/lib/lang/se_syslog_list.lng @@ -5,4 +5,3 @@ $wb['server_id_txt'] = 'Server'; $wb['loglevel_txt'] = 'LoggnivÃ¥'; $wb['message_txt'] = 'Meddelande'; ?> - diff --git a/interface/web/sites/lib/lang/ar_ftp_user.lng b/interface/web/sites/lib/lang/ar_ftp_user.lng index 0492731846..42b8c4dea6 100644 --- a/interface/web/sites/lib/lang/ar_ftp_user.lng +++ b/interface/web/sites/lib/lang/ar_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ar_shell_user.lng b/interface/web/sites/lib/lang/ar_shell_user.lng index 8460d4e7ae..8095f4becc 100644 --- a/interface/web/sites/lib/lang/ar_shell_user.lng +++ b/interface/web/sites/lib/lang/ar_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_folder_list.lng b/interface/web/sites/lib/lang/ar_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/ar_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ar_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_folder_user_list.lng b/interface/web/sites/lib/lang/ar_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/ar_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ar_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/bg_ftp_user.lng b/interface/web/sites/lib/lang/bg_ftp_user.lng index fc15872732..4d5cef7339 100644 --- a/interface/web/sites/lib/lang/bg_ftp_user.lng +++ b/interface/web/sites/lib/lang/bg_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/bg_shell_user.lng b/interface/web/sites/lib/lang/bg_shell_user.lng index 82a44af348..15709147fa 100644 --- a/interface/web/sites/lib/lang/bg_shell_user.lng +++ b/interface/web/sites/lib/lang/bg_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_folder_list.lng b/interface/web/sites/lib/lang/bg_web_folder_list.lng index 36c9cbcf14..4e0f4b8a5e 100644 --- a/interface/web/sites/lib/lang/bg_web_folder_list.lng +++ b/interface/web/sites/lib/lang/bg_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Ðктивен'; $wb['server_id_txt'] = 'Сървър'; $wb['parent_domain_id_txt'] = 'УебÑайт'; $wb['path_txt'] = 'Път'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_folder_user_list.lng b/interface/web/sites/lib/lang/bg_web_folder_user_list.lng index ff89ba0613..2824380d8d 100644 --- a/interface/web/sites/lib/lang/bg_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/bg_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'ПотребителÑко име'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng index 4873bfd73c..f46b94fe92 100644 --- a/interface/web/sites/lib/lang/br_ftp_user.lng +++ b/interface/web/sites/lib/lang/br_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index 8a098cb5ae..69e0f6e287 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_list.lng b/interface/web/sites/lib/lang/br_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/br_web_folder_list.lng +++ b/interface/web/sites/lib/lang/br_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_user_list.lng b/interface/web/sites/lib/lang/br_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/br_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/br_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/cz_ftp_user.lng b/interface/web/sites/lib/lang/cz_ftp_user.lng index 2ef0f29190..b580e08f55 100644 --- a/interface/web/sites/lib/lang/cz_ftp_user.lng +++ b/interface/web/sites/lib/lang/cz_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generovat heslo'; $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng index 9bc6bdd2a8..fc933da057 100644 --- a/interface/web/sites/lib/lang/cz_shell_user.lng +++ b/interface/web/sites/lib/lang/cz_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_folder_list.lng b/interface/web/sites/lib/lang/cz_web_folder_list.lng index b75c0e80da..c7fa12cb24 100644 --- a/interface/web/sites/lib/lang/cz_web_folder_list.lng +++ b/interface/web/sites/lib/lang/cz_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'AktivnÃ'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webové stránky'; $wb['path_txt'] = 'Cesta'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng index 99fe62051c..c0059b2344 100644 --- a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Složka (adresář) uživatele'; $wb['active_txt'] = 'AktivnÃ'; $wb['web_folder_id_txt'] = 'Složka'; $wb['username_txt'] = 'Uživatelské jméno'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/de_ftp_user.lng b/interface/web/sites/lib/lang/de_ftp_user.lng index 65e84813e5..285c6c6876 100644 --- a/interface/web/sites/lib/lang/de_ftp_user.lng +++ b/interface/web/sites/lib/lang/de_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Passwort erzeugen'; $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/de_shell_user.lng b/interface/web/sites/lib/lang/de_shell_user.lng index 9de369f90d..3c4cc2d85a 100644 --- a/interface/web/sites/lib/lang/de_shell_user.lng +++ b/interface/web/sites/lib/lang/de_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; $wb['username_must_not_exceed_32_chars_txt'] = 'Der Benutzername darf 32 Zeichen nicht überschreiten.'; $wb['username_not_allowed_txt'] = 'Der Benutzername ist nicht erlaubt.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/de_web_folder_list.lng b/interface/web/sites/lib/lang/de_web_folder_list.lng index 9c85d51822..34e8f863e1 100644 --- a/interface/web/sites/lib/lang/de_web_folder_list.lng +++ b/interface/web/sites/lib/lang/de_web_folder_list.lng @@ -4,5 +4,5 @@ $wb['active_txt'] = 'Aktiv'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webseite'; $wb['path_txt'] = 'Pfad'; -$wb["add_new_record_txt"] = 'Ordner hinzufügen'; +$wb['add_new_record_txt'] = 'Ordner hinzufügen'; ?> diff --git a/interface/web/sites/lib/lang/de_web_folder_user_list.lng b/interface/web/sites/lib/lang/de_web_folder_user_list.lng index 2db8eb0524..c9bcb9cf57 100644 --- a/interface/web/sites/lib/lang/de_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/de_web_folder_user_list.lng @@ -3,5 +3,5 @@ $wb['list_head_txt'] = 'Ordner Benutzer'; $wb['active_txt'] = 'Aktiv'; $wb['web_folder_id_txt'] = 'Ordner'; $wb['username_txt'] = 'Benutzername'; -$wb["add_new_record_txt"] = 'Ordner Benutzer hinzufügen'; +$wb['add_new_record_txt'] = 'Ordner Benutzer hinzufügen'; ?> diff --git a/interface/web/sites/lib/lang/el_ftp_user.lng b/interface/web/sites/lib/lang/el_ftp_user.lng index 2f89d27bdf..a77581db84 100644 --- a/interface/web/sites/lib/lang/el_ftp_user.lng +++ b/interface/web/sites/lib/lang/el_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/el_shell_user.lng b/interface/web/sites/lib/lang/el_shell_user.lng index 3c3ea316ce..2ced9c23db 100644 --- a/interface/web/sites/lib/lang/el_shell_user.lng +++ b/interface/web/sites/lib/lang/el_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/el_web_folder_list.lng b/interface/web/sites/lib/lang/el_web_folder_list.lng index 86dc18cf66..f1e9e33f81 100644 --- a/interface/web/sites/lib/lang/el_web_folder_list.lng +++ b/interface/web/sites/lib/lang/el_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'ΕνεÏγός'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'ΔιαδÏομή'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/el_web_folder_user_list.lng b/interface/web/sites/lib/lang/el_web_folder_user_list.lng index 2103bcbfc2..bcbd08c393 100644 --- a/interface/web/sites/lib/lang/el_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/el_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'ΧÏήστης ΦακÎλου'; $wb['active_txt'] = 'ΕνεÏγός'; $wb['web_folder_id_txt'] = 'Φάκελος'; $wb['username_txt'] = 'Όνομα ΧÏήστη'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/es_ftp_user.lng b/interface/web/sites/lib/lang/es_ftp_user.lng index c8b86b064d..f8a5e6c69b 100644 --- a/interface/web/sites/lib/lang/es_ftp_user.lng +++ b/interface/web/sites/lib/lang/es_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/es_shell_user.lng b/interface/web/sites/lib/lang/es_shell_user.lng index 45fd930e21..46c39cc6ad 100644 --- a/interface/web/sites/lib/lang/es_shell_user.lng +++ b/interface/web/sites/lib/lang/es_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/es_web_folder_list.lng b/interface/web/sites/lib/lang/es_web_folder_list.lng index 668f62602b..e760a67b19 100644 --- a/interface/web/sites/lib/lang/es_web_folder_list.lng +++ b/interface/web/sites/lib/lang/es_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Activar'; $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Sitio web'; $wb['path_txt'] = 'Ruta'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/es_web_folder_user_list.lng b/interface/web/sites/lib/lang/es_web_folder_user_list.lng index 77799114e5..9bdb1e9b71 100644 --- a/interface/web/sites/lib/lang/es_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/es_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Carpeta del usuario'; $wb['active_txt'] = 'Activar'; $wb['web_folder_id_txt'] = 'Carpeta'; $wb['username_txt'] = 'Nombre de usuario'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/fi_ftp_user.lng b/interface/web/sites/lib/lang/fi_ftp_user.lng index ca39439562..4cf718c286 100755 --- a/interface/web/sites/lib/lang/fi_ftp_user.lng +++ b/interface/web/sites/lib/lang/fi_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/fi_shell_user.lng b/interface/web/sites/lib/lang/fi_shell_user.lng index 06fe1bd7e1..116e8c8d86 100755 --- a/interface/web/sites/lib/lang/fi_shell_user.lng +++ b/interface/web/sites/lib/lang/fi_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_folder_list.lng b/interface/web/sites/lib/lang/fi_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/fi_web_folder_list.lng +++ b/interface/web/sites/lib/lang/fi_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_folder_user_list.lng b/interface/web/sites/lib/lang/fi_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/fi_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/fi_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/fr.lng b/interface/web/sites/lib/lang/fr.lng index c914ef002f..9acee9d061 100644 --- a/interface/web/sites/lib/lang/fr.lng +++ b/interface/web/sites/lib/lang/fr.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Packages disponibles'; $wb['Installed packages'] = 'Packages installés'; $wb['Update Packagelist'] = 'Mise à jour de la liste des packages'; $wb['Subdomain (Vhost)'] = 'Sous-domaine (Vhost)'; -$wb['error_proxy_requires_url'] = 'Type de redirection \"proxy\" nécessite une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Type de redirection \\"proxy\\" nécessite une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/fr_aps.lng b/interface/web/sites/lib/lang/fr_aps.lng index eb268b0266..5d43e803dd 100644 --- a/interface/web/sites/lib/lang/fr_aps.lng +++ b/interface/web/sites/lib/lang/fr_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Le dossier d\'installation choisi est invalide $wb['error_license_agreement'] = 'Avant de continuer, vous devez accepter les conditions d\'utilisation (licence).'; $wb['error_no_database_pw'] = 'Vous n\'avez pas renseigné de mot de passe BDD valide.'; $wb['error_short_database_pw'] = 'Veuillez saisir un mot de passe BDD plus long.'; -$wb['error_no_value_for'] = 'Le champ \"%s\" ne peut pas être vide.'; -$wb['error_short_value_for'] = 'Le champ \"%s\" nécessite une valeur plus longue.'; -$wb['error_long_value_for'] = 'Le champ \"%s\" nécessite une valeur plus courte.'; -$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \"%s\".'; -$wb['error_inv_email_for'] = 'L\'adresse email saisie pour le champ \"%s\" est invalide.'; -$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \"%s\" est invalide.'; +$wb['error_no_value_for'] = 'Le champ \\"%s\\" ne peut pas être vide.'; +$wb['error_short_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus longue.'; +$wb['error_long_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus courte.'; +$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \\"%s\\".'; +$wb['error_inv_email_for'] = 'L\'adresse email saisie pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \\"%s\\" est invalide.'; $wb['error_used_location'] = 'Le chemin de destination contient déjà un package d\'installation.'; $wb['installation_task_txt'] = 'Installation prévue'; $wb['installation_error_txt'] = 'Erreur d\'installation'; diff --git a/interface/web/sites/lib/lang/fr_ftp_user.lng b/interface/web/sites/lib/lang/fr_ftp_user.lng index 5d00f4b780..f73a81b1b3 100644 --- a/interface/web/sites/lib/lang/fr_ftp_user.lng +++ b/interface/web/sites/lib/lang/fr_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Générer un mot de passe'; $wb['repeat_password_txt'] = 'Vérification du mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/fr_shell_user.lng b/interface/web/sites/lib/lang/fr_shell_user.lng index 3f967f852d..2e518d70b7 100644 --- a/interface/web/sites/lib/lang/fr_shell_user.lng +++ b/interface/web/sites/lib/lang/fr_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['username_must_not_exceed_32_chars_txt'] = 'Le nom d\'utilisateur ne doit pas dépasser 32 caractères.'; $wb['username_not_allowed_txt'] = 'Le nom d\'utilisateur est interdit.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_folder_list.lng b/interface/web/sites/lib/lang/fr_web_folder_list.lng index f358f8c882..0eed4fd8d6 100644 --- a/interface/web/sites/lib/lang/fr_web_folder_list.lng +++ b/interface/web/sites/lib/lang/fr_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Actif'; $wb['server_id_txt'] = 'Serveur'; $wb['parent_domain_id_txt'] = 'Site web'; $wb['path_txt'] = 'Chemin'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_folder_user_list.lng b/interface/web/sites/lib/lang/fr_web_folder_user_list.lng index e1824e2fe5..663c6d2a7b 100644 --- a/interface/web/sites/lib/lang/fr_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/fr_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Utilisateur du dossier'; $wb['active_txt'] = 'Actif'; $wb['web_folder_id_txt'] = 'Dossier'; $wb['username_txt'] = 'Nom de l\'utilisateur'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_subdomain.lng b/interface/web/sites/lib/lang/fr_web_subdomain.lng index ebc7250f22..edc7be0c14 100644 --- a/interface/web/sites/lib/lang/fr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_subdomain.lng @@ -42,5 +42,5 @@ $wb['no_flag_txt'] = 'Aucun flag'; $wb['domain_error_wildcard'] = 'Les sous-domaines joker ne sont pas autorisés.'; $wb['proxy_directives_txt'] = 'Directives pour les Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Directives pour les Proxy Snippets disponibles :'; -$wb['error_proxy_requires_url'] = 'Les redirections de type \"proxy\" nécessitent une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Les redirections de type \\"proxy\\" nécessitent une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/hr_ftp_user.lng b/interface/web/sites/lib/lang/hr_ftp_user.lng index 6290c0e6c6..dbefe0bbf5 100644 --- a/interface/web/sites/lib/lang/hr_ftp_user.lng +++ b/interface/web/sites/lib/lang/hr_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/hr_shell_user.lng b/interface/web/sites/lib/lang/hr_shell_user.lng index 4173787259..d081fd76f4 100644 --- a/interface/web/sites/lib/lang/hr_shell_user.lng +++ b/interface/web/sites/lib/lang/hr_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_folder_list.lng b/interface/web/sites/lib/lang/hr_web_folder_list.lng index 56965897a8..0a900fb2c4 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_list.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Aktivno'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['path_txt'] = 'Putanja'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_folder_user_list.lng b/interface/web/sites/lib/lang/hr_web_folder_user_list.lng index af7792fb6c..3beae9f477 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Web direktorij korisnik'; $wb['active_txt'] = 'Aktivno'; $wb['web_folder_id_txt'] = 'Web direkotrij'; $wb['username_txt'] = 'KorisniÄko ime'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/hu_ftp_user.lng b/interface/web/sites/lib/lang/hu_ftp_user.lng index 132bc49758..bbf61d4232 100644 --- a/interface/web/sites/lib/lang/hu_ftp_user.lng +++ b/interface/web/sites/lib/lang/hu_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/hu_shell_user.lng b/interface/web/sites/lib/lang/hu_shell_user.lng index 849f380f8c..8eaa537b58 100644 --- a/interface/web/sites/lib/lang/hu_shell_user.lng +++ b/interface/web/sites/lib/lang/hu_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_folder_list.lng b/interface/web/sites/lib/lang/hu_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/hu_web_folder_list.lng +++ b/interface/web/sites/lib/lang/hu_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_folder_user_list.lng b/interface/web/sites/lib/lang/hu_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/hu_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/hu_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/id_ftp_user.lng b/interface/web/sites/lib/lang/id_ftp_user.lng index 5e1dab2375..4898de245d 100644 --- a/interface/web/sites/lib/lang/id_ftp_user.lng +++ b/interface/web/sites/lib/lang/id_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/id_shell_user.lng b/interface/web/sites/lib/lang/id_shell_user.lng index 0ec09ccf77..83153c14e5 100644 --- a/interface/web/sites/lib/lang/id_shell_user.lng +++ b/interface/web/sites/lib/lang/id_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/id_web_folder_list.lng b/interface/web/sites/lib/lang/id_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/id_web_folder_list.lng +++ b/interface/web/sites/lib/lang/id_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/id_web_folder_user_list.lng b/interface/web/sites/lib/lang/id_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/id_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/id_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/it_ftp_user.lng b/interface/web/sites/lib/lang/it_ftp_user.lng index 1964a9fc54..bdd7818166 100644 --- a/interface/web/sites/lib/lang/it_ftp_user.lng +++ b/interface/web/sites/lib/lang/it_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/it_shell_user.lng b/interface/web/sites/lib/lang/it_shell_user.lng index 8460d4e7ae..8095f4becc 100644 --- a/interface/web/sites/lib/lang/it_shell_user.lng +++ b/interface/web/sites/lib/lang/it_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/it_web_folder_list.lng b/interface/web/sites/lib/lang/it_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/it_web_folder_list.lng +++ b/interface/web/sites/lib/lang/it_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/it_web_folder_user_list.lng b/interface/web/sites/lib/lang/it_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/it_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/it_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/ja_ftp_user.lng b/interface/web/sites/lib/lang/ja_ftp_user.lng index fb80ca35b6..8e92b1b05f 100644 --- a/interface/web/sites/lib/lang/ja_ftp_user.lng +++ b/interface/web/sites/lib/lang/ja_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ja_shell_user.lng b/interface/web/sites/lib/lang/ja_shell_user.lng index 19f09a5cb2..2ce5ad345e 100644 --- a/interface/web/sites/lib/lang/ja_shell_user.lng +++ b/interface/web/sites/lib/lang/ja_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_folder_list.lng b/interface/web/sites/lib/lang/ja_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/ja_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ja_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_folder_user_list.lng b/interface/web/sites/lib/lang/ja_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/ja_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ja_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/nl_ftp_user.lng b/interface/web/sites/lib/lang/nl_ftp_user.lng index 7f797de320..16e4ae87ce 100644 --- a/interface/web/sites/lib/lang/nl_ftp_user.lng +++ b/interface/web/sites/lib/lang/nl_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/nl_shell_user.lng b/interface/web/sites/lib/lang/nl_shell_user.lng index 53fed2070e..9a4ae63ed1 100644 --- a/interface/web/sites/lib/lang/nl_shell_user.lng +++ b/interface/web/sites/lib/lang/nl_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_folder_list.lng b/interface/web/sites/lib/lang/nl_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/nl_web_folder_list.lng +++ b/interface/web/sites/lib/lang/nl_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_folder_user_list.lng b/interface/web/sites/lib/lang/nl_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/nl_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/nl_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/pl_ftp_user.lng b/interface/web/sites/lib/lang/pl_ftp_user.lng index 5c91401133..37dd36b189 100644 --- a/interface/web/sites/lib/lang/pl_ftp_user.lng +++ b/interface/web/sites/lib/lang/pl_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generuj hasÅ‚o'; $wb['repeat_password_txt'] = 'Powtórz hasÅ‚o'; $wb['password_mismatch_txt'] = 'HasÅ‚a nie pasujÄ… do siebie'; $wb['password_match_txt'] = 'HasÅ‚a pasujÄ…'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/pl_shell_user.lng b/interface/web/sites/lib/lang/pl_shell_user.lng index e51ef644a7..19674e3bd7 100644 --- a/interface/web/sites/lib/lang/pl_shell_user.lng +++ b/interface/web/sites/lib/lang/pl_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'HasÅ‚a nie pasujÄ… do siebie'; $wb['password_match_txt'] = 'HasÅ‚a pasujÄ…'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_folder_list.lng b/interface/web/sites/lib/lang/pl_web_folder_list.lng index 87a769008f..75a403be33 100644 --- a/interface/web/sites/lib/lang/pl_web_folder_list.lng +++ b/interface/web/sites/lib/lang/pl_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Aktywny'; $wb['server_id_txt'] = 'Serwer'; $wb['parent_domain_id_txt'] = 'Witryna'; $wb['path_txt'] = 'Åšcieżka'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_folder_user_list.lng b/interface/web/sites/lib/lang/pl_web_folder_user_list.lng index 81769bd9d0..728c1f709c 100644 --- a/interface/web/sites/lib/lang/pl_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/pl_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Użytkownik katalogu'; $wb['active_txt'] = 'Aktywny'; $wb['web_folder_id_txt'] = 'Katalog'; $wb['username_txt'] = 'Login'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/pt_ftp_user.lng b/interface/web/sites/lib/lang/pt_ftp_user.lng index 17708727ca..9f5ed046ce 100644 --- a/interface/web/sites/lib/lang/pt_ftp_user.lng +++ b/interface/web/sites/lib/lang/pt_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/pt_shell_user.lng b/interface/web/sites/lib/lang/pt_shell_user.lng index 5e346483e8..4564bbc5a8 100644 --- a/interface/web/sites/lib/lang/pt_shell_user.lng +++ b/interface/web/sites/lib/lang/pt_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_folder_list.lng b/interface/web/sites/lib/lang/pt_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/pt_web_folder_list.lng +++ b/interface/web/sites/lib/lang/pt_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_folder_user_list.lng b/interface/web/sites/lib/lang/pt_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/pt_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/pt_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/ro_ftp_user.lng b/interface/web/sites/lib/lang/ro_ftp_user.lng index d7415ec2f2..e28b35e6d9 100644 --- a/interface/web/sites/lib/lang/ro_ftp_user.lng +++ b/interface/web/sites/lib/lang/ro_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ro_shell_user.lng b/interface/web/sites/lib/lang/ro_shell_user.lng index d4620af9e4..912b6b2b0c 100644 --- a/interface/web/sites/lib/lang/ro_shell_user.lng +++ b/interface/web/sites/lib/lang/ro_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_folder_list.lng b/interface/web/sites/lib/lang/ro_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/ro_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ro_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_folder_user_list.lng b/interface/web/sites/lib/lang/ro_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/ro_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ro_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/ru_ftp_user.lng b/interface/web/sites/lib/lang/ru_ftp_user.lng index 58a2277e51..f9609ce26d 100644 --- a/interface/web/sites/lib/lang/ru_ftp_user.lng +++ b/interface/web/sites/lib/lang/ru_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/ru_shell_user.lng b/interface/web/sites/lib/lang/ru_shell_user.lng index d87f544e11..f3b788f14e 100644 --- a/interface/web/sites/lib/lang/ru_shell_user.lng +++ b/interface/web/sites/lib/lang/ru_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_folder_list.lng b/interface/web/sites/lib/lang/ru_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/ru_web_folder_list.lng +++ b/interface/web/sites/lib/lang/ru_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_folder_user_list.lng b/interface/web/sites/lib/lang/ru_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/ru_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/ru_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/se.lng b/interface/web/sites/lib/lang/se.lng index 780195fb88..a63670545c 100644 --- a/interface/web/sites/lib/lang/se.lng +++ b/interface/web/sites/lib/lang/se.lng @@ -31,6 +31,5 @@ $wb['Available packages'] = 'Tillgängliga paket'; $wb['Installed packages'] = 'Installerade paket'; $wb['Update Packagelist'] = 'Uppdatera paketlista'; $wb['Subdomain (Vhost)'] = 'Underdomän (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type "proxy" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> - diff --git a/interface/web/sites/lib/lang/se_aps.lng b/interface/web/sites/lib/lang/se_aps.lng index 315b03c721..1fe86175d3 100644 --- a/interface/web/sites/lib/lang/se_aps.lng +++ b/interface/web/sites/lib/lang/se_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field "%s" must not be empty.'; -$wb['error_short_value_for'] = 'The field "%s" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field "%s" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field "%s".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field "%s".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field "%s".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field "%s".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field "%s".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Installation planerad'; $wb['installation_error_txt'] = 'Installationsfel'; @@ -56,4 +56,3 @@ $wb['btn_install_txt'] = 'Installera'; $wb['btn_cancel_txt'] = 'Avbryt'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; ?> - diff --git a/interface/web/sites/lib/lang/se_aps_instances_list.lng b/interface/web/sites/lib/lang/se_aps_instances_list.lng index 81cda2a4c4..a9428aa737 100644 --- a/interface/web/sites/lib/lang/se_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/se_aps_instances_list.lng @@ -11,4 +11,3 @@ $wb['filter_txt'] = 'Sök'; $wb['delete_txt'] = 'Radera'; $wb['reinstall_txt'] = 'Ominstallera'; ?> - diff --git a/interface/web/sites/lib/lang/se_aps_packages_list.lng b/interface/web/sites/lib/lang/se_aps_packages_list.lng index 1746bfd4ae..8555961a4e 100644 --- a/interface/web/sites/lib/lang/se_aps_packages_list.lng +++ b/interface/web/sites/lib/lang/se_aps_packages_list.lng @@ -6,4 +6,3 @@ $wb['category_txt'] = 'Kategori'; $wb['status_txt'] = 'OlÃ¥st'; $wb['filter_txt'] = 'Sök'; ?> - diff --git a/interface/web/sites/lib/lang/se_aps_update_packagelist.lng b/interface/web/sites/lib/lang/se_aps_update_packagelist.lng index 8d84c057de..891a951688 100644 --- a/interface/web/sites/lib/lang/se_aps_update_packagelist.lng +++ b/interface/web/sites/lib/lang/se_aps_update_packagelist.lng @@ -5,4 +5,3 @@ $wb['btn_start_txt'] = 'Uppdatera paketlista'; $wb['btn_cancel_txt'] = 'Avbryt'; $wb['legend_txt'] = 'Here you can update the list of available packages. Please note that this can take up to five minutes. You can leave this page if you like; the process will continue in the background.'; ?> - diff --git a/interface/web/sites/lib/lang/se_cron.lng b/interface/web/sites/lib/lang/se_cron.lng index bc89db2564..83b7d3b33d 100644 --- a/interface/web/sites/lib/lang/se_cron.lng +++ b/interface/web/sites/lib/lang/se_cron.lng @@ -22,4 +22,3 @@ $wb['server_id_error_empty'] = 'Fältet för server-ID är tomt.'; $wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with http:// as cron command.'; $wb['command_error_empty'] = 'Kommandofältet är tomt.'; ?> - diff --git a/interface/web/sites/lib/lang/se_cron_list.lng b/interface/web/sites/lib/lang/se_cron_list.lng index b17951c8a4..0459144158 100644 --- a/interface/web/sites/lib/lang/se_cron_list.lng +++ b/interface/web/sites/lib/lang/se_cron_list.lng @@ -11,4 +11,3 @@ $wb['command_txt'] = 'Kommando'; $wb['add_new_cron_txt'] = 'Lägg till nytt cron-jobb'; $wb['parent_domain_id_txt'] = 'Webbsida'; ?> - diff --git a/interface/web/sites/lib/lang/se_database.lng b/interface/web/sites/lib/lang/se_database.lng index 03eac081c7..c06c3f0e44 100644 --- a/interface/web/sites/lib/lang/se_database.lng +++ b/interface/web/sites/lib/lang/se_database.lng @@ -44,4 +44,3 @@ $wb['no_dbuser_txt'] = 'Ingen'; $wb['database_client_differs_txt'] = 'The client of the parent web and the database do not match.'; $wb['database_user_missing_txt'] = 'Vänligen välj en databasanvändare för den här databasen.'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_admin_list.lng b/interface/web/sites/lib/lang/se_database_admin_list.lng index fe415d3231..640c07cf19 100644 --- a/interface/web/sites/lib/lang/se_database_admin_list.lng +++ b/interface/web/sites/lib/lang/se_database_admin_list.lng @@ -9,4 +9,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny databas'; $wb['sys_groupid_txt'] = 'Kund'; $wb['parent_domain_id_txt'] = 'Webbsida'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_list.lng b/interface/web/sites/lib/lang/se_database_list.lng index 3909b37308..bfcdaf39f9 100644 --- a/interface/web/sites/lib/lang/se_database_list.lng +++ b/interface/web/sites/lib/lang/se_database_list.lng @@ -8,4 +8,3 @@ $wb['add_new_record_txt'] = 'Lägg till ny databas'; $wb['database_user_txt'] = 'Databasanvändare'; $wb['parent_domain_id_txt'] = 'Webbsida'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_user.lng b/interface/web/sites/lib/lang/se_database_user.lng index c707175cf2..2cf9a1a8cb 100644 --- a/interface/web/sites/lib/lang/se_database_user.lng +++ b/interface/web/sites/lib/lang/se_database_user.lng @@ -21,4 +21,3 @@ $wb['globalsearch_noresults_limit_txt'] = '0 resultat'; $wb['globalsearch_searchfield_watermark_txt'] = 'Sök'; $wb['globalsearch_suggestions_text_txt'] = 'Förslag'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_user_admin_list.lng b/interface/web/sites/lib/lang/se_database_user_admin_list.lng index 6eca0b7ac2..a9bb594e77 100644 --- a/interface/web/sites/lib/lang/se_database_user_admin_list.lng +++ b/interface/web/sites/lib/lang/se_database_user_admin_list.lng @@ -4,4 +4,3 @@ $wb['database_user_txt'] = 'Databasanvändare'; $wb['add_new_record_txt'] = 'Lägg till ny användare'; $wb['sys_groupid_txt'] = 'Kund'; ?> - diff --git a/interface/web/sites/lib/lang/se_database_user_list.lng b/interface/web/sites/lib/lang/se_database_user_list.lng index cb62444504..c0eef9d5e1 100644 --- a/interface/web/sites/lib/lang/se_database_user_list.lng +++ b/interface/web/sites/lib/lang/se_database_user_list.lng @@ -3,4 +3,3 @@ $wb['list_head_txt'] = 'Databasanvändare'; $wb['database_user_txt'] = 'Databasanvändare'; $wb['add_new_record_txt'] = 'Lägg till ny användare'; ?> - diff --git a/interface/web/sites/lib/lang/se_ftp_user.lng b/interface/web/sites/lib/lang/se_ftp_user.lng index 50d9031c48..3ba08a2019 100644 --- a/interface/web/sites/lib/lang/se_ftp_user.lng +++ b/interface/web/sites/lib/lang/se_ftp_user.lng @@ -31,5 +31,6 @@ $wb['generate_password_txt'] = 'Generera lösenord'; $wb['repeat_password_txt'] = 'Upprepa lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> - diff --git a/interface/web/sites/lib/lang/se_ftp_user_list.lng b/interface/web/sites/lib/lang/se_ftp_user_list.lng index c833d1a9b3..f0ac76012e 100644 --- a/interface/web/sites/lib/lang/se_ftp_user_list.lng +++ b/interface/web/sites/lib/lang/se_ftp_user_list.lng @@ -6,4 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webbsida'; $wb['username_txt'] = 'Användarnamn'; $wb['add_new_record_txt'] = 'Lägg till ny FTP-användare'; ?> - diff --git a/interface/web/sites/lib/lang/se_shell_user.lng b/interface/web/sites/lib/lang/se_shell_user.lng index b2d00838cb..8095f4becc 100644 --- a/interface/web/sites/lib/lang/se_shell_user.lng +++ b/interface/web/sites/lib/lang/se_shell_user.lng @@ -28,5 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> - diff --git a/interface/web/sites/lib/lang/se_shell_user_list.lng b/interface/web/sites/lib/lang/se_shell_user_list.lng index 3389173436..4a9d7cb9a7 100644 --- a/interface/web/sites/lib/lang/se_shell_user_list.lng +++ b/interface/web/sites/lib/lang/se_shell_user_list.lng @@ -6,4 +6,3 @@ $wb['parent_domain_id_txt'] = 'Site'; $wb['username_txt'] = 'Username'; $wb['add_new_record_txt'] = 'Add new Shell-User'; ?> - diff --git a/interface/web/sites/lib/lang/se_user_quota_stats_list.lng b/interface/web/sites/lib/lang/se_user_quota_stats_list.lng index 2084a496cc..7fe4791f60 100644 --- a/interface/web/sites/lib/lang/se_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/se_user_quota_stats_list.lng @@ -7,4 +7,3 @@ $wb['hard_txt'] = 'Hard limit'; $wb['soft_txt'] = 'Soft limit'; $wb['files_txt'] = 'Single files'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_aliasdomain.lng b/interface/web/sites/lib/lang/se_web_aliasdomain.lng index ecbc150c7b..4149c71149 100644 --- a/interface/web/sites/lib/lang/se_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/se_web_aliasdomain.lng @@ -113,4 +113,3 @@ $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; $wb['Domain'] = 'Aliasdomain'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng index 4860654d03..8ea34c4409 100644 --- a/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng +++ b/interface/web/sites/lib/lang/se_web_aliasdomain_list.lng @@ -12,4 +12,3 @@ $wb['no_redirect_txt'] = 'No redirect'; $wb['no_flag_txt'] = 'No flag'; $wb['none_txt'] = 'None'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_backup_list.lng b/interface/web/sites/lib/lang/se_web_backup_list.lng index 261304d01a..e74395302a 100644 --- a/interface/web/sites/lib/lang/se_web_backup_list.lng +++ b/interface/web/sites/lib/lang/se_web_backup_list.lng @@ -13,4 +13,3 @@ $wb['restore_pending_txt'] = 'There is already a pending backup restore job.'; $wb['backup_type_mysql'] = 'MySQL-databaser'; $wb['backup_type_web'] = 'Webbsidefiler'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index e281579930..2b9a05647c 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -128,4 +128,3 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Ogiltiga php.ini-inställningar'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_domain_admin_list.lng b/interface/web/sites/lib/lang/se_web_domain_admin_list.lng index 073724589d..b460e27100 100644 --- a/interface/web/sites/lib/lang/se_web_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/se_web_domain_admin_list.lng @@ -7,4 +7,3 @@ $wb['server_id_txt'] = 'Server'; $wb['domain_txt'] = 'Domain'; $wb['add_new_record_txt'] = 'Add new website'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_domain_list.lng b/interface/web/sites/lib/lang/se_web_domain_list.lng index eabd544425..88ec412daa 100644 --- a/interface/web/sites/lib/lang/se_web_domain_list.lng +++ b/interface/web/sites/lib/lang/se_web_domain_list.lng @@ -6,4 +6,3 @@ $wb['server_id_txt'] = 'Server'; $wb['domain_txt'] = 'Domain'; $wb['add_new_record_txt'] = 'Add new website'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder.lng b/interface/web/sites/lib/lang/se_web_folder.lng index 96553c5d84..6dbc15854c 100644 --- a/interface/web/sites/lib/lang/se_web_folder.lng +++ b/interface/web/sites/lib/lang/se_web_folder.lng @@ -6,4 +6,3 @@ $wb['active_txt'] = 'Aktiv'; $wb['path_error_regex'] = 'Ogiltig katalogsökväg'; $wb['error_folder_already_protected_txt'] = 'Det finns redan ett inlägg för den här mappen.'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder_list.lng b/interface/web/sites/lib/lang/se_web_folder_list.lng index 194e7444e0..f3ce8b100c 100644 --- a/interface/web/sites/lib/lang/se_web_folder_list.lng +++ b/interface/web/sites/lib/lang/se_web_folder_list.lng @@ -4,5 +4,5 @@ $wb['active_txt'] = 'Aktiv'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webbsida'; $wb['path_txt'] = 'Sökväg'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder_user.lng b/interface/web/sites/lib/lang/se_web_folder_user.lng index 0c52cfa476..6db2415703 100644 --- a/interface/web/sites/lib/lang/se_web_folder_user.lng +++ b/interface/web/sites/lib/lang/se_web_folder_user.lng @@ -12,4 +12,3 @@ $wb['password_match_txt'] = 'Lösenorden matchar'; $wb['no_folder_perm'] = 'Du har inga rättigheter för denna katalog'; $wb['error_user_exists_already_txt'] = 'Det finns redan ett inlägg för denna användare'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_folder_user_list.lng b/interface/web/sites/lib/lang/se_web_folder_user_list.lng index 3af6f700f5..67612f5111 100644 --- a/interface/web/sites/lib/lang/se_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/se_web_folder_user_list.lng @@ -3,5 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_sites_stats_list.lng b/interface/web/sites/lib/lang/se_web_sites_stats_list.lng index 66137dc1ea..95a82568ed 100644 --- a/interface/web/sites/lib/lang/se_web_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/se_web_sites_stats_list.lng @@ -7,4 +7,3 @@ $wb['this_year_txt'] = 'I Ã¥r'; $wb['last_year_txt'] = 'Förra Ã¥ret'; $wb['sum_txt'] = 'Total'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_subdomain.lng b/interface/web/sites/lib/lang/se_web_subdomain.lng index 8955209eee..856d3c20a0 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain.lng @@ -42,6 +42,5 @@ $wb['no_flag_txt'] = 'Ingan flagga'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type "proxy" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_subdomain_list.lng b/interface/web/sites/lib/lang/se_web_subdomain_list.lng index 58084a63ff..1c16bcda28 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain_list.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain_list.lng @@ -6,4 +6,3 @@ $wb['parent_domain_id_txt'] = 'Website'; $wb['domain_txt'] = 'Subdomain'; $wb['add_new_record_txt'] = 'Add new subdomain'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng index 409c83027d..c0ca93b570 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng @@ -125,4 +125,3 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; ?> - diff --git a/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng index 9604437b66..100b03bcca 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_subdomain_list.lng @@ -6,4 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webbsida'; $wb['domain_txt'] = 'Underdomän'; $wb['add_new_record_txt'] = 'Lägg till ny underdomän'; ?> - diff --git a/interface/web/sites/lib/lang/se_webdav_user.lng b/interface/web/sites/lib/lang/se_webdav_user.lng index 4c3fe5e5d5..07dc281140 100644 --- a/interface/web/sites/lib/lang/se_webdav_user.lng +++ b/interface/web/sites/lib/lang/se_webdav_user.lng @@ -19,4 +19,3 @@ $wb['repeat_password_txt'] = 'Repetera lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/sites/lib/lang/se_webdav_user_list.lng b/interface/web/sites/lib/lang/se_webdav_user_list.lng index 96bd318a70..a6031a1fd3 100644 --- a/interface/web/sites/lib/lang/se_webdav_user_list.lng +++ b/interface/web/sites/lib/lang/se_webdav_user_list.lng @@ -6,4 +6,3 @@ $wb['parent_domain_id_txt'] = 'Webbsida'; $wb['username_txt'] = 'Användarnamn'; $wb['add_new_record_txt'] = 'Lägg till ny WebDAV-användare'; ?> - diff --git a/interface/web/sites/lib/lang/sk_ftp_user.lng b/interface/web/sites/lib/lang/sk_ftp_user.lng index 1526d4030c..c57cbfdd1d 100644 --- a/interface/web/sites/lib/lang/sk_ftp_user.lng +++ b/interface/web/sites/lib/lang/sk_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/sk_shell_user.lng b/interface/web/sites/lib/lang/sk_shell_user.lng index 79f9eac87e..8b94d0d01c 100644 --- a/interface/web/sites/lib/lang/sk_shell_user.lng +++ b/interface/web/sites/lib/lang/sk_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_folder_list.lng b/interface/web/sites/lib/lang/sk_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/sk_web_folder_list.lng +++ b/interface/web/sites/lib/lang/sk_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_folder_user_list.lng b/interface/web/sites/lib/lang/sk_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/sk_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/sk_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/sites/lib/lang/tr_ftp_user.lng b/interface/web/sites/lib/lang/tr_ftp_user.lng index 4cc2f4d7c7..62401dee1c 100644 --- a/interface/web/sites/lib/lang/tr_ftp_user.lng +++ b/interface/web/sites/lib/lang/tr_ftp_user.lng @@ -31,4 +31,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; ?> diff --git a/interface/web/sites/lib/lang/tr_shell_user.lng b/interface/web/sites/lib/lang/tr_shell_user.lng index ac45063f0a..0c932c1a4a 100644 --- a/interface/web/sites/lib/lang/tr_shell_user.lng +++ b/interface/web/sites/lib/lang/tr_shell_user.lng @@ -28,4 +28,7 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['directory_error_regex'] = 'Invalid directory'; +$wb['shell_error_regex'] = 'Invalid shell'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_folder_list.lng b/interface/web/sites/lib/lang/tr_web_folder_list.lng index 76d97029ba..89f8b65ac3 100644 --- a/interface/web/sites/lib/lang/tr_web_folder_list.lng +++ b/interface/web/sites/lib/lang/tr_web_folder_list.lng @@ -4,4 +4,5 @@ $wb['active_txt'] = 'Active'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Website'; $wb['path_txt'] = 'Path'; +$wb['add_new_record_txt'] = 'Add new Folder'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_folder_user_list.lng b/interface/web/sites/lib/lang/tr_web_folder_user_list.lng index 9a7286a95c..67612f5111 100644 --- a/interface/web/sites/lib/lang/tr_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/tr_web_folder_user_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Folder User'; $wb['active_txt'] = 'Active'; $wb['web_folder_id_txt'] = 'Folder'; $wb['username_txt'] = 'Username'; +$wb['add_new_record_txt'] = 'Add new Folder User'; ?> diff --git a/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng index 16dcfff68a..7fb81bfa9a 100644 --- a/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng +++ b/interface/web/strengthmeter/lib/lang/se_strengthmeter.lng @@ -6,4 +6,3 @@ $wb['password_strength_3_txt'] = 'Bra'; $wb['password_strength_4_txt'] = 'Starkt'; $wb['password_strength_5_txt'] = 'Mycket starkt'; ?> - diff --git a/interface/web/tools/lib/lang/se.lng b/interface/web/tools/lib/lang/se.lng index 5c93f2b016..e6da7423b7 100644 --- a/interface/web/tools/lib/lang/se.lng +++ b/interface/web/tools/lib/lang/se.lng @@ -11,4 +11,3 @@ $wb['ISPConfig 3 mail'] = 'ISPConfig 3 epost'; $wb['PDNS Tupa'] = 'PowerDNS Tupa'; $wb['Interface'] = 'Interface'; ?> - diff --git a/interface/web/tools/lib/lang/se_import_ispconfig.lng b/interface/web/tools/lib/lang/se_import_ispconfig.lng index 0aad8ad9a9..17ddae91be 100644 --- a/interface/web/tools/lib/lang/se_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/se_import_ispconfig.lng @@ -21,4 +21,3 @@ $wb['import_forward_txt'] = 'Importera vidarebefordring'; $wb['import_user_filter_txt'] = 'Importera användarfilter'; $wb['import_spamfilter_txt'] = 'Importera spamfilter'; ?> - diff --git a/interface/web/tools/lib/lang/se_index.lng b/interface/web/tools/lib/lang/se_index.lng index cf5012ff12..e395435258 100644 --- a/interface/web/tools/lib/lang/se_index.lng +++ b/interface/web/tools/lib/lang/se_index.lng @@ -2,4 +2,3 @@ $wb['page_head_txt'] = 'ISPConfig verktyg'; $wb['page_desc_txt'] = 'Ändra användarinställningar'; ?> - diff --git a/interface/web/tools/lib/lang/se_interface.lng b/interface/web/tools/lib/lang/se_interface.lng index 833679603b..9a66f59e00 100644 --- a/interface/web/tools/lib/lang/se_interface.lng +++ b/interface/web/tools/lib/lang/se_interface.lng @@ -5,4 +5,3 @@ $wb['language_txt'] = 'SprÃ¥k'; $wb['startmodule_txt'] = 'Startmodul'; $wb['app_theme_txt'] = 'Design'; ?> - diff --git a/interface/web/tools/lib/lang/se_tpl_default.lng b/interface/web/tools/lib/lang/se_tpl_default.lng index 4c0fd7139b..013666e63e 100644 --- a/interface/web/tools/lib/lang/se_tpl_default.lng +++ b/interface/web/tools/lib/lang/se_tpl_default.lng @@ -5,4 +5,3 @@ $wb['no_settings_txt'] = 'Det finns inga instälningar för det förvalda temat' $wb['btn_start_txt'] = 'Spara'; $wb['btn_cancel_txt'] = 'Tillbaka'; ?> - diff --git a/interface/web/tools/lib/lang/se_usersettings.lng b/interface/web/tools/lib/lang/se_usersettings.lng index 85176ac236..f7e05e913c 100644 --- a/interface/web/tools/lib/lang/se_usersettings.lng +++ b/interface/web/tools/lib/lang/se_usersettings.lng @@ -10,4 +10,3 @@ $wb['repeat_password_txt'] = 'Upprepa lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; ?> - diff --git a/interface/web/vm/lib/lang/se.lng b/interface/web/vm/lib/lang/se.lng index 5c1ab58229..4167e14a8a 100644 --- a/interface/web/vm/lib/lang/se.lng +++ b/interface/web/vm/lib/lang/se.lng @@ -5,4 +5,3 @@ $wb['VM Templates'] = 'VM Templates'; $wb['IP addresses'] = 'IP addresses'; $wb['OpenVZ'] = 'OpenVZ'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_action.lng b/interface/web/vm/lib/lang/se_openvz_action.lng index 71e7263f9d..52f7328582 100644 --- a/interface/web/vm/lib/lang/se_openvz_action.lng +++ b/interface/web/vm/lib/lang/se_openvz_action.lng @@ -14,4 +14,3 @@ $wb['ostemplate_name_error'] = 'The OSTemplate name conatains unallowed characte $wb['ostemplate_name_unique_error'] = 'There is already a OSTemplate with that name.'; $wb['ostemplate_exec_txt'] = 'The command to create a OSTemplate has been sent to the host server. It will take several minutes until the OSTemplate has been created.'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ip.lng b/interface/web/vm/lib/lang/se_openvz_ip.lng index 67f688576a..6016681df8 100644 --- a/interface/web/vm/lib/lang/se_openvz_ip.lng +++ b/interface/web/vm/lib/lang/se_openvz_ip.lng @@ -7,4 +7,3 @@ $wb['ip_error_wrong'] = 'Please fill in a valid IPv4 address.'; $wb['ip_error_unique'] = 'This IP address does already exist.'; $wb['IP address'] = 'IP address'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ip_list.lng b/interface/web/vm/lib/lang/se_openvz_ip_list.lng index 37c1d62e7c..e6a3a68c2c 100644 --- a/interface/web/vm/lib/lang/se_openvz_ip_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_ip_list.lng @@ -5,4 +5,3 @@ $wb['ip_address_txt'] = 'IP address'; $wb['reserved_txt'] = 'Reserved'; $wb['vm_id_txt'] = 'VM'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ostemplate.lng b/interface/web/vm/lib/lang/se_openvz_ostemplate.lng index bfeb299088..256750f19a 100644 --- a/interface/web/vm/lib/lang/se_openvz_ostemplate.lng +++ b/interface/web/vm/lib/lang/se_openvz_ostemplate.lng @@ -9,4 +9,3 @@ $wb['template_name_error_empty'] = 'Template name is empty.'; $wb['template_file_error_empty'] = 'Template filename is empty.'; $wb['Template'] = 'Template'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng index df01680e16..6471ec0e27 100644 --- a/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_ostemplate_list.lng @@ -6,4 +6,3 @@ $wb['server_id_txt'] = 'Server'; $wb['allservers_txt'] = 'Exists on all servers'; $wb['ostemplate_id_txt'] = 'ID'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_template.lng b/interface/web/vm/lib/lang/se_openvz_template.lng index 0887164d39..d285512dca 100644 --- a/interface/web/vm/lib/lang/se_openvz_template.lng +++ b/interface/web/vm/lib/lang/se_openvz_template.lng @@ -91,4 +91,3 @@ $wb['swappages_error_empty'] = 'Swappages is empty.'; $wb['Template'] = 'Template'; $wb['Advanced'] = 'Advanced'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_template_list.lng b/interface/web/vm/lib/lang/se_openvz_template_list.lng index 6e4d911c6b..de4045c36a 100644 --- a/interface/web/vm/lib/lang/se_openvz_template_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_template_list.lng @@ -3,4 +3,3 @@ $wb['list_head_txt'] = 'OpenVZ Virtual Machine Template'; $wb['active_txt'] = 'Active'; $wb['template_name_txt'] = 'Template name'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_vm.lng b/interface/web/vm/lib/lang/se_openvz_vm.lng index 4698fe681b..f2be022dd0 100644 --- a/interface/web/vm/lib/lang/se_openvz_vm.lng +++ b/interface/web/vm/lib/lang/se_openvz_vm.lng @@ -38,4 +38,3 @@ $wb['template_nameserver_error_empty'] = 'Nameserver(s) is empty.'; $wb['Virtual server'] = 'Virtual server'; $wb['Advanced'] = 'Advanced'; ?> - diff --git a/interface/web/vm/lib/lang/se_openvz_vm_list.lng b/interface/web/vm/lib/lang/se_openvz_vm_list.lng index a534a65f20..2238e2b8f4 100644 --- a/interface/web/vm/lib/lang/se_openvz_vm_list.lng +++ b/interface/web/vm/lib/lang/se_openvz_vm_list.lng @@ -8,4 +8,3 @@ $wb['hostname_txt'] = 'Hostname'; $wb['ip_address_txt'] = 'IP address'; $wb['veid_txt'] = 'VEID'; ?> - -- GitLab From 7d9346a9a2879053dba283c54f4076b83fbc8484 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 1 Aug 2014 11:57:59 +0200 Subject: [PATCH 062/158] Updated version number to 3.0.5.4p2 --- install/sql/ispconfig3.sql | 2 +- install/tpl/config.inc.php.master | 2 +- interface/lib/config.inc.php | 2 +- interface/web/themes/blue/ispconfig_version | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index e1bfa900dd..ab5f795cd2 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -2292,7 +2292,7 @@ INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, -- Dumping data for table `sys_config` -- -INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p1'); +INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p2'); INSERT INTO sys_config VALUES ('interface','session_timeout','0'); SET FOREIGN_KEY_CHECKS = 1; diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master index bae60611a3..6f40a1cda0 100644 --- a/install/tpl/config.inc.php.master +++ b/install/tpl/config.inc.php.master @@ -56,7 +56,7 @@ $revision = str_replace(array('Revision:','$',' '), '', $svn_revision); //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p1'); +define('ISPC_APP_VERSION', '3.0.5.4p2'); define('DEVSYSTEM', 0); diff --git a/interface/lib/config.inc.php b/interface/lib/config.inc.php index 7fcbfe21fd..179acc9325 100644 --- a/interface/lib/config.inc.php +++ b/interface/lib/config.inc.php @@ -44,7 +44,7 @@ $revision = str_replace(array('Revision:', '$', ' '), '', $svn_revision); //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p1'); +define('ISPC_APP_VERSION', '3.0.5.4p2'); define('DEVSYSTEM', 0); diff --git a/interface/web/themes/blue/ispconfig_version b/interface/web/themes/blue/ispconfig_version index ec330200a9..0b23ab9c7a 100644 --- a/interface/web/themes/blue/ispconfig_version +++ b/interface/web/themes/blue/ispconfig_version @@ -1 +1 @@ -3.0.5.4p1 +3.0.5.4p2 -- GitLab From 15687e27652852fa205f9e0d5de245bb9a44a618 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 1 Aug 2014 13:25:56 +0200 Subject: [PATCH 063/158] Fixed some errors in user check of apache and nginx plugin. --- interface/lib/classes/functions.inc.php | 4 ++-- server/lib/classes/system.inc.php | 18 +++++++++--------- .../plugins-available/apache2_plugin.inc.php | 6 +++--- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 29feffde7f..e37edda975 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -430,7 +430,7 @@ class functions { $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($username,$name_blacklist)) return false; - if(preg_match('/^[\w\.\-]{0,32}$/', $username) == false) return false; + if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $username) == false) return false; if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; @@ -443,7 +443,7 @@ class functions { $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - if(preg_match('/^[\w\.\-]{0,32}$/', $groupname) == false) return false; + if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $groupname) == false) return false; if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 3001c6459e..9bd3e0080d 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1824,7 +1824,7 @@ class system{ $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($username,$name_blacklist)) return false; - if(preg_match('/^[\w\.\-]{0,32}$/', $username) == false) return false; + if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $username) == false) return false; if($check_id && intval($this->getuid($username)) < $this->min_uid) return false; @@ -1833,18 +1833,18 @@ class system{ return true; } - public function is_allowed_group($groupname, $restrict_names = false) { + public function is_allowed_group($groupname, $check_id = true, $restrict_names = false) { global $app; - + echo 1; $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - - if(preg_match('/^[\w\.\-]{0,32}$/', $groupname) == false) return false; - - if(intval($this->getgid($groupname)) < $this->min_gid) return false; - + echo 2; + if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $groupname) == false) return false; + echo 3; + if($check_id && intval($this->getgid($groupname)) < $this->min_gid) return false; + echo 4; if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; - + echo 5; return true; } diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index b1411c9f03..350c0372ce 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -344,9 +344,9 @@ class apache2_plugin { if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set', LOGLEVEL_WARN); return 0; } - if(!$app->system->is_allowed_user($data['new']['system_user'], false, true) - || !$app->system->is_allowed_group($data['new']['system_group'], false, true)) { - $app->log('Websites cannot be owned by the root user or group.', LOGLEVEL_WARN); + if($app->system->is_allowed_user($data['new']['system_user'], $app->system->is_user($data['new']['system_user']), true) == false + || $app->system->is_allowed_group($data['new']['system_group'], $app->system->is_group($data['new']['system_group']), true) == false) { + $app->log('Websites cannot be owned by the root user or group. User: '.$data['new']['system_user'].' Group: '.$data['new']['system_group'], LOGLEVEL_WARN); return 0; } if(trim($data['new']['domain']) == '') { -- GitLab From 0cba4efbba787909adbf569fca50ac5b13337928 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 1 Aug 2014 14:33:07 +0200 Subject: [PATCH 064/158] Removed debug messages. --- server/lib/classes/system.inc.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 9bd3e0080d..20d4f93a1c 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1835,16 +1835,16 @@ class system{ public function is_allowed_group($groupname, $check_id = true, $restrict_names = false) { global $app; - echo 1; + $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - echo 2; + if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $groupname) == false) return false; - echo 3; + if($check_id && intval($this->getgid($groupname)) < $this->min_gid) return false; - echo 4; + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; - echo 5; + return true; } -- GitLab From 2c49c56ebcb55e4dec88f22bf2977d0e6db9bcc7 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 1 Aug 2014 15:58:04 +0200 Subject: [PATCH 065/158] Fixed issue in password strength check. --- interface/lib/classes/validate_password.inc.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/validate_password.inc.php b/interface/lib/classes/validate_password.inc.php index 998c37c4ec..da044c6053 100644 --- a/interface/lib/classes/validate_password.inc.php +++ b/interface/lib/classes/validate_password.inc.php @@ -53,10 +53,11 @@ class validate_password { $different += 1; } - if (preg_match('/[`~!@#$%^&*()_+|\\=-[]}{\';:\/?.>,<" ]/', $password)) { + if (preg_match('/[`~!@#$%^&*()_+|\\=-\[\]}{\';:\/?.>,<" ]/', $password)) { $points += 1; $different += 1; } + if ($points == 0 || $different < 3) { if ($length >= 5 && $length <= 6) { @@ -122,7 +123,7 @@ class validate_password { $lng_text = str_replace('{chars}', $min_password_length, $lng_text); } if(!$lng_text) $lng_text = 'weak_password_txt'; // always return a string, even if language is missing - otherwise validator is NOT MATCHING! - + if(strlen($field_value) < $min_password_length) return $lng_text; if($this->_get_password_strength($field_value) < $min_password_strength) return $lng_text; -- GitLab From 53f0d29ab0b237a12998cadd64df1c8f7dfa3144 Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Wed, 6 Aug 2014 15:48:11 +0200 Subject: [PATCH 066/158] - made it possible to specify database table for AUTHSQL. --- interface/lib/classes/listform.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php index 04f4b375b7..1b613a9a89 100644 --- a/interface/lib/classes/listform.inc.php +++ b/interface/lib/classes/listform.inc.php @@ -97,6 +97,7 @@ class listform { $querystring = str_replace("{AUTHSQL}", $app->tform->getAuthSQL('r'), $querystring); $querystring = str_replace("{AUTHSQL-A}", $app->tform->getAuthSQL('r', 'a'), $querystring); $querystring = str_replace("{AUTHSQL-B}", $app->tform->getAuthSQL('r', 'b'), $querystring); + $querystring = preg_replace_callback('@{AUTHSQL::(.+?)}@', create_function('$matches','global $app; $tmp = $app->tform->getAuthSQL("r", $matches[1]); return $tmp;'), $querystring); //* Getting the records $tmp_records = $app->db->queryAllRecords($querystring); -- GitLab From 9ae8653c95ca73645365a82415dc0e873ee6afe3 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 7 Aug 2014 07:38:21 +0200 Subject: [PATCH 067/158] Fix proposal: FS#3602 - Setting a session timeout causes mysql error messages on screen --- interface/lib/classes/session.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/session.inc.php b/interface/lib/classes/session.inc.php index dcb187b6c0..09b82b65cc 100644 --- a/interface/lib/classes/session.inc.php +++ b/interface/lib/classes/session.inc.php @@ -99,7 +99,7 @@ class session { $date_created = date('Y-m-d H:i:s'); $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); - $sql = "INSERT INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES ('$session_id','$date_created','$last_updated','$session_data','" . ($this->permanent ? 'y' : 'n') . "')"; + $sql = "REPLACE INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES ('$session_id','$date_created','$last_updated','$session_data','" . ($this->permanent ? 'y' : 'n') . "')"; $this->db->query($sql); } else { -- GitLab From 1e6ea5a91d122ca8d8eee9f04e8c16c80c73d669 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 7 Aug 2014 09:25:50 +0200 Subject: [PATCH 068/158] Improved user check in nginx plugin. --- server/plugins-available/nginx_plugin.inc.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 2837e0eb94..b0e18c79a2 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -352,9 +352,9 @@ class nginx_plugin { return 0; } - if(!$app->system->is_allowed_user($data['new']['system_user'], false, true) - || !$app->system->is_allowed_group($data['new']['system_group'], false, true)) { - $app->log('Websites cannot be owned by the root user or group.', LOGLEVEL_WARN); + if($app->system->is_allowed_user($data['new']['system_user'], $app->system->is_user($data['new']['system_user']), true) == false + || $app->system->is_allowed_group($data['new']['system_group'], $app->system->is_group($data['new']['system_group']), true) == false) { + $app->log('Websites cannot be owned by the root user or group. User: '.$data['new']['system_user'].' Group: '.$data['new']['system_group'], LOGLEVEL_WARN); return 0; } -- GitLab From a1be59c6db4f286640d5a3eb0229e43bed641785 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 7 Aug 2014 11:01:45 +0200 Subject: [PATCH 069/158] Fixed: FS#3602 - Setting a session timeout causes mysql error messages on screen --- interface/lib/classes/session.inc.php | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/interface/lib/classes/session.inc.php b/interface/lib/classes/session.inc.php index 09b82b65cc..8b3a7cffc4 100644 --- a/interface/lib/classes/session.inc.php +++ b/interface/lib/classes/session.inc.php @@ -88,25 +88,21 @@ class session { // Dont write session_data to DB if session data has not been changed after reading it. if(isset($this->session_array['session_data']) && $this->session_array['session_data'] != '' && $this->session_array['session_data'] == $session_data) { $session_id = $this->db->quote($session_id); - $last_updated = date('Y-m-d H:i:s'); - $this->db->query("UPDATE sys_session SET last_updated = '$last_updated' WHERE session_id = '$session_id'"); + $this->db->query("UPDATE sys_session SET last_updated = NOW() WHERE session_id = '$session_id'"); return true; } if (@$this->session_array['session_id'] == '') { $session_id = $this->db->quote($session_id); - $date_created = date('Y-m-d H:i:s'); - $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); - $sql = "REPLACE INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES ('$session_id','$date_created','$last_updated','$session_data','" . ($this->permanent ? 'y' : 'n') . "')"; + $sql = "REPLACE INTO sys_session (session_id,date_created,last_updated,session_data,permanent) VALUES ('$session_id',NOW(),NOW(),'$session_data','" . ($this->permanent ? 'y' : 'n') . "')"; $this->db->query($sql); } else { $session_id = $this->db->quote($session_id); - $last_updated = date('Y-m-d H:i:s'); $session_data = $this->db->quote($session_data); - $sql = "UPDATE sys_session SET last_updated = '$last_updated', session_data = '$session_data'" . ($this->permanent ? ", `permanent` = 'y'" : "") . " WHERE session_id = '$session_id'"; + $sql = "UPDATE sys_session SET last_updated = NOW(), session_data = '$session_data'" . ($this->permanent ? ", `permanent` = 'y'" : "") . " WHERE session_id = '$session_id'"; $this->db->query($sql); } @@ -128,18 +124,11 @@ class session { /*if($this->timeout > 0) { $this->db->query("DELETE FROM sys_session WHERE last_updated < DATE_SUB(NOW(), INTERVAL " . intval($this->timeout) . " MINUTE)"); } else {*/ - $real_now = date('Y-m-d H:i:s'); - $dt1 = strtotime("$real_now -$max_lifetime seconds"); - $dt2 = date('Y-m-d H:i:s', $dt1); - - $sql = "DELETE FROM sys_session WHERE last_updated < '$dt2' AND `permanent` != 'y'"; + $sql = "DELETE FROM sys_session WHERE last_updated < DATE_SUB(NOW(), INTERVAL " . intval($max_lifetime) . " SECOND) AND `permanent` != 'y'"; $this->db->query($sql); /* delete very old even if they are permanent */ - $dt1 = strtotime("$real_now -365 days"); - $dt2 = date('Y-m-d H:i:s', $dt1); - - $sql = "DELETE FROM sys_session WHERE last_updated < '$dt2'"; + $sql = "DELETE FROM sys_session WHERE last_updated < DATE_SUB(NOW(), INTERVAL 1 YEAR)"; $this->db->query($sql); //} -- GitLab From 746bf0f5cd4a3a650a0bfa1c1149d4e1331774a0 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 8 Aug 2014 10:53:48 +0200 Subject: [PATCH 070/158] Fixed: FS#3607 - Permissions of .htaccess file in stats folder are wrong --- server/plugins-available/apache2_plugin.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 350c0372ce..a5339579fb 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1475,7 +1475,7 @@ class apache2_plugin { if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdir($data['new']['document_root'].'/' . $web_folder . '/stats'); $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user"; $app->system->file_put_contents($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', $ht_file); - $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0751); + $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0755); unset($ht_file); //} @@ -1485,7 +1485,7 @@ class apache2_plugin { $app->system->web_folder_protection($data['new']['document_root'], false); $app->system->file_put_contents($data['new']['document_root'].'/web/stats/.htpasswd_stats', $htp_file); $app->system->web_folder_protection($data['new']['document_root'], true); - $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0751); + $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0755); unset($htp_file); } } -- GitLab From 373e8817f82014fcde11157ed0d5e75eb77a5cb4 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 8 Aug 2014 10:55:34 +0200 Subject: [PATCH 071/158] Fixed: FS#3603 - system.inc.php:1827 is_allowed_user regex typo? --- interface/lib/classes/functions.inc.php | 4 ++-- server/lib/classes/system.inc.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index e37edda975..2d87c63344 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -430,7 +430,7 @@ class functions { $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($username,$name_blacklist)) return false; - if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $username) == false) return false; + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false; if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; @@ -443,7 +443,7 @@ class functions { $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $groupname) == false) return false; + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false; if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 20d4f93a1c..af42e5ec31 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1824,7 +1824,7 @@ class system{ $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($username,$name_blacklist)) return false; - if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $username) == false) return false; + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false; if($check_id && intval($this->getuid($username)) < $this->min_uid) return false; @@ -1839,7 +1839,7 @@ class system{ $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $groupname) == false) return false; + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false; if($check_id && intval($this->getgid($groupname)) < $this->min_gid) return false; -- GitLab From 65ad3435addc6292e378c88ec861dc58a3a8da3d Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Wed, 13 Aug 2014 12:52:18 +0200 Subject: [PATCH 072/158] - improved input validation --- interface/lib/classes/functions.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 2d87c63344..8fed767087 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -248,7 +248,7 @@ class functions { } $ips = array(); - $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = '".$type."'"); + $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = '".$app->db->quote($type)."'"); if(!empty($results) && is_array($results)){ foreach($results as $result){ if(preg_match($regex, $result['ip'])){ -- GitLab From 3e0fc8674ab8d1106d324eab809b49e420481e54 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 16:07:03 +0200 Subject: [PATCH 073/158] Changed owner of ispconfig server files from ispconfig to root user. --- install/dist/lib/fedora.lib.php | 18 ++++++++++++++---- install/dist/lib/gentoo.lib.php | 18 ++++++++++++++---- install/dist/lib/opensuse.lib.php | 18 ++++++++++++++---- install/lib/installer_base.lib.php | 18 ++++++++++++++---- 4 files changed, 56 insertions(+), 16 deletions(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 7a08f93f13..d6d975a150 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -958,12 +958,22 @@ class installer_dist extends installer_base { $this->db->query($sql); } - //* Chmod the files - $command = "chmod -R 750 $install_dir"; + /// chown install dir to root and chmod 755 + $command = 'chown root:root '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chmod 755 '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Chmod the files and directoreies in the install dir + $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* chown the files to the ispconfig user and group - $command = "chown -R ispconfig:ispconfig $install_dir"; + //* chown the interface files to the ispconfig user and group + $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the server files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 4200a01398..26474c51fc 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -850,12 +850,22 @@ class installer extends installer_base $this->db->query($sql); } - //* Chmod the files - $command = "chmod -R 750 $install_dir"; + // chown install dir to root and chmod 755 + $command = 'chown root:root '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chmod 755 '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Chmod the files and directoreies in the install dir + $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* chown the files to the ispconfig user and group - $command = "chown -R ispconfig:ispconfig $install_dir"; + //* chown the interface files to the ispconfig user and group + $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the server files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index f990e91960..dad3a6a3cb 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -1028,12 +1028,22 @@ class installer_dist extends installer_base { $this->db->query($sql); } - //* Chmod the files - $command = "chmod -R 750 $install_dir"; + // chown install dir to root and chmod 755 + $command = 'chown root:root '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chmod 755 '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Chmod the files and directoreies in the install dir + $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* chown the files to the ispconfig user and group - $command = "chown -R ispconfig:ispconfig $install_dir"; + //* chown the interface files to the ispconfig user and group + $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the server files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 548cf9382a..a82ac2e74c 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1885,12 +1885,22 @@ class installer_base { } - //* Chmod the files - $command = 'chmod -R 750 '.$install_dir; + // chown install dir to root and chmod 755 + $command = 'chown root:root '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chmod 755 '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Chmod the files and directoreies in the install dir + $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* chown the files to the ispconfig user and group - $command = 'chown -R ispconfig:ispconfig '.$install_dir; + //* chown the interface files to the ispconfig user and group + $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the server files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable -- GitLab From 0281b9f75ae39c1654ddb5acb0b5a1feb0a9f406 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 16:10:14 +0200 Subject: [PATCH 074/158] Removed unused files. --- interface/lib/classes/db_firebird.inc.php | 384 ------------------ interface/web/designer/form/empty.dir | 1 - interface/web/designer/form_edit.php | 153 ------- interface/web/designer/form_list.php | 89 ---- interface/web/designer/form_show.php | 119 ------ interface/web/designer/index.php | 1 - interface/web/designer/lib/admin.conf.php | 4 - interface/web/designer/lib/lang/ar.lng | 2 - .../web/designer/lib/lang/ar_form_edit.lng | 24 -- .../web/designer/lib/lang/ar_form_list.lng | 7 - .../web/designer/lib/lang/ar_form_show.lng | 18 - .../web/designer/lib/lang/ar_module_edit.lng | 22 - .../web/designer/lib/lang/ar_module_list.lng | 5 - .../designer/lib/lang/ar_module_nav_edit.lng | 6 - .../lib/lang/ar_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/ar_module_show.lng | 16 - interface/web/designer/lib/lang/bg.lng | 2 - .../web/designer/lib/lang/bg_form_edit.lng | 24 -- .../web/designer/lib/lang/bg_form_list.lng | 7 - .../web/designer/lib/lang/bg_form_show.lng | 18 - .../web/designer/lib/lang/bg_module_edit.lng | 12 - .../web/designer/lib/lang/bg_module_list.lng | 5 - .../designer/lib/lang/bg_module_nav_edit.lng | 6 - .../lib/lang/bg_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/bg_module_show.lng | 16 - interface/web/designer/lib/lang/br.lng | 2 - .../web/designer/lib/lang/br_form_edit.lng | 24 -- .../web/designer/lib/lang/br_form_list.lng | 7 - .../web/designer/lib/lang/br_form_show.lng | 18 - .../web/designer/lib/lang/br_module_edit.lng | 22 - .../web/designer/lib/lang/br_module_list.lng | 5 - .../designer/lib/lang/br_module_nav_edit.lng | 6 - .../lib/lang/br_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/br_module_show.lng | 16 - interface/web/designer/lib/lang/cz.lng | 2 - .../web/designer/lib/lang/cz_form_edit.lng | 24 -- .../web/designer/lib/lang/cz_form_list.lng | 7 - .../web/designer/lib/lang/cz_form_show.lng | 18 - .../web/designer/lib/lang/cz_module_edit.lng | 22 - .../web/designer/lib/lang/cz_module_list.lng | 5 - .../designer/lib/lang/cz_module_nav_edit.lng | 6 - .../lib/lang/cz_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/cz_module_show.lng | 16 - interface/web/designer/lib/lang/de.lng | 2 - .../web/designer/lib/lang/de_form_edit.lng | 24 -- .../web/designer/lib/lang/de_form_list.lng | 7 - .../web/designer/lib/lang/de_form_show.lng | 18 - .../web/designer/lib/lang/de_module_edit.lng | 12 - .../web/designer/lib/lang/de_module_list.lng | 5 - .../designer/lib/lang/de_module_nav_edit.lng | 6 - .../lib/lang/de_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/de_module_show.lng | 16 - interface/web/designer/lib/lang/el.lng | 2 - .../web/designer/lib/lang/el_form_edit.lng | 24 -- .../web/designer/lib/lang/el_form_list.lng | 7 - .../web/designer/lib/lang/el_form_show.lng | 18 - .../web/designer/lib/lang/el_module_edit.lng | 12 - .../web/designer/lib/lang/el_module_list.lng | 5 - .../designer/lib/lang/el_module_nav_edit.lng | 6 - .../lib/lang/el_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/el_module_show.lng | 16 - interface/web/designer/lib/lang/en.lng | 3 - .../web/designer/lib/lang/en_form_edit.lng | 26 -- .../web/designer/lib/lang/en_form_list.lng | 7 - .../web/designer/lib/lang/en_form_show.lng | 18 - .../web/designer/lib/lang/en_module_edit.lng | 23 -- .../web/designer/lib/lang/en_module_list.lng | 5 - .../designer/lib/lang/en_module_nav_edit.lng | 6 - .../lib/lang/en_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/en_module_show.lng | 17 - interface/web/designer/lib/lang/es.lng | 2 - .../web/designer/lib/lang/es_form_edit.lng | 24 -- .../web/designer/lib/lang/es_form_list.lng | 7 - .../web/designer/lib/lang/es_form_show.lng | 18 - .../web/designer/lib/lang/es_module_edit.lng | 12 - .../web/designer/lib/lang/es_module_list.lng | 5 - .../designer/lib/lang/es_module_nav_edit.lng | 6 - .../lib/lang/es_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/es_module_show.lng | 16 - interface/web/designer/lib/lang/fi.lng | 2 - .../web/designer/lib/lang/fi_form_edit.lng | 24 -- .../web/designer/lib/lang/fi_form_list.lng | 7 - .../web/designer/lib/lang/fi_form_show.lng | 18 - .../web/designer/lib/lang/fi_module_edit.lng | 22 - .../web/designer/lib/lang/fi_module_list.lng | 5 - .../designer/lib/lang/fi_module_nav_edit.lng | 6 - .../lib/lang/fi_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/fi_module_show.lng | 16 - interface/web/designer/lib/lang/fr.lng | 2 - .../web/designer/lib/lang/fr_form_edit.lng | 24 -- .../web/designer/lib/lang/fr_form_list.lng | 7 - .../web/designer/lib/lang/fr_form_show.lng | 18 - .../web/designer/lib/lang/fr_module_edit.lng | 12 - .../web/designer/lib/lang/fr_module_list.lng | 5 - .../designer/lib/lang/fr_module_nav_edit.lng | 6 - .../lib/lang/fr_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/fr_module_show.lng | 16 - interface/web/designer/lib/lang/hr.lng | 2 - .../web/designer/lib/lang/hr_form_edit.lng | 24 -- .../web/designer/lib/lang/hr_form_list.lng | 7 - .../web/designer/lib/lang/hr_form_show.lng | 18 - .../web/designer/lib/lang/hr_module_edit.lng | 12 - .../web/designer/lib/lang/hr_module_list.lng | 5 - .../designer/lib/lang/hr_module_nav_edit.lng | 6 - .../lib/lang/hr_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/hr_module_show.lng | 16 - interface/web/designer/lib/lang/hu.lng | 2 - .../web/designer/lib/lang/hu_form_edit.lng | 24 -- .../web/designer/lib/lang/hu_form_list.lng | 7 - .../web/designer/lib/lang/hu_form_show.lng | 18 - .../web/designer/lib/lang/hu_module_edit.lng | 22 - .../web/designer/lib/lang/hu_module_list.lng | 5 - .../designer/lib/lang/hu_module_nav_edit.lng | 6 - .../lib/lang/hu_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/hu_module_show.lng | 16 - interface/web/designer/lib/lang/id.lng | 2 - .../web/designer/lib/lang/id_form_edit.lng | 24 -- .../web/designer/lib/lang/id_form_list.lng | 7 - .../web/designer/lib/lang/id_form_show.lng | 18 - .../web/designer/lib/lang/id_module_edit.lng | 22 - .../web/designer/lib/lang/id_module_list.lng | 5 - .../designer/lib/lang/id_module_nav_edit.lng | 6 - .../lib/lang/id_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/id_module_show.lng | 16 - interface/web/designer/lib/lang/it.lng | 2 - .../web/designer/lib/lang/it_form_edit.lng | 24 -- .../web/designer/lib/lang/it_form_list.lng | 7 - .../web/designer/lib/lang/it_form_show.lng | 18 - .../web/designer/lib/lang/it_module_edit.lng | 22 - .../web/designer/lib/lang/it_module_list.lng | 5 - .../designer/lib/lang/it_module_nav_edit.lng | 6 - .../lib/lang/it_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/it_module_show.lng | 16 - interface/web/designer/lib/lang/ja.lng | 2 - .../web/designer/lib/lang/ja_form_edit.lng | 24 -- .../web/designer/lib/lang/ja_form_list.lng | 7 - .../web/designer/lib/lang/ja_form_show.lng | 18 - .../web/designer/lib/lang/ja_module_edit.lng | 22 - .../web/designer/lib/lang/ja_module_list.lng | 5 - .../designer/lib/lang/ja_module_nav_edit.lng | 6 - .../lib/lang/ja_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/ja_module_show.lng | 16 - interface/web/designer/lib/lang/nl.lng | 2 - .../web/designer/lib/lang/nl_form_edit.lng | 24 -- .../web/designer/lib/lang/nl_form_list.lng | 7 - .../web/designer/lib/lang/nl_form_show.lng | 18 - .../web/designer/lib/lang/nl_module_edit.lng | 22 - .../web/designer/lib/lang/nl_module_list.lng | 5 - .../designer/lib/lang/nl_module_nav_edit.lng | 6 - .../lib/lang/nl_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/nl_module_show.lng | 16 - interface/web/designer/lib/lang/pl.lng | 2 - .../web/designer/lib/lang/pl_form_edit.lng | 24 -- .../web/designer/lib/lang/pl_form_list.lng | 7 - .../web/designer/lib/lang/pl_form_show.lng | 18 - .../web/designer/lib/lang/pl_module_edit.lng | 22 - .../web/designer/lib/lang/pl_module_list.lng | 5 - .../designer/lib/lang/pl_module_nav_edit.lng | 6 - .../lib/lang/pl_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/pl_module_show.lng | 16 - interface/web/designer/lib/lang/pt.lng | 2 - .../web/designer/lib/lang/pt_form_edit.lng | 24 -- .../web/designer/lib/lang/pt_form_list.lng | 7 - .../web/designer/lib/lang/pt_form_show.lng | 18 - .../web/designer/lib/lang/pt_module_edit.lng | 22 - .../web/designer/lib/lang/pt_module_list.lng | 5 - .../designer/lib/lang/pt_module_nav_edit.lng | 6 - .../lib/lang/pt_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/pt_module_show.lng | 16 - interface/web/designer/lib/lang/ro.lng | 2 - .../web/designer/lib/lang/ro_form_edit.lng | 24 -- .../web/designer/lib/lang/ro_form_list.lng | 7 - .../web/designer/lib/lang/ro_form_show.lng | 18 - .../web/designer/lib/lang/ro_module_edit.lng | 12 - .../web/designer/lib/lang/ro_module_list.lng | 5 - .../designer/lib/lang/ro_module_nav_edit.lng | 6 - .../lib/lang/ro_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/ro_module_show.lng | 16 - interface/web/designer/lib/lang/ru.lng | 2 - .../web/designer/lib/lang/ru_form_edit.lng | 24 -- .../web/designer/lib/lang/ru_form_list.lng | 7 - .../web/designer/lib/lang/ru_form_show.lng | 18 - .../web/designer/lib/lang/ru_module_edit.lng | 22 - .../web/designer/lib/lang/ru_module_list.lng | 5 - .../designer/lib/lang/ru_module_nav_edit.lng | 6 - .../lib/lang/ru_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/ru_module_show.lng | 16 - interface/web/designer/lib/lang/se.lng | 2 - .../web/designer/lib/lang/se_form_edit.lng | 24 -- .../web/designer/lib/lang/se_form_list.lng | 7 - .../web/designer/lib/lang/se_form_show.lng | 18 - .../web/designer/lib/lang/se_module_edit.lng | 12 - .../web/designer/lib/lang/se_module_list.lng | 5 - .../designer/lib/lang/se_module_nav_edit.lng | 6 - .../lib/lang/se_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/se_module_show.lng | 16 - interface/web/designer/lib/lang/sk.lng | 2 - .../web/designer/lib/lang/sk_form_edit.lng | 24 -- .../web/designer/lib/lang/sk_form_list.lng | 7 - .../web/designer/lib/lang/sk_form_show.lng | 18 - .../web/designer/lib/lang/sk_module_edit.lng | 12 - .../web/designer/lib/lang/sk_module_list.lng | 5 - .../designer/lib/lang/sk_module_nav_edit.lng | 6 - .../lib/lang/sk_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/sk_module_show.lng | 16 - interface/web/designer/lib/lang/tr.lng | 2 - .../web/designer/lib/lang/tr_form_edit.lng | 24 -- .../web/designer/lib/lang/tr_form_list.lng | 7 - .../web/designer/lib/lang/tr_form_show.lng | 18 - .../web/designer/lib/lang/tr_module_edit.lng | 22 - .../web/designer/lib/lang/tr_module_list.lng | 5 - .../designer/lib/lang/tr_module_nav_edit.lng | 6 - .../lib/lang/tr_module_nav_item_edit.lng | 8 - .../web/designer/lib/lang/tr_module_show.lng | 16 - interface/web/designer/lib/module.conf.php | 95 ----- interface/web/designer/list/empty.dir | 1 - interface/web/designer/module_edit.php | 184 --------- interface/web/designer/module_list.php | 69 ---- interface/web/designer/module_nav_del.php | 81 ---- interface/web/designer/module_nav_edit.php | 147 ------- interface/web/designer/module_nav_flip.php | 92 ----- .../web/designer/module_nav_item_del.php | 83 ---- .../web/designer/module_nav_item_edit.php | 151 ------- .../web/designer/module_nav_item_flip.php | 94 ----- interface/web/designer/module_show.php | 113 ------ .../web/designer/templates/form_edit.htm | 79 ---- .../web/designer/templates/form_list.htm | 29 -- .../web/designer/templates/form_show.htm | 61 --- .../web/designer/templates/module_edit.htm | 43 -- .../web/designer/templates/module_list.htm | 23 -- .../designer/templates/module_nav_edit.htm | 24 -- .../templates/module_nav_item_edit.htm | 33 -- .../web/designer/templates/module_show.htm | 31 -- .../web/designer/templates/paging.tpl.htm | 9 - 234 files changed, 4592 deletions(-) delete mode 100644 interface/lib/classes/db_firebird.inc.php delete mode 100644 interface/web/designer/form/empty.dir delete mode 100644 interface/web/designer/form_edit.php delete mode 100644 interface/web/designer/form_list.php delete mode 100644 interface/web/designer/form_show.php delete mode 100644 interface/web/designer/index.php delete mode 100644 interface/web/designer/lib/admin.conf.php delete mode 100644 interface/web/designer/lib/lang/ar.lng delete mode 100644 interface/web/designer/lib/lang/ar_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/ar_form_list.lng delete mode 100644 interface/web/designer/lib/lang/ar_form_show.lng delete mode 100644 interface/web/designer/lib/lang/ar_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/ar_module_list.lng delete mode 100644 interface/web/designer/lib/lang/ar_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/ar_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/ar_module_show.lng delete mode 100644 interface/web/designer/lib/lang/bg.lng delete mode 100644 interface/web/designer/lib/lang/bg_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/bg_form_list.lng delete mode 100644 interface/web/designer/lib/lang/bg_form_show.lng delete mode 100644 interface/web/designer/lib/lang/bg_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/bg_module_list.lng delete mode 100644 interface/web/designer/lib/lang/bg_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/bg_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/bg_module_show.lng delete mode 100644 interface/web/designer/lib/lang/br.lng delete mode 100644 interface/web/designer/lib/lang/br_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/br_form_list.lng delete mode 100644 interface/web/designer/lib/lang/br_form_show.lng delete mode 100644 interface/web/designer/lib/lang/br_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/br_module_list.lng delete mode 100644 interface/web/designer/lib/lang/br_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/br_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/br_module_show.lng delete mode 100644 interface/web/designer/lib/lang/cz.lng delete mode 100644 interface/web/designer/lib/lang/cz_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/cz_form_list.lng delete mode 100644 interface/web/designer/lib/lang/cz_form_show.lng delete mode 100644 interface/web/designer/lib/lang/cz_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/cz_module_list.lng delete mode 100644 interface/web/designer/lib/lang/cz_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/cz_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/cz_module_show.lng delete mode 100644 interface/web/designer/lib/lang/de.lng delete mode 100644 interface/web/designer/lib/lang/de_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/de_form_list.lng delete mode 100644 interface/web/designer/lib/lang/de_form_show.lng delete mode 100644 interface/web/designer/lib/lang/de_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/de_module_list.lng delete mode 100644 interface/web/designer/lib/lang/de_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/de_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/de_module_show.lng delete mode 100644 interface/web/designer/lib/lang/el.lng delete mode 100644 interface/web/designer/lib/lang/el_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/el_form_list.lng delete mode 100644 interface/web/designer/lib/lang/el_form_show.lng delete mode 100644 interface/web/designer/lib/lang/el_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/el_module_list.lng delete mode 100644 interface/web/designer/lib/lang/el_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/el_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/el_module_show.lng delete mode 100644 interface/web/designer/lib/lang/en.lng delete mode 100644 interface/web/designer/lib/lang/en_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/en_form_list.lng delete mode 100644 interface/web/designer/lib/lang/en_form_show.lng delete mode 100644 interface/web/designer/lib/lang/en_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/en_module_list.lng delete mode 100644 interface/web/designer/lib/lang/en_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/en_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/en_module_show.lng delete mode 100644 interface/web/designer/lib/lang/es.lng delete mode 100644 interface/web/designer/lib/lang/es_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/es_form_list.lng delete mode 100644 interface/web/designer/lib/lang/es_form_show.lng delete mode 100644 interface/web/designer/lib/lang/es_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/es_module_list.lng delete mode 100644 interface/web/designer/lib/lang/es_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/es_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/es_module_show.lng delete mode 100755 interface/web/designer/lib/lang/fi.lng delete mode 100755 interface/web/designer/lib/lang/fi_form_edit.lng delete mode 100755 interface/web/designer/lib/lang/fi_form_list.lng delete mode 100755 interface/web/designer/lib/lang/fi_form_show.lng delete mode 100755 interface/web/designer/lib/lang/fi_module_edit.lng delete mode 100755 interface/web/designer/lib/lang/fi_module_list.lng delete mode 100755 interface/web/designer/lib/lang/fi_module_nav_edit.lng delete mode 100755 interface/web/designer/lib/lang/fi_module_nav_item_edit.lng delete mode 100755 interface/web/designer/lib/lang/fi_module_show.lng delete mode 100644 interface/web/designer/lib/lang/fr.lng delete mode 100644 interface/web/designer/lib/lang/fr_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/fr_form_list.lng delete mode 100644 interface/web/designer/lib/lang/fr_form_show.lng delete mode 100644 interface/web/designer/lib/lang/fr_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/fr_module_list.lng delete mode 100644 interface/web/designer/lib/lang/fr_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/fr_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/fr_module_show.lng delete mode 100644 interface/web/designer/lib/lang/hr.lng delete mode 100644 interface/web/designer/lib/lang/hr_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/hr_form_list.lng delete mode 100644 interface/web/designer/lib/lang/hr_form_show.lng delete mode 100644 interface/web/designer/lib/lang/hr_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/hr_module_list.lng delete mode 100644 interface/web/designer/lib/lang/hr_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/hr_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/hr_module_show.lng delete mode 100644 interface/web/designer/lib/lang/hu.lng delete mode 100644 interface/web/designer/lib/lang/hu_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/hu_form_list.lng delete mode 100644 interface/web/designer/lib/lang/hu_form_show.lng delete mode 100644 interface/web/designer/lib/lang/hu_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/hu_module_list.lng delete mode 100644 interface/web/designer/lib/lang/hu_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/hu_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/hu_module_show.lng delete mode 100644 interface/web/designer/lib/lang/id.lng delete mode 100644 interface/web/designer/lib/lang/id_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/id_form_list.lng delete mode 100644 interface/web/designer/lib/lang/id_form_show.lng delete mode 100644 interface/web/designer/lib/lang/id_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/id_module_list.lng delete mode 100644 interface/web/designer/lib/lang/id_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/id_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/id_module_show.lng delete mode 100644 interface/web/designer/lib/lang/it.lng delete mode 100644 interface/web/designer/lib/lang/it_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/it_form_list.lng delete mode 100644 interface/web/designer/lib/lang/it_form_show.lng delete mode 100644 interface/web/designer/lib/lang/it_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/it_module_list.lng delete mode 100644 interface/web/designer/lib/lang/it_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/it_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/it_module_show.lng delete mode 100644 interface/web/designer/lib/lang/ja.lng delete mode 100644 interface/web/designer/lib/lang/ja_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/ja_form_list.lng delete mode 100644 interface/web/designer/lib/lang/ja_form_show.lng delete mode 100644 interface/web/designer/lib/lang/ja_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/ja_module_list.lng delete mode 100644 interface/web/designer/lib/lang/ja_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/ja_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/ja_module_show.lng delete mode 100644 interface/web/designer/lib/lang/nl.lng delete mode 100644 interface/web/designer/lib/lang/nl_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/nl_form_list.lng delete mode 100644 interface/web/designer/lib/lang/nl_form_show.lng delete mode 100644 interface/web/designer/lib/lang/nl_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/nl_module_list.lng delete mode 100644 interface/web/designer/lib/lang/nl_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/nl_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/nl_module_show.lng delete mode 100644 interface/web/designer/lib/lang/pl.lng delete mode 100644 interface/web/designer/lib/lang/pl_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/pl_form_list.lng delete mode 100644 interface/web/designer/lib/lang/pl_form_show.lng delete mode 100644 interface/web/designer/lib/lang/pl_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/pl_module_list.lng delete mode 100644 interface/web/designer/lib/lang/pl_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/pl_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/pl_module_show.lng delete mode 100644 interface/web/designer/lib/lang/pt.lng delete mode 100644 interface/web/designer/lib/lang/pt_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/pt_form_list.lng delete mode 100644 interface/web/designer/lib/lang/pt_form_show.lng delete mode 100644 interface/web/designer/lib/lang/pt_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/pt_module_list.lng delete mode 100644 interface/web/designer/lib/lang/pt_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/pt_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/pt_module_show.lng delete mode 100644 interface/web/designer/lib/lang/ro.lng delete mode 100644 interface/web/designer/lib/lang/ro_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/ro_form_list.lng delete mode 100644 interface/web/designer/lib/lang/ro_form_show.lng delete mode 100644 interface/web/designer/lib/lang/ro_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/ro_module_list.lng delete mode 100644 interface/web/designer/lib/lang/ro_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/ro_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/ro_module_show.lng delete mode 100644 interface/web/designer/lib/lang/ru.lng delete mode 100644 interface/web/designer/lib/lang/ru_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/ru_form_list.lng delete mode 100644 interface/web/designer/lib/lang/ru_form_show.lng delete mode 100644 interface/web/designer/lib/lang/ru_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/ru_module_list.lng delete mode 100644 interface/web/designer/lib/lang/ru_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/ru_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/ru_module_show.lng delete mode 100644 interface/web/designer/lib/lang/se.lng delete mode 100644 interface/web/designer/lib/lang/se_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/se_form_list.lng delete mode 100644 interface/web/designer/lib/lang/se_form_show.lng delete mode 100644 interface/web/designer/lib/lang/se_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/se_module_list.lng delete mode 100644 interface/web/designer/lib/lang/se_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/se_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/se_module_show.lng delete mode 100644 interface/web/designer/lib/lang/sk.lng delete mode 100644 interface/web/designer/lib/lang/sk_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/sk_form_list.lng delete mode 100644 interface/web/designer/lib/lang/sk_form_show.lng delete mode 100644 interface/web/designer/lib/lang/sk_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/sk_module_list.lng delete mode 100644 interface/web/designer/lib/lang/sk_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/sk_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/sk_module_show.lng delete mode 100644 interface/web/designer/lib/lang/tr.lng delete mode 100644 interface/web/designer/lib/lang/tr_form_edit.lng delete mode 100644 interface/web/designer/lib/lang/tr_form_list.lng delete mode 100644 interface/web/designer/lib/lang/tr_form_show.lng delete mode 100644 interface/web/designer/lib/lang/tr_module_edit.lng delete mode 100644 interface/web/designer/lib/lang/tr_module_list.lng delete mode 100644 interface/web/designer/lib/lang/tr_module_nav_edit.lng delete mode 100644 interface/web/designer/lib/lang/tr_module_nav_item_edit.lng delete mode 100644 interface/web/designer/lib/lang/tr_module_show.lng delete mode 100644 interface/web/designer/lib/module.conf.php delete mode 100644 interface/web/designer/list/empty.dir delete mode 100644 interface/web/designer/module_edit.php delete mode 100644 interface/web/designer/module_list.php delete mode 100644 interface/web/designer/module_nav_del.php delete mode 100644 interface/web/designer/module_nav_edit.php delete mode 100644 interface/web/designer/module_nav_flip.php delete mode 100644 interface/web/designer/module_nav_item_del.php delete mode 100644 interface/web/designer/module_nav_item_edit.php delete mode 100644 interface/web/designer/module_nav_item_flip.php delete mode 100644 interface/web/designer/module_show.php delete mode 100644 interface/web/designer/templates/form_edit.htm delete mode 100644 interface/web/designer/templates/form_list.htm delete mode 100644 interface/web/designer/templates/form_show.htm delete mode 100644 interface/web/designer/templates/module_edit.htm delete mode 100644 interface/web/designer/templates/module_list.htm delete mode 100644 interface/web/designer/templates/module_nav_edit.htm delete mode 100644 interface/web/designer/templates/module_nav_item_edit.htm delete mode 100644 interface/web/designer/templates/module_show.htm delete mode 100644 interface/web/designer/templates/paging.tpl.htm diff --git a/interface/lib/classes/db_firebird.inc.php b/interface/lib/classes/db_firebird.inc.php deleted file mode 100644 index fda4ef8e64..0000000000 --- a/interface/lib/classes/db_firebird.inc.php +++ /dev/null @@ -1,384 +0,0 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -class db { - var $dbHost = ""; // hostname of the MySQL server - var $dbName = ""; // logical database name on that server - var $dbUser = ""; // database authorized user - var $dbPass = ""; // user's password - var $linkId = 0; // last result of mysql_connect() - var $queryId = 0; // last result of mysql_query() - var $record = array(); // last record fetched - var $autoCommit = 1; // Autocommit Transactions - var $currentRow; // current row number - var $errorNumber = 0; // last error number - var $errorMessage = ""; // last error message - var $errorLocation = "";// last error location - var $show_error_messages = false; - var $transID; - - // constructor - function __construct() - { - - global $conf; - $this->dbHost = $conf["db_host"]; - $this->dbName = $conf["db_database"]; - $this->dbUser = $conf["db_user"]; - $this->dbPass = $conf["db_password"]; - $this->connect(); - } - - function __destruct() { - $this->closeConn(); - } - - // error handler - function updateError($location) - { - //$this->errorNumber = mysql_errno(); - $this->errorMessage = ibase_errmsg(); - $this->errorLocation = $location; - if($this->errorNumber && $this->show_error_messages) - { - echo '<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage; - flush(); - } - } - - function connect() - { - if($this->linkId == 0) - { - $this->linkId = ibase_connect( $this->dbHost.":".$this->dbName , $this->dbUser, $this->dbPass, 'ISO8859_1', 0, 3 ); - if(!$this->linkId) - { - $this->updateError('DB::connect()<br />ibase_pconnect'); - return false; - } - } - return true; - } - - function query($queryString) - { - if(!$this->connect()) { - return false; - } - - if($this->autoCommit == 1) { - //$transID = ibase_trans(); - $this->queryId = @ibase_query($this->linkId, $queryString); - //ibase_commit(); - } else { - $this->queryId = @ibase_query($this->linkId, $queryString); - } - - - $this->updateError('DB::query('.$queryString.')<br />ibase_query'); - if(!$this->queryId) { - return false; - } - $this->currentRow = 0; - return $this->queryId; - } - - // returns all records in an array - function queryAllRecords($queryString) - { - if(!$this->query($queryString)) - { - return false; - } - $ret = array(); - while($line = $this->nextRecord()) - { - $ret[] = $line; - } - //$this->freeResult(); - ibase_free_result($this->queryId); - return $ret; - } - - // returns one record in an array - function queryOneRecord($queryString) - { - if(!$this->query($queryString)) - { - return false; - } - $result = $this->nextRecord(); - ibase_free_result($this->queryId); - return $result; - } - - // returns the next record in an array - function nextRecord() - { - $this->record = ibase_fetch_assoc($this->queryId); - $this->updateError('DB::nextRecord()<br />ibase_fetch_assoc'); - if(!$this->record || !is_array($this->record)) - { - return false; - } - $this->currentRow++; - return $this->record; - } - - // returns number of rows returned by the last select query - function numRows() - { - return false; - } - - // returns mySQL insert id - function insertID() - { - return false; - } - - // Check der variablen - // deprecated, now use quote - function check($formfield) - { - return $this->quote($formfield); - } - - // Check der variablen - function quote($formfield) - { - return str_replace("'", "''", $formfield); - } - - // Check der variablen - function unquote($formfield) - { - return str_replace("''", "'", $formfield); - } - - function toLower($record) { - if(is_array($record)) { - foreach($record as $key => $val) { - $key = strtolower($key); - $out[$key] = $val; - } - } - return $out; - } - - - function insert($tablename, $form, $debug = 0) - { - if(is_array($form)){ - foreach($form as $key => $value) - { - $sql_key .= "$key, "; - $sql_value .= "'".$this->quote($value)."', "; - } - $sql_key = substr($sql_key, 0, strlen($sql_key) - 2); - $sql_value = substr($sql_value, 0, strlen($sql_value) - 2); - - $sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")"; - - if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>"; - $this->query($sql); - if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage; - } - } - - function update($tablename, $form, $bedingung, $debug = 0) - { - - if(is_array($form)){ - foreach($form as $key => $value) - { - $insql .= "$key = '".$this->quote($value)."', "; - } - $insql = substr($insql, 0, strlen($insql) - 2); - $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung"; - if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>"; - $this->query($sql); - if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage; - } - } - - function closeConn() { - ibase_close($this->linkId); - } - - function freeResult() { - //ibase_free_result(); - } - - function delete() { - - } - - function trans($action, $transID = null) { - //action = begin, commit oder rollback - - if($action == 'begin') { - $this->transID = ibase_trans($this->linkId); - return $this->transID; - } - - if($action == 'commit' and !empty($this->transID)) { - ibase_commit($this->linkId, $this->transID); - } - - if($action == 'rollback') { - ibase_rollback($this->linkId, $this->transID); - } - - } - - /* - $columns = array(action => add | alter | drop - name => Spaltenname - name_new => neuer Spaltenname, nur bei 'alter' belegt - type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob - typeValue => Wert z.B. bei Varchar - defaultValue => Default Wert - notNull => true | false - autoInc => true | false - option => unique | primary | index) - - - */ - - function createTable($table_name, $columns) { - $index = ""; - $sql = "CREATE TABLE $table_name ("; - foreach($columns as $col){ - $sql .= $col["name"]." ".$this->mapType($col["type"], $col["typeValue"])." "; - - if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' "; - if($col["notNull"] == true) { - $sql .= "NOT NULL "; - } else { - $sql .= "NULL "; - } - if($col["autoInc"] == true) $sql .= "auto_increment "; - $sql.= ","; - // key Definitionen - if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),"; - if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),"; - if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),"; - } - $sql .= $index; - $sql = substr($sql, 0, -1); - $sql .= ")"; - - $this->query($sql); - return true; - } - - /* - $columns = array(action => add | alter | drop - name => Spaltenname - name_new => neuer Spaltenname, nur bei 'alter' belegt - type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob - typeValue => Wert z.B. bei Varchar - defaultValue => Default Wert - notNull => true | false - autoInc => true | false - option => unique | primary | index) - - - */ - function alterTable($table_name, $columns) { - return false; - } - - function dropTable($table_name) { - $this->check($table_name); - $sql = "DROP TABLE '". $table_name."'"; - return $this->query($sql); - } - - // gibt Array mit Tabellennamen zurück - function getTables($database_name) { - return false; - } - - // gibt Feldinformationen zur Tabelle zurück - /* - $columns = array(action => add | alter | drop - name => Spaltenname - name_new => neuer Spaltenname, nur bei 'alter' belegt - type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob - typeValue => Wert z.B. bei Varchar - defaultValue => Default Wert - notNull => true | false - autoInc => true | false - option => unique | primary | index) - - - */ - - function tableInfo($table_name) { - return false; - } - - function mapType($metaType, $typeValue) { - global $go_api; - $metaType = strtolower($metaType); - switch ($metaType) { - case 'int16': - return 'smallint'; - break; - case 'int32': - return 'int'; - break; - case 'int64': - return 'bigint'; - break; - case 'double': - return 'double'; - break; - case 'char': - return 'char'; - break; - case 'varchar': - if($typeValue < 1) $go_api->errorMessage("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig."); - return 'varchar('.$typeValue.')'; - break; - case 'text': - return 'text'; - break; - case 'blob': - return 'blob'; - break; - } - } - -} - -?> diff --git a/interface/web/designer/form/empty.dir b/interface/web/designer/form/empty.dir deleted file mode 100644 index 95ba9ef37c..0000000000 --- a/interface/web/designer/form/empty.dir +++ /dev/null @@ -1 +0,0 @@ -This empty directory is needed by ISPConfig. diff --git a/interface/web/designer/form_edit.php b/interface/web/designer/form_edit.php deleted file mode 100644 index 2127fea688..0000000000 --- a/interface/web/designer/form_edit.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/form_edit.htm'); - -// Importing variables -$module_name = $_REQUEST["module_name"]; -$form_name = $_REQUEST["form_name"]; - -// Checking imported variables -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $form_name)) die("form_name contains invalid chars."); - -$id = $form_name; - -if(count($_POST) > 1) { - // Bestimme aktion - if($id != '') { - $action = 'UPDATE'; - } else { - $action = 'INSERT'; - } - - - if($error == '') { - - $filename = "../".$module_name."/form/".$form_name.".tform.php"; - $form_new = $_POST["form"]; - - if(@is_file($filename)) { - include_once $filename; - $tabs = $form["tabs"]; - unset($form["tabs"]); - $form_new["tabs"] = $tabs; - } - - $file_content = "<?php\r\n".'$form = '.var_export($form_new, true)."\r\n?>"; - - die($file_content); - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - - if (!fwrite($handle, $file_content)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - // zu Liste springen - header("Location: form_list.php"); - exit; - - } else { - $app->tpl->setVar("error", "<b>Fehler:</b><br>".$error); - $app->tpl->setVar($_POST); - } -} - -if($id != '') { - // Datensatz besteht bereits - // bestehenden Datensatz anzeigen - if($error == '') { - // es liegt ein Fehler vor - include_once "../".$module_name."/form/".$form_name.".tform.php"; - //$tabs = $form["tabs"]; - unset($form["tabs"]); - $record = $form; - $record["form_name"] = $form_name; - $record["module_name"] = $module_name; - $record["auth_preset_userid"] = $form["auth_preset"]["userid"]; - $record["auth_preset_groupid"] = $form["auth_preset"]["groupid"]; - $record["auth_preset_perm_user"] = $form["auth_preset"]["perm_user"]; - $record["auth_preset_perm_group"] = $form["auth_preset"]["perm_group"]; - $record["auth_preset_perm_other"] = $form["auth_preset"]["perm_other"]; - } else { - // ein Fehler - $record = $_POST; - //$navi = $_POST["nav"]; - unset($_POST["tabs"]); - } - $record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { - // neuer datensatz - if($error == '') { - // es liegt kein Fehler vor - // Pewsets - $record["template"] = "module.tpl.htm"; - } else { - // ein Fehler - $record = $_POST; - unset($_POST["tabs"]); - - } - $record["readonly"] = ''; -} - -$record["id"] = $form_name; - -$app->tpl->setVar($record); - -include_once "lib/lang/".$_SESSION["s"]["language"]."_form_edit.lng"; -$app->tpl->setVar($wb); - -// Defaultwerte setzen -$app->tpl_defaults(); - -// Template parsen -$app->tpl->pparse(); - -?> diff --git a/interface/web/designer/form_list.php b/interface/web/designer/form_list.php deleted file mode 100644 index 0093275979..0000000000 --- a/interface/web/designer/form_list.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/form_list.htm'); - -function getinfo($file, $form_file, $bgcolor) { - $module_name = $file; - include ISPC_WEB_PATH."/$file/form/$form_file"; - return array( 'name' => $form['name'], - 'title' => $form['title'], - 'description' => $form['description'], - 'module_name' => $module_name, - 'bgcolor' => $bgcolor - ); -} - -// lese Module aus -$bgcolor = '#FFFFFF'; -$modules_list = array(); -$handle = @opendir(ISPC_WEB_PATH); -while ($file = @readdir($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH.'/'.$file.'/lib/module.conf.php') and $file != 'login') { - if(@is_dir(ISPC_WEB_PATH."/$file/form")) { - $handle2 = opendir(ISPC_WEB_PATH."/$file/form"); - while ($form_file = @readdir($handle2)) { - if (substr($form_file, 0, 1) != ".") { - //echo ISPC_ROOT_PATH."/web/".$file."/form/$form_file<br>"; - //include_once(ISPC_ROOT_PATH."/web/".$file."/form/$form_file"); - // Farbwechsel - $bgcolor = ($bgcolor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF'; - $modules_list[] = getinfo($file, $form_file, $bgcolor); - - } - } - } - } - } - } -} - -$app->tpl->setLoop('records', $modules_list); - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_form_list.lng'; -include $lng_file; -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> diff --git a/interface/web/designer/form_show.php b/interface/web/designer/form_show.php deleted file mode 100644 index 74e609bf17..0000000000 --- a/interface/web/designer/form_show.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); - -$app->uses('tpl'); - -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/form_show.htm'); - - -// TODO: Check ID for malicius chars -$module_name = $_REQUEST["module_name"]; -$form_name = $_REQUEST["form_name"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $form_name)) die("form_name contains invalid chars."); - -include_once "../".$module_name."/form/".$form_name.".tform.php"; -$tabs = $form["tabs"]; -unset($form["tabs"]); -$record = $form; -$record["form_name"] = $form_name; -$record["module_name"] = $module_name; - -// loading language file -$lng_file = "lib/lang/".$_SESSION["s"]["language"]."_form_show.lng"; -include $lng_file; -$app->tpl->setVar($wb); - -// baue Tabs navi -$content = ""; -$n1 = 0; -$n2 = 0; -if(is_array($tabs)) { - foreach($tabs as $tab_id => $tab) { - $content .= "<tr> - <td colspan='2' class='frmText11'> - <table width='100%'> - <tr> - <td class='tblHead'>$tab[title]</td> - <td class='tblHead' width='220' align='right'> - <input type=\"button\" name=\"bt1$n2\" value=\"$wb[edit_txt]\" onclick=\"location.href='form_tab_edit.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id'\" class=\"button\" /> - <input type=\"button\" name=\"bt2$n2\" value=\"$wb[delete_txt]\" onclick=\"del_menu('form_tab_del.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id');\" class=\"button\" /> - <input type=\"button\" name=\"bt3$n2\" value=\"$wb[new_txt]\" onclick=\"location.href='form_tab_item_edit.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id'\" class=\"button\" /> - <input type=\"button\" name=\"bt4$n2\" value=\"$wb[up_txt]\" onclick=\"location.href='form_tab_flip.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id&dir=up'\" class=\"button\" /> - <input type=\"button\" name=\"bt5$n2\" value=\"$wb[down_txt]\" onclick=\"location.href='form_tab_flip.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id&dir=down'\" class=\"button\" /> - </td> - </tr>"; - //$content .= "<tr><td bgcolor='#EEEEEE' class='frmText11'>Bereich:</td><td class='frmText11' bgcolor='#EEEEEE'><input name=\"module[nav][$n1][title]\" type=\"text\" class=\"text\" value=\"$section[title]\" size=\"30\" maxlength=\"255\"><input name=\"module[nav][$n1][open]\" type=\"hidden\" value=\"$section[open]\"></td></tr>\r\n"; - foreach($tab["fields"] as $field_id => $field) { - //$content .= "<tr><td class='frmText11'>Titel:</td><td class='frmText11'><input name=\"module[nav][$n1][items][$n2][title]\" type=\"text\" class=\"text\" value=\"$item[title]\" size=\"30\" maxlength=\"255\"></td></tr>\r\n"; - //$content .= "<tr><td class='frmText11'>Ziel:</td><td class='frmText11'> <input name=\"module[nav][$n1][items][$n2][target]\" type=\"text\" class=\"text\" value=\"$item[target]\" size=\"10\" maxlength=\"255\"></td></tr>\r\n"; - //$content .= "<tr><td class='frmText11'>Link:</td><td class='frmText11'> <input name=\"module[nav][$n1][items][$n2][link]\" type=\"text\" class=\"text\" value=\"$item[link]\" size=\"30\" maxlength=\"255\"></td></tr>\r\n"; - $content .= "<tr> - <td class='frmText11'>$field_id</td> - <td class='frmText11' width='220' align='right'> - <input type=\"button\" name=\"bt6$n2\" value=\"$wb[edit_txt]\" onclick=\"location.href='form_field_edit.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id&field_id=$field_id'\" class=\"button\" /> - <input type=\"button\" name=\"bt7$n2\" value=\"$wb[delete_txt]\" onclick=\"del_menuitem('form_field_del.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id&field_id=$field_id');\" class=\"button\" /> - <input type=\"button\" name=\"bt8$n2\" value=\"$wb[up_txt]\" onclick=\"location.href='form_field_flip.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id&field_id=$field_id&dir=up'\" class=\"button\" /> - <input type=\"button\" name=\"bt9$n2\" value=\"$wb[down_txt]\" onclick=\"location.href='form_field_flip.php?module_name=$module_name&form_name=$form_name&tab_id=$tab_id&field_id=$field_id&dir=down'\" class=\"button\" /> - </td> - </tr>"; - $n2++; - } - $content .= "<tr><td colspan='2' class='tblFooter'> </td></tr> - </table> - </td> - </tr>"; - $n1++; - } -} - -$record["nav"] = $content; - - -$app->tpl->setVar($record); - - -$app->tpl->setLoop('records', $modules_list); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - - -?> diff --git a/interface/web/designer/index.php b/interface/web/designer/index.php deleted file mode 100644 index 8b13789179..0000000000 --- a/interface/web/designer/index.php +++ /dev/null @@ -1 +0,0 @@ - diff --git a/interface/web/designer/lib/admin.conf.php b/interface/web/designer/lib/admin.conf.php deleted file mode 100644 index 6eff33c4ec..0000000000 --- a/interface/web/designer/lib/admin.conf.php +++ /dev/null @@ -1,4 +0,0 @@ -<?php - - -?> diff --git a/interface/web/designer/lib/lang/ar.lng b/interface/web/designer/lib/lang/ar.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/ar.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/ar_form_edit.lng b/interface/web/designer/lib/lang/ar_form_edit.lng deleted file mode 100644 index 54fe173eca..0000000000 --- a/interface/web/designer/lib/lang/ar_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formname'; -$wb['title_txt'] = 'Formutitle'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Startpage'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Form properties'; -$wb['description_txt'] = 'Description'; -$wb['action_txt'] = 'Action (script)'; -$wb['db_table_txt'] = 'DB Table'; -$wb['db_table_idx_txt'] = 'DB Table Index'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Default Tab'; -$wb['list_default_txt'] = 'Default Liste'; -$wb['auth_txt'] = 'Permissions'; -$wb['auth_preset_userid_txt'] = 'UserID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Perm. User'; -$wb['auth_preset_perm_group_txt'] = 'Perm. Group'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Other'; -?> diff --git a/interface/web/designer/lib/lang/ar_form_list.lng b/interface/web/designer/lib/lang/ar_form_list.lng deleted file mode 100644 index 47432257fd..0000000000 --- a/interface/web/designer/lib/lang/ar_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Form'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Title'; -$wb['description_txt'] = 'Description'; -?> diff --git a/interface/web/designer/lib/lang/ar_form_show.lng b/interface/web/designer/lib/lang/ar_form_show.lng deleted file mode 100644 index 37017fa4a8..0000000000 --- a/interface/web/designer/lib/lang/ar_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formeditor'; -$wb['title_txt'] = 'Formtitle'; -$wb['name_txt'] = 'Formname'; -$wb['delete_txt'] = 'Delete'; -$wb['properties_txt'] = 'Properties'; -$wb['new_tab_txt'] = 'Tab new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'Neu'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Form'; -$wb['description_txt'] = 'Description'; -$wb['module_del_txt'] = 'Delete the module and all subdirectories?'; -$wb['menu_del_txt'] = 'Delete menu with all menuitems?'; -$wb['item_del_txt'] = 'Delete menuitem?'; -?> diff --git a/interface/web/designer/lib/lang/ar_module_edit.lng b/interface/web/designer/lib/lang/ar_module_edit.lng deleted file mode 100644 index 592ccd76bc..0000000000 --- a/interface/web/designer/lib/lang/ar_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulename'; -$wb['title_txt'] = 'Moduletitle'; -$wb['template_txt'] = 'Template file'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Default page'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Module properties'; -$wb['description_txt'] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br> -<b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br> -<b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br> -<b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br> -<b>Default page:</b> These page will be shown when the module is opened.<br> -<b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br> -<b>Hint:</b> All paths are relative to the directory web. -'; -?> diff --git a/interface/web/designer/lib/lang/ar_module_list.lng b/interface/web/designer/lib/lang/ar_module_list.lng deleted file mode 100644 index bc9ebed580..0000000000 --- a/interface/web/designer/lib/lang/ar_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Module'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Title'; -?> diff --git a/interface/web/designer/lib/lang/ar_module_nav_edit.lng b/interface/web/designer/lib/lang/ar_module_nav_edit.lng deleted file mode 100644 index fa5f15aa9e..0000000000 --- a/interface/web/designer/lib/lang/ar_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Title'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -?> diff --git a/interface/web/designer/lib/lang/ar_module_nav_item_edit.lng b/interface/web/designer/lib/lang/ar_module_nav_item_edit.lng deleted file mode 100644 index 23f7d1592a..0000000000 --- a/interface/web/designer/lib/lang/ar_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Title'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -?> diff --git a/interface/web/designer/lib/lang/ar_module_show.lng b/interface/web/designer/lib/lang/ar_module_show.lng deleted file mode 100644 index 2cf9b07a80..0000000000 --- a/interface/web/designer/lib/lang/ar_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menu editor'; -$wb['title_txt'] = 'Title'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Delete'; -$wb['properties_txt'] = 'Properties'; -$wb['new_menu_txt'] = 'Menu new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'New'; -$wb['up_txt'] = 'Up'; -$wb['down_txt'] = 'Down'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?'; -$wb['menu_del_txt'] = 'Wollen Sie das Menü mit allen Untereinträgen löschen?'; -$wb['item_del_txt'] = 'Wollen Sie den Menüeintrag löschen?'; -?> diff --git a/interface/web/designer/lib/lang/bg.lng b/interface/web/designer/lib/lang/bg.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/bg.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/bg_form_edit.lng b/interface/web/designer/lib/lang/bg_form_edit.lng deleted file mode 100644 index 3c13194c4c..0000000000 --- a/interface/web/designer/lib/lang/bg_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Име'; -$wb['title_txt'] = 'Заглавие'; -$wb['template_txt'] = 'Темплейт'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Ðачална Ñтраница'; -$wb['tab_width_txt'] = 'Широчина на таб-а'; -$wb['save_txt'] = 'ЗапиÑ'; -$wb['cancel_txt'] = 'Отказ'; -$wb['header_txt'] = 'ХарактериÑтики на формата'; -$wb['description_txt'] = 'ОпиÑание'; -$wb['action_txt'] = 'ДейÑтвие (script)'; -$wb['db_table_txt'] = 'DB Table'; -$wb['db_table_idx_txt'] = 'DB Table Index'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Default Tab'; -$wb['list_default_txt'] = 'Default Liste'; -$wb['auth_txt'] = 'РазрешениÑ'; -$wb['auth_preset_userid_txt'] = 'ПотребителÑкоID'; -$wb['auth_preset_groupid_txt'] = 'ГруповоID'; -$wb['auth_preset_perm_user_txt'] = 'Разр. Потребител'; -$wb['auth_preset_perm_group_txt'] = 'Разр. Група'; -$wb['auth_preset_perm_other_txt'] = 'Разр. Други'; -?> diff --git a/interface/web/designer/lib/lang/bg_form_list.lng b/interface/web/designer/lib/lang/bg_form_list.lng deleted file mode 100644 index 4a053a3c58..0000000000 --- a/interface/web/designer/lib/lang/bg_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Форми'; -$wb['form_txt'] = 'Форма'; -$wb['module_txt'] = 'Модул'; -$wb['title_txt'] = 'Име'; -$wb['description_txt'] = 'ОпиÑание'; -?> diff --git a/interface/web/designer/lib/lang/bg_form_show.lng b/interface/web/designer/lib/lang/bg_form_show.lng deleted file mode 100644 index 78cf0edda1..0000000000 --- a/interface/web/designer/lib/lang/bg_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Редактор на форми'; -$wb['title_txt'] = 'Заглавие'; -$wb['name_txt'] = 'Име'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'ХарактериÑтики'; -$wb['new_tab_txt'] = 'Ðов таб'; -$wb['edit_txt'] = 'Редактиране'; -$wb['new_txt'] = 'Ðов'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Модул'; -$wb['form_txt'] = 'Форма'; -$wb['description_txt'] = 'ОпиÑание'; -$wb['module_del_txt'] = 'ÐаиÑтина ли желаете да изтриете модула и вÑички намиращи Ñе в него файлове и поддиректории?'; -$wb['menu_del_txt'] = 'ÐаиÑтина ли желаете да изтриете това меню и неговите елементи?'; -$wb['item_del_txt'] = 'ÐаиÑтина ли желаете да изтриете този елемент?'; -?> diff --git a/interface/web/designer/lib/lang/bg_module_edit.lng b/interface/web/designer/lib/lang/bg_module_edit.lng deleted file mode 100644 index bbb53a32fe..0000000000 --- a/interface/web/designer/lib/lang/bg_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Име на модула'; -$wb['title_txt'] = 'Заглавие на модула'; -$wb['template_txt'] = 'Template file'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Страница по подразбиране'; -$wb['tab_width_txt'] = 'Широчина на таб-а'; -$wb['save_txt'] = 'ЗапиÑ'; -$wb['cancel_txt'] = 'Отказ'; -$wb['header_txt'] = 'ХарактериÑтики'; -$wb['description_txt'] = '<b>ОпиÑание</b> <br><br> <b>Имена модула:</b> Име на директориÑта за модули. разрешени Ñа чиÑла и букви малки.<br> <b>Име на модул:</b> Will be shown in the (upper) main navigation.<br> <b>Template file:</b> Template file of the module. Currently'; -?> diff --git a/interface/web/designer/lib/lang/bg_module_list.lng b/interface/web/designer/lib/lang/bg_module_list.lng deleted file mode 100644 index 31209a0757..0000000000 --- a/interface/web/designer/lib/lang/bg_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Модули'; -$wb['module_txt'] = 'Модул'; -$wb['title_txt'] = 'Име'; -?> diff --git a/interface/web/designer/lib/lang/bg_module_nav_edit.lng b/interface/web/designer/lib/lang/bg_module_nav_edit.lng deleted file mode 100644 index 13d9675b5a..0000000000 --- a/interface/web/designer/lib/lang/bg_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Заглавие'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'ЗапиÑ'; -$wb['cancel_txt'] = 'Отказ'; -?> diff --git a/interface/web/designer/lib/lang/bg_module_nav_item_edit.lng b/interface/web/designer/lib/lang/bg_module_nav_item_edit.lng deleted file mode 100644 index 1b2f22f2a2..0000000000 --- a/interface/web/designer/lib/lang/bg_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Заглвие'; -$wb['target_txt'] = 'Цел'; -$wb['link_txt'] = 'Линк'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'ЗапиÑ'; -$wb['cancel_txt'] = 'Отказ'; -?> diff --git a/interface/web/designer/lib/lang/bg_module_show.lng b/interface/web/designer/lib/lang/bg_module_show.lng deleted file mode 100644 index 3cbe96358f..0000000000 --- a/interface/web/designer/lib/lang/bg_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Редактор на менютата'; -$wb['title_txt'] = 'Име'; -$wb['name_txt'] = 'Модул'; -$wb['delete_txt'] = 'Изтриване'; -$wb['properties_txt'] = 'ХарактериÑтики'; -$wb['new_menu_txt'] = 'Ðово меню'; -$wb['edit_txt'] = 'РедакциÑ'; -$wb['new_txt'] = 'Ðово'; -$wb['up_txt'] = 'Ðагоре'; -$wb['down_txt'] = 'Ðадолу'; -$wb['module_txt'] = 'Модул'; -$wb['module_del_txt'] = 'ÐаиÑтина ли желаете да изтриете модула и вÑички намиращи Ñе в него файлове и поддиректории?'; -$wb['menu_del_txt'] = 'ÐаиÑтина ли желаете да изтриете това меню и неговите елементи?'; -$wb['item_del_txt'] = 'ÐаиÑтина ли желаете да изтриете този елемент?'; -?> diff --git a/interface/web/designer/lib/lang/br.lng b/interface/web/designer/lib/lang/br.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/br.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/br_form_edit.lng b/interface/web/designer/lib/lang/br_form_edit.lng deleted file mode 100644 index 7d7534a4ee..0000000000 --- a/interface/web/designer/lib/lang/br_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Nome do Formulário'; -$wb['title_txt'] = 'TÃtulo do Formulário'; -$wb['template_txt'] = 'Gabarito'; -$wb['navframe_txt'] = 'Frame de Navegação'; -$wb['startpage_txt'] = 'Página Inicial'; -$wb['tab_width_txt'] = 'Tamanho da aba'; -$wb['save_txt'] = 'Salvar'; -$wb['cancel_txt'] = 'Cancelar'; -$wb['header_txt'] = 'Propriedades do Formulário'; -$wb['description_txt'] = 'Descrição'; -$wb['action_txt'] = 'Ação (script)'; -$wb['db_table_txt'] = 'Tabela do DB'; -$wb['db_table_idx_txt'] = 'IndÃce da tabela do DB'; -$wb['db_history_txt'] = 'Desfazer Log'; -$wb['tab_default_txt'] = 'Aba Padrão'; -$wb['list_default_txt'] = 'Exibir Padrão'; -$wb['auth_txt'] = 'Permissões'; -$wb['auth_preset_userid_txt'] = 'Usuário(ID)'; -$wb['auth_preset_groupid_txt'] = 'Grupo(ID)'; -$wb['auth_preset_perm_user_txt'] = 'Perm. Usuário'; -$wb['auth_preset_perm_group_txt'] = 'Perm. Grupo'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Outros'; -?> diff --git a/interface/web/designer/lib/lang/br_form_list.lng b/interface/web/designer/lib/lang/br_form_list.lng deleted file mode 100644 index b16ce554b0..0000000000 --- a/interface/web/designer/lib/lang/br_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Formulário de Backend'; -$wb['form_txt'] = 'Formulário'; -$wb['module_txt'] = 'Módulo'; -$wb['title_txt'] = 'TÃtulo'; -$wb['description_txt'] = 'Descrição'; -?> diff --git a/interface/web/designer/lib/lang/br_form_show.lng b/interface/web/designer/lib/lang/br_form_show.lng deleted file mode 100644 index 5b68a31651..0000000000 --- a/interface/web/designer/lib/lang/br_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor de Formulários'; -$wb['title_txt'] = 'TÃtulo do Formulário'; -$wb['name_txt'] = 'Nome do Formulário'; -$wb['delete_txt'] = 'Remover'; -$wb['properties_txt'] = 'Propriedades'; -$wb['new_tab_txt'] = 'Nova Aba'; -$wb['edit_txt'] = 'Editar'; -$wb['new_txt'] = 'Novo'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Módulo'; -$wb['form_txt'] = 'Formulário'; -$wb['description_txt'] = 'Descrição'; -$wb['module_del_txt'] = 'Remover o módulo e todos seus sub-diretórios?'; -$wb['menu_del_txt'] = 'Remover o menu e todos os seus itens?'; -$wb['item_del_txt'] = 'Remover o item de menu?'; -?> diff --git a/interface/web/designer/lib/lang/br_module_edit.lng b/interface/web/designer/lib/lang/br_module_edit.lng deleted file mode 100644 index 34471acd29..0000000000 --- a/interface/web/designer/lib/lang/br_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Nome do Módulo'; -$wb['title_txt'] = 'TÃtulo do Módulo'; -$wb['template_txt'] = 'Arquivo de Gabarito'; -$wb['navframe_txt'] = 'Frame de Navegação'; -$wb['startpage_txt'] = 'Página Padrão'; -$wb['tab_width_txt'] = 'Tamanho da Aba'; -$wb['save_txt'] = 'Salvar'; -$wb['cancel_txt'] = 'Cancelar'; -$wb['header_txt'] = 'Propriedades do Módulo'; -$wb['description_txt'] = ' -<b>Descrição</b> -<br><br> -<b>Nome do Módulo:</b> Nome do diretório do módulo. Somente números, letras e underscores são permitidos.<br> -<b>TÃtulo do Módulo:</b> Será exibido em caixa alta no menu de navegação.<br> -<b>Arquivo de Gabarito:</b> Arquivo de Gabarito do Módulo DisponÃvel: modulo.tpl.htm e modulo_tree.tpl.htm. O padrão é modulo.tpl.htm.<br> -<b>Frame de Navegação:</b> Se modulo_tree.tpl.htm foi selecionado como arquivo de gabarito, insira aqui o caminho do script para o frame a esquerda.<br> -<b>Página Padrão:</b> Esta página será exibida quando o módulo for aberto.<br> -<b>Tamanho da Aba:</b> Tamanho das abas na navegação principal. Este campo fica em branco por padrão. Você pode informar valores absolutos em pixels (ex.: 20) ou valores relativos (ex.: 20%).<br> -<b>Dica:</b> Todos os caminhos são relativos ao diretório web. -'; -?> diff --git a/interface/web/designer/lib/lang/br_module_list.lng b/interface/web/designer/lib/lang/br_module_list.lng deleted file mode 100644 index 822263a4ad..0000000000 --- a/interface/web/designer/lib/lang/br_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Módulo do Backend'; -$wb['module_txt'] = 'Módulo'; -$wb['title_txt'] = 'TÃtulo'; -?> diff --git a/interface/web/designer/lib/lang/br_module_nav_edit.lng b/interface/web/designer/lib/lang/br_module_nav_edit.lng deleted file mode 100644 index c5e3266a7b..0000000000 --- a/interface/web/designer/lib/lang/br_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'TÃtulo'; -$wb['header_txt'] = 'Propriedades de Navegação'; -$wb['save_txt'] = 'Salvar'; -$wb['cancel_txt'] = 'Cancelar'; -?> diff --git a/interface/web/designer/lib/lang/br_module_nav_item_edit.lng b/interface/web/designer/lib/lang/br_module_nav_item_edit.lng deleted file mode 100644 index 5eafa775af..0000000000 --- a/interface/web/designer/lib/lang/br_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'TÃtulo'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Propriedades de Navegação'; -$wb['save_txt'] = 'Salvar'; -$wb['cancel_txt'] = 'Cancelar'; -?> diff --git a/interface/web/designer/lib/lang/br_module_show.lng b/interface/web/designer/lib/lang/br_module_show.lng deleted file mode 100644 index 1fb1800714..0000000000 --- a/interface/web/designer/lib/lang/br_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor de Menu'; -$wb['title_txt'] = 'TÃtulo'; -$wb['name_txt'] = 'Módulo'; -$wb['delete_txt'] = 'Remover'; -$wb['properties_txt'] = 'Propriedades'; -$wb['new_menu_txt'] = 'Novo Menu'; -$wb['edit_txt'] = 'Editar'; -$wb['new_txt'] = 'Novo'; -$wb['up_txt'] = 'Subir'; -$wb['down_txt'] = 'Descer'; -$wb['module_txt'] = 'Módulo'; -$wb['module_del_txt'] = 'Deseja eliminar este módulo e todos os arquivos contidos no diretório?'; -$wb['menu_del_txt'] = 'Deseja apagar este menu e todos seus elementos?'; -$wb['item_del_txt'] = 'Deseja apagar este elemento do menu?'; -?> diff --git a/interface/web/designer/lib/lang/cz.lng b/interface/web/designer/lib/lang/cz.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/cz.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/cz_form_edit.lng b/interface/web/designer/lib/lang/cz_form_edit.lng deleted file mode 100644 index 75bf5a5606..0000000000 --- a/interface/web/designer/lib/lang/cz_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Název formuláře'; -$wb['title_txt'] = 'Titulek formuláře'; -$wb['template_txt'] = 'Å ablona'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Výchozà stránka'; -$wb['tab_width_txt'] = 'Å ÃÅ™ka záložky'; -$wb['save_txt'] = 'Uložit'; -$wb['cancel_txt'] = 'ZruÅ¡it'; -$wb['header_txt'] = 'Vlastnosti formuláře'; -$wb['description_txt'] = 'Popis'; -$wb['action_txt'] = 'Akce (skript)'; -$wb['db_table_txt'] = 'DB tabulka'; -$wb['db_table_idx_txt'] = 'DB index tabulky'; -$wb['db_history_txt'] = 'Undo log'; -$wb['tab_default_txt'] = 'Výchozà záložka'; -$wb['list_default_txt'] = 'Výchozà Liste'; -$wb['auth_txt'] = 'OprávnÄ›nÃ'; -$wb['auth_preset_userid_txt'] = 'Uživatelské ID'; -$wb['auth_preset_groupid_txt'] = 'Skupinové ID'; -$wb['auth_preset_perm_user_txt'] = 'Opr. Uživatel'; -$wb['auth_preset_perm_group_txt'] = 'Opr. Skupina'; -$wb['auth_preset_perm_other_txt'] = 'Opr. OstatnÃ'; -?> diff --git a/interface/web/designer/lib/lang/cz_form_list.lng b/interface/web/designer/lib/lang/cz_form_list.lng deleted file mode 100644 index 1e677f2410..0000000000 --- a/interface/web/designer/lib/lang/cz_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend form'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Titulek'; -$wb['description_txt'] = 'Popis'; -?> diff --git a/interface/web/designer/lib/lang/cz_form_show.lng b/interface/web/designer/lib/lang/cz_form_show.lng deleted file mode 100644 index 6c3abe4440..0000000000 --- a/interface/web/designer/lib/lang/cz_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formeditor'; -$wb['title_txt'] = 'Formtitle'; -$wb['name_txt'] = 'Formname'; -$wb['delete_txt'] = 'Smazat'; -$wb['properties_txt'] = 'Properties'; -$wb['new_tab_txt'] = 'Tab new'; -$wb['edit_txt'] = 'Upravit'; -$wb['new_txt'] = 'Neu'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Form'; -$wb['description_txt'] = 'Popis'; -$wb['module_del_txt'] = 'Delete the module and all subdirectories?'; -$wb['menu_del_txt'] = 'Delete menu with all menuitems?'; -$wb['item_del_txt'] = 'Delete menuitem?'; -?> diff --git a/interface/web/designer/lib/lang/cz_module_edit.lng b/interface/web/designer/lib/lang/cz_module_edit.lng deleted file mode 100644 index 972bc2ccf9..0000000000 --- a/interface/web/designer/lib/lang/cz_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Název modulu'; -$wb['title_txt'] = 'Titulek modulu'; -$wb['template_txt'] = 'Soubor se Å¡ablonou'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Výchozà stránka'; -$wb['tab_width_txt'] = 'Å ÃÅ™ka záložky'; -$wb['save_txt'] = 'Uložit'; -$wb['cancel_txt'] = 'ZruÅ¡it'; -$wb['header_txt'] = 'Vlastnosti modulu'; -$wb['description_txt'] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br> -<b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br> -<b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br> -<b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br> -<b>Default page:</b> These page will be shown when the module is opened.<br> -<b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br> -<b>Hint:</b> All paths are relative to the directory \\"web\\". -'; -?> diff --git a/interface/web/designer/lib/lang/cz_module_list.lng b/interface/web/designer/lib/lang/cz_module_list.lng deleted file mode 100644 index b568f69d63..0000000000 --- a/interface/web/designer/lib/lang/cz_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend modul'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Titulek'; -?> diff --git a/interface/web/designer/lib/lang/cz_module_nav_edit.lng b/interface/web/designer/lib/lang/cz_module_nav_edit.lng deleted file mode 100644 index 01f5df68fb..0000000000 --- a/interface/web/designer/lib/lang/cz_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Titulek'; -$wb['header_txt'] = 'Navi vlastnosti'; -$wb['save_txt'] = 'Uložit'; -$wb['cancel_txt'] = 'ZruÅ¡it'; -?> diff --git a/interface/web/designer/lib/lang/cz_module_nav_item_edit.lng b/interface/web/designer/lib/lang/cz_module_nav_item_edit.lng deleted file mode 100644 index 0fdc8c4ccc..0000000000 --- a/interface/web/designer/lib/lang/cz_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'OslovenÃ'; -$wb['target_txt'] = 'CÃl'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'Uložit'; -$wb['cancel_txt'] = 'ZruÅ¡it'; -?> diff --git a/interface/web/designer/lib/lang/cz_module_show.lng b/interface/web/designer/lib/lang/cz_module_show.lng deleted file mode 100644 index ce5df415de..0000000000 --- a/interface/web/designer/lib/lang/cz_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menu editor'; -$wb['title_txt'] = 'OslovenÃ'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Smazat'; -$wb['properties_txt'] = 'Properties'; -$wb['new_menu_txt'] = 'Menu new'; -$wb['edit_txt'] = 'Upravit'; -$wb['new_txt'] = 'New'; -$wb['up_txt'] = 'Up'; -$wb['down_txt'] = 'Down'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?'; -$wb['menu_del_txt'] = 'Wollen Sie das Menü mit allen Untereinträgen löschen?'; -$wb['item_del_txt'] = 'Wollen Sie den Menüeintrag löschen?'; -?> diff --git a/interface/web/designer/lib/lang/de.lng b/interface/web/designer/lib/lang/de.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/de.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/de_form_edit.lng b/interface/web/designer/lib/lang/de_form_edit.lng deleted file mode 100644 index 74bf458d90..0000000000 --- a/interface/web/designer/lib/lang/de_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formularname'; -$wb['title_txt'] = 'Formulartitel'; -$wb['template_txt'] = 'Vorlage'; -$wb['navframe_txt'] = 'Navigationsframe'; -$wb['startpage_txt'] = 'Startseite'; -$wb['tab_width_txt'] = 'Tab Breite'; -$wb['save_txt'] = 'Speichern'; -$wb['cancel_txt'] = 'Abbrechen'; -$wb['header_txt'] = 'Formular Eigenschaften'; -$wb['description_txt'] = 'Beschreibung'; -$wb['action_txt'] = 'Aktion (Skript)'; -$wb['db_table_txt'] = 'DB Tabelle'; -$wb['db_table_idx_txt'] = 'DB Tabellenindex'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Standard Tab'; -$wb['list_default_txt'] = 'Standard Liste'; -$wb['auth_txt'] = 'Berechtigungen'; -$wb['auth_preset_userid_txt'] = 'Benutzer ID'; -$wb['auth_preset_groupid_txt'] = 'Gruppen ID'; -$wb['auth_preset_perm_user_txt'] = 'Benutzerberechtigungen'; -$wb['auth_preset_perm_group_txt'] = 'Gruppenberechtigungen'; -$wb['auth_preset_perm_other_txt'] = 'andere Berechtigungen'; -?> diff --git a/interface/web/designer/lib/lang/de_form_list.lng b/interface/web/designer/lib/lang/de_form_list.lng deleted file mode 100644 index 998a64f702..0000000000 --- a/interface/web/designer/lib/lang/de_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Formulare'; -$wb['form_txt'] = 'Formular'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Bezeichnung'; -$wb['description_txt'] = 'Beschreibung'; -?> diff --git a/interface/web/designer/lib/lang/de_form_show.lng b/interface/web/designer/lib/lang/de_form_show.lng deleted file mode 100644 index b19fd34457..0000000000 --- a/interface/web/designer/lib/lang/de_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formulareditor'; -$wb['title_txt'] = 'Formulartitel'; -$wb['name_txt'] = 'Formularname'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'Eigenschaften'; -$wb['new_tab_txt'] = 'neuer Reiter'; -$wb['edit_txt'] = 'Bearbeiten'; -$wb['new_txt'] = 'Neu'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Modul'; -$wb['form_txt'] = 'Formular'; -$wb['description_txt'] = 'Beschreibung'; -$wb['module_del_txt'] = 'Modul und alle Unterverzeichnisse löschen?'; -$wb['menu_del_txt'] = 'Menü samt Menüeinträgen löschen?'; -$wb['item_del_txt'] = 'Menüeintrag löschen?'; -?> diff --git a/interface/web/designer/lib/lang/de_module_edit.lng b/interface/web/designer/lib/lang/de_module_edit.lng deleted file mode 100644 index 6eacd64b1d..0000000000 --- a/interface/web/designer/lib/lang/de_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulname'; -$wb['title_txt'] = 'Modulbezeichnung'; -$wb['template_txt'] = 'Vorlage'; -$wb['navframe_txt'] = 'Navigationsframe'; -$wb['startpage_txt'] = 'Startseite'; -$wb['tab_width_txt'] = 'Reiterkartenbreite'; -$wb['save_txt'] = 'Speichern'; -$wb['cancel_txt'] = 'Abbrechen'; -$wb['header_txt'] = 'Moduleigenschaften'; -$wb['description_txt'] = 'Beschreibung'; -?> diff --git a/interface/web/designer/lib/lang/de_module_list.lng b/interface/web/designer/lib/lang/de_module_list.lng deleted file mode 100644 index 6040630203..0000000000 --- a/interface/web/designer/lib/lang/de_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Module'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Bezeichnung'; -?> diff --git a/interface/web/designer/lib/lang/de_module_nav_edit.lng b/interface/web/designer/lib/lang/de_module_nav_edit.lng deleted file mode 100644 index d5142f03cb..0000000000 --- a/interface/web/designer/lib/lang/de_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Ãœberschrift'; -$wb['header_txt'] = 'Navigation Eigenschaften'; -$wb['save_txt'] = 'Speichern'; -$wb['cancel_txt'] = 'Abbrechen'; -?> diff --git a/interface/web/designer/lib/lang/de_module_nav_item_edit.lng b/interface/web/designer/lib/lang/de_module_nav_item_edit.lng deleted file mode 100644 index 8c0c33c1a6..0000000000 --- a/interface/web/designer/lib/lang/de_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Ãœberschrift'; -$wb['target_txt'] = 'Ziel'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navigation Eigenschaften'; -$wb['save_txt'] = 'Speichern'; -$wb['cancel_txt'] = 'Abbrechen'; -?> diff --git a/interface/web/designer/lib/lang/de_module_show.lng b/interface/web/designer/lib/lang/de_module_show.lng deleted file mode 100644 index f4b2ad11f8..0000000000 --- a/interface/web/designer/lib/lang/de_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menüeditor'; -$wb['title_txt'] = 'Titel'; -$wb['name_txt'] = 'Modul'; -$wb['delete_txt'] = 'Löschen'; -$wb['properties_txt'] = 'Eigenschaften'; -$wb['new_menu_txt'] = 'Menü hinzufügen'; -$wb['edit_txt'] = 'Bearbeiten'; -$wb['new_txt'] = 'Neu'; -$wb['up_txt'] = 'nach oben'; -$wb['down_txt'] = 'nach unten'; -$wb['module_txt'] = 'Modul'; -$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?'; -$wb['menu_del_txt'] = 'Wollen Sie das Menü mit allen Untereinträgen löschen?'; -$wb['item_del_txt'] = 'Wollen Sie den Menüeintrag löschen?'; -?> diff --git a/interface/web/designer/lib/lang/el.lng b/interface/web/designer/lib/lang/el.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/el.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/el_form_edit.lng b/interface/web/designer/lib/lang/el_form_edit.lng deleted file mode 100644 index 04ebc02db3..0000000000 --- a/interface/web/designer/lib/lang/el_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Όνομα ΦόÏμας'; -$wb['title_txt'] = 'Τίτλος ΦόÏμας'; -$wb['template_txt'] = 'Î Ïότυπο'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'ΑÏχική Σελίδα'; -$wb['tab_width_txt'] = 'Πλάτος ΚαÏÏ„Îλας'; -$wb['save_txt'] = 'Αποθήκευση'; -$wb['cancel_txt'] = 'ΆκυÏο'; -$wb['header_txt'] = 'Ιδιότητες ΦόÏμας'; -$wb['description_txt'] = 'ΠεÏιγÏαφή'; -$wb['action_txt'] = 'ΕνÎÏγεια (script)'; -$wb['db_table_txt'] = 'Πίνακας βάσης δεδομÎνων'; -$wb['db_table_idx_txt'] = 'DB Table Index'; -$wb['db_history_txt'] = 'ΙστοÏικό ΑναίÏεσης'; -$wb['tab_default_txt'] = 'Î ÏοεπιλεγμÎνη ΚαÏÏ„Îλα'; -$wb['list_default_txt'] = 'Î ÏοεπιλεγμÎνη Λίστα'; -$wb['auth_txt'] = 'Δικαιώματα'; -$wb['auth_preset_userid_txt'] = 'UserID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Perm. User'; -$wb['auth_preset_perm_group_txt'] = 'Perm. Group'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Other'; -?> diff --git a/interface/web/designer/lib/lang/el_form_list.lng b/interface/web/designer/lib/lang/el_form_list.lng deleted file mode 100644 index 4cf043aefa..0000000000 --- a/interface/web/designer/lib/lang/el_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'ΦόÏμα Backend'; -$wb['form_txt'] = 'ΦόÏμα'; -$wb['module_txt'] = 'ΆÏθÏωμα'; -$wb['title_txt'] = 'Τίτλος'; -$wb['description_txt'] = 'ΠεÏιγÏαφή'; -?> diff --git a/interface/web/designer/lib/lang/el_form_show.lng b/interface/web/designer/lib/lang/el_form_show.lng deleted file mode 100644 index cf51060a2c..0000000000 --- a/interface/web/designer/lib/lang/el_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'ΕπεξεÏγαστής ΦόÏμας'; -$wb['title_txt'] = 'Τίτλος ΦόÏμας'; -$wb['name_txt'] = 'Όνομα ΦόÏμας'; -$wb['delete_txt'] = 'ΔιαγÏαφή'; -$wb['properties_txt'] = 'Ιδιότητες'; -$wb['new_tab_txt'] = 'ÎÎα ΚαÏÏ„Îλα'; -$wb['edit_txt'] = 'ΕπεξεÏγασία'; -$wb['new_txt'] = 'ÎÎο'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'ΆÏθÏωμα'; -$wb['form_txt'] = 'ΦόÏμα'; -$wb['description_txt'] = 'ΠεÏιγÏαφή'; -$wb['module_del_txt'] = 'ΔιαγÏαφή αÏθÏώματος και όλων των υποφακÎλων;'; -$wb['menu_del_txt'] = 'ΔιαγÏαφή Î¼ÎµÎ½Î¿Ï ÎºÎ±Î¹ όλων των στοιχείων;'; -$wb['item_del_txt'] = 'ΔιαγÏαφή του στοιχείου μενοÏ'; -?> diff --git a/interface/web/designer/lib/lang/el_module_edit.lng b/interface/web/designer/lib/lang/el_module_edit.lng deleted file mode 100644 index 733e2aec88..0000000000 --- a/interface/web/designer/lib/lang/el_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Όνομα αÏθÏώματος'; -$wb['title_txt'] = 'Τίτλος αÏθÏώματος'; -$wb['template_txt'] = 'ΑÏχείο Ï€ÏοτÏπου'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Î ÏοκαθοÏισμÎνη σελίδα'; -$wb['tab_width_txt'] = 'Πλάτος Tab'; -$wb['save_txt'] = 'Αποθήκευση'; -$wb['cancel_txt'] = 'ΑκÏÏωση'; -$wb['header_txt'] = 'Ιδιότητες αÏθÏώματος'; -$wb['description_txt'] = '<b>ΠεÏιγÏαφή</b> <br><br> <b>Όνομα αÏθÏώματος:</b> Όνομα του φακÎλου του αÏθÏώματος. ΕπιτÏÎπονται μόνο αÏιθμοί, χαÏακτήÏες και η κάτω παÏλα.<br> <b>Τίτλος ΑÏθώματος:</b> Θα εμφανιστεί στο βασικό Î¼ÎµÎ½Î¿Ï (επάνω).<br> <b>ΑÏχείο Ï€ÏοτÏπου:</b> Το αÏχείο Ï€ÏοτÏπου του αÏθÏώματος. Î Ïος το παÏών διαθÎσιμα: module.tpl.htm και module_tree.tpl.htm. Το Ï€ÏοεπιλεγμÎνο είναι το module.tpl.htm.<br> <b>NaviFrame:</b> Αν το module_tree.tpl.htm επιλÎχθηκε ώα αÏχείο Ï€ÏοτÏπου, εισάγετε εδώ την διαδÏομή για το script που αφοÏά το αÏιστεÏÏŒ frame.<br> <b>Î ÏοεπιλεγμÎνη Σελίδα:</b> Αυτή σελίδα θα εμφανίζεται όταν ανοίξει το άÏθÏωμα.<br> <b>Πλάτος ΚαÏÏ„Îλας:</b>Το πλάτος της καÏÏ„Îλας στο βασικό μενοÏ. Το πεδίο είναι άδειο εξ οÏισμοÏ. ΜποÏείτε να εισάγετε απόλυτες τιμÎÏ‚ σε pixel (Ï€.χ. 20) ή σχετικÎÏ‚ (Ï€.χ. 20%).<br> <b>Βοήθεια:</b> Όλες οι διαδÏομÎÏ‚ είναι σχετικÎÏ‚ ως Ï€Ïος τον φάκελο '; -?> diff --git a/interface/web/designer/lib/lang/el_module_list.lng b/interface/web/designer/lib/lang/el_module_list.lng deleted file mode 100644 index 1edbed0f79..0000000000 --- a/interface/web/designer/lib/lang/el_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend ΆÏθÏωμα'; -$wb['module_txt'] = 'ΆÏθÏωμα'; -$wb['title_txt'] = 'Τίτλος'; -?> diff --git a/interface/web/designer/lib/lang/el_module_nav_edit.lng b/interface/web/designer/lib/lang/el_module_nav_edit.lng deleted file mode 100644 index 02104add2b..0000000000 --- a/interface/web/designer/lib/lang/el_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Τίτλος'; -$wb['header_txt'] = 'Ιδιότητες Navi'; -$wb['save_txt'] = 'Αποθήκευση'; -$wb['cancel_txt'] = 'ΆκυÏο'; -?> diff --git a/interface/web/designer/lib/lang/el_module_nav_item_edit.lng b/interface/web/designer/lib/lang/el_module_nav_item_edit.lng deleted file mode 100644 index 06d44b93d6..0000000000 --- a/interface/web/designer/lib/lang/el_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Τίτλος'; -$wb['target_txt'] = 'Στόχος'; -$wb['link_txt'] = 'ΣÏνδεσμος'; -$wb['header_txt'] = 'Ιδιότητες Navi'; -$wb['save_txt'] = 'Αποθήκευση'; -$wb['cancel_txt'] = 'ΑκÏÏωση'; -?> diff --git a/interface/web/designer/lib/lang/el_module_show.lng b/interface/web/designer/lib/lang/el_module_show.lng deleted file mode 100644 index 12895ccc69..0000000000 --- a/interface/web/designer/lib/lang/el_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'ΕπεξεÏγαστής Menu'; -$wb['title_txt'] = 'Τίτλος'; -$wb['name_txt'] = 'ΆÏθÏωμα'; -$wb['delete_txt'] = 'ΔιαγÏαφή'; -$wb['properties_txt'] = 'Ιδιότητες'; -$wb['new_menu_txt'] = 'ÎÎο ΜενοÏ'; -$wb['edit_txt'] = 'ΕπεξεÏγασία'; -$wb['new_txt'] = 'ÎÎο'; -$wb['up_txt'] = 'Επάνω'; -$wb['down_txt'] = 'Κάτω'; -$wb['module_txt'] = 'ΆÏθÏωμα'; -$wb['module_del_txt'] = 'ΘÎλετε να διαγÏάψετε το άÏθωμα και όλους του επιμÎÏους φακÎλους και τα αÏχεία;'; -$wb['menu_del_txt'] = 'ΘÎλετε να διαγÏάψετε το Î¼ÎµÎ½Î¿Ï ÎºÎ±Î¹ όλα τα στοιχεία του;'; -$wb['item_del_txt'] = 'ΘÎλετε να διαγÏάψετε το στοιχείο;'; -?> diff --git a/interface/web/designer/lib/lang/en.lng b/interface/web/designer/lib/lang/en.lng deleted file mode 100644 index 15c5adc7fa..0000000000 --- a/interface/web/designer/lib/lang/en.lng +++ /dev/null @@ -1,3 +0,0 @@ -<?php - -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_form_edit.lng b/interface/web/designer/lib/lang/en_form_edit.lng deleted file mode 100644 index f55e0f4caf..0000000000 --- a/interface/web/designer/lib/lang/en_form_edit.lng +++ /dev/null @@ -1,26 +0,0 @@ -<?php -$wb["name_txt"] = 'Formname'; -$wb["title_txt"] = 'Formutitle'; -$wb["template_txt"] = 'Template'; -$wb["navframe_txt"] = 'NaviFrame'; -$wb["startpage_txt"] = 'Startpage'; -$wb["tab_width_txt"] = 'Tab width'; -$wb["save_txt"] = 'Save'; -$wb["cancel_txt"] = 'Cancel'; -$wb["header_txt"] = 'Form properties'; -$wb["description_txt"] = 'Description'; -$wb["action_txt"] = 'Action (script)'; -$wb["db_table_txt"] = 'DB Table'; -$wb["db_table_idx_txt"] = 'DB Table Index'; -$wb["db_history_txt"] = 'Undo Log'; -$wb["tab_default_txt"] = 'Default Tab'; -$wb["list_default_txt"] = 'Default Liste'; -$wb["tab_width_txt"] = 'Tab width'; -$wb["auth_txt"] = 'Permissions'; -$wb["auth_preset_userid_txt"] = 'UserID'; -$wb["auth_preset_groupid_txt"] = 'GroupID'; -$wb["auth_preset_perm_user_txt"] = 'Perm. User'; -$wb["auth_preset_perm_group_txt"] = 'Perm. Group'; -$wb["auth_preset_perm_other_txt"] = 'Perm. Other'; - -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_form_list.lng b/interface/web/designer/lib/lang/en_form_list.lng deleted file mode 100644 index 21a76877d7..0000000000 --- a/interface/web/designer/lib/lang/en_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb["list_head_txt"] = 'Backend Form'; -$wb["form_txt"] = 'Form'; -$wb["module_txt"] = 'Module'; -$wb["title_txt"] = 'Title'; -$wb["description_txt"] = 'Description'; -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_form_show.lng b/interface/web/designer/lib/lang/en_form_show.lng deleted file mode 100644 index d2be3c6aed..0000000000 --- a/interface/web/designer/lib/lang/en_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb["header_txt"] = 'Formeditor'; -$wb["title_txt"] = 'Formtitle'; -$wb["name_txt"] = 'Formname'; -$wb["delete_txt"] = 'Delete'; -$wb["properties_txt"] = 'Properties'; -$wb["new_tab_txt"] = 'Tab new'; -$wb["edit_txt"] = 'Edit'; -$wb["new_txt"] = 'New'; -$wb["up_txt"] = '^'; -$wb["down_txt"] = 'v'; -$wb["module_txt"] = 'Module'; -$wb["form_txt"] = 'Form'; -$wb["description_txt"] = 'Description'; -$wb["module_del_txt"] = "Delete the module and all subdirectories?"; -$wb["menu_del_txt"] = "Delete menu with all menuitems?"; -$wb["item_del_txt"] = "Delete menuitem?"; -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_module_edit.lng b/interface/web/designer/lib/lang/en_module_edit.lng deleted file mode 100644 index 285a363df3..0000000000 --- a/interface/web/designer/lib/lang/en_module_edit.lng +++ /dev/null @@ -1,23 +0,0 @@ -<?php -$wb["name_txt"] = 'Modulename'; -$wb["title_txt"] = 'Moduletitle'; -$wb["template_txt"] = 'Template file'; -$wb["navframe_txt"] = 'NaviFrame'; -$wb["startpage_txt"] = 'Default page'; -$wb["tab_width_txt"] = 'Tab width'; -$wb["save_txt"] = 'Save'; -$wb["cancel_txt"] = 'Cancel'; -$wb["header_txt"] = 'Module properties'; -$wb["description_txt"] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br> -<b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br> -<b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br> -<b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br> -<b>Default page:</b> These page will be shown when the module is opened.<br> -<b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br> -<b>Hint:</b> All paths are relative to the directory "web". -'; - -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_module_list.lng b/interface/web/designer/lib/lang/en_module_list.lng deleted file mode 100644 index 45260fd9a8..0000000000 --- a/interface/web/designer/lib/lang/en_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb["list_head_txt"] = 'Backend Module'; -$wb["module_txt"] = 'Module'; -$wb["title_txt"] = 'Title'; -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_module_nav_edit.lng b/interface/web/designer/lib/lang/en_module_nav_edit.lng deleted file mode 100644 index 3600238f74..0000000000 --- a/interface/web/designer/lib/lang/en_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb["title_txt"] = 'Title'; -$wb["header_txt"] = 'Navi properties'; -$wb["save_txt"] = 'Save'; -$wb["cancel_txt"] = 'Cancel'; -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_module_nav_item_edit.lng b/interface/web/designer/lib/lang/en_module_nav_item_edit.lng deleted file mode 100644 index 56eee32deb..0000000000 --- a/interface/web/designer/lib/lang/en_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb["title_txt"] = 'Title'; -$wb["target_txt"] = 'Target'; -$wb["link_txt"] = 'Link'; -$wb["header_txt"] = 'Navi properties'; -$wb["save_txt"] = 'Save'; -$wb["cancel_txt"] = 'Cancel'; -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/en_module_show.lng b/interface/web/designer/lib/lang/en_module_show.lng deleted file mode 100644 index 41c9893eea..0000000000 --- a/interface/web/designer/lib/lang/en_module_show.lng +++ /dev/null @@ -1,17 +0,0 @@ -<?php -$wb["header_txt"] = 'Menu editor'; -$wb["title_txt"] = 'Title'; -$wb["name_txt"] = 'Module'; -$wb["delete_txt"] = 'Delete'; -$wb["properties_txt"] = 'Properties'; -$wb["new_menu_txt"] = 'Menu new'; -$wb["edit_txt"] = 'Edit'; -$wb["delete_txt"] = 'Delete'; -$wb["new_txt"] = 'New'; -$wb["up_txt"] = 'Up'; -$wb["down_txt"] = 'Down'; -$wb["module_txt"] = 'Module'; -$wb["module_del_txt"] = "Do you really want to delete the module and all its subdirectories?"; -$wb["menu_del_txt"] = "Do you really want to delete the menu with all sub entries?"; -$wb["item_del_txt"] = "Delete the menu entry?"; -?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/es.lng b/interface/web/designer/lib/lang/es.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/es.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/es_form_edit.lng b/interface/web/designer/lib/lang/es_form_edit.lng deleted file mode 100644 index c5312559bb..0000000000 --- a/interface/web/designer/lib/lang/es_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Nombre del formulario'; -$wb['title_txt'] = 'TÃtulo del formulario'; -$wb['template_txt'] = 'Plantilla'; -$wb['navframe_txt'] = 'Marco de navegación'; -$wb['startpage_txt'] = 'Página inicial'; -$wb['tab_width_txt'] = 'Ancho de pestaña'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -$wb['header_txt'] = 'Propiedades del formulario'; -$wb['description_txt'] = 'Descripción'; -$wb['action_txt'] = 'Acción (script)'; -$wb['db_table_txt'] = 'Tabla de BD'; -$wb['db_table_idx_txt'] = 'Indice de tabla de BD'; -$wb['db_history_txt'] = 'Anular registro'; -$wb['tab_default_txt'] = 'Pestaña por defecto'; -$wb['list_default_txt'] = 'Lista por defecto'; -$wb['auth_txt'] = 'Permisos'; -$wb['auth_preset_userid_txt'] = 'ID usuario'; -$wb['auth_preset_groupid_txt'] = 'ID grupo'; -$wb['auth_preset_perm_user_txt'] = 'Permisos del usuario'; -$wb['auth_preset_perm_group_txt'] = 'Permisos del grupo'; -$wb['auth_preset_perm_other_txt'] = 'Permisos de otros'; -?> diff --git a/interface/web/designer/lib/lang/es_form_list.lng b/interface/web/designer/lib/lang/es_form_list.lng deleted file mode 100644 index 3334d0b294..0000000000 --- a/interface/web/designer/lib/lang/es_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Formulario de respaldo'; -$wb['form_txt'] = 'Formulario'; -$wb['module_txt'] = 'Módulo'; -$wb['title_txt'] = 'TÃtulo'; -$wb['description_txt'] = 'Descripción'; -?> diff --git a/interface/web/designer/lib/lang/es_form_show.lng b/interface/web/designer/lib/lang/es_form_show.lng deleted file mode 100644 index 4cac14529b..0000000000 --- a/interface/web/designer/lib/lang/es_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor de formularios'; -$wb['title_txt'] = 'TÃtulo del formulario'; -$wb['name_txt'] = 'Nombre del formulario'; -$wb['delete_txt'] = 'Eliminar'; -$wb['properties_txt'] = 'Propiedades'; -$wb['new_tab_txt'] = 'Nueva pestaña'; -$wb['edit_txt'] = 'Editar'; -$wb['new_txt'] = 'Nuevo'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Módulo'; -$wb['form_txt'] = 'Formulario'; -$wb['description_txt'] = 'Descripción'; -$wb['module_del_txt'] = '¿Eliminar el módulo y los subdirectorios?'; -$wb['menu_del_txt'] = '¿Eliminar el menú y todos sus elementos?'; -$wb['item_del_txt'] = '¿Eliminar el elemento del menú?'; -?> diff --git a/interface/web/designer/lib/lang/es_module_edit.lng b/interface/web/designer/lib/lang/es_module_edit.lng deleted file mode 100644 index c126365a54..0000000000 --- a/interface/web/designer/lib/lang/es_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Nombre del módulo'; -$wb['title_txt'] = 'TÃtulo del módulo'; -$wb['template_txt'] = 'Fichero de plantilla'; -$wb['navframe_txt'] = 'Marco de navegación'; -$wb['startpage_txt'] = 'Página por defecto'; -$wb['tab_width_txt'] = 'Ancho de pestaña'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -$wb['header_txt'] = 'Propiedades del modulo'; -$wb['description_txt'] = '<b>Descripción</b><br><br><b>Nombre del módulo:</b> Nombre del directorio del módulo. Sólo se permiten números, carácteres y subrayados.<br><b>TÃtulo del módulo:</b> Se mostrará en la barra de navegación principal.<br><b>Fichero de plantilla:</b> Fichero de la plantilla del módulo. Disponibles actualmente: module.tpl.htm y module_tree.tpl.htm. Por defecto: module.tpl.htm.<br><b>Marco de navegación:</b> Si el fichero de plantilla module_tree.tpl.htm está seleccionado, introduzca aquà la ruta al fichero del script del marco de la izquierda.<br><b>Página por defecto:</b> Esta página se mostrará cuando el módulo se abra.<br><b>Ancho de pestaña:</b> Ancho de las pestañas en la barra de navegación. El campo está vacÃo por defecto. Puede introducir valores absolutos en pÃxeles (p.ej. 20) o relativos (p.ej. 20%).<br><b>Pista:</b> Todas las rutas son relativas al directorio.'; -?> diff --git a/interface/web/designer/lib/lang/es_module_list.lng b/interface/web/designer/lib/lang/es_module_list.lng deleted file mode 100644 index 2805a07bc9..0000000000 --- a/interface/web/designer/lib/lang/es_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Módulo de respaldo'; -$wb['module_txt'] = 'Módulo'; -$wb['title_txt'] = 'TÃtulo'; -?> diff --git a/interface/web/designer/lib/lang/es_module_nav_edit.lng b/interface/web/designer/lib/lang/es_module_nav_edit.lng deleted file mode 100644 index 22688b6e17..0000000000 --- a/interface/web/designer/lib/lang/es_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'TÃtulo'; -$wb['header_txt'] = 'Propiedades de navegación'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -?> diff --git a/interface/web/designer/lib/lang/es_module_nav_item_edit.lng b/interface/web/designer/lib/lang/es_module_nav_item_edit.lng deleted file mode 100644 index ec39e5f899..0000000000 --- a/interface/web/designer/lib/lang/es_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'TÃtulo'; -$wb['target_txt'] = 'Objetivo'; -$wb['link_txt'] = 'Enlace'; -$wb['header_txt'] = 'Propiedades de navegación'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -?> diff --git a/interface/web/designer/lib/lang/es_module_show.lng b/interface/web/designer/lib/lang/es_module_show.lng deleted file mode 100644 index 1f1199de53..0000000000 --- a/interface/web/designer/lib/lang/es_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor de menú'; -$wb['title_txt'] = 'TÃtulo'; -$wb['name_txt'] = 'Módulo'; -$wb['delete_txt'] = 'Eliminar'; -$wb['properties_txt'] = 'Propiedades'; -$wb['new_menu_txt'] = 'Nuevo menú'; -$wb['edit_txt'] = 'Editar'; -$wb['new_txt'] = 'Nuevo'; -$wb['up_txt'] = 'Arriba'; -$wb['down_txt'] = 'Abajo'; -$wb['module_txt'] = 'Módulo'; -$wb['module_del_txt'] = '¿Quiere eliminar el módulo y eliminar todos los ficheros creados dentro de él?'; -$wb['menu_del_txt'] = '¿Quiere eliminar el menú con todo sus elementos?'; -$wb['item_del_txt'] = '¿Quiere eliminar el elemento del menú?'; -?> diff --git a/interface/web/designer/lib/lang/fi.lng b/interface/web/designer/lib/lang/fi.lng deleted file mode 100755 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/fi.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/fi_form_edit.lng b/interface/web/designer/lib/lang/fi_form_edit.lng deleted file mode 100755 index c9a13038a4..0000000000 --- a/interface/web/designer/lib/lang/fi_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Lomakkeen nimi'; -$wb['title_txt'] = 'Lomakkeen otsikko'; -$wb['template_txt'] = 'Mallilomake'; -$wb['navframe_txt'] = 'Valikon kehys'; -$wb['startpage_txt'] = 'Aloitussivu'; -$wb['tab_width_txt'] = 'Painikkeen leveys'; -$wb['save_txt'] = 'Tallenna'; -$wb['cancel_txt'] = 'Keskeytä'; -$wb['header_txt'] = 'Lomakkeen ominaisuudet'; -$wb['description_txt'] = 'Kuvaus'; -$wb['action_txt'] = 'Toiminto (skripti)'; -$wb['db_table_txt'] = 'Tietokannan taulu'; -$wb['db_table_idx_txt'] = 'Tietokannan taulun indeksi'; -$wb['db_history_txt'] = 'Kumoamisloki'; -$wb['tab_default_txt'] = 'Oletuspainike'; -$wb['list_default_txt'] = 'Oletuslista'; -$wb['auth_txt'] = 'Oikeudet'; -$wb['auth_preset_userid_txt'] = 'Käyttäjätunnus'; -$wb['auth_preset_groupid_txt'] = 'Käyttäjäryhmä'; -$wb['auth_preset_perm_user_txt'] = 'Käyttäjän oikeudet'; -$wb['auth_preset_perm_group_txt'] = 'Ryhmän oikeudet'; -$wb['auth_preset_perm_other_txt'] = 'Muiden käyttäjien oikeudet'; -?> diff --git a/interface/web/designer/lib/lang/fi_form_list.lng b/interface/web/designer/lib/lang/fi_form_list.lng deleted file mode 100755 index 9052c8f0c9..0000000000 --- a/interface/web/designer/lib/lang/fi_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Peruslomake'; -$wb['form_txt'] = 'Lomake'; -$wb['module_txt'] = 'Ohjelmaosio'; -$wb['title_txt'] = 'Otsikko'; -$wb['description_txt'] = 'Kuvaus'; -?> diff --git a/interface/web/designer/lib/lang/fi_form_show.lng b/interface/web/designer/lib/lang/fi_form_show.lng deleted file mode 100755 index 247a95be59..0000000000 --- a/interface/web/designer/lib/lang/fi_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Lomakemuokkain'; -$wb['title_txt'] = 'Lomakkeen otsikko'; -$wb['name_txt'] = 'Lomakkeen nimi'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'Ominaisuudet'; -$wb['new_tab_txt'] = 'Uusi painike'; -$wb['edit_txt'] = 'Muokkaa'; -$wb['new_txt'] = 'Uusi'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Ohjelmaosio'; -$wb['form_txt'] = 'Lomake'; -$wb['description_txt'] = 'Kuvaus'; -$wb['module_del_txt'] = 'Poista ohjelmaosion kansio ja kaikki sen alikansiot?'; -$wb['menu_del_txt'] = 'Poista valikko ja kaikki sen osat?'; -$wb['item_del_txt'] = 'Poista valikon osa?'; -?> diff --git a/interface/web/designer/lib/lang/fi_module_edit.lng b/interface/web/designer/lib/lang/fi_module_edit.lng deleted file mode 100755 index 8bb4a5c09e..0000000000 --- a/interface/web/designer/lib/lang/fi_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Ohjelmaosion nimi'; -$wb['title_txt'] = 'Ohjelmaosion otsikko'; -$wb['template_txt'] = 'Mallitiedosto'; -$wb['navframe_txt'] = 'Valikkokehys'; -$wb['startpage_txt'] = 'Oletussivu'; -$wb['tab_width_txt'] = 'Välilehden leveys'; -$wb['save_txt'] = 'Tallenna'; -$wb['cancel_txt'] = 'Keskeytä'; -$wb['header_txt'] = 'Ohjelmaosion ominaisuudet'; -$wb['description_txt'] = ' -<b>Kuvaus</b> -<br><br> -<b>Modulename:</b> Ohjelmaosion kansion nimi. Vain numerot,kirjaimet ja alaviiva on sallittu.<br> -<b>Moduletitle:</b> Tulee näkymään ylemmässä päävalikossa.<br> -<b>Template file:</b> Ohjelmaosion mallitiedosto. Käytettävissä tällä hetkellä: module.tpl.htm ja module_tree.tpl.htm. Oletus on module.tpl.htm.<br> -<b>NaviFrame:</b> Jos module_tree.tpl.htm valittiin mallitiedostoksi, kirjoita tähän vasemman kehyksen skriptitiedoston polku.<br> -<b>Default page:</b> Tämä sivu näytetetään kun ohjelmaosio avataan.<br> -<b>Tab width:</b> Päälikon painikkeiden leveys. Kenttä on oletuksenä tyhjä. Voit antaa arvon pikseleinää tai prosentteina. (esim. 20 tai 20%).<br> -<b>Vihje:</b> Kaikki polut ovat suhteellisia web-kansioon, eivät absoluuttisia. -'; -?> diff --git a/interface/web/designer/lib/lang/fi_module_list.lng b/interface/web/designer/lib/lang/fi_module_list.lng deleted file mode 100755 index f07c9a377b..0000000000 --- a/interface/web/designer/lib/lang/fi_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Perusohjelmaosio'; -$wb['module_txt'] = 'Ohjelmaosio'; -$wb['title_txt'] = 'Otsikko'; -?> diff --git a/interface/web/designer/lib/lang/fi_module_nav_edit.lng b/interface/web/designer/lib/lang/fi_module_nav_edit.lng deleted file mode 100755 index b7c03eafb0..0000000000 --- a/interface/web/designer/lib/lang/fi_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Otsikko'; -$wb['header_txt'] = 'Valikon ominaisuudet'; -$wb['save_txt'] = 'Tallenna'; -$wb['cancel_txt'] = 'Keskeytä'; -?> diff --git a/interface/web/designer/lib/lang/fi_module_nav_item_edit.lng b/interface/web/designer/lib/lang/fi_module_nav_item_edit.lng deleted file mode 100755 index 5f32d58481..0000000000 --- a/interface/web/designer/lib/lang/fi_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Otsikko'; -$wb['target_txt'] = 'Kohde'; -$wb['link_txt'] = 'Linkki'; -$wb['header_txt'] = 'Valikon ominaisuudet'; -$wb['save_txt'] = 'Tallenna'; -$wb['cancel_txt'] = 'Keskeytä'; -?> diff --git a/interface/web/designer/lib/lang/fi_module_show.lng b/interface/web/designer/lib/lang/fi_module_show.lng deleted file mode 100755 index 066d92f583..0000000000 --- a/interface/web/designer/lib/lang/fi_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Valikko-muokkain'; -$wb['title_txt'] = 'Otsikko'; -$wb['name_txt'] = 'Ohjelmaosio'; -$wb['delete_txt'] = 'Poista'; -$wb['properties_txt'] = 'Ominaisuudet'; -$wb['new_menu_txt'] = 'Uusi valikko'; -$wb['edit_txt'] = 'Muokkaa'; -$wb['new_txt'] = 'Uusi'; -$wb['up_txt'] = 'Ylös'; -$wb['down_txt'] = 'Alas'; -$wb['module_txt'] = 'Ohjelmaosio'; -$wb['module_del_txt'] = 'Haluatko poistaa tämän ohjelmaosion ja kaikki siihen kuuluvat valikot ja osat?'; -$wb['menu_del_txt'] = 'Haluatko poistaa tämän valikon?'; -$wb['item_del_txt'] = 'Haluatko poistaa tämän osan?'; -?> diff --git a/interface/web/designer/lib/lang/fr.lng b/interface/web/designer/lib/lang/fr.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/fr.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/fr_form_edit.lng b/interface/web/designer/lib/lang/fr_form_edit.lng deleted file mode 100644 index eb3f5a35c0..0000000000 --- a/interface/web/designer/lib/lang/fr_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Nom du Formulaire'; -$wb['title_txt'] = 'Titre du formulaire'; -$wb['template_txt'] = 'Gabarit'; -$wb['navframe_txt'] = 'Cadre de navigation'; -$wb['startpage_txt'] = 'Page de démarrage'; -$wb['tab_width_txt'] = 'Largeur Tableau'; -$wb['save_txt'] = 'Sauver'; -$wb['cancel_txt'] = 'Annuler'; -$wb['header_txt'] = 'Propriétés du Formulaire'; -$wb['description_txt'] = 'Description'; -$wb['action_txt'] = 'Action (script)'; -$wb['db_table_txt'] = 'Table BDD'; -$wb['db_table_idx_txt'] = 'Index table BDD'; -$wb['db_history_txt'] = 'Effacer le Log'; -$wb['tab_default_txt'] = 'Onglet par défaut'; -$wb['list_default_txt'] = 'Liste par défaut'; -$wb['auth_txt'] = 'Permissions'; -$wb['auth_preset_userid_txt'] = 'ID Utilisateur'; -$wb['auth_preset_groupid_txt'] = 'ID Groupe'; -$wb['auth_preset_perm_user_txt'] = 'Permission Utilisateur'; -$wb['auth_preset_perm_group_txt'] = 'Permission Groupe'; -$wb['auth_preset_perm_other_txt'] = 'Permission Autre'; -?> diff --git a/interface/web/designer/lib/lang/fr_form_list.lng b/interface/web/designer/lib/lang/fr_form_list.lng deleted file mode 100644 index 316211598e..0000000000 --- a/interface/web/designer/lib/lang/fr_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Formulaire d\'administration'; -$wb['form_txt'] = 'Formulaire'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Titre'; -$wb['description_txt'] = 'Description'; -?> diff --git a/interface/web/designer/lib/lang/fr_form_show.lng b/interface/web/designer/lib/lang/fr_form_show.lng deleted file mode 100644 index c2cd94be79..0000000000 --- a/interface/web/designer/lib/lang/fr_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Editeur de Formulaire'; -$wb['title_txt'] = 'Titre du Formulaire'; -$wb['name_txt'] = 'Nom du Fromulaire'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'Propriétés'; -$wb['new_tab_txt'] = 'Nouvel Onglet'; -$wb['edit_txt'] = 'Editer'; -$wb['new_txt'] = 'Nouveau'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Formulaire'; -$wb['description_txt'] = 'Description'; -$wb['module_del_txt'] = 'Effacer le module et tous ses sous-répertoires'; -$wb['menu_del_txt'] = 'Effacer le menu et toutes ses entrées'; -$wb['item_del_txt'] = 'Effacer l\'entrée'; -?> diff --git a/interface/web/designer/lib/lang/fr_module_edit.lng b/interface/web/designer/lib/lang/fr_module_edit.lng deleted file mode 100644 index 282c73cdc3..0000000000 --- a/interface/web/designer/lib/lang/fr_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Nom du module'; -$wb['title_txt'] = 'Titre du module'; -$wb['template_txt'] = 'Fichier gabarit'; -$wb['navframe_txt'] = 'Cadre de navigation'; -$wb['startpage_txt'] = 'Page par défaut'; -$wb['tab_width_txt'] = 'Largeur du tableau'; -$wb['save_txt'] = 'Sauver'; -$wb['cancel_txt'] = 'Annuler'; -$wb['header_txt'] = 'Propriétés du module'; -$wb['description_txt'] = ' <b>Description</b><br /><br /><b>Nom du Module:</b> Nom du répertoire du module. Seuls les nombres, lettres et underscores sont autorisés.<br/><b>Titre du module:</b> Sera affiché dans le menu de navigation (supérieur).<br/><b>Fichier gabarit:</b> Fichier'; -?> diff --git a/interface/web/designer/lib/lang/fr_module_list.lng b/interface/web/designer/lib/lang/fr_module_list.lng deleted file mode 100644 index d493fdcb3f..0000000000 --- a/interface/web/designer/lib/lang/fr_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Module d\'administration'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Titre'; -?> diff --git a/interface/web/designer/lib/lang/fr_module_nav_edit.lng b/interface/web/designer/lib/lang/fr_module_nav_edit.lng deleted file mode 100644 index 53c5e41287..0000000000 --- a/interface/web/designer/lib/lang/fr_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Titre'; -$wb['header_txt'] = 'Propriétés de navigation'; -$wb['save_txt'] = 'Sauver'; -$wb['cancel_txt'] = 'Annuler'; -?> diff --git a/interface/web/designer/lib/lang/fr_module_nav_item_edit.lng b/interface/web/designer/lib/lang/fr_module_nav_item_edit.lng deleted file mode 100644 index 21852e292b..0000000000 --- a/interface/web/designer/lib/lang/fr_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Titre'; -$wb['target_txt'] = 'Cible'; -$wb['link_txt'] = 'Lien'; -$wb['header_txt'] = 'Propriétés de navigation'; -$wb['save_txt'] = 'Sauver'; -$wb['cancel_txt'] = 'Annuler'; -?> diff --git a/interface/web/designer/lib/lang/fr_module_show.lng b/interface/web/designer/lib/lang/fr_module_show.lng deleted file mode 100644 index 8c14adb3a1..0000000000 --- a/interface/web/designer/lib/lang/fr_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Editeur de menu'; -$wb['title_txt'] = 'Titre'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Effacer'; -$wb['properties_txt'] = 'Propriétés'; -$wb['new_menu_txt'] = 'Nouveau menu'; -$wb['edit_txt'] = 'Editer'; -$wb['new_txt'] = 'Nouveau'; -$wb['up_txt'] = 'Monter'; -$wb['down_txt'] = 'Descendre'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Voulez-vous supprimer le module et tous les fichiers et sous-dossier du module ?'; -$wb['menu_del_txt'] = 'Voulez-vous supprimer le menu avec tous ses sous-menus ?'; -$wb['item_del_txt'] = 'Voulez-vous supprimer l\'entrée de menu ?'; -?> diff --git a/interface/web/designer/lib/lang/hr.lng b/interface/web/designer/lib/lang/hr.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/hr.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/hr_form_edit.lng b/interface/web/designer/lib/lang/hr_form_edit.lng deleted file mode 100644 index 6396ece152..0000000000 --- a/interface/web/designer/lib/lang/hr_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Naziv forme'; -$wb['title_txt'] = 'Naslov forme'; -$wb['template_txt'] = 'Predložak'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'PoÄetna'; -$wb['tab_width_txt'] = 'Å irina taba'; -$wb['save_txt'] = 'Spremi'; -$wb['cancel_txt'] = 'Odustani'; -$wb['header_txt'] = 'Postavke forme'; -$wb['description_txt'] = 'Opis'; -$wb['action_txt'] = 'Akcija (skripte)'; -$wb['db_table_txt'] = 'Tablica u bazi'; -$wb['db_table_idx_txt'] = 'Index tablice u bazi'; -$wb['db_history_txt'] = 'Vrati Log'; -$wb['tab_default_txt'] = 'Standardni tab'; -$wb['list_default_txt'] = 'Standardne liste'; -$wb['auth_txt'] = 'Dozvole'; -$wb['auth_preset_userid_txt'] = 'UserID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Dozvole klijenta'; -$wb['auth_preset_perm_group_txt'] = 'Dozvole grupe'; -$wb['auth_preset_perm_other_txt'] = 'Dozvole ostalo'; -?> diff --git a/interface/web/designer/lib/lang/hr_form_list.lng b/interface/web/designer/lib/lang/hr_form_list.lng deleted file mode 100644 index 9efdf782c9..0000000000 --- a/interface/web/designer/lib/lang/hr_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Pozadinska forma'; -$wb['form_txt'] = 'Forma'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Naslov'; -$wb['description_txt'] = 'Opis'; -?> diff --git a/interface/web/designer/lib/lang/hr_form_show.lng b/interface/web/designer/lib/lang/hr_form_show.lng deleted file mode 100644 index e83272a30a..0000000000 --- a/interface/web/designer/lib/lang/hr_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor forme'; -$wb['title_txt'] = 'Naslov forme'; -$wb['name_txt'] = 'Naziv forme'; -$wb['delete_txt'] = 'ObriÅ¡i'; -$wb['properties_txt'] = 'Postavke'; -$wb['new_tab_txt'] = 'Novi tab'; -$wb['edit_txt'] = 'Promijeni'; -$wb['new_txt'] = 'Novo'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Modul'; -$wb['form_txt'] = 'Forma'; -$wb['description_txt'] = 'Opis'; -$wb['module_del_txt'] = 'Obrisati modul i sve poddirektorije?'; -$wb['menu_del_txt'] = 'Obrisati meni i sve izbornike menia?'; -$wb['item_del_txt'] = 'Obrisati izbornik menia?'; -?> diff --git a/interface/web/designer/lib/lang/hr_module_edit.lng b/interface/web/designer/lib/lang/hr_module_edit.lng deleted file mode 100644 index b4aa48af57..0000000000 --- a/interface/web/designer/lib/lang/hr_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Naziv modula'; -$wb['title_txt'] = 'Naslov modula'; -$wb['template_txt'] = 'Predložak'; -$wb['navframe_txt'] = 'Navi frame'; -$wb['startpage_txt'] = 'Standardna stranica'; -$wb['tab_width_txt'] = 'Å irina taba'; -$wb['save_txt'] = 'Spremi'; -$wb['cancel_txt'] = 'Odustani'; -$wb['header_txt'] = 'Postavke modula'; -$wb['description_txt'] = '<b>Opis</b><br><br><b>Naziv modula:</b> Naziv direktorija sa modulima. Dozvoljeni samo brojevi, znakovi i podcrta.<br><b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br><b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br><b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br><b>Default page:</b> These page will be shown when the module is opened.<br><b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br><b>Hint:</b> All paths are relative to the directory web.'; -?> diff --git a/interface/web/designer/lib/lang/hr_module_list.lng b/interface/web/designer/lib/lang/hr_module_list.lng deleted file mode 100644 index 3528a6de3b..0000000000 --- a/interface/web/designer/lib/lang/hr_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Pozadinski modul'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Naslov'; -?> diff --git a/interface/web/designer/lib/lang/hr_module_nav_edit.lng b/interface/web/designer/lib/lang/hr_module_nav_edit.lng deleted file mode 100644 index 42c8e14a81..0000000000 --- a/interface/web/designer/lib/lang/hr_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Naslov'; -$wb['header_txt'] = 'Navi postavke'; -$wb['save_txt'] = 'Spremi'; -$wb['cancel_txt'] = 'Odustani'; -?> diff --git a/interface/web/designer/lib/lang/hr_module_nav_item_edit.lng b/interface/web/designer/lib/lang/hr_module_nav_item_edit.lng deleted file mode 100644 index ee9208fcfd..0000000000 --- a/interface/web/designer/lib/lang/hr_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Naziv'; -$wb['target_txt'] = 'Destinacija'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi postavke'; -$wb['save_txt'] = 'Spremi'; -$wb['cancel_txt'] = 'Odustani'; -?> diff --git a/interface/web/designer/lib/lang/hr_module_show.lng b/interface/web/designer/lib/lang/hr_module_show.lng deleted file mode 100644 index 98c6144f9b..0000000000 --- a/interface/web/designer/lib/lang/hr_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor menia'; -$wb['title_txt'] = 'Naziv'; -$wb['name_txt'] = 'Modul'; -$wb['delete_txt'] = 'ObriÅ¡i'; -$wb['properties_txt'] = 'Postavke'; -$wb['new_menu_txt'] = 'Novi meni'; -$wb['edit_txt'] = 'Editiraj'; -$wb['new_txt'] = 'Novo'; -$wb['up_txt'] = 'Gore'; -$wb['down_txt'] = 'Dolje'; -$wb['module_txt'] = 'Modul'; -$wb['module_del_txt'] = 'Da li stvarno želite obrisati modul i sve poddirektorije?'; -$wb['menu_del_txt'] = 'Da li stvarno želite obrisati meni i sve podmenije?'; -$wb['item_del_txt'] = 'Obrisati meni?'; -?> diff --git a/interface/web/designer/lib/lang/hu.lng b/interface/web/designer/lib/lang/hu.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/hu.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/hu_form_edit.lng b/interface/web/designer/lib/lang/hu_form_edit.lng deleted file mode 100644 index d7b419cd31..0000000000 --- a/interface/web/designer/lib/lang/hu_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formname'; -$wb['title_txt'] = 'Formutitle'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Startpage'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Form properties'; -$wb['description_txt'] = 'Description'; -$wb['action_txt'] = 'Action (script)'; -$wb['db_table_txt'] = 'DB Table'; -$wb['db_table_idx_txt'] = 'DB Table Index'; -$wb['db_history_txt'] = 'Undo Napló'; -$wb['tab_default_txt'] = 'Default Tab'; -$wb['list_default_txt'] = 'Default Liste'; -$wb['auth_txt'] = 'Permissions'; -$wb['auth_preset_userid_txt'] = 'UserID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Perm. User'; -$wb['auth_preset_perm_group_txt'] = 'Perm. Group'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Other'; -?> diff --git a/interface/web/designer/lib/lang/hu_form_list.lng b/interface/web/designer/lib/lang/hu_form_list.lng deleted file mode 100644 index 47432257fd..0000000000 --- a/interface/web/designer/lib/lang/hu_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Form'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Title'; -$wb['description_txt'] = 'Description'; -?> diff --git a/interface/web/designer/lib/lang/hu_form_show.lng b/interface/web/designer/lib/lang/hu_form_show.lng deleted file mode 100644 index 12be609a1f..0000000000 --- a/interface/web/designer/lib/lang/hu_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formeditor'; -$wb['title_txt'] = 'Formtitle'; -$wb['name_txt'] = 'Formname'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'Properties'; -$wb['new_tab_txt'] = 'Tab new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'Neu'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Form'; -$wb['description_txt'] = 'Description'; -$wb['module_del_txt'] = 'Delete the module and all subdirectories?'; -$wb['menu_del_txt'] = 'Delete menu with all menuitems?'; -$wb['item_del_txt'] = 'Delete menuitem?'; -?> diff --git a/interface/web/designer/lib/lang/hu_module_edit.lng b/interface/web/designer/lib/lang/hu_module_edit.lng deleted file mode 100644 index 592ccd76bc..0000000000 --- a/interface/web/designer/lib/lang/hu_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulename'; -$wb['title_txt'] = 'Moduletitle'; -$wb['template_txt'] = 'Template file'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Default page'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Module properties'; -$wb['description_txt'] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br> -<b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br> -<b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br> -<b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br> -<b>Default page:</b> These page will be shown when the module is opened.<br> -<b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br> -<b>Hint:</b> All paths are relative to the directory web. -'; -?> diff --git a/interface/web/designer/lib/lang/hu_module_list.lng b/interface/web/designer/lib/lang/hu_module_list.lng deleted file mode 100644 index bc9ebed580..0000000000 --- a/interface/web/designer/lib/lang/hu_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Module'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Title'; -?> diff --git a/interface/web/designer/lib/lang/hu_module_nav_edit.lng b/interface/web/designer/lib/lang/hu_module_nav_edit.lng deleted file mode 100644 index fa5f15aa9e..0000000000 --- a/interface/web/designer/lib/lang/hu_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Title'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -?> diff --git a/interface/web/designer/lib/lang/hu_module_nav_item_edit.lng b/interface/web/designer/lib/lang/hu_module_nav_item_edit.lng deleted file mode 100644 index 23f7d1592a..0000000000 --- a/interface/web/designer/lib/lang/hu_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Title'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -?> diff --git a/interface/web/designer/lib/lang/hu_module_show.lng b/interface/web/designer/lib/lang/hu_module_show.lng deleted file mode 100644 index 357fca1498..0000000000 --- a/interface/web/designer/lib/lang/hu_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menu editor'; -$wb['title_txt'] = 'Title'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Delete'; -$wb['properties_txt'] = 'Properties'; -$wb['new_menu_txt'] = 'Menu new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'New'; -$wb['up_txt'] = 'Up'; -$wb['down_txt'] = 'Down'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse l�schen?'; -$wb['menu_del_txt'] = 'Wollen Sie das Men� mit allen Untereintr�gen l�schen?'; -$wb['item_del_txt'] = 'Wollen Sie den Men�eintrag l�schen?'; -?> diff --git a/interface/web/designer/lib/lang/id.lng b/interface/web/designer/lib/lang/id.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/id.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/id_form_edit.lng b/interface/web/designer/lib/lang/id_form_edit.lng deleted file mode 100644 index 957ccbc06f..0000000000 --- a/interface/web/designer/lib/lang/id_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Nama Form'; -$wb['title_txt'] = 'Judul Form'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'Frame Navigasi'; -$wb['startpage_txt'] = 'Halaman Awal'; -$wb['tab_width_txt'] = 'Lebar Tab'; -$wb['save_txt'] = 'Simpan'; -$wb['cancel_txt'] = 'Batal'; -$wb['header_txt'] = 'Properti Form'; -$wb['description_txt'] = 'Keterangan'; -$wb['action_txt'] = 'Tindakan (skrip)'; -$wb['db_table_txt'] = 'Tabel DB'; -$wb['db_table_idx_txt'] = 'Indeks Tabel DB'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Tab Baku'; -$wb['list_default_txt'] = 'Daftar Baku'; -$wb['auth_txt'] = 'Hak Akses'; -$wb['auth_preset_userid_txt'] = 'ID Pengguna'; -$wb['auth_preset_groupid_txt'] = 'ID Grup'; -$wb['auth_preset_perm_user_txt'] = 'Hak Akses Pengguna'; -$wb['auth_preset_perm_group_txt'] = 'Hak Akses Grup'; -$wb['auth_preset_perm_other_txt'] = 'Hak Akses Lainnya'; -?> diff --git a/interface/web/designer/lib/lang/id_form_list.lng b/interface/web/designer/lib/lang/id_form_list.lng deleted file mode 100644 index ea20e633be..0000000000 --- a/interface/web/designer/lib/lang/id_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Form Backend'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Judul'; -$wb['description_txt'] = 'Keterangan'; -?> diff --git a/interface/web/designer/lib/lang/id_form_show.lng b/interface/web/designer/lib/lang/id_form_show.lng deleted file mode 100644 index 0e05e51edd..0000000000 --- a/interface/web/designer/lib/lang/id_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Penyunting Form'; -$wb['title_txt'] = 'Judul Form'; -$wb['name_txt'] = 'Nama Form'; -$wb['delete_txt'] = 'Hapus'; -$wb['properties_txt'] = 'Properti'; -$wb['new_tab_txt'] = 'Tab Baru'; -$wb['edit_txt'] = 'Sunting'; -$wb['new_txt'] = 'Baru'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Modul'; -$wb['form_txt'] = 'Form'; -$wb['description_txt'] = 'Keterangan'; -$wb['module_del_txt'] = 'Hapus modul dan seluruh sub direktori?'; -$wb['menu_del_txt'] = 'Hapus menu dengan seluruh menuitem?'; -$wb['item_del_txt'] = 'Hapus menuitem?'; -?> diff --git a/interface/web/designer/lib/lang/id_module_edit.lng b/interface/web/designer/lib/lang/id_module_edit.lng deleted file mode 100644 index 31b0692379..0000000000 --- a/interface/web/designer/lib/lang/id_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Nama modul'; -$wb['title_txt'] = 'Judul modul'; -$wb['template_txt'] = 'Berkas Template'; -$wb['navframe_txt'] = 'Frame Navigasi'; -$wb['startpage_txt'] = 'Halaman Default'; -$wb['tab_width_txt'] = 'Lebar Tab'; -$wb['save_txt'] = 'Simpan'; -$wb['cancel_txt'] = 'Batal'; -$wb['header_txt'] = 'Properti Modul'; -$wb['description_txt'] = ' -<b>Keterangan</b> -<br><br> -<b>Nama Modul:</b> Nama direktori modul. Hanya angka, karakter dan garis bawah yang diizinkan.<br> -<b>Judul Modul:</b> Akan terlihat di navigasi utama (bagian atas).<br> -<b>Berkas Template:</b> Berkas Template modul. Yang tersedia saat ini: module.tpl.htm dan module_tree.tpl.htm. Defaultnya adalah module.tpl.htm.<br> -<b>Frame Navigasi:</b> Jika memilih module_tree.tpl.htm sebagai berkas template, masukkan path ke berkas skrip untuk frame sebelah kiri.<br> -<b>Halaman Default:</b> Halaman ini akan muncul ketika modul dibuka.<br> -<b>Lebar Tab:</b> Lebar tab di navigasi utama. Kolom ini defaultnya kosong. Anda dapat memasukkan nilai pixel absolut (mis. 20) atau relatif (mis. 20%).<br> -<b>Petunjuk:</b> Semua path adalah relatif terhadap direktori web. -'; -?> diff --git a/interface/web/designer/lib/lang/id_module_list.lng b/interface/web/designer/lib/lang/id_module_list.lng deleted file mode 100644 index 40114b24de..0000000000 --- a/interface/web/designer/lib/lang/id_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Modul Backend'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Judul'; -?> diff --git a/interface/web/designer/lib/lang/id_module_nav_edit.lng b/interface/web/designer/lib/lang/id_module_nav_edit.lng deleted file mode 100644 index 524784aa5d..0000000000 --- a/interface/web/designer/lib/lang/id_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Judul'; -$wb['header_txt'] = 'Properti Navigasi'; -$wb['save_txt'] = 'Simpan'; -$wb['cancel_txt'] = 'Batal'; -?> diff --git a/interface/web/designer/lib/lang/id_module_nav_item_edit.lng b/interface/web/designer/lib/lang/id_module_nav_item_edit.lng deleted file mode 100644 index bb3d780ff6..0000000000 --- a/interface/web/designer/lib/lang/id_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Judul'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Tautan'; -$wb['header_txt'] = 'Properti Navigasi'; -$wb['save_txt'] = 'Simpan'; -$wb['cancel_txt'] = 'Batal'; -?> diff --git a/interface/web/designer/lib/lang/id_module_show.lng b/interface/web/designer/lib/lang/id_module_show.lng deleted file mode 100644 index 38ef8a5ce9..0000000000 --- a/interface/web/designer/lib/lang/id_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Penyunting Menu'; -$wb['title_txt'] = 'Judul'; -$wb['name_txt'] = 'Modul'; -$wb['delete_txt'] = 'Hapus'; -$wb['properties_txt'] = 'Properti'; -$wb['new_menu_txt'] = 'Menu baru'; -$wb['edit_txt'] = 'Sunting'; -$wb['new_txt'] = 'Baru'; -$wb['up_txt'] = 'Naik'; -$wb['down_txt'] = 'Turun'; -$wb['module_txt'] = 'Modul'; -$wb['module_del_txt'] = 'Apakah Anda ingin menghapus modul dan semua berkas dan subdirektori yang dibuat oleh modul?'; -$wb['menu_del_txt'] = 'Apakah Anda ingin menghapus menu dan semua sub-entrinya?'; -$wb['item_del_txt'] = 'Apakah Anda ingin menghapus item menu?'; -?> diff --git a/interface/web/designer/lib/lang/it.lng b/interface/web/designer/lib/lang/it.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/it.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/it_form_edit.lng b/interface/web/designer/lib/lang/it_form_edit.lng deleted file mode 100644 index 1fc63b8845..0000000000 --- a/interface/web/designer/lib/lang/it_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formname'; -$wb['title_txt'] = 'Formutitle'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Startpage'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Form properties'; -$wb['description_txt'] = 'Description'; -$wb['action_txt'] = 'Action (script)'; -$wb['db_table_txt'] = 'DB Table'; -$wb['db_table_idx_txt'] = 'DB Table Index'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Default Tab'; -$wb['list_default_txt'] = 'Default Liste'; -$wb['auth_txt'] = 'Permessi'; -$wb['auth_preset_userid_txt'] = 'UserID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Perm. User'; -$wb['auth_preset_perm_group_txt'] = 'Perm. Group'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Other'; -?> diff --git a/interface/web/designer/lib/lang/it_form_list.lng b/interface/web/designer/lib/lang/it_form_list.lng deleted file mode 100644 index 015cc53ffa..0000000000 --- a/interface/web/designer/lib/lang/it_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Form'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Modulo'; -$wb['title_txt'] = 'Titolo'; -$wb['description_txt'] = 'Descrizione'; -?> diff --git a/interface/web/designer/lib/lang/it_form_show.lng b/interface/web/designer/lib/lang/it_form_show.lng deleted file mode 100644 index 12be609a1f..0000000000 --- a/interface/web/designer/lib/lang/it_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formeditor'; -$wb['title_txt'] = 'Formtitle'; -$wb['name_txt'] = 'Formname'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'Properties'; -$wb['new_tab_txt'] = 'Tab new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'Neu'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Form'; -$wb['description_txt'] = 'Description'; -$wb['module_del_txt'] = 'Delete the module and all subdirectories?'; -$wb['menu_del_txt'] = 'Delete menu with all menuitems?'; -$wb['item_del_txt'] = 'Delete menuitem?'; -?> diff --git a/interface/web/designer/lib/lang/it_module_edit.lng b/interface/web/designer/lib/lang/it_module_edit.lng deleted file mode 100644 index a759d40b68..0000000000 --- a/interface/web/designer/lib/lang/it_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulename'; -$wb['title_txt'] = 'Moduletitle'; -$wb['template_txt'] = 'Template file'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Default page'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Module properties'; -$wb['description_txt'] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Nome del modulo directory. Sono ammessi solo numeri, caratteri e underscore.<br> -<b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br> -<b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br> -<b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br> -<b>Default page:</b> These page will be shown when the module is opened.<br> -<b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br> -<b>Suggerimento:</b> tutti i percorsi sono relativi alla directory web. -'; -?> diff --git a/interface/web/designer/lib/lang/it_module_list.lng b/interface/web/designer/lib/lang/it_module_list.lng deleted file mode 100644 index 8a256cb490..0000000000 --- a/interface/web/designer/lib/lang/it_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Modulo backend'; -$wb['module_txt'] = 'Modulo'; -$wb['title_txt'] = 'Titolo'; -?> diff --git a/interface/web/designer/lib/lang/it_module_nav_edit.lng b/interface/web/designer/lib/lang/it_module_nav_edit.lng deleted file mode 100644 index 26a426a124..0000000000 --- a/interface/web/designer/lib/lang/it_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Titolo'; -$wb['header_txt'] = 'Proprietà Navi'; -$wb['save_txt'] = 'Salva'; -$wb['cancel_txt'] = 'Annulla'; -?> diff --git a/interface/web/designer/lib/lang/it_module_nav_item_edit.lng b/interface/web/designer/lib/lang/it_module_nav_item_edit.lng deleted file mode 100644 index 47aac393bc..0000000000 --- a/interface/web/designer/lib/lang/it_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Titolo'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Proprietà Navi'; -$wb['save_txt'] = 'Salva'; -$wb['cancel_txt'] = 'Annulla'; -?> diff --git a/interface/web/designer/lib/lang/it_module_show.lng b/interface/web/designer/lib/lang/it_module_show.lng deleted file mode 100644 index 2cf9b07a80..0000000000 --- a/interface/web/designer/lib/lang/it_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menu editor'; -$wb['title_txt'] = 'Title'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Delete'; -$wb['properties_txt'] = 'Properties'; -$wb['new_menu_txt'] = 'Menu new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'New'; -$wb['up_txt'] = 'Up'; -$wb['down_txt'] = 'Down'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?'; -$wb['menu_del_txt'] = 'Wollen Sie das Menü mit allen Untereinträgen löschen?'; -$wb['item_del_txt'] = 'Wollen Sie den Menüeintrag löschen?'; -?> diff --git a/interface/web/designer/lib/lang/ja.lng b/interface/web/designer/lib/lang/ja.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/ja.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/ja_form_edit.lng b/interface/web/designer/lib/lang/ja_form_edit.lng deleted file mode 100644 index 130ca07889..0000000000 --- a/interface/web/designer/lib/lang/ja_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formname'; -$wb['title_txt'] = 'Formutitle'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Startpage'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'ä¿å˜ã™ã‚‹'; -$wb['cancel_txt'] = 'ã‚ャンセル'; -$wb['header_txt'] = 'Form properties'; -$wb['description_txt'] = '説明'; -$wb['action_txt'] = 'Action (script)'; -$wb['db_table_txt'] = 'DB Table'; -$wb['db_table_idx_txt'] = 'DB Table Index'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Default Tab'; -$wb['list_default_txt'] = 'Default Liste'; -$wb['auth_txt'] = 'Permissions'; -$wb['auth_preset_userid_txt'] = 'UserID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Perm.User'; -$wb['auth_preset_perm_group_txt'] = 'Perm.Group'; -$wb['auth_preset_perm_other_txt'] = 'Perm.Other'; -?> diff --git a/interface/web/designer/lib/lang/ja_form_list.lng b/interface/web/designer/lib/lang/ja_form_list.lng deleted file mode 100644 index 47432257fd..0000000000 --- a/interface/web/designer/lib/lang/ja_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Form'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Title'; -$wb['description_txt'] = 'Description'; -?> diff --git a/interface/web/designer/lib/lang/ja_form_show.lng b/interface/web/designer/lib/lang/ja_form_show.lng deleted file mode 100644 index 37017fa4a8..0000000000 --- a/interface/web/designer/lib/lang/ja_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formeditor'; -$wb['title_txt'] = 'Formtitle'; -$wb['name_txt'] = 'Formname'; -$wb['delete_txt'] = 'Delete'; -$wb['properties_txt'] = 'Properties'; -$wb['new_tab_txt'] = 'Tab new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'Neu'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Form'; -$wb['description_txt'] = 'Description'; -$wb['module_del_txt'] = 'Delete the module and all subdirectories?'; -$wb['menu_del_txt'] = 'Delete menu with all menuitems?'; -$wb['item_del_txt'] = 'Delete menuitem?'; -?> diff --git a/interface/web/designer/lib/lang/ja_module_edit.lng b/interface/web/designer/lib/lang/ja_module_edit.lng deleted file mode 100644 index 592ccd76bc..0000000000 --- a/interface/web/designer/lib/lang/ja_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulename'; -$wb['title_txt'] = 'Moduletitle'; -$wb['template_txt'] = 'Template file'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Default page'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Module properties'; -$wb['description_txt'] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br> -<b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br> -<b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br> -<b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br> -<b>Default page:</b> These page will be shown when the module is opened.<br> -<b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br> -<b>Hint:</b> All paths are relative to the directory web. -'; -?> diff --git a/interface/web/designer/lib/lang/ja_module_list.lng b/interface/web/designer/lib/lang/ja_module_list.lng deleted file mode 100644 index bc9ebed580..0000000000 --- a/interface/web/designer/lib/lang/ja_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Module'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Title'; -?> diff --git a/interface/web/designer/lib/lang/ja_module_nav_edit.lng b/interface/web/designer/lib/lang/ja_module_nav_edit.lng deleted file mode 100644 index fa5f15aa9e..0000000000 --- a/interface/web/designer/lib/lang/ja_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Title'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -?> diff --git a/interface/web/designer/lib/lang/ja_module_nav_item_edit.lng b/interface/web/designer/lib/lang/ja_module_nav_item_edit.lng deleted file mode 100644 index 23f7d1592a..0000000000 --- a/interface/web/designer/lib/lang/ja_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Title'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi properties'; -$wb['save_txt'] = 'Save'; -$wb['cancel_txt'] = 'Cancel'; -?> diff --git a/interface/web/designer/lib/lang/ja_module_show.lng b/interface/web/designer/lib/lang/ja_module_show.lng deleted file mode 100644 index 6fe8d45bee..0000000000 --- a/interface/web/designer/lib/lang/ja_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = '言語エディタ'; -$wb['title_txt'] = 'Title'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Delete'; -$wb['properties_txt'] = 'Properties'; -$wb['new_menu_txt'] = 'Menu new'; -$wb['edit_txt'] = 'Edit'; -$wb['new_txt'] = 'New'; -$wb['up_txt'] = 'Up'; -$wb['down_txt'] = 'Down'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse loschen?'; -$wb['menu_del_txt'] = 'Wollen Sie das Menu mit allen Untereintragen loschen?'; -$wb['item_del_txt'] = 'Wollen Sie den Menueintrag loschen?'; -?> diff --git a/interface/web/designer/lib/lang/nl.lng b/interface/web/designer/lib/lang/nl.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/nl.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/nl_form_edit.lng b/interface/web/designer/lib/lang/nl_form_edit.lng deleted file mode 100644 index 130fa5f7db..0000000000 --- a/interface/web/designer/lib/lang/nl_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formuliernaam'; -$wb['title_txt'] = 'Formuliertitel'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Startpagina'; -$wb['tab_width_txt'] = 'Tab breedte'; -$wb['save_txt'] = 'Opslaan'; -$wb['cancel_txt'] = 'Annuleren'; -$wb['header_txt'] = 'Formulier eigenschappen'; -$wb['description_txt'] = 'Omschrijving'; -$wb['action_txt'] = 'Actie (script)'; -$wb['db_table_txt'] = 'DB Tabe;'; -$wb['db_table_idx_txt'] = 'DB Tabel index'; -$wb['db_history_txt'] = 'Ongedaan maken Log'; -$wb['tab_default_txt'] = 'Standaard tab'; -$wb['list_default_txt'] = 'Standaard Lijst'; -$wb['auth_txt'] = 'Permissies'; -$wb['auth_preset_userid_txt'] = 'GebruikerID'; -$wb['auth_preset_groupid_txt'] = 'GroepID'; -$wb['auth_preset_perm_user_txt'] = 'Perm. gebruiker'; -$wb['auth_preset_perm_group_txt'] = 'Perm. groep'; -$wb['auth_preset_perm_other_txt'] = 'Perm. overige'; -?> diff --git a/interface/web/designer/lib/lang/nl_form_list.lng b/interface/web/designer/lib/lang/nl_form_list.lng deleted file mode 100644 index 2da9725046..0000000000 --- a/interface/web/designer/lib/lang/nl_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Formulier'; -$wb['form_txt'] = 'Formulier'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Titel'; -$wb['description_txt'] = 'Omschrijving'; -?> diff --git a/interface/web/designer/lib/lang/nl_form_show.lng b/interface/web/designer/lib/lang/nl_form_show.lng deleted file mode 100644 index 90fc713996..0000000000 --- a/interface/web/designer/lib/lang/nl_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formulier editor'; -$wb['title_txt'] = 'Formulier titel'; -$wb['name_txt'] = 'Formulier naam'; -$wb['delete_txt'] = 'Verwijderen'; -$wb['properties_txt'] = 'Eigenschappen'; -$wb['new_tab_txt'] = 'Tab nieuw'; -$wb['edit_txt'] = 'Wijzigen'; -$wb['new_txt'] = 'Nieuw'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Formulier'; -$wb['description_txt'] = 'Omschrijving'; -$wb['module_del_txt'] = 'Verwijder de module en alle subdirectories?'; -$wb['menu_del_txt'] = 'Verwijder menu met alle menuitems?'; -$wb['item_del_txt'] = 'Verwijder menutitem?'; -?> diff --git a/interface/web/designer/lib/lang/nl_module_edit.lng b/interface/web/designer/lib/lang/nl_module_edit.lng deleted file mode 100644 index 289ac62fe3..0000000000 --- a/interface/web/designer/lib/lang/nl_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulenaam'; -$wb['title_txt'] = 'Moduletitel'; -$wb['template_txt'] = 'Template bestand'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Standaard pagina'; -$wb['tab_width_txt'] = 'Tab breedte'; -$wb['save_txt'] = 'Opslaan'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Module eigenschappen'; -$wb['description_txt'] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Naam van de module directory. Alleen numerieke waarden, karakters en underscore zijn toegestaan.<br> -<b>Moduletitle:</b> Worden weergegeven in de (bovenste) hoofd navigatiebalk.<br> -<b>Template file:</b> Template bestand van de module. Momenteel beschikbaar: module.tpl.htm and module_tree.tpl.htm. Standaard is module.tpl.htm.<br> -<b>NaviFrame:</b> Als module_tree.tpl.htm is geselecteerd als template bestand, geef hier dan het pad op naar het script bestand voor het linker frame.<br> -<b>Default page:</b> Deze pagina wordt weergegeven wanneer de module is geopened.<br> -<b>Tab width:</b> Breedte van de tabs in de hoofdnavigatiebalk. Dit veld is standaard leeg. U kunt hier absulute pixel waarden invoeren (bijv. 20) of relatief (bijv. 20%).<br> -<b>Hint:</b> Alle paden zijn relatief tot de directory web. -'; -?> diff --git a/interface/web/designer/lib/lang/nl_module_list.lng b/interface/web/designer/lib/lang/nl_module_list.lng deleted file mode 100644 index b07dd11896..0000000000 --- a/interface/web/designer/lib/lang/nl_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Module'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Titel'; -?> diff --git a/interface/web/designer/lib/lang/nl_module_nav_edit.lng b/interface/web/designer/lib/lang/nl_module_nav_edit.lng deleted file mode 100644 index 504b7f754b..0000000000 --- a/interface/web/designer/lib/lang/nl_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Titel'; -$wb['header_txt'] = 'Navi eigenschappen'; -$wb['save_txt'] = 'Opslaan'; -$wb['cancel_txt'] = 'Annuleren'; -?> diff --git a/interface/web/designer/lib/lang/nl_module_nav_item_edit.lng b/interface/web/designer/lib/lang/nl_module_nav_item_edit.lng deleted file mode 100644 index b711e490e9..0000000000 --- a/interface/web/designer/lib/lang/nl_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Titel'; -$wb['target_txt'] = 'Doel'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi eigenschappen'; -$wb['save_txt'] = 'Opslaan'; -$wb['cancel_txt'] = 'Annuleer'; -?> diff --git a/interface/web/designer/lib/lang/nl_module_show.lng b/interface/web/designer/lib/lang/nl_module_show.lng deleted file mode 100644 index fca91bced5..0000000000 --- a/interface/web/designer/lib/lang/nl_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menu editor'; -$wb['title_txt'] = 'Title'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Verwijderen'; -$wb['properties_txt'] = 'Eigenschappen'; -$wb['new_menu_txt'] = 'Menu nieuw'; -$wb['edit_txt'] = 'Wijzigen'; -$wb['new_txt'] = 'Nieuw'; -$wb['up_txt'] = 'Op'; -$wb['down_txt'] = 'Neer'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Wilt u de module en alle in de module aangelegde bestanden en subdirectories verwijderen?'; -$wb['menu_del_txt'] = 'Wilt u het menu met alle menu items verwijderen?'; -$wb['item_del_txt'] = 'Wilt u het menu item verwijderen?'; -?> diff --git a/interface/web/designer/lib/lang/pl.lng b/interface/web/designer/lib/lang/pl.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/pl.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/pl_form_edit.lng b/interface/web/designer/lib/lang/pl_form_edit.lng deleted file mode 100644 index ee4f4c4100..0000000000 --- a/interface/web/designer/lib/lang/pl_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Nazwa formularza'; -$wb['title_txt'] = 'TytuÅ‚ formularza'; -$wb['template_txt'] = 'Szablon'; -$wb['navframe_txt'] = 'Ramka nawigacyjna'; -$wb['startpage_txt'] = 'Strona startowa'; -$wb['tab_width_txt'] = 'Szerokość zakÅ‚adki'; -$wb['save_txt'] = 'Zapisz'; -$wb['cancel_txt'] = 'Anuluj'; -$wb['header_txt'] = 'Parametry formularza'; -$wb['description_txt'] = 'Opis'; -$wb['action_txt'] = 'Akcja (skrypt)'; -$wb['db_table_txt'] = 'DB Tabela'; -$wb['db_table_idx_txt'] = 'DB Indeks tabeli'; -$wb['db_history_txt'] = 'Cofnij Log'; -$wb['tab_default_txt'] = 'DomyÅ›lna zakÅ‚adka'; -$wb['list_default_txt'] = 'DomyÅ›lna lista'; -$wb['auth_txt'] = 'DostÄ™p'; -$wb['auth_preset_userid_txt'] = 'ID Użytkownika'; -$wb['auth_preset_groupid_txt'] = 'ID Grupy'; -$wb['auth_preset_perm_user_txt'] = 'StaÅ‚y użytkownik'; -$wb['auth_preset_perm_group_txt'] = 'StaÅ‚a grupa'; -$wb['auth_preset_perm_other_txt'] = 'StaÅ‚a inna'; -?> diff --git a/interface/web/designer/lib/lang/pl_form_list.lng b/interface/web/designer/lib/lang/pl_form_list.lng deleted file mode 100644 index ac8572277c..0000000000 --- a/interface/web/designer/lib/lang/pl_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Tylny formularz'; -$wb['form_txt'] = 'Formularz'; -$wb['module_txt'] = 'ModuÅ‚'; -$wb['title_txt'] = 'TytuÅ‚'; -$wb['description_txt'] = 'Opis'; -?> diff --git a/interface/web/designer/lib/lang/pl_form_show.lng b/interface/web/designer/lib/lang/pl_form_show.lng deleted file mode 100644 index db62af16b9..0000000000 --- a/interface/web/designer/lib/lang/pl_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Edytor formularza'; -$wb['title_txt'] = 'TytuÅ‚ formularza'; -$wb['name_txt'] = 'Nazwa formularza'; -$wb['delete_txt'] = 'UsuÅ„'; -$wb['properties_txt'] = 'Preferencje'; -$wb['new_tab_txt'] = 'Nowa zakÅ‚adka'; -$wb['edit_txt'] = 'Edytuj'; -$wb['new_txt'] = 'Nowy'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'ModuÅ‚'; -$wb['form_txt'] = 'Formularz'; -$wb['description_txt'] = 'Opis'; -$wb['module_del_txt'] = 'Usunąć moduÅ‚ i wszystkie podkatalogi?'; -$wb['menu_del_txt'] = 'Usunąć menu i wszystkie jego elementy?'; -$wb['item_del_txt'] = 'UsunÄ…c element menu?'; -?> diff --git a/interface/web/designer/lib/lang/pl_module_edit.lng b/interface/web/designer/lib/lang/pl_module_edit.lng deleted file mode 100644 index b87d04b182..0000000000 --- a/interface/web/designer/lib/lang/pl_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Nazwa moduÅ‚u'; -$wb['title_txt'] = 'TytuÅ‚ moduÅ‚u'; -$wb['template_txt'] = 'Plik szablonu'; -$wb['navframe_txt'] = 'Ramka nawigacyjna'; -$wb['startpage_txt'] = 'Strona domyÅ›lna'; -$wb['tab_width_txt'] = 'Szerokość zakÅ‚adki'; -$wb['save_txt'] = 'Zapisz'; -$wb['cancel_txt'] = 'Anuluj'; -$wb['header_txt'] = 'Parametry moduÅ‚u'; -$wb['description_txt'] = ' -<b>Opis</b> -<br><br> -<b>Nazwa moduÅ‚u:</b> Nazwa katalogu z moduÅ‚em. Tylko liczby, litery (bez polskich) i podkreÅ›lenie sÄ… dozwolone.<br> -<b>TytuÅ‚ moduÅ‚u:</b> BÄ™dzie wyÅ›wietlaby w głównym menu nawigacyjnym.<br> -<b>Plik szablonu:</b> Plik szablonu moduÅ‚u. Aktualnie dostÄ™pne: module.tpl.htm oraz module_tree.tpl.htm. DomyÅ›lnie jest module.tpl.htm.<br> -<b>Ramka nawigacyjna:</b> JeÅ›li module_tree.tpl.htm wybrano jako plik szablonu, wpisz tutaj Å›cieżkÄ™ do pliku ze skryptem dla lewej ramki.<br> -<b>Strona domyÅ›lna:</b> Ta strona bÄ™dzie otwierana na poczÄ…tku podczas otwarcia moduÅ‚u.<br> -<b>Szerokość zakÅ‚adki:</b> Szerokość zakÅ‚adek w gÅ‚ownym menu nawigacyjnym. To pole jest domyÅ›lnie puste. Możesz podać wartość w pikselach (np.: 20) lub procentach (np.: 20%).<br> -<b>Podpowiedź:</b> Wszystkie Å›cieżki sÄ… wzglÄ™dne wedÅ‚ug strony www.. -'; -?> diff --git a/interface/web/designer/lib/lang/pl_module_list.lng b/interface/web/designer/lib/lang/pl_module_list.lng deleted file mode 100644 index 308d1c688b..0000000000 --- a/interface/web/designer/lib/lang/pl_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Nazwa moduÅ‚u'; -$wb['module_txt'] = 'ModuÅ‚'; -$wb['title_txt'] = 'TytuÅ‚'; -?> diff --git a/interface/web/designer/lib/lang/pl_module_nav_edit.lng b/interface/web/designer/lib/lang/pl_module_nav_edit.lng deleted file mode 100644 index fe8edabf66..0000000000 --- a/interface/web/designer/lib/lang/pl_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'TytuÅ‚'; -$wb['header_txt'] = 'Parametry nawigacyjne'; -$wb['save_txt'] = 'Zapisz'; -$wb['cancel_txt'] = 'UsuÅ„'; -?> diff --git a/interface/web/designer/lib/lang/pl_module_nav_item_edit.lng b/interface/web/designer/lib/lang/pl_module_nav_item_edit.lng deleted file mode 100644 index 779b3b4b3b..0000000000 --- a/interface/web/designer/lib/lang/pl_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'TytuÅ‚'; -$wb['target_txt'] = 'Cel'; -$wb['link_txt'] = 'Adres'; -$wb['header_txt'] = 'Parametry nawigacyjne'; -$wb['save_txt'] = 'Zapisz'; -$wb['cancel_txt'] = 'UsuÅ„'; -?> diff --git a/interface/web/designer/lib/lang/pl_module_show.lng b/interface/web/designer/lib/lang/pl_module_show.lng deleted file mode 100644 index 9b98c49482..0000000000 --- a/interface/web/designer/lib/lang/pl_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Edytor menu'; -$wb['title_txt'] = 'TytuÅ‚'; -$wb['name_txt'] = 'ModuÅ‚'; -$wb['delete_txt'] = 'UsuÅ„'; -$wb['properties_txt'] = 'Parametry'; -$wb['new_menu_txt'] = 'Nowe menu'; -$wb['edit_txt'] = 'Edytuj'; -$wb['new_txt'] = 'Nowy'; -$wb['up_txt'] = 'W górÄ™'; -$wb['down_txt'] = 'W dół'; -$wb['module_txt'] = 'ModuÅ‚'; -$wb['module_del_txt'] = 'Czy na pewno chcesz usunąć moduÅ‚ wraz z wszystkimi plikami i wpisami w bazie danych?'; -$wb['menu_del_txt'] = 'Czy na pewno chcesz usunąć menu z wszystkimi wpisami?'; -$wb['item_del_txt'] = 'Czy na pewno chcesz usunąć wpis w menu?'; -?> diff --git a/interface/web/designer/lib/lang/pt.lng b/interface/web/designer/lib/lang/pt.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/pt.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/pt_form_edit.lng b/interface/web/designer/lib/lang/pt_form_edit.lng deleted file mode 100644 index 75059e565a..0000000000 --- a/interface/web/designer/lib/lang/pt_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Nome do Formulário'; -$wb['title_txt'] = 'TÃtulo do Formulário'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'Frame de Navegação'; -$wb['startpage_txt'] = 'Página Inicial'; -$wb['tab_width_txt'] = 'Tamanho da aba'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -$wb['header_txt'] = 'Propriedades do Formulário'; -$wb['description_txt'] = 'Descrição'; -$wb['action_txt'] = 'Acção (script)'; -$wb['db_table_txt'] = 'Tabela do DB'; -$wb['db_table_idx_txt'] = 'IndÃce da tabela do DB'; -$wb['db_history_txt'] = 'Desfazer Log'; -$wb['tab_default_txt'] = 'Aba Padrão'; -$wb['list_default_txt'] = 'Exibir Padrão'; -$wb['auth_txt'] = 'Permissões'; -$wb['auth_preset_userid_txt'] = 'Utilizador (ID)'; -$wb['auth_preset_groupid_txt'] = 'Grupo(ID)'; -$wb['auth_preset_perm_user_txt'] = 'Perm. Utilizador '; -$wb['auth_preset_perm_group_txt'] = 'Perm. Grupo'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Outros'; -?> diff --git a/interface/web/designer/lib/lang/pt_form_list.lng b/interface/web/designer/lib/lang/pt_form_list.lng deleted file mode 100644 index b16ce554b0..0000000000 --- a/interface/web/designer/lib/lang/pt_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Formulário de Backend'; -$wb['form_txt'] = 'Formulário'; -$wb['module_txt'] = 'Módulo'; -$wb['title_txt'] = 'TÃtulo'; -$wb['description_txt'] = 'Descrição'; -?> diff --git a/interface/web/designer/lib/lang/pt_form_show.lng b/interface/web/designer/lib/lang/pt_form_show.lng deleted file mode 100644 index e9b385fbb6..0000000000 --- a/interface/web/designer/lib/lang/pt_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor de Formulários'; -$wb['title_txt'] = 'TÃtulo do Formulário'; -$wb['name_txt'] = 'Nome do Formulário'; -$wb['delete_txt'] = 'Remover'; -$wb['properties_txt'] = 'Propriedades'; -$wb['new_tab_txt'] = 'Nova Aba'; -$wb['edit_txt'] = 'Editar'; -$wb['new_txt'] = 'Novo'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Módulo'; -$wb['form_txt'] = 'Formulário'; -$wb['description_txt'] = 'Descrição'; -$wb['module_del_txt'] = 'Remover o módulo e todas as suas sub-pastas?'; -$wb['menu_del_txt'] = 'Remover o menu e todos os seus itens?'; -$wb['item_del_txt'] = 'Remover o item de menu?'; -?> diff --git a/interface/web/designer/lib/lang/pt_module_edit.lng b/interface/web/designer/lib/lang/pt_module_edit.lng deleted file mode 100644 index e52cf384e8..0000000000 --- a/interface/web/designer/lib/lang/pt_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Nome do Módulo'; -$wb['title_txt'] = 'TÃtulo do Módulo'; -$wb['template_txt'] = 'Ficheiro de Template'; -$wb['navframe_txt'] = 'Frame de Navegação'; -$wb['startpage_txt'] = 'Página Padrão'; -$wb['tab_width_txt'] = 'Tamanho da Aba'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -$wb['header_txt'] = 'Propriedades do Módulo'; -$wb['description_txt'] = ' -<b>Descrição</b> -<br><br> -<b>Nome do Módulo:</b> Nome da pasta do módulo. Apenas números, letras e underscores são permitidos.<br> -<b>TÃtulo do Módulo:</b> Será exibido em caixa alta no menu de navegação.<br> -<b>Ficheiro de Template:</b> Ficheiros de Template do Módulo DisponÃvel: modulo.tpl.htm e modulo_tree.tpl.htm. O padrão é modulo.tpl.htm.<br> -<b>Frame de Navegação:</b> Se modulo_tree.tpl.htm foi seleccionado como ficheiro de template, insira aqui a pasta do script para o frame a esquerda.<br> -<b>Página Padrão:</b> Esta página será exibida quando o módulo for aberto.<br> -<b>Tamanho da Aba:</b> Tamanho das abas na navegação principal. Este campo fica em branco por padrão. Pode fornecer valores absolutos em pixels (ex.: 20) ou valores relativos (ex.: 20%).<br> -<b>Dica:</b> Todos as pastas são relativas à pasta web. -'; -?> diff --git a/interface/web/designer/lib/lang/pt_module_list.lng b/interface/web/designer/lib/lang/pt_module_list.lng deleted file mode 100644 index 822263a4ad..0000000000 --- a/interface/web/designer/lib/lang/pt_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Módulo do Backend'; -$wb['module_txt'] = 'Módulo'; -$wb['title_txt'] = 'TÃtulo'; -?> diff --git a/interface/web/designer/lib/lang/pt_module_nav_edit.lng b/interface/web/designer/lib/lang/pt_module_nav_edit.lng deleted file mode 100644 index 761fe0a63e..0000000000 --- a/interface/web/designer/lib/lang/pt_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'TÃtulo'; -$wb['header_txt'] = 'Propriedades de Navegação'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -?> diff --git a/interface/web/designer/lib/lang/pt_module_nav_item_edit.lng b/interface/web/designer/lib/lang/pt_module_nav_item_edit.lng deleted file mode 100644 index 745a12341a..0000000000 --- a/interface/web/designer/lib/lang/pt_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'TÃtulo'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Propriedades de Navegação'; -$wb['save_txt'] = 'Guardar'; -$wb['cancel_txt'] = 'Cancelar'; -?> diff --git a/interface/web/designer/lib/lang/pt_module_show.lng b/interface/web/designer/lib/lang/pt_module_show.lng deleted file mode 100644 index 222fb51e34..0000000000 --- a/interface/web/designer/lib/lang/pt_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Editor de Menu'; -$wb['title_txt'] = 'TÃtulo'; -$wb['name_txt'] = 'Módulo'; -$wb['delete_txt'] = 'Remover'; -$wb['properties_txt'] = 'Propriedades'; -$wb['new_menu_txt'] = 'Novo Menu'; -$wb['edit_txt'] = 'Editar'; -$wb['new_txt'] = 'Novo'; -$wb['up_txt'] = 'Subir'; -$wb['down_txt'] = 'Descer'; -$wb['module_txt'] = 'Módulo'; -$wb['module_del_txt'] = 'Deseja eliminar este módulo e todos os ficheiros contidos na pasta?'; -$wb['menu_del_txt'] = 'Deseja apagar este menu e todos seus elementos?'; -$wb['item_del_txt'] = 'Deseja apagar este elemento do menu?'; -?> diff --git a/interface/web/designer/lib/lang/ro.lng b/interface/web/designer/lib/lang/ro.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/ro.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/ro_form_edit.lng b/interface/web/designer/lib/lang/ro_form_edit.lng deleted file mode 100644 index a99b975f03..0000000000 --- a/interface/web/designer/lib/lang/ro_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formname'; -$wb['title_txt'] = 'Formutitle'; -$wb['template_txt'] = 'Template'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Startpagina'; -$wb['tab_width_txt'] = 'Tab latime'; -$wb['save_txt'] = 'Salveaza'; -$wb['cancel_txt'] = 'Cancel'; -$wb['header_txt'] = 'Form proprietati'; -$wb['description_txt'] = 'Descriere'; -$wb['action_txt'] = 'Actiune (script)'; -$wb['db_table_txt'] = 'DB Table'; -$wb['db_table_idx_txt'] = 'DB Table Index'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Default Tab'; -$wb['list_default_txt'] = 'Default Liste'; -$wb['auth_txt'] = 'Permisiuni'; -$wb['auth_preset_userid_txt'] = 'UserID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Perm. User'; -$wb['auth_preset_perm_group_txt'] = 'Perm. Group'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Altele'; -?> diff --git a/interface/web/designer/lib/lang/ro_form_list.lng b/interface/web/designer/lib/lang/ro_form_list.lng deleted file mode 100644 index 49b9d5eaf0..0000000000 --- a/interface/web/designer/lib/lang/ro_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Form'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Titlu'; -$wb['description_txt'] = 'Descriere'; -?> diff --git a/interface/web/designer/lib/lang/ro_form_show.lng b/interface/web/designer/lib/lang/ro_form_show.lng deleted file mode 100644 index 9cc5e71d92..0000000000 --- a/interface/web/designer/lib/lang/ro_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'editor de formular'; -$wb['title_txt'] = 'Titlu formular'; -$wb['name_txt'] = 'nume formular'; -$wb['delete_txt'] = 'sterge'; -$wb['properties_txt'] = 'Proprietati'; -$wb['new_tab_txt'] = 'Un nou Tab '; -$wb['edit_txt'] = 'Editeaza'; -$wb['new_txt'] = 'Nou'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Module'; -$wb['form_txt'] = 'Formular'; -$wb['description_txt'] = 'Descriere'; -$wb['module_del_txt'] = 'Sterge module si toate subdirectoarele ?'; -$wb['menu_del_txt'] = 'Sterge menu si obiectele din menu ?'; -$wb['item_del_txt'] = 'sterge obiectele din menu ?'; -?> diff --git a/interface/web/designer/lib/lang/ro_module_edit.lng b/interface/web/designer/lib/lang/ro_module_edit.lng deleted file mode 100644 index 327550f203..0000000000 --- a/interface/web/designer/lib/lang/ro_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulename'; -$wb['title_txt'] = 'Moduletitle'; -$wb['template_txt'] = 'Template file'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Default page'; -$wb['tab_width_txt'] = 'Tab width'; -$wb['save_txt'] = 'Salveaza'; -$wb['cancel_txt'] = 'Anuleaza'; -$wb['header_txt'] = 'Module proprietati'; -$wb['description_txt'] = '<b>Description</b> <br><br> <b>Modulename:</b> Name of the module directory. Only numbers, chars and underscore allowed.<br> <b>Moduletitle:</b> Will be shown in the (upper) main navigation.<br> <b>Template file:</b> Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.<br> <b>NaviFrame:</b> If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.<br> <b>Default page:</b> These page will be shown when the module is opened.<br> <b>Tab width:</b> Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).<br> <b>Hint:</b> All paths are relative to the directory '; -?> diff --git a/interface/web/designer/lib/lang/ro_module_list.lng b/interface/web/designer/lib/lang/ro_module_list.lng deleted file mode 100644 index c53b556a4f..0000000000 --- a/interface/web/designer/lib/lang/ro_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Module'; -$wb['module_txt'] = 'Module'; -$wb['title_txt'] = 'Titlu'; -?> diff --git a/interface/web/designer/lib/lang/ro_module_nav_edit.lng b/interface/web/designer/lib/lang/ro_module_nav_edit.lng deleted file mode 100644 index ee6bf54268..0000000000 --- a/interface/web/designer/lib/lang/ro_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Titlu'; -$wb['header_txt'] = 'Proprietati Navi '; -$wb['save_txt'] = 'Salveaza'; -$wb['cancel_txt'] = 'Anuleaza'; -?> diff --git a/interface/web/designer/lib/lang/ro_module_nav_item_edit.lng b/interface/web/designer/lib/lang/ro_module_nav_item_edit.lng deleted file mode 100644 index 9b7d60df91..0000000000 --- a/interface/web/designer/lib/lang/ro_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Titlu'; -$wb['target_txt'] = 'Target'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi Proprietati'; -$wb['save_txt'] = 'Salveaza'; -$wb['cancel_txt'] = 'Anuleaza'; -?> diff --git a/interface/web/designer/lib/lang/ro_module_show.lng b/interface/web/designer/lib/lang/ro_module_show.lng deleted file mode 100644 index 2fb748c3d4..0000000000 --- a/interface/web/designer/lib/lang/ro_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menu editor'; -$wb['title_txt'] = 'Titlu'; -$wb['name_txt'] = 'Module'; -$wb['delete_txt'] = 'Sterge'; -$wb['properties_txt'] = 'Proprietati'; -$wb['new_menu_txt'] = 'Menu nou'; -$wb['edit_txt'] = 'Editare'; -$wb['new_txt'] = 'Nou'; -$wb['up_txt'] = 'SUS'; -$wb['down_txt'] = 'JOS'; -$wb['module_txt'] = 'Module'; -$wb['module_del_txt'] = 'Doriti sa stergeti modul ?'; -$wb['menu_del_txt'] = 'Doriti sa stergeti menu cu toate item-urile ?'; -$wb['item_del_txt'] = 'Doriti sa stergeti item-ul din menu ?'; -?> diff --git a/interface/web/designer/lib/lang/ru.lng b/interface/web/designer/lib/lang/ru.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/ru.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/ru_form_edit.lng b/interface/web/designer/lib/lang/ru_form_edit.lng deleted file mode 100644 index 36c0bf46cf..0000000000 --- a/interface/web/designer/lib/lang/ru_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Ðазвание формы'; -$wb['title_txt'] = 'Заголовок формы'; -$wb['template_txt'] = 'Шаблон'; -$wb['navframe_txt'] = 'ÐавигациÑ'; -$wb['startpage_txt'] = 'Ð¡Ñ‚Ð°Ñ€Ñ‚Ð¾Ð²Ð°Ñ Ñтраница'; -$wb['tab_width_txt'] = 'Ширина таба'; -$wb['save_txt'] = 'Сохранить'; -$wb['cancel_txt'] = 'Закончить'; -$wb['header_txt'] = 'СвойÑтва формы'; -$wb['description_txt'] = 'ОпиÑание'; -$wb['action_txt'] = 'ДейÑтвие (Ñкрипт)'; -$wb['db_table_txt'] = 'Таблица БД'; -$wb['db_table_idx_txt'] = 'Ð˜Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ БД'; -$wb['db_history_txt'] = 'Undo-лог'; -$wb['tab_default_txt'] = 'Таб по-умолчанию'; -$wb['list_default_txt'] = 'СпиÑок по-умолчанию'; -$wb['auth_txt'] = 'Права'; -$wb['auth_preset_userid_txt'] = 'ПользовательID'; -$wb['auth_preset_groupid_txt'] = 'GroupID'; -$wb['auth_preset_perm_user_txt'] = 'Perm. User'; -$wb['auth_preset_perm_group_txt'] = 'Perm. Group'; -$wb['auth_preset_perm_other_txt'] = 'Perm. Other'; -?> diff --git a/interface/web/designer/lib/lang/ru_form_list.lng b/interface/web/designer/lib/lang/ru_form_list.lng deleted file mode 100644 index 3db8db8d2f..0000000000 --- a/interface/web/designer/lib/lang/ru_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend форма'; -$wb['form_txt'] = 'Форма'; -$wb['module_txt'] = 'Модуль'; -$wb['title_txt'] = 'Заголовок'; -$wb['description_txt'] = 'ОпиÑание'; -?> diff --git a/interface/web/designer/lib/lang/ru_form_show.lng b/interface/web/designer/lib/lang/ru_form_show.lng deleted file mode 100644 index 8b0132bbaa..0000000000 --- a/interface/web/designer/lib/lang/ru_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Редактор форм'; -$wb['title_txt'] = 'Заголовок форм'; -$wb['name_txt'] = 'Ð˜Ð¼Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'СвойÑтва'; -$wb['new_tab_txt'] = 'Ðовый таб'; -$wb['edit_txt'] = 'Изменить'; -$wb['new_txt'] = 'Ðовый'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Модуль'; -$wb['form_txt'] = 'Форма'; -$wb['description_txt'] = 'ОпиÑание'; -$wb['module_del_txt'] = 'Удалить модули и подкаталоги?'; -$wb['menu_del_txt'] = 'Удалить меню и подменю?'; -$wb['item_del_txt'] = 'Удалить menuitem?'; -?> diff --git a/interface/web/designer/lib/lang/ru_module_edit.lng b/interface/web/designer/lib/lang/ru_module_edit.lng deleted file mode 100644 index b7c2aaf0f4..0000000000 --- a/interface/web/designer/lib/lang/ru_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Ðазвание модулÑ'; -$wb['title_txt'] = 'Заголовок модулÑ'; -$wb['template_txt'] = 'Файл шаблона'; -$wb['navframe_txt'] = 'Ðавигационный фрейм'; -$wb['startpage_txt'] = 'Страница по-умолчанию'; -$wb['tab_width_txt'] = 'Ширина таба'; -$wb['save_txt'] = 'Сохранить'; -$wb['cancel_txt'] = 'Закончить'; -$wb['header_txt'] = 'СвойÑтва модулÑ'; -$wb['description_txt'] = ' -<b>ОпиÑание</b> -<br><br> -<b>Ð˜Ð¼Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ:</b> Ð˜Ð¼Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸ модулÑ. ДопуÑтимо иÑпользовать латинÑкие Ñимволы, чиÑла и подчеркивание.<br> -<b>Заголовок модулÑ:</b> Будет отображатьÑÑ Ð²Ð²ÐµÑ€Ñ…Ñƒ радом Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸ÐµÐ¹.<br> -<b>Файл шаблона:</b> Файл шаблона Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð´Ð¾Ñтупны: module.tpl.htm и module_tree.tpl.htm. По-умолчанию Ñтоит module.tpl.htm.<br> -<b>Ðавигационный фрейм:</b> ЕÑли module_tree.tpl.htm выбран как шаблон, введите здеÑÑŒ путь до Ñкрипта Ð´Ð»Ñ Ð»ÐµÐ²Ð¾Ð³Ð¾ фрейма.<br> -<b>Страница по-умолчанию:</b> Ðта Ñтраница будет показана, когда открываетÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ.<br> -<b>Ширина таба:</b> Ширина таба в главной навигации. По-умолчанию поле пуÑтое. Ð’Ñ‹ можете ввеÑти значение в пикÑелÑÑ… или в процентах.<br> -<b>ПодÑказка:</b> Ð’Ñе пути в директории web отноÑительные. -'; -?> diff --git a/interface/web/designer/lib/lang/ru_module_list.lng b/interface/web/designer/lib/lang/ru_module_list.lng deleted file mode 100644 index 2401318dd5..0000000000 --- a/interface/web/designer/lib/lang/ru_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend модуль'; -$wb['module_txt'] = 'Модуль'; -$wb['title_txt'] = 'Заголовок'; -?> diff --git a/interface/web/designer/lib/lang/ru_module_nav_edit.lng b/interface/web/designer/lib/lang/ru_module_nav_edit.lng deleted file mode 100644 index 6fb4cc78fe..0000000000 --- a/interface/web/designer/lib/lang/ru_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Заголовок'; -$wb['header_txt'] = 'СвойÑтва навигации'; -$wb['save_txt'] = 'Сохранить'; -$wb['cancel_txt'] = 'Отмена'; -?> diff --git a/interface/web/designer/lib/lang/ru_module_nav_item_edit.lng b/interface/web/designer/lib/lang/ru_module_nav_item_edit.lng deleted file mode 100644 index ab458ee5d4..0000000000 --- a/interface/web/designer/lib/lang/ru_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Заголовок'; -$wb['target_txt'] = 'Цель'; -$wb['link_txt'] = 'Линк'; -$wb['header_txt'] = 'Navi ÑвойÑтва'; -$wb['save_txt'] = 'Сохранить'; -$wb['cancel_txt'] = 'Закончить'; -?> diff --git a/interface/web/designer/lib/lang/ru_module_show.lng b/interface/web/designer/lib/lang/ru_module_show.lng deleted file mode 100644 index 25dc983dc7..0000000000 --- a/interface/web/designer/lib/lang/ru_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Редактор меню'; -$wb['title_txt'] = 'Заголовок'; -$wb['name_txt'] = 'Модуль'; -$wb['delete_txt'] = 'Удалить'; -$wb['properties_txt'] = 'СвойÑтва'; -$wb['new_menu_txt'] = 'Ðовое меню'; -$wb['edit_txt'] = 'Изменить'; -$wb['new_txt'] = 'Ðовый'; -$wb['up_txt'] = 'Вверх'; -$wb['down_txt'] = 'Вниз'; -$wb['module_txt'] = 'Модуль'; -$wb['module_del_txt'] = 'Хотите удалить модуль и вÑе, что отноÑитÑÑ Ðº нему?'; -$wb['menu_del_txt'] = 'Хотите удалить меню вмеÑте Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð°Ð¼Ð¸?'; -$wb['item_del_txt'] = 'Хотите удалить пункт меню?'; -?> diff --git a/interface/web/designer/lib/lang/se.lng b/interface/web/designer/lib/lang/se.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/se.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/se_form_edit.lng b/interface/web/designer/lib/lang/se_form_edit.lng deleted file mode 100644 index 1a3a831ff0..0000000000 --- a/interface/web/designer/lib/lang/se_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Formulärnamn'; -$wb['title_txt'] = 'Formulärtitel'; -$wb['template_txt'] = 'Mall'; -$wb['navframe_txt'] = 'Nav.ram'; -$wb['startpage_txt'] = 'Startsida'; -$wb['tab_width_txt'] = 'Flik bredd'; -$wb['save_txt'] = 'Spara'; -$wb['cancel_txt'] = 'Avbryt'; -$wb['header_txt'] = 'Form inställningar'; -$wb['description_txt'] = 'Beskrivning'; -$wb['action_txt'] = 'Action (skript)'; -$wb['db_table_txt'] = 'DB Tabell'; -$wb['db_table_idx_txt'] = 'DB Tabell Index'; -$wb['db_history_txt'] = 'Ã…ngra Logg'; -$wb['tab_default_txt'] = 'Standard Flik'; -$wb['list_default_txt'] = 'Standard Lista'; -$wb['auth_txt'] = 'Behörighet'; -$wb['auth_preset_userid_txt'] = 'AnvändarID'; -$wb['auth_preset_groupid_txt'] = 'GruppID'; -$wb['auth_preset_perm_user_txt'] = 'Beh. Användare'; -$wb['auth_preset_perm_group_txt'] = 'Beh. Grupp'; -$wb['auth_preset_perm_other_txt'] = 'Beh. Andra'; -?> diff --git a/interface/web/designer/lib/lang/se_form_list.lng b/interface/web/designer/lib/lang/se_form_list.lng deleted file mode 100644 index 10f41870b9..0000000000 --- a/interface/web/designer/lib/lang/se_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Huvudformulär'; -$wb['form_txt'] = 'Formulär'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Titel'; -$wb['description_txt'] = 'Beskrivning'; -?> diff --git a/interface/web/designer/lib/lang/se_form_show.lng b/interface/web/designer/lib/lang/se_form_show.lng deleted file mode 100644 index 3e21d62ef4..0000000000 --- a/interface/web/designer/lib/lang/se_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formulärredigerare'; -$wb['title_txt'] = 'Formulärtitel'; -$wb['name_txt'] = 'Formulärnamn'; -$wb['delete_txt'] = 'X'; -$wb['properties_txt'] = 'Inställningar'; -$wb['new_tab_txt'] = 'Ny flik'; -$wb['edit_txt'] = 'Redigera'; -$wb['new_txt'] = 'Ny'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Modul'; -$wb['form_txt'] = 'Formulär'; -$wb['description_txt'] = 'Beskrivning'; -$wb['module_del_txt'] = 'Ta bort modulen och alla undermappar?'; -$wb['menu_del_txt'] = 'Ta bort meny och allt menyinnehÃ¥ll?'; -$wb['item_del_txt'] = 'Ta bort menyinnehÃ¥ll?'; -?> diff --git a/interface/web/designer/lib/lang/se_module_edit.lng b/interface/web/designer/lib/lang/se_module_edit.lng deleted file mode 100644 index ba828ebbfc..0000000000 --- a/interface/web/designer/lib/lang/se_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Modulnamn'; -$wb['title_txt'] = 'Modultitel'; -$wb['template_txt'] = 'Mallfil'; -$wb['navframe_txt'] = 'Nav.Ram'; -$wb['startpage_txt'] = 'Standardsida'; -$wb['tab_width_txt'] = 'Flikbredd'; -$wb['save_txt'] = 'Spara'; -$wb['cancel_txt'] = 'Avbryt'; -$wb['header_txt'] = 'Modulinställningar'; -$wb['description_txt'] = '<b>Description</b><br><br><b>Modulename:</b> Namn pÃ¥ modul mappen. Endast siffror, bokstäver och understreck är tillÃ¥tna.<br><b>Moduletitle:</b> Kommer att visas i (övre) huvud navigerigsramen.<br><b>Template file:</b> Mall fil för modulen. Just nu finns: module.tpl.htm och module_tree.tpl.htm. Standard är module.tpl.htm.<br><b>NaviFrame:</b> Om module module_tree.tpl.htm väljs som mall file, skriv här sökvägen till skriptfilen för den vänstra ramen.<br><b>Default page:</b> Dessa sidor kommer att visas när modulen öppnas.<br><b>Tab width:</b> Bredd pÃ¥ Flikarna i huvud navigerings ramen. Detta fält är tomt som standard. Du kan skriva in ett absolutvärde i pixlar (ex. 20) eller relativt värde (ex. 20%).<br><b>Hint:</b> Alla sökvägar är relativa till mappen web.'; -?> diff --git a/interface/web/designer/lib/lang/se_module_list.lng b/interface/web/designer/lib/lang/se_module_list.lng deleted file mode 100644 index 47ff228608..0000000000 --- a/interface/web/designer/lib/lang/se_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Huvudmodul'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Titel'; -?> diff --git a/interface/web/designer/lib/lang/se_module_nav_edit.lng b/interface/web/designer/lib/lang/se_module_nav_edit.lng deleted file mode 100644 index 468f8d8ebe..0000000000 --- a/interface/web/designer/lib/lang/se_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Titel'; -$wb['header_txt'] = 'Nav-egenskaper'; -$wb['save_txt'] = 'Spara'; -$wb['cancel_txt'] = 'Avbryt'; -?> diff --git a/interface/web/designer/lib/lang/se_module_nav_item_edit.lng b/interface/web/designer/lib/lang/se_module_nav_item_edit.lng deleted file mode 100644 index f5df090578..0000000000 --- a/interface/web/designer/lib/lang/se_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Titel'; -$wb['target_txt'] = 'MÃ¥l'; -$wb['link_txt'] = 'Länk'; -$wb['header_txt'] = 'Nav. egenskaper'; -$wb['save_txt'] = 'Spara'; -$wb['cancel_txt'] = 'Avbryt'; -?> diff --git a/interface/web/designer/lib/lang/se_module_show.lng b/interface/web/designer/lib/lang/se_module_show.lng deleted file mode 100644 index 391947cba0..0000000000 --- a/interface/web/designer/lib/lang/se_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menyredigerare'; -$wb['title_txt'] = 'Titel'; -$wb['name_txt'] = 'Modul'; -$wb['delete_txt'] = 'Ta bort'; -$wb['properties_txt'] = 'Egenskaper'; -$wb['new_menu_txt'] = 'Ny meny'; -$wb['edit_txt'] = 'Redigera'; -$wb['new_txt'] = 'Ny'; -$wb['up_txt'] = 'Upp'; -$wb['down_txt'] = 'Ner'; -$wb['module_txt'] = 'Modul'; -$wb['module_del_txt'] = 'Ta bort modulen och alla undermappar?'; -$wb['menu_del_txt'] = 'Ta bort meny och allt menyinnehÃ¥ll?'; -$wb['item_del_txt'] = 'Ta bort menyinnehÃ¥ll?'; -?> diff --git a/interface/web/designer/lib/lang/sk.lng b/interface/web/designer/lib/lang/sk.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/sk.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/sk_form_edit.lng b/interface/web/designer/lib/lang/sk_form_edit.lng deleted file mode 100644 index a659c14f9a..0000000000 --- a/interface/web/designer/lib/lang/sk_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Názov formulára'; -$wb['title_txt'] = 'Názov formulára'; -$wb['template_txt'] = 'Å ablóny'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Úvodná stránka'; -$wb['tab_width_txt'] = 'Tab Å¡Ãrka'; -$wb['save_txt'] = 'UložiÅ¥'; -$wb['cancel_txt'] = 'ZruÅ¡iÅ¥'; -$wb['header_txt'] = 'Vlastnosti formulára'; -$wb['description_txt'] = 'Popis'; -$wb['action_txt'] = 'Akcie (skript)'; -$wb['db_table_txt'] = 'DB Tabulky'; -$wb['db_table_idx_txt'] = 'DB Tabulky Index'; -$wb['db_history_txt'] = 'Undo Log'; -$wb['tab_default_txt'] = 'Predvolený Tab'; -$wb['list_default_txt'] = 'Predvolený List'; -$wb['auth_txt'] = 'Práva'; -$wb['auth_preset_userid_txt'] = 'uživateľ ID'; -$wb['auth_preset_groupid_txt'] = 'skupina ID'; -$wb['auth_preset_perm_user_txt'] = 'Práva uživateľa'; -$wb['auth_preset_perm_group_txt'] = 'Práva skupina'; -$wb['auth_preset_perm_other_txt'] = 'Práva ostatný'; -?> diff --git a/interface/web/designer/lib/lang/sk_form_list.lng b/interface/web/designer/lib/lang/sk_form_list.lng deleted file mode 100644 index 262de0b8cc..0000000000 --- a/interface/web/designer/lib/lang/sk_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Backend Formulár'; -$wb['form_txt'] = 'Formulár'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Nadpis'; -$wb['description_txt'] = 'Popis'; -?> diff --git a/interface/web/designer/lib/lang/sk_form_show.lng b/interface/web/designer/lib/lang/sk_form_show.lng deleted file mode 100644 index 4b8645137b..0000000000 --- a/interface/web/designer/lib/lang/sk_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Formulár editor'; -$wb['title_txt'] = 'Formulár stránok'; -$wb['name_txt'] = 'Názov formulára'; -$wb['delete_txt'] = 'OdstrániÅ¥'; -$wb['properties_txt'] = 'Vlastnosti'; -$wb['new_tab_txt'] = 'Tab nové'; -$wb['edit_txt'] = 'UpraviÅ¥'; -$wb['new_txt'] = 'Nové'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Modul'; -$wb['form_txt'] = 'Formulár'; -$wb['description_txt'] = 'Popis'; -$wb['module_del_txt'] = 'OdstrániÅ¥ modul a vo vÅ¡etky podadresáre?'; -$wb['menu_del_txt'] = 'ZmazaÅ¥ z ponuky položky menu?'; -$wb['item_del_txt'] = 'ZmazaÅ¥ položky z menu?'; -?> diff --git a/interface/web/designer/lib/lang/sk_module_edit.lng b/interface/web/designer/lib/lang/sk_module_edit.lng deleted file mode 100644 index 5daf4ff51b..0000000000 --- a/interface/web/designer/lib/lang/sk_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -<?php -$wb['name_txt'] = 'Meno modulu'; -$wb['title_txt'] = 'Názov modulu'; -$wb['template_txt'] = 'Å ablóna súbor'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Výchozia stránka'; -$wb['tab_width_txt'] = 'Tab Å¡Ãrka'; -$wb['save_txt'] = 'UložiÅ¥'; -$wb['cancel_txt'] = 'ZruÅ¡iÅ¥'; -$wb['header_txt'] = 'Modul vlastnosti'; -$wb['description_txt'] = '<b> Popis </ b> <br> <br> <b> Modulename: </ b> Názov modulu adresár. Len ÄÃsla, znaky a podtržÃtko povolené. <br> <b> Moduletitle: </ b> sa objavà v (hornej) navigáciu. <br> <b> Å ablóna súboru: </ b> Å ablóna súboru modulu. V súÄasnej dobe sú k dispozÃcii'; -?> diff --git a/interface/web/designer/lib/lang/sk_module_list.lng b/interface/web/designer/lib/lang/sk_module_list.lng deleted file mode 100644 index 70eb44d0ab..0000000000 --- a/interface/web/designer/lib/lang/sk_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Modul backend'; -$wb['module_txt'] = 'Modul'; -$wb['title_txt'] = 'Názov'; -?> diff --git a/interface/web/designer/lib/lang/sk_module_nav_edit.lng b/interface/web/designer/lib/lang/sk_module_nav_edit.lng deleted file mode 100644 index 7bfa900a54..0000000000 --- a/interface/web/designer/lib/lang/sk_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'Názov'; -$wb['header_txt'] = 'Navi vlastnosti'; -$wb['save_txt'] = 'UložiÅ¥'; -$wb['cancel_txt'] = 'ZruÅ¡iÅ¥'; -?> diff --git a/interface/web/designer/lib/lang/sk_module_nav_item_edit.lng b/interface/web/designer/lib/lang/sk_module_nav_item_edit.lng deleted file mode 100644 index 8fcfddd8ea..0000000000 --- a/interface/web/designer/lib/lang/sk_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'Titulok'; -$wb['target_txt'] = 'Cieľ'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi vlastnosti'; -$wb['save_txt'] = 'UložiÅ¥'; -$wb['cancel_txt'] = 'ZruÅ¡iÅ¥'; -?> diff --git a/interface/web/designer/lib/lang/sk_module_show.lng b/interface/web/designer/lib/lang/sk_module_show.lng deleted file mode 100644 index e3f19168e8..0000000000 --- a/interface/web/designer/lib/lang/sk_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menu editor'; -$wb['title_txt'] = 'Názov'; -$wb['name_txt'] = 'Modul'; -$wb['delete_txt'] = 'ZmazaÅ¥'; -$wb['properties_txt'] = 'Vlastnosti'; -$wb['new_menu_txt'] = 'Menu nové'; -$wb['edit_txt'] = 'UpraviÅ¥'; -$wb['new_txt'] = 'Nový'; -$wb['up_txt'] = 'Hore'; -$wb['down_txt'] = 'Dolu'; -$wb['module_txt'] = 'Modul'; -$wb['module_del_txt'] = 'Chcete zmazat modul?'; -$wb['menu_del_txt'] = 'Chcete zmazat menu?'; -$wb['item_del_txt'] = 'Chcete zmazat položku?'; -?> diff --git a/interface/web/designer/lib/lang/tr.lng b/interface/web/designer/lib/lang/tr.lng deleted file mode 100644 index acb6c3546c..0000000000 --- a/interface/web/designer/lib/lang/tr.lng +++ /dev/null @@ -1,2 +0,0 @@ -<?php -?> diff --git a/interface/web/designer/lib/lang/tr_form_edit.lng b/interface/web/designer/lib/lang/tr_form_edit.lng deleted file mode 100644 index 8288ce84b8..0000000000 --- a/interface/web/designer/lib/lang/tr_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ -<?php -$wb['name_txt'] = 'Form adı'; -$wb['title_txt'] = 'Form baÅŸlığı'; -$wb['template_txt'] = 'Åžablon'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Ä°lk sayfa'; -$wb['tab_width_txt'] = 'Sekme geniÅŸliÄŸi'; -$wb['save_txt'] = 'Kaydet'; -$wb['cancel_txt'] = 'Ä°ptal'; -$wb['header_txt'] = 'Form Özellikleri'; -$wb['description_txt'] = 'Açıklama'; -$wb['action_txt'] = 'Ä°ÅŸlem (betik)'; -$wb['db_table_txt'] = 'DB Tablo'; -$wb['db_table_idx_txt'] = 'DB Tablo Indeks'; -$wb['db_history_txt'] = 'Logu Geri al'; -$wb['tab_default_txt'] = 'Varsayılan Sekme'; -$wb['list_default_txt'] = 'Varsayılan Liste'; -$wb['auth_txt'] = 'Yetkiler'; -$wb['auth_preset_userid_txt'] = 'KullanıcıID'; -$wb['auth_preset_groupid_txt'] = 'GrupID'; -$wb['auth_preset_perm_user_txt'] = 'Yetkili Kullanıcı'; -$wb['auth_preset_perm_group_txt'] = 'Yetkili Grup'; -$wb['auth_preset_perm_other_txt'] = 'DiÄŸer Yetkililer'; -?> diff --git a/interface/web/designer/lib/lang/tr_form_list.lng b/interface/web/designer/lib/lang/tr_form_list.lng deleted file mode 100644 index 54aa1f4534..0000000000 --- a/interface/web/designer/lib/lang/tr_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Arkaplan Formu'; -$wb['form_txt'] = 'Form'; -$wb['module_txt'] = 'Modül'; -$wb['title_txt'] = 'BaÅŸlık'; -$wb['description_txt'] = 'Açıklama'; -?> diff --git a/interface/web/designer/lib/lang/tr_form_show.lng b/interface/web/designer/lib/lang/tr_form_show.lng deleted file mode 100644 index 8efa1df5a5..0000000000 --- a/interface/web/designer/lib/lang/tr_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ -<?php -$wb['header_txt'] = 'Form editörü'; -$wb['title_txt'] = 'Form baÅŸlığı'; -$wb['name_txt'] = 'Form ismi'; -$wb['delete_txt'] = 'Sil'; -$wb['properties_txt'] = 'Özellikler'; -$wb['new_tab_txt'] = 'Yeni sekme'; -$wb['edit_txt'] = 'Düzenle'; -$wb['new_txt'] = 'Yeni'; -$wb['up_txt'] = '^'; -$wb['down_txt'] = 'v'; -$wb['module_txt'] = 'Modül'; -$wb['form_txt'] = 'Form'; -$wb['description_txt'] = 'Açıklama'; -$wb['module_del_txt'] = 'Bu modülü ve tüm alt dizinlerini silmek istiyor musunuz?'; -$wb['menu_del_txt'] = 'Bu menüyü tüm alt menüleriyle birlikte silmek istiyor musunuz?'; -$wb['item_del_txt'] = 'Bu menü elemanını silmek istiyor musunuz?'; -?> diff --git a/interface/web/designer/lib/lang/tr_module_edit.lng b/interface/web/designer/lib/lang/tr_module_edit.lng deleted file mode 100644 index 92bf93d2ca..0000000000 --- a/interface/web/designer/lib/lang/tr_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -<?php -$wb['name_txt'] = 'Modül adı'; -$wb['title_txt'] = 'Modül baÅŸlığı'; -$wb['template_txt'] = 'Åžablon dosyası'; -$wb['navframe_txt'] = 'NaviFrame'; -$wb['startpage_txt'] = 'Varsayılan sayfa'; -$wb['tab_width_txt'] = 'Sekme geniÅŸliÄŸi'; -$wb['save_txt'] = 'Kaydet'; -$wb['cancel_txt'] = 'Ä°ptal'; -$wb['header_txt'] = 'Modül özellikleri'; -$wb['description_txt'] = ' -<b>Açıklama</b> -<br><br> -<b>Modül adı:</b> Modül klasörünün adı. Sadece sayı, rakam ve alttan çizgi kullanabilirsiniz.<br> -<b>Modül baÅŸlığı:</b> Ãœst ana menüde gösterilecek olan isim.<br> -<b>Åžablon dosyası:</b> Åžablon dosyası veya modülü. Åžu anda geçerli olan dosyalar: module.tpl.htm ve module_tree.tpl.htm. Varsayılan dosya: module.tpl.htm.<br> -<b>NaviFrame:</b> EÄŸer module_tree.tpl.htm dosyası ÅŸablon dosyası olarak seçilirse, buraya sol frame için betik dosyası yolu girebilirsiniz.<br> -<b>Varsayılan sayfa:</b> Modül açıldığı zaman görünecek sayfa.<br> -<b>Sekme GeniÅŸliÄŸi:</b> Temel navigasyonun geniÅŸliÄŸi. Bu alan varsayılan olarak boÅŸtur. Siz bir piksel deÄŸeri(20 gibi) veya bir oran(20%) deÄŸeri girebilirsiniz.<br> -<b>Ä°ÅŸaret:</b> Tüm yollar web klasörüyle iliÅŸkilidir.. -'; -?> diff --git a/interface/web/designer/lib/lang/tr_module_list.lng b/interface/web/designer/lib/lang/tr_module_list.lng deleted file mode 100644 index 08c57875fd..0000000000 --- a/interface/web/designer/lib/lang/tr_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ -<?php -$wb['list_head_txt'] = 'Arkaplan Modülü'; -$wb['module_txt'] = 'Modül'; -$wb['title_txt'] = 'BaÅŸlık'; -?> diff --git a/interface/web/designer/lib/lang/tr_module_nav_edit.lng b/interface/web/designer/lib/lang/tr_module_nav_edit.lng deleted file mode 100644 index fd10993d6e..0000000000 --- a/interface/web/designer/lib/lang/tr_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ -<?php -$wb['title_txt'] = 'BaÅŸlık'; -$wb['header_txt'] = 'Navi özellikleri'; -$wb['save_txt'] = 'Kaydet'; -$wb['cancel_txt'] = 'Ä°ptal'; -?> diff --git a/interface/web/designer/lib/lang/tr_module_nav_item_edit.lng b/interface/web/designer/lib/lang/tr_module_nav_item_edit.lng deleted file mode 100644 index 06fe57e84f..0000000000 --- a/interface/web/designer/lib/lang/tr_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ -<?php -$wb['title_txt'] = 'BaÅŸlık'; -$wb['target_txt'] = 'Hedef'; -$wb['link_txt'] = 'Link'; -$wb['header_txt'] = 'Navi özellikleri'; -$wb['save_txt'] = 'Kaydet'; -$wb['cancel_txt'] = 'Ä°ptal'; -?> diff --git a/interface/web/designer/lib/lang/tr_module_show.lng b/interface/web/designer/lib/lang/tr_module_show.lng deleted file mode 100644 index a40c0743b5..0000000000 --- a/interface/web/designer/lib/lang/tr_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ -<?php -$wb['header_txt'] = 'Menü editörü'; -$wb['title_txt'] = 'BaÅŸlık'; -$wb['name_txt'] = 'Modül'; -$wb['delete_txt'] = 'Sil'; -$wb['properties_txt'] = 'Özellikler'; -$wb['new_menu_txt'] = 'Yeni Menü'; -$wb['edit_txt'] = 'Düzenle'; -$wb['new_txt'] = 'Yeni'; -$wb['up_txt'] = 'Yukarı'; -$wb['down_txt'] = 'AÅŸağı'; -$wb['module_txt'] = 'Modül'; -$wb['module_del_txt'] = 'Wollen Sie das Modul und alle im Modul angelegten Dateien und Unterverzeichnisse löschen?'; -$wb['menu_del_txt'] = 'Wollen Sie das Menü mit allen Untereinträgen löschen?'; -$wb['item_del_txt'] = 'Wollen Sie den Menüeintrag löschen?'; -?> diff --git a/interface/web/designer/lib/module.conf.php b/interface/web/designer/lib/module.conf.php deleted file mode 100644 index 6104f497ce..0000000000 --- a/interface/web/designer/lib/module.conf.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php -$module = array ( - 'name' => 'designer', - 'title' => 'BE Designer', - 'template' => 'module.tpl.htm', - 'navframe_page' => '', - 'startpage' => 'designer/module_list.php', - 'tab_width' => '', - 'nav' => - array ( - 0 => - array ( - 'title' => 'Modules', - 'open' => '1', - 'items' => - array ( - 0 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/module_edit.php', - ), - 1 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/module_list.php', - ), - ), - ), - /* - 1 => - array ( - 'title' => 'Formulare', - 'open' => '1', - 'items' => - array ( - 2 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/form_edit.php', - ), - 3 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/form_list.php', - ), - ), - ), - 2 => - array ( - 'title' => 'Lists', - 'open' => '1', - 'items' => - array ( - 4 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/list_edit.php', - ), - 5 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/list_list.php', - ), - ), - ), - 3 => - array ( - 'title' => 'Languages', - 'open' => '1', - 'items' => - array ( - 6 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/lang_edit.php', - ), - 7 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/lang_list.php', - ), - ), - ), - */ - ), -) -?> diff --git a/interface/web/designer/list/empty.dir b/interface/web/designer/list/empty.dir deleted file mode 100644 index 95ba9ef37c..0000000000 --- a/interface/web/designer/list/empty.dir +++ /dev/null @@ -1 +0,0 @@ -This empty directory is needed by ISPConfig. diff --git a/interface/web/designer/module_edit.php b/interface/web/designer/module_edit.php deleted file mode 100644 index af7dbb0271..0000000000 --- a/interface/web/designer/module_edit.php +++ /dev/null @@ -1,184 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/module_edit.htm'); - -// ID importieren -$id = $_REQUEST["id"]; -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $id)) die("id contains invalid chars."); - -if(count($_POST) > 1) { - // Bestimme aktion - if($id != '') { - $action = 'UPDATE'; - } else { - $action = 'INSERT'; - } - - - if($error == '') { - - $id = $_POST["module"]["name"]; - if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $id)) die("id contains invalid chars."); - - $filename = "../".$id."/lib/module.conf.php"; - $module_new = $_POST["module"]; - - if(@is_file($filename)) { - include_once $filename; - $navi = $module["nav"]; - unset($module); - $module_new["nav"] = $navi; - } - - $m = "<?php\r\n".'$module = '.var_export($module_new, true)."\r\n?>"; - - // creating the module directories - if(!@is_dir("../".$id)) mkdir("../".$id) or die("Cannot make directory: ../".$id); - if(!@is_dir("../".$id."/lib")) mkdir("../".$id."/lib") or die("Cannot make directory: ../".$id."/lib"); - if(!@is_dir("../".$id."/lib/lang")) mkdir("../".$id."/lib/lang") or die("Cannot make directory: ../".$id."/lib/lang"); - if(!@is_dir("../".$id."/form")) mkdir("../".$id."/form") or die("Cannot make directory: ../".$id."/form"); - if(!@is_dir("../".$id."/list")) mkdir("../".$id."/list") or die("Cannot make directory: ../".$id."/list"); - if(!@is_dir("../".$id."/templates")) mkdir("../".$id."/templates") or die("Cannot make directory: ../".$id."/templates"); - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - // writing admin conf - $admin_conf_filename = "../".$id."/lib/admin.conf.php"; - if(!is_file($admin_conf_filename)) { - if (!$handle = fopen($admin_conf_filename, 'w')) { - print "Cannot open file ($admin_conf_filename)"; - exit; - } - - if (!fwrite($handle, "<?php\r\n?>")) { - print "Cannot write to file ($admin_conf_filename)"; - exit; - } - - fclose($handle); - } - - // zu Liste springen - header("Location: module_list.php"); - exit; - - } else { - $app->tpl->setVar("error", "<b>Fehler:</b><br>".$error); - $app->tpl->setVar($_POST); - } -} - -if($id != '') { - // Datensatz besteht bereits - // bestehenden Datensatz anzeigen - if($error == '') { - // es liegt ein Fehler vor - include_once "../".$id."/lib/module.conf.php"; - //$navi = $module["nav"]; - unset($module["nav"]); - $record = $module; - } else { - // ein Fehler - $record = $_POST; - //$navi = $_POST["nav"]; - unset($_POST["nav"]); - } - $record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { - // neuer datensatz - if($error == '') { - // es liegt ein Fehler vor - $record["template"] = "module.tpl.htm"; - } else { - // ein Fehler - $record = $_POST; - //$navi = $_POST["nav"]; - unset($_POST["nav"]); - - } - $record["readonly"] = ''; -} - -$record["id"] = $id; - -/* -// baue Modul navi -$content = ""; -$n1 = 0; -$n2 = 0; -foreach($navi as $section) { - $content .= "<tr><td bgcolor='#EEEEEE' class='frmText11'>Bereich:</td><td class='frmText11' bgcolor='#EEEEEE'><input name=\"module[nav][$n1][title]\" type=\"text\" class=\"text\" value=\"$section[title]\" size=\"30\" maxlength=\"255\"><input name=\"module[nav][$n1][open]\" type=\"hidden\" value=\"$section[open]\"></td></tr>\r\n"; - foreach($section["items"] as $item) { - $content .= "<tr><td class='frmText11'>Titel:</td><td class='frmText11'><input name=\"module[nav][$n1][items][$n2][title]\" type=\"text\" class=\"text\" value=\"$item[title]\" size=\"30\" maxlength=\"255\"></td></tr>\r\n"; - $content .= "<tr><td class='frmText11'>Ziel:</td><td class='frmText11'> <input name=\"module[nav][$n1][items][$n2][target]\" type=\"text\" class=\"text\" value=\"$item[target]\" size=\"10\" maxlength=\"255\"></td></tr>\r\n"; - $content .= "<tr><td class='frmText11'>Link:</td><td class='frmText11'> <input name=\"module[nav][$n1][items][$n2][link]\" type=\"text\" class=\"text\" value=\"$item[link]\" size=\"30\" maxlength=\"255\"></td></tr>\r\n"; - $n2++; - } - $n1++; -} - -$record["nav"] = $content; -*/ - -$app->tpl->setVar($record); - -include_once "lib/lang/".$_SESSION["s"]["language"]."_module_edit.lng"; -$app->tpl->setVar($wb); - -// Defaultwerte setzen -$app->tpl_defaults(); - -// Template parsen -$app->tpl->pparse(); - -?> diff --git a/interface/web/designer/module_list.php b/interface/web/designer/module_list.php deleted file mode 100644 index b08707e14e..0000000000 --- a/interface/web/designer/module_list.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/module_list.htm'); - -//* Pick out modules -$bgcolor = '#FFFFFF'; -$modules_list = array(); -$handle = @opendir(ISPC_WEB_PATH); -while ($file = @readdir($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login') { - include_once ISPC_WEB_PATH."/$file/lib/module.conf.php"; - $modules_list[] = array( 'module' => $module['name'], - 'title' => $module['title'], - 'bgcolor' => ($bgcolor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF' - ); - } - } - } -} - -$app->tpl->setLoop('records', $modules_list); - -//* loading language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_module_list.lng'; -include $lng_file; -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - -?> diff --git a/interface/web/designer/module_nav_del.php b/interface/web/designer/module_nav_del.php deleted file mode 100644 index c5781d979b..0000000000 --- a/interface/web/designer/module_nav_del.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $nav_id)) die("nav_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once $filename; - - unset($module["nav"][$nav_id]); - - $m = "<?php\r\n".'$module = '.var_export($module, true)."\r\n?>"; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; -} -?> diff --git a/interface/web/designer/module_nav_edit.php b/interface/web/designer/module_nav_edit.php deleted file mode 100644 index e7e63e149d..0000000000 --- a/interface/web/designer/module_nav_edit.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -//* Security checkpoint -if($_SESSION['s']['user']['typ'] != 'admin'){ - die('Admin permissions required.'); -} -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -//* Load template -$app->uses('tpl'); -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/module_nav_edit.htm'); - -// TODO: Check module and nav_id for malicius chars, nav_id can be empty or any number, even 0 -$module_name = $_REQUEST['module_name']; -$nav_id = $_REQUEST['nav_id']; - -//** Sanity checks of module -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)){ - die('module_name contains invalid chars.'); -} -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $nav_id)){ - die('nav_id contains invalid chars.'); -} -if(empty($module_name)){ - die('module is empty.'); -} - -if(count($_POST) > 0) { - //* Determine Action - $action = ($nav_id != '') ? 'UPDATE' : 'INSERT'; - $error = ''; - - // TODO: Check variables - - if($error == '') { - - $filename = '../'.$module_name.'/lib/module.conf.php'; - - if(!@is_file($filename)){ - die("File not found: $filename"); - } - include_once $filename; - - $items = ($action == 'UPDATE') ? $module['nav'][$nav_id]['items'] : array(); - - $tmp = array('title' => $_POST['nav']['title'], - 'open' => 1, - 'items' => $items); - - if($action == 'UPDATE') { - $module['nav'][$nav_id] = $tmp; - } else { - $module['nav'][] = $tmp; - } - - $m = "<?php\r\n".'$module = '.var_export($module, true)."\r\n?>"; - - //* writing module.conf - if (!$handle = fopen($filename, 'w')) { - die("Cannot open file ($filename)"); - } - - if (!fwrite($handle, $m)) { - die("Cannot write to file ($filename)"); - } - - fclose($handle); - - - //* Jump to list - header('Location: module_show.php?id='.urlencode($module_name)); - exit; - - } else { - $app->tpl->setVar('error', '<b>Fehler:</b><br>'.$error); - $app->tpl->setVar($_POST); - } -} - -if($nav_id != '') { - //* Data record exists - if($error == '') { - include_once '../'.$module_name.'/lib/module.conf.php'; - $record = $module['nav'][$nav_id]; - } else { - //* error - $record = $_POST; - } - //$record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { - //* New data record - if($error == '') { - //* es liegt kein Fehler vor - } else { - //* error - $record = $_POST; - - } - //$record["readonly"] = ''; -} - -$record['nav_id'] = $nav_id; -$record['module_name'] = $module_name; - -$app->tpl->setVar($record); - -include_once 'lib/lang/'.$_SESSION['s']['language'].'_module_nav_edit.lng'; -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - -?> diff --git a/interface/web/designer/module_nav_flip.php b/interface/web/designer/module_nav_flip.php deleted file mode 100644 index 09cdd17bfe..0000000000 --- a/interface/web/designer/module_nav_flip.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$dir = $_REQUEST["dir"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $nav_id)) die("nav_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once $filename; - - if($dir == 'up' and $nav_id > 0) { - $tmp = $module["nav"][$nav_id - 1]; - $module["nav"][$nav_id - 1] = $module["nav"][$nav_id]; - $module["nav"][$nav_id] = $tmp; - } - - if($dir == 'down' and $nav_id < count($module["nav"]) -1) { - $tmp = $module["nav"][$nav_id + 1]; - $module["nav"][$nav_id + 1] = $module["nav"][$nav_id]; - $module["nav"][$nav_id] = $tmp; - } - - $m = "<?php\r\n".'$module = '.var_export($module, true)."\r\n?>"; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - echo "HEADER_REDIRECT:designer/module_show.php?id=$module_name"; - exit; -} -?> diff --git a/interface/web/designer/module_nav_item_del.php b/interface/web/designer/module_nav_item_del.php deleted file mode 100644 index 66a17b5892..0000000000 --- a/interface/web/designer/module_nav_item_del.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$item_id = $_REQUEST["item_id"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $nav_id)) die("nav_id contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $item_id)) die("item_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once $filename; - - unset($module["nav"][$nav_id]["items"][$item_id]); - - $m = "<?php\r\n".'$module = '.var_export($module, true)."\r\n?>"; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; -} -?> diff --git a/interface/web/designer/module_nav_item_edit.php b/interface/web/designer/module_nav_item_edit.php deleted file mode 100644 index 2faff74fec..0000000000 --- a/interface/web/designer/module_nav_item_edit.php +++ /dev/null @@ -1,151 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/module_nav_item_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$item_id = $_REQUEST["item_id"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $nav_id)) die("nav_id contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $item_id)) die("item_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if(count($_POST) > 0) { - // Bestimme aktion - if($item_id != '') { - $action = 'UPDATE'; - } else { - $action = 'INSERT'; - } - - $error = ''; - - // TODO: Check variables - - - if($error == '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once $filename; - - $tmp = array('title' =>$_POST["title"], - 'target' => $_POST["target"], - 'link' => $_POST["link"]); - - if($action == 'UPDATE') { - $module["nav"][$nav_id]["items"][$item_id] = $tmp; - } else { - $module["nav"][$nav_id]["items"][] = $tmp; - } - - $m = "<?php\r\n".'$module = '.var_export($module, true)."\r\n?>"; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; - - } else { - $app->tpl->setVar("error", "<b>Fehler:</b><br>".$error); - $app->tpl->setVar($_POST); - } -} - -if($item_id != '') { - // Datensatz besteht bereits - // bestehenden Datensatz anzeigen - if($error == '') { - // es liegt ein Fehler vor - include_once "../".$module_name."/lib/module.conf.php"; - $record = $module["nav"][$nav_id]["items"][$item_id]; - } else { - // ein Fehler - $record = $_POST; - } - //$record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { - // neuer datensatz - if($error == '') { - // es liegt kein Fehler vor - $record["target"] = "content"; - } else { - // ein Fehler - $record = $_POST; - - } - //$record["readonly"] = ''; -} - -$record["item_id"] = $item_id; -$record["nav_id"] = $nav_id; -$record["module_name"] = $module_name; - -$app->tpl->setVar($record); - -include_once "lib/lang/".$_SESSION["s"]["language"]."_module_nav_item_edit.lng"; -$app->tpl->setVar($wb); - -// Defaultwerte setzen -$app->tpl_defaults(); - -// Template parsen -$app->tpl->pparse(); - -?> diff --git a/interface/web/designer/module_nav_item_flip.php b/interface/web/designer/module_nav_item_flip.php deleted file mode 100644 index 94f210b138..0000000000 --- a/interface/web/designer/module_nav_item_flip.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$item_id = $_REQUEST["item_id"]; -$dir = $_REQUEST["dir"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $nav_id)) die("nav_id contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $item_id)) die("item_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once $filename; - - if($dir == 'up' and $item_id > 0) { - $tmp = $module["nav"][$nav_id]["items"][$item_id - 1]; - $module["nav"][$nav_id]["items"][$item_id -1] = $module["nav"][$nav_id]["items"][$item_id]; - $module["nav"][$nav_id]["items"][$item_id] = $tmp; - } - - if($dir == 'down' and $item_id < count($module["nav"][$nav_id]["items"]) -1) { - $tmp = $module["nav"][$nav_id]["items"][$item_id + 1]; - $module["nav"][$nav_id]["items"][$item_id + 1] = $module["nav"][$nav_id]["items"][$item_id]; - $module["nav"][$nav_id]["items"][$item_id] = $tmp; - } - - $m = "<?php\r\n".'$module = '.var_export($module, true)."\r\n?>"; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; -} -?> diff --git a/interface/web/designer/module_show.php b/interface/web/designer/module_show.php deleted file mode 100644 index f3e9812f9b..0000000000 --- a/interface/web/designer/module_show.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -//* Check permissions for module -$app->auth->check_module_permissions('designer'); - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); - -$app->uses('tpl'); - -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/module_show.htm'); - - -$module_name = $_REQUEST["id"]; -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $module_name)) die("id contains invalid chars."); - -include_once "../".$module_name."/lib/module.conf.php"; -$navi = $module["nav"]; -unset($module["nav"]); -$record = $module; - -// loading language file -$lng_file = "lib/lang/".$_SESSION["s"]["user"]["language"]."_module_show.lng"; -include $lng_file; -$app->tpl->setVar($wb); - -// baue Modul navi -$content = ""; -$n1 = 0; -$n2 = 0; -if(is_array($navi)) { - foreach($navi as $nav_id => $section) { - $content .= "<tr> - <td colspan='2' class='frmText11'> - <table width='100%'> - <tr> - <td class='tblHead'>$section[title]</td> - <td class='tblHead' width='280' align='right'> - <input type=\"button\" name=\"bt1$n2\" value=\"$wb[edit_txt]\" onclick=\"loadContent('designer/module_nav_edit.php?module_name=$module_name&nav_id=$nav_id');\" class=\"button\" /><div class=\"buttonEnding\"></div> - <input type=\"button\" name=\"bt2$n2\" value=\"$wb[delete_txt]\" onclick=\"del_record('designer/module_nav_del.php?module_name=$module_name&nav_id=$nav_id');\" class=\"button\" /><div class=\"buttonEnding\"></div> - <input type=\"button\" name=\"bt3$n2\" value=\"$wb[new_txt]\" onclick=\"loadContent('designer/module_nav_item_edit.php?module_name=$module_name&nav_id=$nav_id');\" class=\"button\" /><div class=\"buttonEnding\"></div> - <input type=\"button\" name=\"bt4$n2\" value=\"$wb[up_txt]\" onclick=\"loadContent('designer/module_nav_flip.php?module_name=$module_name&nav_id=$nav_id&dir=up');\" class=\"button\" /><div class=\"buttonEnding\"></div> - <input type=\"button\" name=\"bt5$n2\" value=\"$wb[down_txt]\" onclick=\"loadContent('designer/module_nav_flip.php?module_name=$module_name&nav_id=$nav_id&dir=down');\" class=\"button\" /><div class=\"buttonEnding\"></div> - </td> - </tr>"; - //$content .= "<tr><td bgcolor='#EEEEEE' class='frmText11'>Bereich:</td><td class='frmText11' bgcolor='#EEEEEE'><input name=\"module[nav][$n1][title]\" type=\"text\" class=\"text\" value=\"$section[title]\" size=\"30\" maxlength=\"255\"><input name=\"module[nav][$n1][open]\" type=\"hidden\" value=\"$section[open]\"></td></tr>\r\n"; - foreach($section["items"] as $item_id => $item) { - //$content .= "<tr><td class='frmText11'>Titel:</td><td class='frmText11'><input name=\"module[nav][$n1][items][$n2][title]\" type=\"text\" class=\"text\" value=\"$item[title]\" size=\"30\" maxlength=\"255\"></td></tr>\r\n"; - //$content .= "<tr><td class='frmText11'>Ziel:</td><td class='frmText11'> <input name=\"module[nav][$n1][items][$n2][target]\" type=\"text\" class=\"text\" value=\"$item[target]\" size=\"10\" maxlength=\"255\"></td></tr>\r\n"; - //$content .= "<tr><td class='frmText11'>Link:</td><td class='frmText11'> <input name=\"module[nav][$n1][items][$n2][link]\" type=\"text\" class=\"text\" value=\"$item[link]\" size=\"30\" maxlength=\"255\"></td></tr>\r\n"; - $content .= "<tr> - <td class='frmText11'>$item[title]</td> - <td class='frmText11' width='280' align='right'> - <input type=\"button\" name=\"bt6$n2\" value=\"$wb[edit_txt]\" onclick=\"loadContent('designer/module_nav_item_edit.php?module_name=$module_name&nav_id=$nav_id&item_id=$item_id');\" class=\"button\" /><div class=\"buttonEnding\"></div> - <input type=\"button\" name=\"bt7$n2\" value=\"$wb[delete_txt]\" onclick=\"del_record('designer/module_nav_item_del.php?module_name=$module_name&nav_id=$nav_id&item_id=$item_id');\" class=\"button\" /><div class=\"buttonEnding\"></div> - <input type=\"button\" name=\"bt8$n2\" value=\"$wb[up_txt]\" onclick=\"loadContent('designer/module_nav_item_flip.php?module_name=$module_name&nav_id=$nav_id&item_id=$item_id&dir=up');\" class=\"button\" /><div class=\"buttonEnding\"></div> - <input type=\"button\" name=\"bt9$n2\" value=\"$wb[down_txt]\" onclick=\"loadContent('designer/module_nav_item_flip.php?module_name=$module_name&nav_id=$nav_id&item_id=$item_id&dir=down');\" class=\"button\" /><div class=\"buttonEnding\"></div> - </td> - </tr>"; - $n2++; - } - $content .= "<tr><td colspan='2' class='tblFooter'> </td></tr> - </table> - </td> - </tr>"; - $n1++; - } -} - -$record["nav"] = $content; - - -$app->tpl->setVar($record); - - -$app->tpl->setLoop('records', $modules_list); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - - -?> diff --git a/interface/web/designer/templates/form_edit.htm b/interface/web/designer/templates/form_edit.htm deleted file mode 100644 index 72cb0a4429..0000000000 --- a/interface/web/designer/templates/form_edit.htm +++ /dev/null @@ -1,79 +0,0 @@ -<form method="POST" action="form_edit.php"> -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11"><input name="form[name]" type="text" class="text" value="{tmpl_var name='name'}" size="20" maxlength="50" {tmpl_var name='readonly'}></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="form[title]" type="text" class="text" value="{tmpl_var name='title'}" size="20" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> - <td width="366" class="frmText11"><input name="form[description]" type="text" class="text" value="{tmpl_var name='description'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="action_txt">:</td> - <td width="366" class="frmText11"><input name="form[action]" type="text" class="text" value="{tmpl_var name='action'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_table_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_table]" type="text" class="text" value="{tmpl_var name='db_table'}" size="10" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_table_idx_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_table_idx]" type="text" class="text" value="{tmpl_var name='db_table_idx'}" size="10" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_history_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_history]" type="text" class="text" value="{tmpl_var name='db_history'}" size="3" maxlength="3"> yes / no</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="tab_default_txt">:</td> - <td width="366" class="frmText11"><input name="form[tab_default]" type="text" class="text" value="{tmpl_var name='tab_default'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="list_default_txt">:</td> - <td width="366" class="frmText11"><input name="form[list_default]" type="text" class="text" value="{tmpl_var name='list_default'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth]" type="text" class="text" value="{tmpl_var name='auth'}" size="3" maxlength="3"> yes / no</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_userid_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][userid]" type="text" class="text" value="{tmpl_var name='auth_preset_userid'}" size="4" maxlength="4"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_groupid_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][groupid]" type="text" class="text" value="{tmpl_var name='auth_preset_groupid'}" size="4" maxlength="4"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_user_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_user]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_user'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_group_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_group]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_group'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_other_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_other]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_other'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="submit" class="button" value="{tmpl_var name='save_txt'}"> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onclick="self.location.href='form_list.php';"> - </td> - </tr> -</table> -<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> -<input type="hidden" name="form_name" value="{tmpl_var name='form_name'}"> -</form> \ No newline at end of file diff --git a/interface/web/designer/templates/form_list.htm b/interface/web/designer/templates/form_list.htm deleted file mode 100644 index 9e4fc38b95..0000000000 --- a/interface/web/designer/templates/form_list.htm +++ /dev/null @@ -1,29 +0,0 @@ -<form name="myform" action="form_list.php" method="POST"> -<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br /> -<table width="100%" border="0" cellspacing="0" cellpadding="4"> - <tr> - <td class="tblHead"><tmpl_var name="form_txt"></td> - <td class="tblHead"><tmpl_var name="title_txt"></td> - <td class="tblHead"><tmpl_var name="module_txt"></td> - <td class="tblHead"><tmpl_var name="description_txt"></td> - <td class="tblHead"> </td> - </tr> - <tmpl_loop name="records"> - <tr bgcolor="{tmpl_var name="bgcolor"}"> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="name"}</a></td> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="title"}</a></td> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="module_name"}</a></td> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="description"}</a></td> - <td class="frmText11" align="right">[<a href="javascript: del_record('form_del.php?form_name={tmpl_var name='module'}&module_name={tmpl_var name='module_name'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">Delete</a>]</td> - </tr> - </tmpl_loop> - <tmpl_unless name="records"> - <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="5">{tmpl_var name='globalsearch_noresults_text_txt'}</td> - </tr> - </tmpl_unless> - <tr> - <td colspan="7" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td> - </tr> -</table> -</form> \ No newline at end of file diff --git a/interface/web/designer/templates/form_show.htm b/interface/web/designer/templates/form_show.htm deleted file mode 100644 index e8db5efd88..0000000000 --- a/interface/web/designer/templates/form_show.htm +++ /dev/null @@ -1,61 +0,0 @@ -<script language="JavaScript"> -<!-- -function del_module(link) { - if(window.confirm("{tmpl_var name='module_del_txt'}")) { - location.href = link; - } -} -function del_menu(link) { - if(window.confirm("{tmpl_var name='menu_del_txt'}")) { - location.href = link; - } -} -function del_menuitem(link) { - if(window.confirm("{tmpl_var name='item_del_txt'}")) { - location.href = link; - } -} - -//--> -</script> -<form name="myform" action="module_show.php" method="POST"> -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<fieldset style="width:320px;"><legend class="frmText11"><b>{tmpl_var name='form_txt'}</b></legend> -<table border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='title'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='form_name'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="module_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='module_name'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> - <td width="366" class="frmText11" valign="top">{tmpl_var name='description'}</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td colspan="2" class="frmText11"> - <input type="button" name="ed1" value="{tmpl_var name='properties_txt'}" onclick="location.href='form_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /> - <input type="button" name="ed2" value="{tmpl_var name='delete_txt'}" onclick="del_module('form_del.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}');" class="button" /> - <input type="button" name="ed3" value="{tmpl_var name='new_tab_txt'}" onclick="location.href='form_tab_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /></td> - </tr> -</table> -</fieldset> -<table width="350" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tmpl_var name="nav"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -</form> \ No newline at end of file diff --git a/interface/web/designer/templates/module_edit.htm b/interface/web/designer/templates/module_edit.htm deleted file mode 100644 index e6e5b113b2..0000000000 --- a/interface/web/designer/templates/module_edit.htm +++ /dev/null @@ -1,43 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11"><input name="module[name]" type="text" class="text" value="{tmpl_var name='name'}" size="30" maxlength="50" {tmpl_var name='readonly'}></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="module[title]" type="text" class="text" value="{tmpl_var name='title'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="template_txt">:</td> - <td width="366" class="frmText11"><input name="module[template]" type="text" class="text" value="{tmpl_var name='template'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="navframe_txt">:</td> - <td width="366" class="frmText11"><input name="module[navframe_page]" type="text" class="text" value="{tmpl_var name='navframe_page'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="startpage_txt">:</td> - <td width="366" class="frmText11"><input name="module[startpage]" type="text" class="text" value="{tmpl_var name='startpage'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="tab_width_txt">:</td> - <td width="366" class="frmText11"><input name="module[tab_width]" type="text" class="text" value="{tmpl_var name='tab_width'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> <inp</td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="button" class="button" value="{tmpl_var name='save_txt'}" onclick="submitForm('pageForm','designer/module_edit.php');"><div class="buttonEnding"></div> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onclick="loadContent('designer/module_list.php');"><div class="buttonEnding"></div> - </td> - </tr> - <tr> - <td colspan="2" class="frmText11"><tmpl_var name="description_txt"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -<input type="hidden" name="id" value="{tmpl_var name='id'}"> \ No newline at end of file diff --git a/interface/web/designer/templates/module_list.htm b/interface/web/designer/templates/module_list.htm deleted file mode 100644 index c82ebef932..0000000000 --- a/interface/web/designer/templates/module_list.htm +++ /dev/null @@ -1,23 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br /> -<table width="100%" border="0" cellspacing="0" cellpadding="4"> - <tr> - <td class="tblHead"><tmpl_var name="module_txt"></td> - <td class="tblHead"><tmpl_var name="title_txt"></td> - <td class="tblHead"> </td> - </tr> - <tmpl_loop name="records"> - <tr bgcolor="{tmpl_var name="bgcolor"}"> - <td class="frmText11"><a href="javascript:loadContent('designer/module_show.php?id={tmpl_var name='module'}');" class="frmText11">{tmpl_var name="module"}</a></td> - <td class="frmText11"><a href="javascript:loadContent('designer/module_show.php?id={tmpl_var name='module'}');" class="frmText11">{tmpl_var name="title"}</a></td> - <td class="frmText11" align="right">[<a href="javascript: del_record('module_del.php?id={tmpl_var name='module'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">Delete</a>]</td> - </tr> - </tmpl_loop> - <tmpl_unless name="records"> - <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="3">{tmpl_var name='globalsearch_noresults_text_txt'}</td> - </tr> - </tmpl_unless> - <tr> - <td colspan="5" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td> - </tr> -</table> \ No newline at end of file diff --git a/interface/web/designer/templates/module_nav_edit.htm b/interface/web/designer/templates/module_nav_edit.htm deleted file mode 100644 index fe925ddce4..0000000000 --- a/interface/web/designer/templates/module_nav_edit.htm +++ /dev/null @@ -1,24 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="nav[title]" type="text" class="text" value="{tmpl_var name='title'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> <inp</td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="button" class="button" value="{tmpl_var name='save_txt'}" onclick="submitForm('pageForm','designer/module_nav_edit.php');"><div class="buttonEnding"></div> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onclick="loadContent('designer/module_list.php');"><div class="buttonEnding"></div> - </td> - </tr> - <tr> - <td colspan="2" class="frmText11"><tmpl_var name="description_txt"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -<input type="hidden" name="nav_id" value="{tmpl_var name='nav_id'}"> -<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> \ No newline at end of file diff --git a/interface/web/designer/templates/module_nav_item_edit.htm b/interface/web/designer/templates/module_nav_item_edit.htm deleted file mode 100644 index 3a52daeb25..0000000000 --- a/interface/web/designer/templates/module_nav_item_edit.htm +++ /dev/null @@ -1,33 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="title" type="text" class="text" value="{tmpl_var name='title'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="target_txt">:</td> - <td width="366" class="frmText11"><input name="target" type="text" class="text" value="{tmpl_var name='target'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="link_txt">:</td> - <td width="366" class="frmText11"><input name="link" type="text" class="text" value="{tmpl_var name='link'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> <inp</td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="button" class="button" value="{tmpl_var name='save_txt'}" onclick="submitForm('pageForm','designer/module_nav_item_edit.php');"><div class="buttonEnding"></div> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onclick="loadContent('designer/module_list.php');"><div class="buttonEnding"></div> - </td> - </tr> - <tr> - <td colspan="2" class="frmText11"><tmpl_var name="description_txt"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -<input type="hidden" name="item_id" value="{tmpl_var name='item_id'}"> -<input type="hidden" name="nav_id" value="{tmpl_var name='nav_id'}"> -<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> \ No newline at end of file diff --git a/interface/web/designer/templates/module_show.htm b/interface/web/designer/templates/module_show.htm deleted file mode 100644 index 24694b4b60..0000000000 --- a/interface/web/designer/templates/module_show.htm +++ /dev/null @@ -1,31 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<fieldset style="width:250px;"><legend class="frmText11"><b>{tmpl_var name='module_txt'}</b></legend> -<table border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='title'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='name'}</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td colspan="2" class="frmText11"> - <input type="button" name="ed1" value="{tmpl_var name='properties_txt'}" onclick="loadContent('designer/module_edit.php?id={tmpl_var name='name'}')" class="button" /><div class="buttonEnding"></div> - <input type="button" name="ed2" value="{tmpl_var name='delete_txt'}" onclick="del_record('designer/module_del.php?id={tmpl_var name='name'}');" class="button" /><div class="buttonEnding"></div> - <input type="button" name="ed3" value="{tmpl_var name='new_menu_txt'}" onclick="loadContent('designer/module_nav_edit.php?module_name={tmpl_var name='name'}')" class="button" /><div class="buttonEnding"></div></td> - </tr> -</table> -</fieldset> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tmpl_var name="nav"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> \ No newline at end of file diff --git a/interface/web/designer/templates/paging.tpl.htm b/interface/web/designer/templates/paging.tpl.htm deleted file mode 100644 index dd38af8a99..0000000000 --- a/interface/web/designer/templates/paging.tpl.htm +++ /dev/null @@ -1,9 +0,0 @@ -[ <a href='{tmpl_var name="list_file"}?page=0'>|<< </a>] -<tmpl_if name="show_page_back"> - [<< <a href='{tmpl_var name="list_file"}?page={tmpl_var name="last_page"}'>Zurück</a>] -</tmpl_if> - Seite {tmpl_var name="next_page"} von {tmpl_var name="max_pages"} -<tmpl_if name="show_page_next"> - [<a href='{tmpl_var name="list_file"}?page={tmpl_var name="next_page"}'>Weiter >></a>] -</tmpl_if> - [<a href='{tmpl_var name="list_file"}?page={tmpl_var name="pages"}'> >>| </a>] \ No newline at end of file -- GitLab From 5b3f2519464c373529b1fd932bab9aa2ea91ddff Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 16:26:05 +0200 Subject: [PATCH 075/158] - Removed unused file form.inc.php - Added some cleanup code --- install/lib/installer_base.lib.php | 17 +- install/update.php | 3 + interface/lib/classes/form.inc.php | 517 ----------------------------- 3 files changed, 19 insertions(+), 518 deletions(-) delete mode 100644 interface/lib/classes/form.inc.php diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index a82ac2e74c..83b6ffba3a 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2152,7 +2152,7 @@ class installer_base { // Add symlink for patch tool if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); - + } public function configure_dbserver() { @@ -2240,6 +2240,21 @@ class installer_base { touch($conf['ispconfig_log_dir'].'/cron.log'); chmod($conf['ispconfig_log_dir'].'/cron.log', 0660); + } + + // This function is called at the end of the update process and contains code to clean up parts of old ISPCONfig releases + public function cleanup_ispconfig() { + global $app,$conf; + + // Remove directories recursively + if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); + + // Remove files + if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); + if(is_file('/usr/local/ispconfig/interface/lib/classes/form.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/form.inc.php'); + + + } public function getinitcommand($servicename, $action, $init_script_directory = ''){ diff --git a/install/update.php b/install/update.php index 36eb201817..eec69bad3b 100644 --- a/install/update.php +++ b/install/update.php @@ -443,6 +443,9 @@ if ($conf['services']['web'] && $inst->install_ispconfig_interface) { $inst->install_ispconfig(); +// Cleanup +$inst->cleanup_ispconfig(); + //** Configure Crontab $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab'); if($update_crontab_answer == 'yes') { diff --git a/interface/lib/classes/form.inc.php b/interface/lib/classes/form.inc.php deleted file mode 100644 index e6948ddd2d..0000000000 --- a/interface/lib/classes/form.inc.php +++ /dev/null @@ -1,517 +0,0 @@ -<?php - -die('Deprecated file: form.inc.php'); - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - * Formularbehandlung - * - * Funktionen zur Umwandlung von Formulardaten - * sowie zum vorbereiten von HTML und SQL - * Ausgaben - * - * Tabellendefinition - * - * Datentypen: - * - INTEGER (Wandelt Ausdrücke in Int um) - * - DOUBLE - * - CURRENCY (Formatiert Zahlen nach Währungsnotation) - * - VARCHAR (kein weiterer Format Check) - * - DATE (Datumsformat, Timestamp Umwandlung) - * - * Formtype: - * - TEXT (normales Textfeld) - * - PASSWORD (Feldinhalt wird nicht angezeigt) - * - SELECT (Gibt Werte als option Feld aus) - * - MULTIPLE (Select-Feld mit nehreren Werten) - * - * VALUE: - * - Wert oder Array - * - * SEPARATOR - * - Trennzeichen für multiple Felder - * - * Hinweis: - * Das ID-Feld ist nicht bei den Table Values einzufügen. - * - * @package form - * @author Till Brehm - * @version 1.1 - */ - - -class form { - - - - /** - * Definition der Tabelle (array) - * @var tableDef - */ - var $tableDef; - - - - /** - * Private - * @var action - */ - var $action; - - - - /** - * Tabellenname (String) - * @var table_name - */ - var $table_name; - - - - /** - * Debug Variable - * @var debug - */ - var $debug = 0; - - - - /** - * name des primary Field der Tabelle (string) - * @var table_index - */ - var $table_index; - - - - /** - * enthält die Fehlermeldung bei Ãœberprüfung - * der Variablen mit Regex - * @var errorMessage - */ - var $errorMessage; - - var $dateformat = "d.m.Y"; - var $formDef; - - - - - - /** - * Laden der Tabellendefinition - * - * @param file: Pfad zur Tabellendefinition - * @return true - */ - function loadTableDef($file) { - global $app, $conf; - - include_once $file; - $this->tableDef = $table; - $this->table_name = $table_name; - $this->table_index = $table_index; - return true; - } - - function loadFormDef($file) { - global $app, $conf; - - include_once $file; - $this->formDef = $form; - return true; - } - - - - - - - - - /** - * Konvertiert die Daten des übergebenen assoziativen - * Arrays in "menschenlesbare" Form. - * Datentyp Konvertierung, z.B. für Ausgabe in Listen. - * - * @param record - * @return record - */ - function decode($record) { - global $app; - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['datatype']) { - case 'VARCHAR': - $new_record[$key] = stripslashes($val); - break; - - case 'DATE': - if($val > 0) { - $new_record[$key] = date($this->dateformat, $val); - } - break; - - case 'INTEGER': - $new_record[$key] = $app->functions->intval($val); - break; - - case 'DOUBLE': - $new_record[$key] = $val; - break; - - case 'CURRENCY': - $new_record[$key] = number_format($val, 2, ',', ''); - break; - - default: - $new_record[$key] = stripslashes($val); - } - } - - } - return $new_record; - } - - - - - - /** - * Record für Ausgabe in Formularen vorbereiten. - * - * @param record = Datensatz als Array - * @param action = NEW oder EDIT - * @return record - */ - function getHTML($record, $action = 'NEW') { - - global $app; - - if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - - $new_record = array(); - if($action == 'EDIT') { - $record = $this->decode($record); - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['formtype']) { - case 'SELECT': - if(is_array($this->tableDef[$key]['value'])) { - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "<option value='$k'$selected>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($this->tableDef[$key]['value'])) { - - // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'], $val); - - // HTML schreiben - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - - $selected = ''; - foreach($vals as $tvl) { - if(trim($tvl) == trim($k)) $selected = ' SELECTED'; - } - - $out .= "<option value='$k'$selected>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - default: - $new_record[$key] = htmlspecialchars($val); - } - } - } - } else { - foreach($this->tableDef as $key => $val) { - switch ($this->tableDef[$key]['formtype']) { - case 'SELECT': - if(is_array($this->tableDef[$key]['value'])) { - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "<option value='$k'$selected>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($this->tableDef[$key]['value'])) { - - // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'], $val); - - // HTML schreiben - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - - $out .= "<option value='$k'>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - default: - $new_record[$key] = htmlspecialchars($this->tableDef[$key]['value']); - } - } - - } - - if($this->debug == 1) $this->dbg($new_record); - - return $new_record; - } - - - - - - /** - * Record in "maschinen lesbares" Format überführen - * und Werte gegen reguläre Ausdrücke prüfen. - * - * @param record = Datensatz als Array - * @return record - */ - function encode($record) { - global $app; - $this->errorMessage = ''; - - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['datatype']) { - case 'VARCHAR': - if(!is_array($val)) { - $new_record[$key] = $app->db->quote($val); - } else { - $new_record[$key] = implode($this->tableDef[$key]['separator'], $val); - } - break; - case 'DATE': - if($val > 0) { - list($tag, $monat, $jahr) = explode('.', $val); - $new_record[$key] = mktime(0, 0, 0, $monat, $tag, $jahr); - } - break; - case 'INTEGER': - $new_record[$key] = $app->functions->intval($val); - break; - case 'DOUBLE': - $new_record[$key] = $app->db->quote($val); - break; - case 'CURRENCY': - $new_record[$key] = str_replace(",", ".", $val); - break; - } - - if($this->tableDef[$key]['regex'] != '') { - // Enable that "." matches also newlines - $this->tableDef[$key]['regex'] .= 's'; - if(!preg_match($this->tableDef[$key]['regex'], $val)) { - $this->errorMessage .= $this->tableDef[$key]['errmsg']."<br>\r\n"; - } - } - } - - } - return $new_record; - } - - - - - - /** - * SQL Statement für Record erzeugen. - * - * @param record = Datensatz als Array - * @param action = INSERT oder UPDATE - * @param primary_id - * @return record - */ - function getSQL($record, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') { - - global $app; - - $record = $this->encode($record); - $sql_insert_key = ''; - $sql_insert_val = ''; - $sql_update = ''; - - if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - - // gehe durch alle Felder des Records - if(is_array($record)) { - foreach($record as $key => $val) { - // Wenn es kein leeres Passwortfeld ist - if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) { - // gehe durch alle Felder der TableDef - foreach($this->tableDef as $tk => $tv) { - // Wenn Feld in TableDef enthalten ist - if($tk == $key) { - // Erzeuge Insert oder Update Quelltext - if($action == "INSERT") { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_insert_key .= "`$key`, "; - // $sql_insert_val .= "'$val', "; - } else { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "'$val', "; - } - - } else { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_update .= "`$key` = md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_update .= "`$key` = '$val', "; - } else { - $sql_update .= "`$key` = '$val', "; - } - - } - } - } - } - } - } - - // Füge Backticks nur bei unvollständigen Tabellennamen ein - if(stristr($this->table_name, '.')) { - $escape = ''; - } else { - $escape = '`'; - } - - - if($action == "INSERT") { - $sql_insert_key = substr($sql_insert_key, 0, -2); - $sql_insert_val = substr($sql_insert_val, 0, -2); - $sql = "INSERT INTO ".$escape.$this->table_name.$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; - } else { - if($primary_id != 0) { - $sql_update = substr($sql_update, 0, -2); - $sql = "UPDATE ".$escape.$this->table_name.$escape." SET ".$sql_update." WHERE ".$this->table_index ." = ".$primary_id; - if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; - } else { - $app->error("Primary ID fehlt!"); - } - } - - return $sql; - } - - - - - - /** - * Debugging arrays. - * - * @param array_data - */ - function dbg($array_data) { - - echo "<pre>"; - print_r($array_data); - echo "</pre>"; - - } - - - function showForm() { - global $app, $conf; - - if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); - - if($this->errorMessage == '') { - // wenn kein Fehler vorliegt - if($_REQUEST["next_tab"] != '') { - // wenn nächster Tab bekannt - $active_tab = $_REQUEST["next_tab"]; - } else { - // ansonsten ersten tab nehmen - $active_tab = $this->formDef["tabs"][0]["name"]; - } - } else { - // bei Fehlern den gleichen Tab nochmal anzeigen - $active_tab = $_SESSION["s"]["form"]["tab"]; - } - - // definiere Tabs - foreach( $this->formDef["tabs"] as $tab) { - - if($tab["name"] == $active_tab) { - $app->tpl->setInclude('content_tpl', $tab["template"]); - $tab["active"] = 1; - $_SESSION["s"]["form"]["tab"] = $tab["name"]; - } else { - $tab["active"] = 0; - } - - $frmTab[] = $tab; - } - - // setze Loop - $app->tpl->setLoop("formTab", $frmTab); - - // Formular action setzen - $app->tpl->setVar('form_action', $this->formDef["action"]); - } - - -} - -?> -- GitLab From 4c3fcd94a5ec8361fe900ff841030ebb014a0029 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 16:34:41 +0200 Subject: [PATCH 076/158] Removed obsolete 3.0.4 theme. This theme does not work with the current version anymore. --- install/lib/installer_base.lib.php | 1 + .../web/themes/default-304/css/central.css | 33 - .../default-304/css/navigation/nav_side.css | 125 -- .../default-304/css/navigation/nav_top.css | 116 -- .../default-304/css/patches/central.css | 37 - .../default-304/css/print/print_100.css | 31 - .../themes/default-304/css/screen/basemod.css | 124 -- .../css/screen/basemod_2col_left_seo.css | 48 - .../themes/default-304/css/screen/content.css | 203 ---- .../default-304/css/screen/content_ispc.css | 1045 ----------------- .../css/screen/jquery-ui-custom.css | 7 - .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 182 -> 0 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 124 -> 0 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 123 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 3457 -> 0 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 104 -> 0 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 88 -> 0 bytes .../images/ui-icons_217bc0_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_469bdd_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_6da8d5_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_d8e7f3_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_f9bd01_256x240.png | Bin 5355 -> 0 bytes .../redmond/jquery-ui-1.8.16.custom.css | 444 ------- .../themes/default-304/css/screen/tipsy.css | 25 - .../css/screen/uni-form-generic.css | 136 --- .../default-304/css/screen/uni-form.css | 131 --- .../default-304/icons/device_sprite.png | Bin 10582 -> 0 bytes .../themes/default-304/icons/flags_sprite.png | Bin 88755 -> 0 bytes .../themes/default-304/icons/x12/accept.png | Bin 231 -> 0 bytes .../default-304/icons/x12/accept_blue.png | Bin 484 -> 0 bytes .../default-304/icons/x12/accept_green.png | Bin 250 -> 0 bytes .../icons/x12/arrow_2_left_round.png | Bin 322 -> 0 bytes .../icons/x12/arrow_2_right_round.png | Bin 425 -> 0 bytes .../icons/x12/arrow_left_blue_round.png | Bin 479 -> 0 bytes .../icons/x12/arrow_right_blue_round.png | Bin 479 -> 0 bytes .../themes/default-304/icons/x12/article.png | Bin 255 -> 0 bytes .../default-304/icons/x12/article_text.png | Bin 155 -> 0 bytes .../default-304/icons/x12/bar_graph.png | Bin 205 -> 0 bytes .../themes/default-304/icons/x12/burst.png | Bin 471 -> 0 bytes .../themes/default-304/icons/x12/calendar.png | Bin 138 -> 0 bytes .../default-304/icons/x12/calendar2.png | Bin 247 -> 0 bytes .../themes/default-304/icons/x12/cancel.png | Bin 218 -> 0 bytes .../default-304/icons/x12/cancel_round.png | Bin 440 -> 0 bytes .../themes/default-304/icons/x12/clock.png | Bin 473 -> 0 bytes .../web/themes/default-304/icons/x12/code.png | Bin 401 -> 0 bytes .../default-304/icons/x12/comment_blue.png | Bin 404 -> 0 bytes .../themes/default-304/icons/x12/dollar.png | Bin 130 -> 0 bytes .../default-304/icons/x12/double_comment.png | Bin 288 -> 0 bytes .../themes/default-304/icons/x12/download.png | Bin 309 -> 0 bytes .../themes/default-304/icons/x12/envelope.png | Bin 146 -> 0 bytes .../default-304/icons/x12/flag_black.png | Bin 446 -> 0 bytes .../default-304/icons/x12/flag_blue.png | Bin 511 -> 0 bytes .../default-304/icons/x12/flag_green.png | Bin 512 -> 0 bytes .../default-304/icons/x12/flag_orange.png | Bin 485 -> 0 bytes .../themes/default-304/icons/x12/flag_red.png | Bin 497 -> 0 bytes .../default-304/icons/x12/flag_yellow.png | Bin 504 -> 0 bytes .../themes/default-304/icons/x12/folder.png | Bin 311 -> 0 bytes .../web/themes/default-304/icons/x12/info.png | Bin 446 -> 0 bytes .../web/themes/default-304/icons/x12/link.png | Bin 148 -> 0 bytes .../web/themes/default-304/icons/x12/lock.png | Bin 209 -> 0 bytes .../themes/default-304/icons/x12/magnify.png | Bin 461 -> 0 bytes .../themes/default-304/icons/x12/minus.png | Bin 121 -> 0 bytes .../default-304/icons/x12/minus_round.png | Bin 392 -> 0 bytes .../themes/default-304/icons/x12/money.png | Bin 264 -> 0 bytes .../web/themes/default-304/icons/x12/new.png | Bin 122 -> 0 bytes .../themes/default-304/icons/x12/pencil.png | Bin 301 -> 0 bytes .../themes/default-304/icons/x12/pictures.png | Bin 224 -> 0 bytes .../web/themes/default-304/icons/x12/plus.png | Bin 194 -> 0 bytes .../themes/default-304/icons/x12/printer.png | Bin 233 -> 0 bytes .../default-304/icons/x12/question_blue.png | Bin 487 -> 0 bytes .../themes/default-304/icons/x12/refresh.png | Bin 265 -> 0 bytes .../web/themes/default-304/icons/x12/rss.png | Bin 286 -> 0 bytes .../default-304/icons/x12/rss_round.png | Bin 428 -> 0 bytes .../default-304/icons/x12/security_green.png | Bin 218 -> 0 bytes .../default-304/icons/x12/security_orange.png | Bin 207 -> 0 bytes .../default-304/icons/x12/security_red.png | Bin 202 -> 0 bytes .../web/themes/default-304/icons/x12/star.png | Bin 526 -> 0 bytes .../default-304/icons/x12/star_blue.png | Bin 457 -> 0 bytes .../web/themes/default-304/icons/x12/stop.png | Bin 271 -> 0 bytes .../default-304/icons/x12/stop_round.png | Bin 445 -> 0 bytes .../themes/default-304/icons/x12/upload.png | Bin 271 -> 0 bytes .../themes/default-304/icons/x12/world.png | Bin 567 -> 0 bytes .../themes/default-304/icons/x12/world2.png | Bin 611 -> 0 bytes .../default-304/icons/x16-list/accept.png | Bin 202 -> 0 bytes .../icons/x16-list/accept_blue.png | Bin 466 -> 0 bytes .../icons/x16-list/accept_green.png | Bin 296 -> 0 bytes .../icons/x16-list/arrow_2_left_round.png | Bin 435 -> 0 bytes .../icons/x16-list/arrow_2_right_round.png | Bin 428 -> 0 bytes .../icons/x16-list/arrow_left_blue_round.png | Bin 434 -> 0 bytes .../icons/x16-list/arrow_right_blue_round.png | Bin 436 -> 0 bytes .../default-304/icons/x16-list/article.png | Bin 361 -> 0 bytes .../icons/x16-list/article_text.png | Bin 383 -> 0 bytes .../default-304/icons/x16-list/bar_graph.png | Bin 260 -> 0 bytes .../default-304/icons/x16-list/burst.png | Bin 534 -> 0 bytes .../default-304/icons/x16-list/calendar.png | Bin 335 -> 0 bytes .../default-304/icons/x16-list/calendar2.png | Bin 259 -> 0 bytes .../default-304/icons/x16-list/cancel.png | Bin 228 -> 0 bytes .../icons/x16-list/cancel_round.png | Bin 461 -> 0 bytes .../default-304/icons/x16-list/clock.png | Bin 419 -> 0 bytes .../default-304/icons/x16-list/code.png | Bin 577 -> 0 bytes .../icons/x16-list/comment_blue.png | Bin 328 -> 0 bytes .../default-304/icons/x16-list/dollar.png | Bin 136 -> 0 bytes .../icons/x16-list/double_comment.png | Bin 302 -> 0 bytes .../default-304/icons/x16-list/download.png | Bin 275 -> 0 bytes .../default-304/icons/x16-list/envelope.png | Bin 242 -> 0 bytes .../default-304/icons/x16-list/flag_black.png | Bin 580 -> 0 bytes .../default-304/icons/x16-list/flag_blue.png | Bin 681 -> 0 bytes .../default-304/icons/x16-list/flag_green.png | Bin 684 -> 0 bytes .../icons/x16-list/flag_orange.png | Bin 647 -> 0 bytes .../default-304/icons/x16-list/flag_red.png | Bin 674 -> 0 bytes .../icons/x16-list/flag_yellow.png | Bin 480 -> 0 bytes .../default-304/icons/x16-list/folder.png | Bin 383 -> 0 bytes .../default-304/icons/x16-list/info.png | Bin 432 -> 0 bytes .../default-304/icons/x16-list/link.png | Bin 218 -> 0 bytes .../default-304/icons/x16-list/lock.png | Bin 246 -> 0 bytes .../default-304/icons/x16-list/magnify.png | Bin 446 -> 0 bytes .../default-304/icons/x16-list/minus.png | Bin 123 -> 0 bytes .../icons/x16-list/minus_round.png | Bin 346 -> 0 bytes .../default-304/icons/x16-list/money.png | Bin 328 -> 0 bytes .../themes/default-304/icons/x16-list/new.png | Bin 200 -> 0 bytes .../default-304/icons/x16-list/pencil.png | Bin 212 -> 0 bytes .../default-304/icons/x16-list/pictures.png | Bin 255 -> 0 bytes .../default-304/icons/x16-list/plus.png | Bin 197 -> 0 bytes .../default-304/icons/x16-list/printer.png | Bin 271 -> 0 bytes .../icons/x16-list/question_blue.png | Bin 468 -> 0 bytes .../default-304/icons/x16-list/refresh.png | Bin 150 -> 0 bytes .../themes/default-304/icons/x16-list/rss.png | Bin 243 -> 0 bytes .../default-304/icons/x16-list/rss_round.png | Bin 417 -> 0 bytes .../icons/x16-list/security_green.png | Bin 210 -> 0 bytes .../icons/x16-list/security_orange.png | Bin 215 -> 0 bytes .../icons/x16-list/security_red.png | Bin 221 -> 0 bytes .../default-304/icons/x16-list/star.png | Bin 511 -> 0 bytes .../default-304/icons/x16-list/star_blue.png | Bin 455 -> 0 bytes .../default-304/icons/x16-list/stop.png | Bin 366 -> 0 bytes .../default-304/icons/x16-list/stop_round.png | Bin 436 -> 0 bytes .../default-304/icons/x16-list/upload.png | Bin 265 -> 0 bytes .../default-304/icons/x16-list/world.png | Bin 490 -> 0 bytes .../default-304/icons/x16-list/world2.png | Bin 750 -> 0 bytes .../default-304/icons/x16/address_book.png | Bin 681 -> 0 bytes .../icons/x16/address_book__arrow.png | Bin 732 -> 0 bytes .../icons/x16/address_book__exclamation.png | Bin 767 -> 0 bytes .../icons/x16/address_book__minus.png | Bin 700 -> 0 bytes .../icons/x16/address_book__pencil.png | Bin 763 -> 0 bytes .../icons/x16/address_book__plus.png | Bin 737 -> 0 bytes .../icons/x16/address_book_blue.png | Bin 685 -> 0 bytes .../themes/default-304/icons/x16/arrow.png | Bin 531 -> 0 bytes .../default-304/icons/x16/arrow_000_small.png | Bin 267 -> 0 bytes .../default-304/icons/x16/arrow_045.png | Bin 505 -> 0 bytes .../default-304/icons/x16/arrow_045_small.png | Bin 266 -> 0 bytes .../default-304/icons/x16/arrow_090.png | Bin 512 -> 0 bytes .../default-304/icons/x16/arrow_090_small.png | Bin 256 -> 0 bytes .../default-304/icons/x16/arrow_135.png | Bin 531 -> 0 bytes .../default-304/icons/x16/arrow_135_small.png | Bin 269 -> 0 bytes .../default-304/icons/x16/arrow_180.png | Bin 540 -> 0 bytes .../default-304/icons/x16/arrow_180_small.png | Bin 261 -> 0 bytes .../default-304/icons/x16/arrow_225.png | Bin 529 -> 0 bytes .../default-304/icons/x16/arrow_225_small.png | Bin 272 -> 0 bytes .../default-304/icons/x16/arrow_270.png | Bin 526 -> 0 bytes .../default-304/icons/x16/arrow_270_small.png | Bin 263 -> 0 bytes .../default-304/icons/x16/arrow_315.png | Bin 495 -> 0 bytes .../default-304/icons/x16/arrow_315_small.png | Bin 271 -> 0 bytes .../default-304/icons/x16/arrow_circle.png | Bin 702 -> 0 bytes .../icons/x16/arrow_circle_135.png | Bin 780 -> 0 bytes .../icons/x16/arrow_circle_225.png | Bin 758 -> 0 bytes .../icons/x16/arrow_circle_315.png | Bin 764 -> 0 bytes .../icons/x16/arrow_circle_double.png | Bin 778 -> 0 bytes .../icons/x16/arrow_circle_double_135.png | Bin 802 -> 0 bytes .../default-304/icons/x16/arrow_skip.png | Bin 553 -> 0 bytes .../default-304/icons/x16/arrow_skip_090.png | Bin 515 -> 0 bytes .../default-304/icons/x16/arrow_skip_180.png | Bin 554 -> 0 bytes .../default-304/icons/x16/arrow_skip_270.png | Bin 524 -> 0 bytes .../default-304/icons/x16/arrow_stop.png | Bin 608 -> 0 bytes .../default-304/icons/x16/arrow_stop_090.png | Bin 558 -> 0 bytes .../default-304/icons/x16/arrow_stop_180.png | Bin 615 -> 0 bytes .../default-304/icons/x16/arrow_stop_270.png | Bin 584 -> 0 bytes .../default-304/icons/x16/auction_hammer.png | Bin 568 -> 0 bytes .../icons/x16/auction_hammer__arrow.png | Bin 678 -> 0 bytes .../icons/x16/auction_hammer__exclamation.png | Bin 716 -> 0 bytes .../icons/x16/auction_hammer__minus.png | Bin 597 -> 0 bytes .../icons/x16/auction_hammer__pencil.png | Bin 655 -> 0 bytes .../icons/x16/auction_hammer__plus.png | Bin 638 -> 0 bytes .../icons/x16/auction_hammer_gavel.png | Bin 584 -> 0 bytes .../themes/default-304/icons/x16/balloon.png | Bin 561 -> 0 bytes .../default-304/icons/x16/balloon__arrow.png | Bin 669 -> 0 bytes .../icons/x16/balloon__exclamation.png | Bin 682 -> 0 bytes .../default-304/icons/x16/balloon__minus.png | Bin 605 -> 0 bytes .../default-304/icons/x16/balloon__pencil.png | Bin 662 -> 0 bytes .../default-304/icons/x16/balloon__plus.png | Bin 640 -> 0 bytes .../default-304/icons/x16/balloon_left.png | Bin 560 -> 0 bytes .../default-304/icons/x16/balloon_small.png | Bin 348 -> 0 bytes .../icons/x16/balloon_small_left.png | Bin 350 -> 0 bytes .../themes/default-304/icons/x16/balloons.png | Bin 586 -> 0 bytes .../default-304/icons/x16/balloons_arrow.png | Bin 716 -> 0 bytes .../icons/x16/balloons_exclamation.png | Bin 755 -> 0 bytes .../default-304/icons/x16/balloons_minus.png | Bin 637 -> 0 bytes .../default-304/icons/x16/balloons_pencil.png | Bin 702 -> 0 bytes .../default-304/icons/x16/balloons_plus.png | Bin 680 -> 0 bytes .../themes/default-304/icons/x16/bandaid.png | Bin 711 -> 0 bytes .../default-304/icons/x16/bandaid_arrow.png | Bin 802 -> 0 bytes .../icons/x16/bandaid_exclamation.png | Bin 829 -> 0 bytes .../default-304/icons/x16/bandaid_minus.png | Bin 739 -> 0 bytes .../default-304/icons/x16/bandaid_pencil.png | Bin 777 -> 0 bytes .../default-304/icons/x16/bandaid_plus.png | Bin 776 -> 0 bytes .../default-304/icons/x16/bandaid_small.png | Bin 350 -> 0 bytes .../web/themes/default-304/icons/x16/bank.png | Bin 579 -> 0 bytes .../default-304/icons/x16/bank_arrow.png | Bin 718 -> 0 bytes .../icons/x16/bank_exclamation.png | Bin 759 -> 0 bytes .../default-304/icons/x16/bank_minus.png | Bin 648 -> 0 bytes .../default-304/icons/x16/bank_pencil.png | Bin 707 -> 0 bytes .../default-304/icons/x16/bank_plus.png | Bin 695 -> 0 bytes .../web/themes/default-304/icons/x16/bell.png | Bin 696 -> 0 bytes .../default-304/icons/x16/bell__arrow.png | Bin 816 -> 0 bytes .../icons/x16/bell__exclamation.png | Bin 802 -> 0 bytes .../default-304/icons/x16/bell__minus.png | Bin 732 -> 0 bytes .../default-304/icons/x16/bell__pencil.png | Bin 824 -> 0 bytes .../default-304/icons/x16/bell__plus.png | Bin 772 -> 0 bytes .../default-304/icons/x16/bell_disable.png | Bin 497 -> 0 bytes .../web/themes/default-304/icons/x16/bin.png | Bin 654 -> 0 bytes .../default-304/icons/x16/bin__arrow.png | Bin 746 -> 0 bytes .../icons/x16/bin__exclamation.png | Bin 750 -> 0 bytes .../default-304/icons/x16/bin__minus.png | Bin 697 -> 0 bytes .../default-304/icons/x16/bin__pencil.png | Bin 769 -> 0 bytes .../default-304/icons/x16/bin__plus.png | Bin 729 -> 0 bytes .../themes/default-304/icons/x16/bin_full.png | Bin 809 -> 0 bytes .../default-304/icons/x16/binocular.png | Bin 397 -> 0 bytes .../default-304/icons/x16/binocular_arrow.png | Bin 563 -> 0 bytes .../icons/x16/binocular_exclamation.png | Bin 616 -> 0 bytes .../default-304/icons/x16/binocular_minus.png | Bin 469 -> 0 bytes .../icons/x16/binocular_pencil.png | Bin 558 -> 0 bytes .../default-304/icons/x16/binocular_plus.png | Bin 530 -> 0 bytes .../web/themes/default-304/icons/x16/blog.png | Bin 513 -> 0 bytes .../default-304/icons/x16/blog__arrow.png | Bin 634 -> 0 bytes .../icons/x16/blog__exclamation.png | Bin 658 -> 0 bytes .../default-304/icons/x16/blog__minus.png | Bin 570 -> 0 bytes .../default-304/icons/x16/blog__pencil.png | Bin 647 -> 0 bytes .../default-304/icons/x16/blog__plus.png | Bin 608 -> 0 bytes .../default-304/icons/x16/blog_blue.png | Bin 517 -> 0 bytes .../themes/default-304/icons/x16/blogs.png | Bin 556 -> 0 bytes .../default-304/icons/x16/blogs_arrow.png | Bin 665 -> 0 bytes .../icons/x16/blogs_exclamation.png | Bin 702 -> 0 bytes .../default-304/icons/x16/blogs_minus.png | Bin 593 -> 0 bytes .../default-304/icons/x16/blogs_pencil.png | Bin 653 -> 0 bytes .../default-304/icons/x16/blogs_plus.png | Bin 641 -> 0 bytes .../default-304/icons/x16/blogs_stack.png | Bin 545 -> 0 bytes .../web/themes/default-304/icons/x16/book.png | Bin 391 -> 0 bytes .../default-304/icons/x16/book__arrow.png | Bin 524 -> 0 bytes .../icons/x16/book__exclamation.png | Bin 594 -> 0 bytes .../default-304/icons/x16/book__minus.png | Bin 471 -> 0 bytes .../default-304/icons/x16/book__pencil.png | Bin 598 -> 0 bytes .../default-304/icons/x16/book__plus.png | Bin 494 -> 0 bytes .../default-304/icons/x16/book_brown.png | Bin 383 -> 0 bytes .../default-304/icons/x16/book_small.png | Bin 280 -> 0 bytes .../icons/x16/book_small_brown.png | Bin 275 -> 0 bytes .../themes/default-304/icons/x16/bookmark.png | Bin 500 -> 0 bytes .../default-304/icons/x16/bookmark__arrow.png | Bin 616 -> 0 bytes .../icons/x16/bookmark__exclamation.png | Bin 677 -> 0 bytes .../default-304/icons/x16/bookmark__minus.png | Bin 526 -> 0 bytes .../icons/x16/bookmark__pencil.png | Bin 627 -> 0 bytes .../default-304/icons/x16/bookmark__plus.png | Bin 586 -> 0 bytes .../default-304/icons/x16/bookmark__small.png | Bin 263 -> 0 bytes .../default-304/icons/x16/bookmark_book.png | Bin 520 -> 0 bytes .../icons/x16/bookmark_book_arrow.png | Bin 621 -> 0 bytes .../icons/x16/bookmark_book_exclamation.png | Bin 666 -> 0 bytes .../icons/x16/bookmark_book_minus.png | Bin 576 -> 0 bytes .../icons/x16/bookmark_book_pencil.png | Bin 689 -> 0 bytes .../icons/x16/bookmark_book_plus.png | Bin 603 -> 0 bytes .../icons/x16/bookmark_document.png | Bin 599 -> 0 bytes .../icons/x16/bookmark_document_arrow.png | Bin 678 -> 0 bytes .../x16/bookmark_document_exclamation.png | Bin 719 -> 0 bytes .../icons/x16/bookmark_document_minus.png | Bin 627 -> 0 bytes .../icons/x16/bookmark_document_pencil.png | Bin 727 -> 0 bytes .../icons/x16/bookmark_document_plus.png | Bin 660 -> 0 bytes .../default-304/icons/x16/bookmark_folder.png | Bin 601 -> 0 bytes .../icons/x16/bookmark_folder_arrow.png | Bin 729 -> 0 bytes .../icons/x16/bookmark_folder_exclamation.png | Bin 754 -> 0 bytes .../icons/x16/bookmark_folder_minus.png | Bin 656 -> 0 bytes .../icons/x16/bookmark_folder_pencil.png | Bin 727 -> 0 bytes .../icons/x16/bookmark_folder_plus.png | Bin 710 -> 0 bytes .../themes/default-304/icons/x16/books.png | Bin 498 -> 0 bytes .../default-304/icons/x16/books__arrow.png | Bin 604 -> 0 bytes .../icons/x16/books__exclamation.png | Bin 642 -> 0 bytes .../default-304/icons/x16/books__minus.png | Bin 535 -> 0 bytes .../default-304/icons/x16/books__pencil.png | Bin 626 -> 0 bytes .../default-304/icons/x16/books__plus.png | Bin 579 -> 0 bytes .../default-304/icons/x16/books_brown.png | Bin 508 -> 0 bytes .../default-304/icons/x16/books_stack.png | Bin 446 -> 0 bytes .../web/themes/default-304/icons/x16/box.png | Bin 463 -> 0 bytes .../default-304/icons/x16/box__arrow.png | Bin 598 -> 0 bytes .../icons/x16/box__exclamation.png | Bin 651 -> 0 bytes .../default-304/icons/x16/box__minus.png | Bin 518 -> 0 bytes .../default-304/icons/x16/box__pencil.png | Bin 604 -> 0 bytes .../default-304/icons/x16/box__plus.png | Bin 571 -> 0 bytes .../default-304/icons/x16/box_label.png | Bin 537 -> 0 bytes .../default-304/icons/x16/briefcase.png | Bin 463 -> 0 bytes .../default-304/icons/x16/briefcase_arrow.png | Bin 584 -> 0 bytes .../icons/x16/briefcase_exclamation.png | Bin 636 -> 0 bytes .../default-304/icons/x16/briefcase_minus.png | Bin 516 -> 0 bytes .../icons/x16/briefcase_pencil.png | Bin 598 -> 0 bytes .../default-304/icons/x16/briefcase_plus.png | Bin 555 -> 0 bytes .../themes/default-304/icons/x16/broom.png | Bin 708 -> 0 bytes .../default-304/icons/x16/broom_arrow.png | Bin 776 -> 0 bytes .../icons/x16/broom_exclamation.png | Bin 785 -> 0 bytes .../default-304/icons/x16/broom_minus.png | Bin 720 -> 0 bytes .../default-304/icons/x16/broom_pencil.png | Bin 799 -> 0 bytes .../default-304/icons/x16/broom_plus.png | Bin 755 -> 0 bytes .../default-304/icons/x16/calculator.png | Bin 443 -> 0 bytes .../icons/x16/calculator_arrow.png | Bin 597 -> 0 bytes .../icons/x16/calculator_exclamation.png | Bin 615 -> 0 bytes .../icons/x16/calculator_minus.png | Bin 535 -> 0 bytes .../icons/x16/calculator_pencil.png | Bin 626 -> 0 bytes .../default-304/icons/x16/calculator_plus.png | Bin 562 -> 0 bytes .../themes/default-304/icons/x16/calendar.png | Bin 415 -> 0 bytes .../default-304/icons/x16/calendar__arrow.png | Bin 554 -> 0 bytes .../icons/x16/calendar__exclamation.png | Bin 613 -> 0 bytes .../default-304/icons/x16/calendar__minus.png | Bin 456 -> 0 bytes .../icons/x16/calendar__pencil.png | Bin 561 -> 0 bytes .../default-304/icons/x16/calendar__plus.png | Bin 528 -> 0 bytes .../default-304/icons/x16/calendar_day.png | Bin 489 -> 0 bytes .../default-304/icons/x16/calendar_month.png | Bin 507 -> 0 bytes .../themes/default-304/icons/x16/camera.png | Bin 612 -> 0 bytes .../default-304/icons/x16/camera__arrow.png | Bin 695 -> 0 bytes .../icons/x16/camera__exclamation.png | Bin 722 -> 0 bytes .../default-304/icons/x16/camera__minus.png | Bin 629 -> 0 bytes .../default-304/icons/x16/camera__pencil.png | Bin 666 -> 0 bytes .../default-304/icons/x16/camera__plus.png | Bin 671 -> 0 bytes .../default-304/icons/x16/camera_black.png | Bin 538 -> 0 bytes .../default-304/icons/x16/camera_small.png | Bin 315 -> 0 bytes .../icons/x16/camera_small_black.png | Bin 272 -> 0 bytes .../web/themes/default-304/icons/x16/card.png | Bin 333 -> 0 bytes .../default-304/icons/x16/card__arrow.png | Bin 481 -> 0 bytes .../icons/x16/card__exclamation.png | Bin 546 -> 0 bytes .../default-304/icons/x16/card__minus.png | Bin 371 -> 0 bytes .../default-304/icons/x16/card__pencil.png | Bin 494 -> 0 bytes .../default-304/icons/x16/card__plus.png | Bin 440 -> 0 bytes .../default-304/icons/x16/card_address.png | Bin 483 -> 0 bytes .../default-304/icons/x16/card_small.png | Bin 226 -> 0 bytes .../themes/default-304/icons/x16/cards.png | Bin 407 -> 0 bytes .../default-304/icons/x16/cards__arrow.png | Bin 528 -> 0 bytes .../icons/x16/cards__exclamation.png | Bin 593 -> 0 bytes .../default-304/icons/x16/cards__minus.png | Bin 449 -> 0 bytes .../default-304/icons/x16/cards__pencil.png | Bin 554 -> 0 bytes .../default-304/icons/x16/cards__plus.png | Bin 490 -> 0 bytes .../default-304/icons/x16/cards_address.png | Bin 553 -> 0 bytes .../default-304/icons/x16/cards_stack.png | Bin 375 -> 0 bytes .../themes/default-304/icons/x16/cassette.png | Bin 398 -> 0 bytes .../default-304/icons/x16/cassette_arrow.png | Bin 527 -> 0 bytes .../icons/x16/cassette_exclamation.png | Bin 578 -> 0 bytes .../default-304/icons/x16/cassette_minus.png | Bin 440 -> 0 bytes .../default-304/icons/x16/cassette_pencil.png | Bin 524 -> 0 bytes .../default-304/icons/x16/cassette_plus.png | Bin 490 -> 0 bytes .../default-304/icons/x16/cassette_small.png | Bin 192 -> 0 bytes .../themes/default-304/icons/x16/chain.png | Bin 358 -> 0 bytes .../default-304/icons/x16/chain_arrow.png | Bin 533 -> 0 bytes .../icons/x16/chain_exclamation.png | Bin 584 -> 0 bytes .../default-304/icons/x16/chain_minus.png | Bin 398 -> 0 bytes .../default-304/icons/x16/chain_pencil.png | Bin 520 -> 0 bytes .../default-304/icons/x16/chain_plus.png | Bin 474 -> 0 bytes .../default-304/icons/x16/chain_small.png | Bin 214 -> 0 bytes .../default-304/icons/x16/chain_unchain.png | Bin 515 -> 0 bytes .../default-304/icons/x16/clipboard.png | Bin 440 -> 0 bytes .../icons/x16/clipboard__arrow.png | Bin 569 -> 0 bytes .../icons/x16/clipboard__exclamation.png | Bin 621 -> 0 bytes .../icons/x16/clipboard__minus.png | Bin 489 -> 0 bytes .../icons/x16/clipboard__pencil.png | Bin 594 -> 0 bytes .../default-304/icons/x16/clipboard__plus.png | Bin 549 -> 0 bytes .../default-304/icons/x16/clipboard_empty.png | Bin 492 -> 0 bytes .../default-304/icons/x16/clipboard_text.png | Bin 476 -> 0 bytes .../themes/default-304/icons/x16/clock.png | Bin 603 -> 0 bytes .../default-304/icons/x16/clock__arrow.png | Bin 694 -> 0 bytes .../icons/x16/clock__exclamation.png | Bin 736 -> 0 bytes .../default-304/icons/x16/clock__minus.png | Bin 648 -> 0 bytes .../default-304/icons/x16/clock__pencil.png | Bin 685 -> 0 bytes .../default-304/icons/x16/clock__plus.png | Bin 674 -> 0 bytes .../default-304/icons/x16/clock_fill.png | Bin 628 -> 0 bytes .../default-304/icons/x16/clock_frame.png | Bin 749 -> 0 bytes .../default-304/icons/x16/clock_small.png | Bin 308 -> 0 bytes .../themes/default-304/icons/x16/color.png | Bin 725 -> 0 bytes .../default-304/icons/x16/color_arrow.png | Bin 777 -> 0 bytes .../icons/x16/color_exclamation.png | Bin 793 -> 0 bytes .../default-304/icons/x16/color_minus.png | Bin 733 -> 0 bytes .../default-304/icons/x16/color_pencil.png | Bin 817 -> 0 bytes .../default-304/icons/x16/color_plus.png | Bin 762 -> 0 bytes .../default-304/icons/x16/color_small.png | Bin 411 -> 0 bytes .../themes/default-304/icons/x16/contrast.png | Bin 631 -> 0 bytes .../default-304/icons/x16/contrast__arrow.png | Bin 706 -> 0 bytes .../icons/x16/contrast__exclamation.png | Bin 748 -> 0 bytes .../default-304/icons/x16/contrast__minus.png | Bin 658 -> 0 bytes .../icons/x16/contrast__pencil.png | Bin 744 -> 0 bytes .../default-304/icons/x16/contrast__plus.png | Bin 691 -> 0 bytes .../default-304/icons/x16/contrast_low.png | Bin 647 -> 0 bytes .../default-304/icons/x16/contrast_small.png | Bin 340 -> 0 bytes .../icons/x16/contrast_small_low.png | Bin 362 -> 0 bytes .../themes/default-304/icons/x16/cross.png | Bin 426 -> 0 bytes .../default-304/icons/x16/cross_circle.png | Bin 610 -> 0 bytes .../icons/x16/cross_circle_frame.png | Bin 747 -> 0 bytes .../default-304/icons/x16/cross_shield.png | Bin 667 -> 0 bytes .../default-304/icons/x16/cross_small.png | Bin 205 -> 0 bytes .../icons/x16/cross_small_circle.png | Bin 251 -> 0 bytes .../themes/default-304/icons/x16/crown.png | Bin 645 -> 0 bytes .../default-304/icons/x16/crown__arrow.png | Bin 696 -> 0 bytes .../icons/x16/crown__exclamation.png | Bin 719 -> 0 bytes .../default-304/icons/x16/crown__minus.png | Bin 662 -> 0 bytes .../default-304/icons/x16/crown__pencil.png | Bin 718 -> 0 bytes .../default-304/icons/x16/crown__plus.png | Bin 685 -> 0 bytes .../default-304/icons/x16/crown_bronze.png | Bin 643 -> 0 bytes .../default-304/icons/x16/crown_silver.png | Bin 621 -> 0 bytes .../themes/default-304/icons/x16/database.png | Bin 399 -> 0 bytes .../default-304/icons/x16/database_arrow.png | Bin 523 -> 0 bytes .../icons/x16/database_exclamation.png | Bin 592 -> 0 bytes .../default-304/icons/x16/database_minus.png | Bin 456 -> 0 bytes .../default-304/icons/x16/database_pencil.png | Bin 567 -> 0 bytes .../default-304/icons/x16/database_plus.png | Bin 498 -> 0 bytes .../default-304/icons/x16/database_small.png | Bin 287 -> 0 bytes .../default-304/icons/x16/databases.png | Bin 457 -> 0 bytes .../default-304/icons/x16/databases_arrow.png | Bin 579 -> 0 bytes .../icons/x16/databases_exclamation.png | Bin 630 -> 0 bytes .../default-304/icons/x16/databases_minus.png | Bin 498 -> 0 bytes .../icons/x16/databases_pencil.png | Bin 570 -> 0 bytes .../default-304/icons/x16/databases_plus.png | Bin 548 -> 0 bytes .../web/themes/default-304/icons/x16/disc.png | Bin 756 -> 0 bytes .../default-304/icons/x16/disc_arrow.png | Bin 811 -> 0 bytes .../icons/x16/disc_exclamation.png | Bin 834 -> 0 bytes .../default-304/icons/x16/disc_minus.png | Bin 782 -> 0 bytes .../default-304/icons/x16/disc_pencil.png | Bin 814 -> 0 bytes .../default-304/icons/x16/disc_plus.png | Bin 797 -> 0 bytes .../default-304/icons/x16/disc_small.png | Bin 390 -> 0 bytes .../themes/default-304/icons/x16/discs.png | Bin 699 -> 0 bytes .../default-304/icons/x16/discs_arrow.png | Bin 818 -> 0 bytes .../icons/x16/discs_exclamation.png | Bin 830 -> 0 bytes .../default-304/icons/x16/discs_minus.png | Bin 739 -> 0 bytes .../default-304/icons/x16/discs_pencil.png | Bin 784 -> 0 bytes .../default-304/icons/x16/discs_plus.png | Bin 781 -> 0 bytes .../web/themes/default-304/icons/x16/disk.png | Bin 485 -> 0 bytes .../default-304/icons/x16/disk__arrow.png | Bin 623 -> 0 bytes .../icons/x16/disk__exclamation.png | Bin 686 -> 0 bytes .../default-304/icons/x16/disk__minus.png | Bin 544 -> 0 bytes .../default-304/icons/x16/disk__pencil.png | Bin 636 -> 0 bytes .../default-304/icons/x16/disk__plus.png | Bin 597 -> 0 bytes .../default-304/icons/x16/disk_black.png | Bin 408 -> 0 bytes .../default-304/icons/x16/disk_small.png | Bin 324 -> 0 bytes .../icons/x16/disk_small_black.png | Bin 295 -> 0 bytes .../themes/default-304/icons/x16/disks.png | Bin 502 -> 0 bytes .../default-304/icons/x16/disks__arrow.png | Bin 621 -> 0 bytes .../icons/x16/disks__exclamation.png | Bin 652 -> 0 bytes .../default-304/icons/x16/disks__minus.png | Bin 541 -> 0 bytes .../default-304/icons/x16/disks__pencil.png | Bin 607 -> 0 bytes .../default-304/icons/x16/disks__plus.png | Bin 594 -> 0 bytes .../default-304/icons/x16/disks_black.png | Bin 429 -> 0 bytes .../themes/default-304/icons/x16/document.png | Bin 465 -> 0 bytes .../default-304/icons/x16/document__arrow.png | Bin 591 -> 0 bytes .../icons/x16/document__exclamation.png | Bin 634 -> 0 bytes .../default-304/icons/x16/document__minus.png | Bin 508 -> 0 bytes .../icons/x16/document__pencil.png | Bin 605 -> 0 bytes .../default-304/icons/x16/document__plus.png | Bin 555 -> 0 bytes .../icons/x16/document_horizontal.png | Bin 390 -> 0 bytes .../icons/x16/document_horizontal_text.png | Bin 505 -> 0 bytes .../default-304/icons/x16/document_music.png | Bin 581 -> 0 bytes .../icons/x16/document_music_playlist.png | Bin 599 -> 0 bytes .../default-304/icons/x16/document_shred.png | Bin 594 -> 0 bytes .../default-304/icons/x16/document_small.png | Bin 291 -> 0 bytes .../default-304/icons/x16/document_text.png | Bin 583 -> 0 bytes .../icons/x16/document_text_image.png | Bin 619 -> 0 bytes .../default-304/icons/x16/document_zipper.png | Bin 534 -> 0 bytes .../default-304/icons/x16/documents.png | Bin 514 -> 0 bytes .../default-304/icons/x16/documents_arrow.png | Bin 633 -> 0 bytes .../icons/x16/documents_exclamation.png | Bin 669 -> 0 bytes .../default-304/icons/x16/documents_minus.png | Bin 549 -> 0 bytes .../icons/x16/documents_pencil.png | Bin 617 -> 0 bytes .../default-304/icons/x16/documents_plus.png | Bin 601 -> 0 bytes .../default-304/icons/x16/documents_stack.png | Bin 499 -> 0 bytes .../default-304/icons/x16/documents_text.png | Bin 606 -> 0 bytes .../web/themes/default-304/icons/x16/door.png | Bin 471 -> 0 bytes .../default-304/icons/x16/door_arrow.png | Bin 609 -> 0 bytes .../icons/x16/door_exclamation.png | Bin 606 -> 0 bytes .../default-304/icons/x16/door_minus.png | Bin 535 -> 0 bytes .../default-304/icons/x16/door_pencil.png | Bin 637 -> 0 bytes .../default-304/icons/x16/door_plus.png | Bin 574 -> 0 bytes .../themes/default-304/icons/x16/drawer.png | Bin 631 -> 0 bytes .../default-304/icons/x16/drawer_arrow.png | Bin 737 -> 0 bytes .../icons/x16/drawer_exclamation.png | Bin 724 -> 0 bytes .../default-304/icons/x16/drawer_minus.png | Bin 658 -> 0 bytes .../default-304/icons/x16/drawer_pencil.png | Bin 749 -> 0 bytes .../default-304/icons/x16/drawer_plus.png | Bin 710 -> 0 bytes .../themes/default-304/icons/x16/drill.png | Bin 637 -> 0 bytes .../default-304/icons/x16/drill_arrow.png | Bin 764 -> 0 bytes .../icons/x16/drill_exclamation.png | Bin 798 -> 0 bytes .../default-304/icons/x16/drill_minus.png | Bin 675 -> 0 bytes .../default-304/icons/x16/drill_pencil.png | Bin 737 -> 0 bytes .../default-304/icons/x16/drill_plus.png | Bin 726 -> 0 bytes .../themes/default-304/icons/x16/envelope.png | Bin 445 -> 0 bytes .../default-304/icons/x16/envelope_arrow.png | Bin 570 -> 0 bytes .../icons/x16/envelope_exclamation.png | Bin 593 -> 0 bytes .../default-304/icons/x16/envelope_minus.png | Bin 498 -> 0 bytes .../default-304/icons/x16/envelope_pencil.png | Bin 603 -> 0 bytes .../default-304/icons/x16/envelope_plus.png | Bin 540 -> 0 bytes .../default-304/icons/x16/equalizer.png | Bin 425 -> 0 bytes .../default-304/icons/x16/equalizer_arrow.png | Bin 573 -> 0 bytes .../icons/x16/equalizer_exclamation.png | Bin 610 -> 0 bytes .../default-304/icons/x16/equalizer_minus.png | Bin 471 -> 0 bytes .../icons/x16/equalizer_pencil.png | Bin 577 -> 0 bytes .../default-304/icons/x16/equalizer_plus.png | Bin 535 -> 0 bytes .../themes/default-304/icons/x16/eraser.png | Bin 638 -> 0 bytes .../default-304/icons/x16/eraser_arrow.png | Bin 729 -> 0 bytes .../icons/x16/eraser_exclamation.png | Bin 735 -> 0 bytes .../default-304/icons/x16/eraser_minus.png | Bin 659 -> 0 bytes .../default-304/icons/x16/eraser_pencil.png | Bin 779 -> 0 bytes .../default-304/icons/x16/eraser_plus.png | Bin 709 -> 0 bytes .../default-304/icons/x16/exclamation.png | Bin 559 -> 0 bytes .../icons/x16/exclamation_frame.png | Bin 537 -> 0 bytes .../icons/x16/exclamation_shield.png | Bin 697 -> 0 bytes .../icons/x16/exclamation_small.png | Bin 327 -> 0 bytes .../web/themes/default-304/icons/x16/feed.png | Bin 649 -> 0 bytes .../default-304/icons/x16/feed__arrow.png | Bin 710 -> 0 bytes .../icons/x16/feed__exclamation.png | Bin 716 -> 0 bytes .../default-304/icons/x16/feed__minus.png | Bin 662 -> 0 bytes .../default-304/icons/x16/feed__pencil.png | Bin 753 -> 0 bytes .../default-304/icons/x16/feed__plus.png | Bin 701 -> 0 bytes .../default-304/icons/x16/feed_balloon.png | Bin 683 -> 0 bytes .../default-304/icons/x16/feed_small.png | Bin 365 -> 0 bytes .../web/themes/default-304/icons/x16/film.png | Bin 613 -> 0 bytes .../default-304/icons/x16/film_arrow.png | Bin 718 -> 0 bytes .../icons/x16/film_exclamation.png | Bin 750 -> 0 bytes .../default-304/icons/x16/film_minus.png | Bin 656 -> 0 bytes .../default-304/icons/x16/film_pencil.png | Bin 715 -> 0 bytes .../default-304/icons/x16/film_plus.png | Bin 700 -> 0 bytes .../default-304/icons/x16/film_small.png | Bin 299 -> 0 bytes .../themes/default-304/icons/x16/films.png | Bin 554 -> 0 bytes .../default-304/icons/x16/films_arrow.png | Bin 658 -> 0 bytes .../icons/x16/films_exclamation.png | Bin 709 -> 0 bytes .../default-304/icons/x16/films_minus.png | Bin 580 -> 0 bytes .../default-304/icons/x16/films_pencil.png | Bin 668 -> 0 bytes .../default-304/icons/x16/films_plus.png | Bin 625 -> 0 bytes .../web/themes/default-304/icons/x16/flag.png | Bin 652 -> 0 bytes .../default-304/icons/x16/flag_arrow.png | Bin 755 -> 0 bytes .../icons/x16/flag_exclamation.png | Bin 796 -> 0 bytes .../default-304/icons/x16/flag_minus.png | Bin 674 -> 0 bytes .../default-304/icons/x16/flag_pencil.png | Bin 735 -> 0 bytes .../default-304/icons/x16/flag_plus.png | Bin 729 -> 0 bytes .../themes/default-304/icons/x16/folder.png | Bin 438 -> 0 bytes .../default-304/icons/x16/folder__arrow.png | Bin 592 -> 0 bytes .../icons/x16/folder__exclamation.png | Bin 596 -> 0 bytes .../default-304/icons/x16/folder__minus.png | Bin 500 -> 0 bytes .../default-304/icons/x16/folder__pencil.png | Bin 577 -> 0 bytes .../default-304/icons/x16/folder__plus.png | Bin 535 -> 0 bytes .../default-304/icons/x16/folder_open.png | Bin 639 -> 0 bytes .../icons/x16/folder_open_document.png | Bin 654 -> 0 bytes .../icons/x16/folder_open_document_music.png | Bin 720 -> 0 bytes .../folder_open_document_music_playlist.png | Bin 736 -> 0 bytes .../icons/x16/folder_open_document_text.png | Bin 706 -> 0 bytes .../icons/x16/folder_open_film.png | Bin 710 -> 0 bytes .../icons/x16/folder_open_image.png | Bin 762 -> 0 bytes .../default-304/icons/x16/folder_shred.png | Bin 578 -> 0 bytes .../default-304/icons/x16/folder_small.png | Bin 308 -> 0 bytes .../default-304/icons/x16/folder_zipper.png | Bin 569 -> 0 bytes .../themes/default-304/icons/x16/folders.png | Bin 522 -> 0 bytes .../default-304/icons/x16/folders_arrow.png | Bin 625 -> 0 bytes .../icons/x16/folders_exclamation.png | Bin 653 -> 0 bytes .../default-304/icons/x16/folders_minus.png | Bin 564 -> 0 bytes .../default-304/icons/x16/folders_pencil.png | Bin 639 -> 0 bytes .../default-304/icons/x16/folders_plus.png | Bin 612 -> 0 bytes .../default-304/icons/x16/folders_stack.png | Bin 502 -> 0 bytes .../themes/default-304/icons/x16/funnel.png | Bin 537 -> 0 bytes .../default-304/icons/x16/funnel_arrow.png | Bin 656 -> 0 bytes .../icons/x16/funnel_exclamation.png | Bin 706 -> 0 bytes .../default-304/icons/x16/funnel_minus.png | Bin 579 -> 0 bytes .../default-304/icons/x16/funnel_pencil.png | Bin 662 -> 0 bytes .../default-304/icons/x16/funnel_plus.png | Bin 624 -> 0 bytes .../default-304/icons/x16/funnel_small.png | Bin 304 -> 0 bytes .../web/themes/default-304/icons/x16/gear.png | Bin 590 -> 0 bytes .../default-304/icons/x16/gear__arrow.png | Bin 704 -> 0 bytes .../icons/x16/gear__exclamation.png | Bin 758 -> 0 bytes .../default-304/icons/x16/gear__minus.png | Bin 654 -> 0 bytes .../default-304/icons/x16/gear__pencil.png | Bin 703 -> 0 bytes .../default-304/icons/x16/gear__plus.png | Bin 687 -> 0 bytes .../default-304/icons/x16/gear_disable.png | Bin 497 -> 0 bytes .../default-304/icons/x16/gear_small.png | Bin 336 -> 0 bytes .../themes/default-304/icons/x16/hammer.png | Bin 506 -> 0 bytes .../default-304/icons/x16/hammer__arrow.png | Bin 671 -> 0 bytes .../icons/x16/hammer__exclamation.png | Bin 709 -> 0 bytes .../default-304/icons/x16/hammer__minus.png | Bin 556 -> 0 bytes .../default-304/icons/x16/hammer__pencil.png | Bin 628 -> 0 bytes .../default-304/icons/x16/hammer__plus.png | Bin 618 -> 0 bytes .../default-304/icons/x16/hammer_left.png | Bin 554 -> 0 bytes .../icons/x16/hammer_screwdriver.png | Bin 715 -> 0 bytes .../themes/default-304/icons/x16/heart.png | Bin 630 -> 0 bytes .../default-304/icons/x16/heart__arrow.png | Bin 732 -> 0 bytes .../icons/x16/heart__exclamation.png | Bin 767 -> 0 bytes .../default-304/icons/x16/heart__minus.png | Bin 656 -> 0 bytes .../default-304/icons/x16/heart__pencil.png | Bin 718 -> 0 bytes .../default-304/icons/x16/heart__plus.png | Bin 700 -> 0 bytes .../default-304/icons/x16/heart_break.png | Bin 697 -> 0 bytes .../default-304/icons/x16/heart_empty.png | Bin 514 -> 0 bytes .../default-304/icons/x16/heart_half.png | Bin 721 -> 0 bytes .../default-304/icons/x16/heart_small.png | Bin 294 -> 0 bytes .../icons/x16/heart_small_empty.png | Bin 252 -> 0 bytes .../icons/x16/heart_small_half.png | Bin 321 -> 0 bytes .../web/themes/default-304/icons/x16/home.png | Bin 626 -> 0 bytes .../default-304/icons/x16/home_arrow.png | Bin 719 -> 0 bytes .../icons/x16/home_exclamation.png | Bin 773 -> 0 bytes .../default-304/icons/x16/home_minus.png | Bin 658 -> 0 bytes .../default-304/icons/x16/home_pencil.png | Bin 716 -> 0 bytes .../default-304/icons/x16/home_plus.png | Bin 703 -> 0 bytes .../default-304/icons/x16/home_small.png | Bin 320 -> 0 bytes .../themes/default-304/icons/x16/image.png | Bin 523 -> 0 bytes .../default-304/icons/x16/image_arrow.png | Bin 620 -> 0 bytes .../icons/x16/image_exclamation.png | Bin 652 -> 0 bytes .../default-304/icons/x16/image_minus.png | Bin 553 -> 0 bytes .../default-304/icons/x16/image_pencil.png | Bin 648 -> 0 bytes .../default-304/icons/x16/image_plus.png | Bin 606 -> 0 bytes .../default-304/icons/x16/image_resize.png | Bin 503 -> 0 bytes .../icons/x16/image_resize_actual.png | Bin 532 -> 0 bytes .../default-304/icons/x16/image_small.png | Bin 288 -> 0 bytes .../icons/x16/image_small_sunset.png | Bin 276 -> 0 bytes .../default-304/icons/x16/image_sunset.png | Bin 481 -> 0 bytes .../themes/default-304/icons/x16/images.png | Bin 604 -> 0 bytes .../default-304/icons/x16/images_arrow.png | Bin 670 -> 0 bytes .../icons/x16/images_exclamation.png | Bin 703 -> 0 bytes .../default-304/icons/x16/images_minus.png | Bin 625 -> 0 bytes .../default-304/icons/x16/images_pencil.png | Bin 678 -> 0 bytes .../default-304/icons/x16/images_plus.png | Bin 653 -> 0 bytes .../default-304/icons/x16/images_stack.png | Bin 547 -> 0 bytes .../themes/default-304/icons/x16/inbox.png | Bin 425 -> 0 bytes .../default-304/icons/x16/inbox_arrow.png | Bin 548 -> 0 bytes .../icons/x16/inbox_exclamation.png | Bin 614 -> 0 bytes .../default-304/icons/x16/inbox_minus.png | Bin 463 -> 0 bytes .../default-304/icons/x16/inbox_pencil.png | Bin 562 -> 0 bytes .../default-304/icons/x16/inbox_plus.png | Bin 515 -> 0 bytes .../default-304/icons/x16/information.png | Bin 636 -> 0 bytes .../icons/x16/information_frame.png | Bin 771 -> 0 bytes .../icons/x16/information_shield.png | Bin 701 -> 0 bytes .../icons/x16/information_small.png | Bin 265 -> 0 bytes .../web/themes/default-304/icons/x16/key.png | Bin 577 -> 0 bytes .../default-304/icons/x16/key__arrow.png | Bin 715 -> 0 bytes .../icons/x16/key__exclamation.png | Bin 759 -> 0 bytes .../default-304/icons/x16/key__minus.png | Bin 653 -> 0 bytes .../default-304/icons/x16/key__pencil.png | Bin 718 -> 0 bytes .../default-304/icons/x16/key__plus.png | Bin 704 -> 0 bytes .../default-304/icons/x16/key_disable.png | Bin 452 -> 0 bytes .../themes/default-304/icons/x16/layout.png | Bin 246 -> 0 bytes .../themes/default-304/icons/x16/layout_2.png | Bin 308 -> 0 bytes .../default-304/icons/x16/layout_2_equal.png | Bin 296 -> 0 bytes .../themes/default-304/icons/x16/layout_3.png | Bin 278 -> 0 bytes .../default-304/icons/x16/layout_3_mix.png | Bin 336 -> 0 bytes .../default-304/icons/x16/layout_header.png | Bin 257 -> 0 bytes .../default-304/icons/x16/layout_header_2.png | Bin 324 -> 0 bytes .../icons/x16/layout_header_2_equal.png | Bin 313 -> 0 bytes .../default-304/icons/x16/layout_header_3.png | Bin 295 -> 0 bytes .../icons/x16/layout_header_3_mix.png | Bin 354 -> 0 bytes .../icons/x16/layout_header_footer.png | Bin 270 -> 0 bytes .../icons/x16/layout_header_footer_2.png | Bin 318 -> 0 bytes .../x16/layout_header_footer_2_equal.png | Bin 318 -> 0 bytes .../icons/x16/layout_header_footer_3.png | Bin 292 -> 0 bytes .../icons/x16/layout_header_footer_3_mix.png | Bin 346 -> 0 bytes .../default-304/icons/x16/layout_join.png | Bin 365 -> 0 bytes .../default-304/icons/x16/layout_split.png | Bin 437 -> 0 bytes .../themes/default-304/icons/x16/lifebuoy.png | Bin 671 -> 0 bytes .../default-304/icons/x16/lifebuoy_arrow.png | Bin 784 -> 0 bytes .../icons/x16/lifebuoy_exclamation.png | Bin 830 -> 0 bytes .../default-304/icons/x16/lifebuoy_minus.png | Bin 716 -> 0 bytes .../default-304/icons/x16/lifebuoy_pencil.png | Bin 771 -> 0 bytes .../default-304/icons/x16/lifebuoy_plus.png | Bin 755 -> 0 bytes .../default-304/icons/x16/light_bulb.png | Bin 660 -> 0 bytes .../icons/x16/light_bulb__arrow.png | Bin 732 -> 0 bytes .../icons/x16/light_bulb__exclamation.png | Bin 751 -> 0 bytes .../icons/x16/light_bulb__minus.png | Bin 691 -> 0 bytes .../icons/x16/light_bulb__pencil.png | Bin 722 -> 0 bytes .../icons/x16/light_bulb__plus.png | Bin 712 -> 0 bytes .../default-304/icons/x16/light_bulb_off.png | Bin 690 -> 0 bytes .../icons/x16/light_bulb_small.png | Bin 247 -> 0 bytes .../icons/x16/light_bulb_small_off.png | Bin 251 -> 0 bytes .../default-304/icons/x16/lightning.png | Bin 606 -> 0 bytes .../icons/x16/lightning__arrow.png | Bin 703 -> 0 bytes .../icons/x16/lightning__exclamation.png | Bin 714 -> 0 bytes .../icons/x16/lightning__minus.png | Bin 643 -> 0 bytes .../icons/x16/lightning__pencil.png | Bin 690 -> 0 bytes .../default-304/icons/x16/lightning__plus.png | Bin 679 -> 0 bytes .../icons/x16/lightning_disable.png | Bin 553 -> 0 bytes .../default-304/icons/x16/lightning_small.png | Bin 304 -> 0 bytes .../themes/default-304/icons/x16/loading.gif | Bin 1460 -> 0 bytes .../web/themes/default-304/icons/x16/lock.png | Bin 560 -> 0 bytes .../default-304/icons/x16/lock__arrow.png | Bin 656 -> 0 bytes .../icons/x16/lock__exclamation.png | Bin 676 -> 0 bytes .../default-304/icons/x16/lock__minus.png | Bin 597 -> 0 bytes .../default-304/icons/x16/lock__pencil.png | Bin 661 -> 0 bytes .../default-304/icons/x16/lock__plus.png | Bin 638 -> 0 bytes .../default-304/icons/x16/lock_disable.png | Bin 464 -> 0 bytes .../default-304/icons/x16/lock_small.png | Bin 307 -> 0 bytes .../default-304/icons/x16/lock_unlock.png | Bin 575 -> 0 bytes .../themes/default-304/icons/x16/logout.png | Bin 802 -> 0 bytes .../themes/default-304/icons/x16/magnet.png | Bin 580 -> 0 bytes .../default-304/icons/x16/magnet__arrow.png | Bin 705 -> 0 bytes .../icons/x16/magnet__exclamation.png | Bin 771 -> 0 bytes .../default-304/icons/x16/magnet__minus.png | Bin 624 -> 0 bytes .../default-304/icons/x16/magnet__pencil.png | Bin 727 -> 0 bytes .../default-304/icons/x16/magnet__plus.png | Bin 680 -> 0 bytes .../default-304/icons/x16/magnet_disable.png | Bin 468 -> 0 bytes .../default-304/icons/x16/magnet_small.png | Bin 292 -> 0 bytes .../default-304/icons/x16/magnifier.png | Bin 622 -> 0 bytes .../icons/x16/magnifier__arrow.png | Bin 726 -> 0 bytes .../icons/x16/magnifier__exclamation.png | Bin 759 -> 0 bytes .../icons/x16/magnifier__minus.png | Bin 657 -> 0 bytes .../icons/x16/magnifier__pencil.png | Bin 702 -> 0 bytes .../default-304/icons/x16/magnifier__plus.png | Bin 698 -> 0 bytes .../default-304/icons/x16/magnifier_left.png | Bin 634 -> 0 bytes .../icons/x16/magnifier_medium.png | Bin 452 -> 0 bytes .../icons/x16/magnifier_medium_left.png | Bin 455 -> 0 bytes .../default-304/icons/x16/magnifier_small.png | Bin 301 -> 0 bytes .../default-304/icons/x16/magnifier_zoom.png | Bin 700 -> 0 bytes .../icons/x16/magnifier_zoom_actual.png | Bin 709 -> 0 bytes .../icons/x16/magnifier_zoom_fit.png | Bin 687 -> 0 bytes .../icons/x16/magnifier_zoom_out.png | Bin 676 -> 0 bytes .../web/themes/default-304/icons/x16/mail.png | Bin 411 -> 0 bytes .../default-304/icons/x16/mail__arrow.png | Bin 537 -> 0 bytes .../icons/x16/mail__exclamation.png | Bin 596 -> 0 bytes .../default-304/icons/x16/mail__minus.png | Bin 455 -> 0 bytes .../default-304/icons/x16/mail__pencil.png | Bin 550 -> 0 bytes .../default-304/icons/x16/mail__plus.png | Bin 500 -> 0 bytes .../default-304/icons/x16/mail_open.png | Bin 671 -> 0 bytes .../icons/x16/mail_open_document.png | Bin 621 -> 0 bytes .../default-304/icons/x16/mail_open_film.png | Bin 694 -> 0 bytes .../default-304/icons/x16/mail_open_image.png | Bin 678 -> 0 bytes .../default-304/icons/x16/mail_small.png | Bin 230 -> 0 bytes .../themes/default-304/icons/x16/mails.png | Bin 473 -> 0 bytes .../default-304/icons/x16/mails_arrow.png | Bin 573 -> 0 bytes .../icons/x16/mails_exclamation.png | Bin 633 -> 0 bytes .../default-304/icons/x16/mails_minus.png | Bin 517 -> 0 bytes .../default-304/icons/x16/mails_pencil.png | Bin 591 -> 0 bytes .../default-304/icons/x16/mails_plus.png | Bin 550 -> 0 bytes .../default-304/icons/x16/mails_stack.png | Bin 430 -> 0 bytes .../default-304/icons/x16/media_player.png | Bin 595 -> 0 bytes .../icons/x16/media_player__arrow.png | Bin 700 -> 0 bytes .../icons/x16/media_player__exclamation.png | Bin 734 -> 0 bytes .../icons/x16/media_player__minus.png | Bin 641 -> 0 bytes .../icons/x16/media_player__pencil.png | Bin 716 -> 0 bytes .../icons/x16/media_player__plus.png | Bin 682 -> 0 bytes .../icons/x16/media_player_black.png | Bin 513 -> 0 bytes .../icons/x16/media_player_medium.png | Bin 569 -> 0 bytes .../icons/x16/media_player_medium_black.png | Bin 532 -> 0 bytes .../icons/x16/media_player_medium_blue.png | Bin 602 -> 0 bytes .../icons/x16/media_player_medium_green.png | Bin 615 -> 0 bytes .../icons/x16/media_player_medium_pink.png | Bin 614 -> 0 bytes .../icons/x16/media_player_medium_red.png | Bin 588 -> 0 bytes .../icons/x16/media_player_small.png | Bin 420 -> 0 bytes .../icons/x16/media_player_small_blue.png | Bin 449 -> 0 bytes .../icons/x16/media_player_small_green.png | Bin 470 -> 0 bytes .../icons/x16/media_player_small_purple.png | Bin 446 -> 0 bytes .../icons/x16/media_player_small_red.png | Bin 471 -> 0 bytes .../default-304/icons/x16/media_players.png | Bin 669 -> 0 bytes .../icons/x16/media_players_arrow.png | Bin 746 -> 0 bytes .../icons/x16/media_players_exclamation.png | Bin 771 -> 0 bytes .../icons/x16/media_players_minus.png | Bin 689 -> 0 bytes .../icons/x16/media_players_pencil.png | Bin 734 -> 0 bytes .../icons/x16/media_players_plus.png | Bin 722 -> 0 bytes .../default-304/icons/x16/microphone.png | Bin 616 -> 0 bytes .../icons/x16/microphone_arrow.png | Bin 749 -> 0 bytes .../icons/x16/microphone_exclamation.png | Bin 771 -> 0 bytes .../icons/x16/microphone_minus.png | Bin 685 -> 0 bytes .../icons/x16/microphone_pencil.png | Bin 745 -> 0 bytes .../default-304/icons/x16/microphone_plus.png | Bin 723 -> 0 bytes .../themes/default-304/icons/x16/minus.png | Bin 221 -> 0 bytes .../default-304/icons/x16/minus_circle.png | Bin 570 -> 0 bytes .../icons/x16/minus_circle_frame.png | Bin 740 -> 0 bytes .../default-304/icons/x16/minus_shield.png | Bin 646 -> 0 bytes .../default-304/icons/x16/minus_small.png | Bin 138 -> 0 bytes .../icons/x16/minus_small_circle.png | Bin 261 -> 0 bytes .../themes/default-304/icons/x16/music.png | Bin 427 -> 0 bytes .../default-304/icons/x16/music_arrow.png | Bin 593 -> 0 bytes .../icons/x16/music_exclamation.png | Bin 660 -> 0 bytes .../default-304/icons/x16/music_minus.png | Bin 512 -> 0 bytes .../default-304/icons/x16/music_pencil.png | Bin 579 -> 0 bytes .../default-304/icons/x16/music_plus.png | Bin 562 -> 0 bytes .../default-304/icons/x16/music_small.png | Bin 208 -> 0 bytes .../default-304/icons/x16/newspaper.png | Bin 565 -> 0 bytes .../default-304/icons/x16/newspaper_arrow.png | Bin 694 -> 0 bytes .../icons/x16/newspaper_exclamation.png | Bin 705 -> 0 bytes .../default-304/icons/x16/newspaper_minus.png | Bin 615 -> 0 bytes .../icons/x16/newspaper_pencil.png | Bin 685 -> 0 bytes .../default-304/icons/x16/newspaper_plus.png | Bin 671 -> 0 bytes .../default-304/icons/x16/newspapers.png | Bin 596 -> 0 bytes .../icons/x16/newspapers_arrow.png | Bin 698 -> 0 bytes .../icons/x16/newspapers_exclamation.png | Bin 736 -> 0 bytes .../icons/x16/newspapers_minus.png | Bin 648 -> 0 bytes .../icons/x16/newspapers_pencil.png | Bin 707 -> 0 bytes .../default-304/icons/x16/newspapers_plus.png | Bin 686 -> 0 bytes .../themes/default-304/icons/x16/notebook.png | Bin 501 -> 0 bytes .../default-304/icons/x16/notebook_arrow.png | Bin 636 -> 0 bytes .../icons/x16/notebook_exclamation.png | Bin 694 -> 0 bytes .../default-304/icons/x16/notebook_minus.png | Bin 559 -> 0 bytes .../default-304/icons/x16/notebook_pencil.png | Bin 654 -> 0 bytes .../default-304/icons/x16/notebook_plus.png | Bin 619 -> 0 bytes .../default-304/icons/x16/notebooks.png | Bin 588 -> 0 bytes .../default-304/icons/x16/notebooks_arrow.png | Bin 684 -> 0 bytes .../icons/x16/notebooks_exclamation.png | Bin 715 -> 0 bytes .../default-304/icons/x16/notebooks_minus.png | Bin 613 -> 0 bytes .../icons/x16/notebooks_pencil.png | Bin 677 -> 0 bytes .../default-304/icons/x16/notebooks_plus.png | Bin 653 -> 0 bytes .../default-304/icons/x16/paint_can.png | Bin 648 -> 0 bytes .../default-304/icons/x16/paint_can_arrow.png | Bin 734 -> 0 bytes .../icons/x16/paint_can_exclamation.png | Bin 769 -> 0 bytes .../default-304/icons/x16/paint_can_minus.png | Bin 678 -> 0 bytes .../icons/x16/paint_can_pencil.png | Bin 714 -> 0 bytes .../default-304/icons/x16/paint_can_plus.png | Bin 712 -> 0 bytes .../themes/default-304/icons/x16/palette.png | Bin 789 -> 0 bytes .../default-304/icons/x16/palette_arrow.png | Bin 824 -> 0 bytes .../icons/x16/palette_exclamation.png | Bin 846 -> 0 bytes .../default-304/icons/x16/palette_minus.png | Bin 786 -> 0 bytes .../default-304/icons/x16/palette_pencil.png | Bin 819 -> 0 bytes .../default-304/icons/x16/palette_plus.png | Bin 820 -> 0 bytes .../default-304/icons/x16/paper_bag.png | Bin 557 -> 0 bytes .../default-304/icons/x16/paper_bag_arrow.png | Bin 672 -> 0 bytes .../icons/x16/paper_bag_exclamation.png | Bin 682 -> 0 bytes .../default-304/icons/x16/paper_bag_minus.png | Bin 584 -> 0 bytes .../icons/x16/paper_bag_pencil.png | Bin 713 -> 0 bytes .../default-304/icons/x16/paper_bag_plus.png | Bin 643 -> 0 bytes .../web/themes/default-304/icons/x16/pdf.png | Bin 1376 -> 0 bytes .../themes/default-304/icons/x16/pencil.png | Bin 417 -> 0 bytes .../default-304/icons/x16/pencil_arrow.png | Bin 567 -> 0 bytes .../icons/x16/pencil_exclamation.png | Bin 623 -> 0 bytes .../default-304/icons/x16/pencil_minus.png | Bin 463 -> 0 bytes .../default-304/icons/x16/pencil_plus.png | Bin 517 -> 0 bytes .../default-304/icons/x16/pencil_small.png | Bin 245 -> 0 bytes .../default-304/icons/x16/photo_album.png | Bin 690 -> 0 bytes .../icons/x16/photo_album__arrow.png | Bin 732 -> 0 bytes .../icons/x16/photo_album__exclamation.png | Bin 759 -> 0 bytes .../icons/x16/photo_album__minus.png | Bin 689 -> 0 bytes .../icons/x16/photo_album__pencil.png | Bin 749 -> 0 bytes .../icons/x16/photo_album__plus.png | Bin 709 -> 0 bytes .../icons/x16/photo_album_blue.png | Bin 694 -> 0 bytes .../themes/default-304/icons/x16/piano.png | Bin 344 -> 0 bytes .../default-304/icons/x16/piano_arrow.png | Bin 521 -> 0 bytes .../icons/x16/piano_exclamation.png | Bin 562 -> 0 bytes .../default-304/icons/x16/piano_minus.png | Bin 402 -> 0 bytes .../default-304/icons/x16/piano_pencil.png | Bin 525 -> 0 bytes .../default-304/icons/x16/piano_plus.png | Bin 467 -> 0 bytes .../themes/default-304/icons/x16/picture.png | Bin 494 -> 0 bytes .../default-304/icons/x16/picture_arrow.png | Bin 612 -> 0 bytes .../icons/x16/picture_exclamation.png | Bin 627 -> 0 bytes .../default-304/icons/x16/picture_minus.png | Bin 523 -> 0 bytes .../default-304/icons/x16/picture_pencil.png | Bin 626 -> 0 bytes .../default-304/icons/x16/picture_plus.png | Bin 595 -> 0 bytes .../default-304/icons/x16/picture_small.png | Bin 279 -> 0 bytes .../icons/x16/picture_small_sunset.png | Bin 270 -> 0 bytes .../default-304/icons/x16/picture_sunset.png | Bin 474 -> 0 bytes .../themes/default-304/icons/x16/pictures.png | Bin 523 -> 0 bytes .../default-304/icons/x16/pictures_arrow.png | Bin 612 -> 0 bytes .../icons/x16/pictures_exclamation.png | Bin 659 -> 0 bytes .../default-304/icons/x16/pictures_minus.png | Bin 563 -> 0 bytes .../default-304/icons/x16/pictures_pencil.png | Bin 623 -> 0 bytes .../default-304/icons/x16/pictures_plus.png | Bin 592 -> 0 bytes .../web/themes/default-304/icons/x16/pill.png | Bin 495 -> 0 bytes .../default-304/icons/x16/pill_arrow.png | Bin 633 -> 0 bytes .../icons/x16/pill_exclamation.png | Bin 675 -> 0 bytes .../default-304/icons/x16/pill_minus.png | Bin 548 -> 0 bytes .../default-304/icons/x16/pill_pencil.png | Bin 671 -> 0 bytes .../default-304/icons/x16/pill_plus.png | Bin 606 -> 0 bytes .../default-304/icons/x16/pill_small.png | Bin 314 -> 0 bytes .../web/themes/default-304/icons/x16/pin.png | Bin 580 -> 0 bytes .../default-304/icons/x16/pin_arrow.png | Bin 674 -> 0 bytes .../default-304/icons/x16/pin_exclamation.png | Bin 691 -> 0 bytes .../default-304/icons/x16/pin_minus.png | Bin 589 -> 0 bytes .../default-304/icons/x16/pin_pencil.png | Bin 672 -> 0 bytes .../themes/default-304/icons/x16/pin_plus.png | Bin 646 -> 0 bytes .../themes/default-304/icons/x16/pipette.png | Bin 502 -> 0 bytes .../default-304/icons/x16/pipette_arrow.png | Bin 628 -> 0 bytes .../icons/x16/pipette_exclamation.png | Bin 655 -> 0 bytes .../default-304/icons/x16/pipette_minus.png | Bin 540 -> 0 bytes .../default-304/icons/x16/pipette_pencil.png | Bin 628 -> 0 bytes .../default-304/icons/x16/pipette_plus.png | Bin 599 -> 0 bytes .../default-304/icons/x16/playing_card.png | Bin 688 -> 0 bytes .../icons/x16/playing_card_arrow.png | Bin 758 -> 0 bytes .../icons/x16/playing_card_exclamation.png | Bin 788 -> 0 bytes .../icons/x16/playing_card_minus.png | Bin 714 -> 0 bytes .../icons/x16/playing_card_pencil.png | Bin 769 -> 0 bytes .../icons/x16/playing_card_plus.png | Bin 732 -> 0 bytes .../web/themes/default-304/icons/x16/plug.png | Bin 549 -> 0 bytes .../default-304/icons/x16/plug_arrow.png | Bin 666 -> 0 bytes .../icons/x16/plug_exclamation.png | Bin 701 -> 0 bytes .../default-304/icons/x16/plug_minus.png | Bin 593 -> 0 bytes .../default-304/icons/x16/plug_pencil.png | Bin 678 -> 0 bytes .../default-304/icons/x16/plug_plus.png | Bin 631 -> 0 bytes .../web/themes/default-304/icons/x16/plus.png | Bin 460 -> 0 bytes .../default-304/icons/x16/plus_circle.png | Bin 616 -> 0 bytes .../icons/x16/plus_circle_frame.png | Bin 765 -> 0 bytes .../default-304/icons/x16/plus_shield.png | Bin 683 -> 0 bytes .../default-304/icons/x16/plus_small.png | Bin 212 -> 0 bytes .../icons/x16/plus_small_circle.png | Bin 254 -> 0 bytes .../themes/default-304/icons/x16/printer.png | Bin 665 -> 0 bytes .../default-304/icons/x16/printer__arrow.png | Bin 735 -> 0 bytes .../icons/x16/printer__exclamation.png | Bin 782 -> 0 bytes .../default-304/icons/x16/printer__minus.png | Bin 691 -> 0 bytes .../default-304/icons/x16/printer__pencil.png | Bin 726 -> 0 bytes .../default-304/icons/x16/printer__plus.png | Bin 715 -> 0 bytes .../default-304/icons/x16/printer_empty.png | Bin 493 -> 0 bytes .../default-304/icons/x16/printer_small.png | Bin 327 -> 0 bytes .../themes/default-304/icons/x16/puzzle.png | Bin 681 -> 0 bytes .../default-304/icons/x16/puzzle__arrow.png | Bin 798 -> 0 bytes .../icons/x16/puzzle__exclamation.png | Bin 818 -> 0 bytes .../default-304/icons/x16/puzzle__minus.png | Bin 724 -> 0 bytes .../default-304/icons/x16/puzzle__pencil.png | Bin 798 -> 0 bytes .../default-304/icons/x16/puzzle__plus.png | Bin 758 -> 0 bytes .../default-304/icons/x16/puzzle_disable.png | Bin 594 -> 0 bytes .../themes/default-304/icons/x16/question.png | Bin 668 -> 0 bytes .../default-304/icons/x16/question_frame.png | Bin 794 -> 0 bytes .../default-304/icons/x16/question_shield.png | Bin 723 -> 0 bytes .../default-304/icons/x16/question_small.png | Bin 264 -> 0 bytes .../themes/default-304/icons/x16/receipt.png | Bin 396 -> 0 bytes .../default-304/icons/x16/receipt_arrow.png | Bin 530 -> 0 bytes .../icons/x16/receipt_exclamation.png | Bin 588 -> 0 bytes .../default-304/icons/x16/receipt_minus.png | Bin 468 -> 0 bytes .../default-304/icons/x16/receipt_pencil.png | Bin 583 -> 0 bytes .../default-304/icons/x16/receipt_plus.png | Bin 494 -> 0 bytes .../default-304/icons/x16/receipt_shred.png | Bin 490 -> 0 bytes .../default-304/icons/x16/receipt_text.png | Bin 476 -> 0 bytes .../themes/default-304/icons/x16/receipts.png | Bin 496 -> 0 bytes .../default-304/icons/x16/receipts_arrow.png | Bin 608 -> 0 bytes .../icons/x16/receipts_exclamation.png | Bin 648 -> 0 bytes .../default-304/icons/x16/receipts_minus.png | Bin 524 -> 0 bytes .../default-304/icons/x16/receipts_pencil.png | Bin 631 -> 0 bytes .../default-304/icons/x16/receipts_plus.png | Bin 583 -> 0 bytes .../default-304/icons/x16/receipts_text.png | Bin 555 -> 0 bytes .../themes/default-304/icons/x16/report.png | Bin 467 -> 0 bytes .../default-304/icons/x16/report_arrow.png | Bin 557 -> 0 bytes .../icons/x16/report_exclamation.png | Bin 611 -> 0 bytes .../default-304/icons/x16/report_minus.png | Bin 491 -> 0 bytes .../default-304/icons/x16/report_pencil.png | Bin 578 -> 0 bytes .../default-304/icons/x16/report_plus.png | Bin 534 -> 0 bytes .../themes/default-304/icons/x16/ruler.png | Bin 514 -> 0 bytes .../default-304/icons/x16/ruler__arrow.png | Bin 669 -> 0 bytes .../icons/x16/ruler__exclamation.png | Bin 688 -> 0 bytes .../default-304/icons/x16/ruler__minus.png | Bin 560 -> 0 bytes .../default-304/icons/x16/ruler__pencil.png | Bin 642 -> 0 bytes .../default-304/icons/x16/ruler__plus.png | Bin 627 -> 0 bytes .../default-304/icons/x16/ruler_crop.png | Bin 634 -> 0 bytes .../web/themes/default-304/icons/x16/safe.png | Bin 602 -> 0 bytes .../default-304/icons/x16/safe_arrow.png | Bin 702 -> 0 bytes .../icons/x16/safe_exclamation.png | Bin 709 -> 0 bytes .../default-304/icons/x16/safe_minus.png | Bin 630 -> 0 bytes .../default-304/icons/x16/safe_pencil.png | Bin 712 -> 0 bytes .../default-304/icons/x16/safe_plus.png | Bin 687 -> 0 bytes .../default-304/icons/x16/screwdriver.png | Bin 474 -> 0 bytes .../icons/x16/screwdriver_arrow.png | Bin 634 -> 0 bytes .../icons/x16/screwdriver_exclamation.png | Bin 667 -> 0 bytes .../icons/x16/screwdriver_minus.png | Bin 517 -> 0 bytes .../icons/x16/screwdriver_pencil.png | Bin 613 -> 0 bytes .../icons/x16/screwdriver_plus.png | Bin 589 -> 0 bytes .../themes/default-304/icons/x16/script.png | Bin 427 -> 0 bytes .../default-304/icons/x16/script__arrow.png | Bin 537 -> 0 bytes .../icons/x16/script__exclamation.png | Bin 591 -> 0 bytes .../default-304/icons/x16/script__minus.png | Bin 468 -> 0 bytes .../default-304/icons/x16/script__pencil.png | Bin 591 -> 0 bytes .../default-304/icons/x16/script__plus.png | Bin 509 -> 0 bytes .../default-304/icons/x16/script_code.png | Bin 494 -> 0 bytes .../themes/default-304/icons/x16/scripts.png | Bin 518 -> 0 bytes .../default-304/icons/x16/scripts__arrow.png | Bin 616 -> 0 bytes .../icons/x16/scripts__exclamation.png | Bin 648 -> 0 bytes .../default-304/icons/x16/scripts__minus.png | Bin 535 -> 0 bytes .../default-304/icons/x16/scripts__pencil.png | Bin 622 -> 0 bytes .../default-304/icons/x16/scripts__plus.png | Bin 589 -> 0 bytes .../default-304/icons/x16/scripts_code.png | Bin 582 -> 0 bytes .../themes/default-304/icons/x16/shield.png | Bin 658 -> 0 bytes .../default-304/icons/x16/shield__arrow.png | Bin 742 -> 0 bytes .../icons/x16/shield__exclamation.png | Bin 802 -> 0 bytes .../default-304/icons/x16/shield__minus.png | Bin 702 -> 0 bytes .../default-304/icons/x16/shield__pencil.png | Bin 777 -> 0 bytes .../default-304/icons/x16/shield__plus.png | Bin 730 -> 0 bytes .../default-304/icons/x16/shield_disable.png | Bin 513 -> 0 bytes .../themes/default-304/icons/x16/slash.png | Bin 609 -> 0 bytes .../default-304/icons/x16/slash_small.png | Bin 213 -> 0 bytes .../themes/default-304/icons/x16/socket.png | Bin 456 -> 0 bytes .../default-304/icons/x16/socket_arrow.png | Bin 600 -> 0 bytes .../icons/x16/socket_exclamation.png | Bin 652 -> 0 bytes .../default-304/icons/x16/socket_minus.png | Bin 523 -> 0 bytes .../default-304/icons/x16/socket_pencil.png | Bin 606 -> 0 bytes .../default-304/icons/x16/socket_plus.png | Bin 573 -> 0 bytes .../web/themes/default-304/icons/x16/sort.png | Bin 402 -> 0 bytes .../default-304/icons/x16/sort__arrow.png | Bin 559 -> 0 bytes .../icons/x16/sort__exclamation.png | Bin 633 -> 0 bytes .../default-304/icons/x16/sort__minus.png | Bin 442 -> 0 bytes .../default-304/icons/x16/sort__pencil.png | Bin 574 -> 0 bytes .../default-304/icons/x16/sort__plus.png | Bin 511 -> 0 bytes .../default-304/icons/x16/sort_alphabet.png | Bin 496 -> 0 bytes .../icons/x16/sort_alphabet_descending.png | Bin 493 -> 0 bytes .../default-304/icons/x16/sort_date.png | Bin 445 -> 0 bytes .../icons/x16/sort_date_descending.png | Bin 425 -> 0 bytes .../default-304/icons/x16/sort_number.png | Bin 479 -> 0 bytes .../icons/x16/sort_number_descending.png | Bin 478 -> 0 bytes .../default-304/icons/x16/sort_quantity.png | Bin 432 -> 0 bytes .../icons/x16/sort_quantity_descending.png | Bin 432 -> 0 bytes .../default-304/icons/x16/sort_small.png | Bin 269 -> 0 bytes .../themes/default-304/icons/x16/stamp.png | Bin 585 -> 0 bytes .../default-304/icons/x16/stamp_arrow.png | Bin 697 -> 0 bytes .../icons/x16/stamp_exclamation.png | Bin 725 -> 0 bytes .../default-304/icons/x16/stamp_minus.png | Bin 631 -> 0 bytes .../default-304/icons/x16/stamp_pencil.png | Bin 707 -> 0 bytes .../default-304/icons/x16/stamp_plus.png | Bin 671 -> 0 bytes .../web/themes/default-304/icons/x16/star.png | Bin 640 -> 0 bytes .../default-304/icons/x16/star__arrow.png | Bin 728 -> 0 bytes .../icons/x16/star__exclamation.png | Bin 737 -> 0 bytes .../default-304/icons/x16/star__minus.png | Bin 676 -> 0 bytes .../default-304/icons/x16/star__pencil.png | Bin 735 -> 0 bytes .../default-304/icons/x16/star__plus.png | Bin 705 -> 0 bytes .../default-304/icons/x16/star_empty.png | Bin 523 -> 0 bytes .../default-304/icons/x16/star_half.png | Bin 730 -> 0 bytes .../default-304/icons/x16/star_small.png | Bin 310 -> 0 bytes .../icons/x16/star_small_empty.png | Bin 281 -> 0 bytes .../default-304/icons/x16/star_small_half.png | Bin 352 -> 0 bytes .../default-304/icons/x16/sticky_note.png | Bin 423 -> 0 bytes .../icons/x16/sticky_note__arrow.png | Bin 561 -> 0 bytes .../icons/x16/sticky_note__exclamation.png | Bin 597 -> 0 bytes .../icons/x16/sticky_note__minus.png | Bin 466 -> 0 bytes .../icons/x16/sticky_note__pencil.png | Bin 564 -> 0 bytes .../icons/x16/sticky_note__plus.png | Bin 530 -> 0 bytes .../default-304/icons/x16/sticky_note_pin.png | Bin 480 -> 0 bytes .../icons/x16/sticky_note_shred.png | Bin 551 -> 0 bytes .../icons/x16/sticky_note_small.png | Bin 281 -> 0 bytes .../icons/x16/sticky_note_small_pin.png | Bin 310 -> 0 bytes .../icons/x16/sticky_note_text.png | Bin 518 -> 0 bytes .../default-304/icons/x16/sticky_notes.png | Bin 466 -> 0 bytes .../icons/x16/sticky_notes__arrow.png | Bin 594 -> 0 bytes .../icons/x16/sticky_notes__exclamation.png | Bin 627 -> 0 bytes .../icons/x16/sticky_notes__minus.png | Bin 503 -> 0 bytes .../icons/x16/sticky_notes__pencil.png | Bin 577 -> 0 bytes .../icons/x16/sticky_notes__plus.png | Bin 565 -> 0 bytes .../icons/x16/sticky_notes_pin.png | Bin 559 -> 0 bytes .../icons/x16/sticky_notes_stack.png | Bin 477 -> 0 bytes .../icons/x16/sticky_notes_text.png | Bin 547 -> 0 bytes .../themes/default-304/icons/x16/switch.png | Bin 516 -> 0 bytes .../default-304/icons/x16/switch_arrow.png | Bin 629 -> 0 bytes .../icons/x16/switch_exclamation.png | Bin 647 -> 0 bytes .../default-304/icons/x16/switch_minus.png | Bin 558 -> 0 bytes .../default-304/icons/x16/switch_pencil.png | Bin 633 -> 0 bytes .../default-304/icons/x16/switch_plus.png | Bin 610 -> 0 bytes .../themes/default-304/icons/x16/table.png | Bin 504 -> 0 bytes .../default-304/icons/x16/table__arrow.png | Bin 612 -> 0 bytes .../icons/x16/table__exclamation.png | Bin 667 -> 0 bytes .../default-304/icons/x16/table__minus.png | Bin 536 -> 0 bytes .../default-304/icons/x16/table__pencil.png | Bin 626 -> 0 bytes .../default-304/icons/x16/table__plus.png | Bin 588 -> 0 bytes .../default-304/icons/x16/table_delete.png | Bin 589 -> 0 bytes .../icons/x16/table_delete_column.png | Bin 610 -> 0 bytes .../default-304/icons/x16/table_insert.png | Bin 573 -> 0 bytes .../icons/x16/table_insert_column.png | Bin 599 -> 0 bytes .../themes/default-304/icons/x16/tables.png | Bin 603 -> 0 bytes .../default-304/icons/x16/tables_arrow.png | Bin 684 -> 0 bytes .../icons/x16/tables_exclamation.png | Bin 712 -> 0 bytes .../default-304/icons/x16/tables_minus.png | Bin 620 -> 0 bytes .../default-304/icons/x16/tables_pencil.png | Bin 693 -> 0 bytes .../default-304/icons/x16/tables_plus.png | Bin 667 -> 0 bytes .../default-304/icons/x16/tables_stacks.png | Bin 490 -> 0 bytes .../web/themes/default-304/icons/x16/tag.png | Bin 596 -> 0 bytes .../default-304/icons/x16/tag__arrow.png | Bin 690 -> 0 bytes .../icons/x16/tag__exclamation.png | Bin 747 -> 0 bytes .../default-304/icons/x16/tag__minus.png | Bin 621 -> 0 bytes .../default-304/icons/x16/tag__pencil.png | Bin 714 -> 0 bytes .../default-304/icons/x16/tag__plus.png | Bin 652 -> 0 bytes .../default-304/icons/x16/tag_label.png | Bin 626 -> 0 bytes .../default-304/icons/x16/tag_small.png | Bin 306 -> 0 bytes .../web/themes/default-304/icons/x16/tags.png | Bin 573 -> 0 bytes .../default-304/icons/x16/tags__arrow.png | Bin 682 -> 0 bytes .../icons/x16/tags__exclamation.png | Bin 718 -> 0 bytes .../default-304/icons/x16/tags__minus.png | Bin 595 -> 0 bytes .../default-304/icons/x16/tags__pencil.png | Bin 703 -> 0 bytes .../default-304/icons/x16/tags__plus.png | Bin 641 -> 0 bytes .../default-304/icons/x16/tags_label.png | Bin 597 -> 0 bytes .../web/themes/default-304/icons/x16/tick.png | Bin 575 -> 0 bytes .../default-304/icons/x16/tick_circle.png | Bin 630 -> 0 bytes .../icons/x16/tick_circle_frame.png | Bin 786 -> 0 bytes .../default-304/icons/x16/tick_shield.png | Bin 697 -> 0 bytes .../default-304/icons/x16/tick_small.png | Bin 216 -> 0 bytes .../icons/x16/tick_small_circle.png | Bin 258 -> 0 bytes .../themes/default-304/icons/x16/ticket.png | Bin 604 -> 0 bytes .../default-304/icons/x16/ticket_arrow.png | Bin 699 -> 0 bytes .../icons/x16/ticket_exclamation.png | Bin 754 -> 0 bytes .../default-304/icons/x16/ticket_minus.png | Bin 643 -> 0 bytes .../default-304/icons/x16/ticket_pencil.png | Bin 751 -> 0 bytes .../default-304/icons/x16/ticket_plus.png | Bin 674 -> 0 bytes .../default-304/icons/x16/ticket_small.png | Bin 322 -> 0 bytes .../themes/default-304/icons/x16/trophy.png | Bin 790 -> 0 bytes .../default-304/icons/x16/trophy_arrow.png | Bin 881 -> 0 bytes .../icons/x16/trophy_exclamation.png | Bin 914 -> 0 bytes .../default-304/icons/x16/trophy_minus.png | Bin 811 -> 0 bytes .../default-304/icons/x16/trophy_pencil.png | Bin 875 -> 0 bytes .../default-304/icons/x16/trophy_plus.png | Bin 858 -> 0 bytes .../web/themes/default-304/icons/x16/tux.png | Bin 643 -> 0 bytes .../web/themes/default-304/icons/x16/user.png | Bin 688 -> 0 bytes .../themes/default-304/icons/x16/user_add.png | Bin 693 -> 0 bytes .../default-304/icons/x16/user_comment.png | Bin 690 -> 0 bytes .../default-304/icons/x16/user_delete.png | Bin 714 -> 0 bytes .../default-304/icons/x16/user_edit.png | Bin 780 -> 0 bytes .../default-304/icons/x16/user_female.png | Bin 610 -> 0 bytes .../themes/default-304/icons/x16/user_go.png | Bin 740 -> 0 bytes .../default-304/icons/x16/user_gray.png | Bin 653 -> 0 bytes .../default-304/icons/x16/user_green.png | Bin 669 -> 0 bytes .../default-304/icons/x16/user_orange.png | Bin 670 -> 0 bytes .../themes/default-304/icons/x16/user_red.png | Bin 664 -> 0 bytes .../default-304/icons/x16/user_suit.png | Bin 695 -> 0 bytes .../themes/default-304/icons/x16/vcard.png | Bin 486 -> 0 bytes .../default-304/icons/x16/vcard_add.png | Bin 608 -> 0 bytes .../default-304/icons/x16/vcard_delete.png | Bin 598 -> 0 bytes .../default-304/icons/x16/vcard_edit.png | Bin 721 -> 0 bytes .../web/themes/default-304/icons/x16/wall.png | Bin 501 -> 0 bytes .../default-304/icons/x16/wall__arrow.png | Bin 626 -> 0 bytes .../icons/x16/wall__exclamation.png | Bin 667 -> 0 bytes .../default-304/icons/x16/wall__minus.png | Bin 537 -> 0 bytes .../default-304/icons/x16/wall__pencil.png | Bin 633 -> 0 bytes .../default-304/icons/x16/wall__plus.png | Bin 599 -> 0 bytes .../default-304/icons/x16/wall_brick.png | Bin 369 -> 0 bytes .../default-304/icons/x16/wall_disable.png | Bin 304 -> 0 bytes .../default-304/icons/x16/wall_small.png | Bin 337 -> 0 bytes .../icons/x16/wall_small_brick.png | Bin 272 -> 0 bytes .../themes/default-304/icons/x16/wallet.png | Bin 458 -> 0 bytes .../default-304/icons/x16/wallet_arrow.png | Bin 594 -> 0 bytes .../icons/x16/wallet_exclamation.png | Bin 632 -> 0 bytes .../default-304/icons/x16/wallet_minus.png | Bin 490 -> 0 bytes .../default-304/icons/x16/wallet_pencil.png | Bin 562 -> 0 bytes .../default-304/icons/x16/wallet_plus.png | Bin 550 -> 0 bytes .../web/themes/default-304/icons/x16/wand.png | Bin 473 -> 0 bytes .../default-304/icons/x16/wand_arrow.png | Bin 642 -> 0 bytes .../icons/x16/wand_exclamation.png | Bin 674 -> 0 bytes .../default-304/icons/x16/wand_minus.png | Bin 529 -> 0 bytes .../default-304/icons/x16/wand_pencil.png | Bin 598 -> 0 bytes .../default-304/icons/x16/wand_plus.png | Bin 590 -> 0 bytes .../themes/default-304/icons/x16/wrench.png | Bin 643 -> 0 bytes .../default-304/icons/x16/wrench_arrow.png | Bin 785 -> 0 bytes .../icons/x16/wrench_exclamation.png | Bin 832 -> 0 bytes .../default-304/icons/x16/wrench_minus.png | Bin 684 -> 0 bytes .../default-304/icons/x16/wrench_pencil.png | Bin 755 -> 0 bytes .../default-304/icons/x16/wrench_plus.png | Bin 739 -> 0 bytes .../icons/x16/wrench_screwdriver.png | Bin 810 -> 0 bytes .../themes/default-304/icons/x16_sprite.png | Bin 8569 -> 0 bytes .../default-304/icons/x32/calculator.png | Bin 555 -> 0 bytes .../themes/default-304/icons/x32/client.png | Bin 2410 -> 0 bytes .../default-304/icons/x32/dashboard.png | Bin 2025 -> 0 bytes .../web/themes/default-304/icons/x32/dns.png | Bin 2049 -> 0 bytes .../themes/default-304/icons/x32/domain.png | Bin 1518 -> 0 bytes .../themes/default-304/icons/x32/drawer.png | Bin 941 -> 0 bytes .../themes/default-304/icons/x32/email.png | Bin 1503 -> 0 bytes .../web/themes/default-304/icons/x32/help.png | Bin 1950 -> 0 bytes .../themes/default-304/icons/x32/login.png | Bin 2357 -> 0 bytes .../themes/default-304/icons/x32/monitor.png | Bin 1244 -> 0 bytes .../themes/default-304/icons/x32/network.png | Bin 2035 -> 0 bytes .../themes/default-304/icons/x32/server.png | Bin 1440 -> 0 bytes .../themes/default-304/icons/x32/sites.png | Bin 2363 -> 0 bytes .../default-304/icons/x32/state_critical.png | Bin 2394 -> 0 bytes .../default-304/icons/x32/state_error.png | Bin 2200 -> 0 bytes .../default-304/icons/x32/state_info.png | Bin 2175 -> 0 bytes .../themes/default-304/icons/x32/state_ok.png | Bin 1456 -> 0 bytes .../default-304/icons/x32/state_unknown.png | Bin 2753 -> 0 bytes .../default-304/icons/x32/state_warning.png | Bin 1917 -> 0 bytes .../themes/default-304/icons/x32/system.png | Bin 2454 -> 0 bytes .../themes/default-304/icons/x32/tools.png | Bin 2024 -> 0 bytes .../themes/default-304/icons/x32_sprite.png | Bin 37386 -> 0 bytes .../themes/default-304/icons/x64/client.png | Bin 6611 -> 0 bytes .../default-304/icons/x64/dashboard.png | Bin 5945 -> 0 bytes .../web/themes/default-304/icons/x64/dns.png | Bin 5730 -> 0 bytes .../themes/default-304/icons/x64/domain.png | Bin 4177 -> 0 bytes .../themes/default-304/icons/x64/drawer.png | Bin 7236 -> 0 bytes .../themes/default-304/icons/x64/email.png | Bin 4156 -> 0 bytes .../web/themes/default-304/icons/x64/help.png | Bin 6117 -> 0 bytes .../themes/default-304/icons/x64/login.png | Bin 6797 -> 0 bytes .../themes/default-304/icons/x64/monitor.png | Bin 3198 -> 0 bytes .../themes/default-304/icons/x64/network.png | Bin 5546 -> 0 bytes .../themes/default-304/icons/x64/server.png | Bin 3527 -> 0 bytes .../themes/default-304/icons/x64/sites.png | Bin 6904 -> 0 bytes .../themes/default-304/icons/x64/system.png | Bin 7060 -> 0 bytes .../themes/default-304/icons/x64/tools.png | Bin 5721 -> 0 bytes .../web/themes/default-304/images/Thumbs.db | Bin 10752 -> 0 bytes .../themes/default-304/images/ajax-loader.gif | Bin 3208 -> 0 bytes .../default-304/images/buttonHolder_bg.gif | Bin 609 -> 0 bytes .../web/themes/default-304/images/chevron.png | Bin 183 -> 0 bytes .../web/themes/default-304/images/favicon.ico | Bin 1406 -> 0 bytes .../themes/default-304/images/header_bg.png | Bin 308 -> 0 bytes .../themes/default-304/images/header_logo.png | Bin 5872 -> 0 bytes .../default-304/images/lists_tfoot_bg.png | Bin 149 -> 0 bytes .../default-304/images/lists_thead_bg.png | Bin 200 -> 0 bytes .../themes/default-304/images/meter_bg.gif | Bin 80 -> 0 bytes .../themes/default-304/images/screen_bg.png | Bin 90 -> 0 bytes .../web/themes/default-304/ispconfig_version | 1 - interface/web/themes/default-304/licences.txt | 8 - .../templates/admin/firewall_edit.htm | 38 - .../templates/admin/firewall_list.htm | 60 - .../templates/admin/groups_edit.htm | 26 - .../templates/admin/groups_list.htm | 54 - .../templates/admin/iptables_edit.htm | 67 -- .../templates/admin/iptables_list.htm | 73 -- .../templates/admin/language_add.htm | 29 - .../templates/admin/language_complete.htm | 29 - .../templates/admin/language_edit.htm | 29 - .../templates/admin/language_export.htm | 31 - .../templates/admin/language_import.htm | 44 - .../templates/admin/language_list.htm | 47 - .../admin/remote_action_ispcupdate.htm | 33 - .../admin/remote_action_osupdate.htm | 25 - .../templates/admin/remote_user_edit.htm | 47 - .../templates/admin/remote_user_list.htm | 52 - .../admin/server_config_cron_edit.htm | 30 - .../admin/server_config_dns_edit.htm | 38 - .../admin/server_config_fastcgi_edit.htm | 52 - .../admin/server_config_getmail_edit.htm | 22 - .../admin/server_config_jailkit_edit.htm | 34 - .../templates/admin/server_config_list.htm | 40 - .../admin/server_config_mail_edit.htm | 94 -- .../admin/server_config_rescue_edit.htm | 44 - .../admin/server_config_server_edit.htm | 67 -- .../admin/server_config_ufw_edit.htm | 66 -- .../admin/server_config_vlogger_edit.htm | 22 - .../admin/server_config_web_edit.htm | 256 ---- .../templates/admin/server_edit_config.htm | 22 - .../templates/admin/server_edit_services.htm | 70 -- .../templates/admin/server_ip_edit.htm | 50 - .../templates/admin/server_ip_list.htm | 64 - .../templates/admin/server_list.htm | 58 - .../admin/server_php_fastcgi_edit.htm | 26 - .../templates/admin/server_php_fpm_edit.htm | 30 - .../templates/admin/server_php_list.htm | 55 - .../templates/admin/server_php_name_edit.htm | 34 - .../admin/software_package_install.htm | 30 - .../templates/admin/software_package_list.htm | 46 - .../templates/admin/software_repo_edit.htm | 40 - .../templates/admin/software_repo_list.htm | 56 - .../templates/admin/software_update_list.htm | 49 - .../admin/system_config_domains_edit.htm | 33 - .../admin/system_config_mail_edit.htm | 80 -- .../admin/system_config_misc_edit.htm | 38 - .../admin/system_config_sites_edit.htm | 58 - .../templates/admin/tpl_default_basic.htm | 23 - .../templates/admin/users_groups_edit.htm | 30 - .../templates/admin/users_list.htm | 68 -- .../templates/admin/users_user_edit.htm | 73 -- .../templates/client/client_circle_edit.htm | 39 - .../templates/client/client_circle_list.htm | 59 - .../templates/client/client_del.htm | 25 - .../templates/client/client_edit_address.htm | 140 --- .../templates/client/client_edit_limits.htm | 284 ----- .../templates/client/client_message.htm | 39 - .../client/client_template_edit_limits.htm | 230 ---- .../client/client_template_edit_template.htm | 28 - .../templates/client/client_template_list.htm | 56 - .../templates/client/clients_list.htm | 73 -- .../templates/client/domain_edit.htm | 40 - .../templates/client/domain_list.htm | 62 - .../client/reseller_edit_address.htm | 116 -- .../templates/client/reseller_edit_limits.htm | 279 ----- .../templates/client/resellers_list.htm | 68 -- .../templates/dashboard/custom_menu.htm | 9 - .../templates/dashboard/dashboard.htm | 48 - .../templates/dashboard/dashlets/limits.htm | 11 - .../templates/dashboard/dashlets/modules.htm | 10 - .../templates/designer/form_edit.htm | 79 -- .../templates/designer/form_list.htm | 24 - .../templates/designer/form_show.htm | 61 - .../templates/designer/module_edit.htm | 43 - .../templates/designer/module_list.htm | 18 - .../templates/designer/module_nav_edit.htm | 24 - .../designer/module_nav_item_edit.htm | 33 - .../templates/designer/module_show.htm | 31 - .../templates/designer/paging.tpl.htm | 9 - .../default-304/templates/dns/dns_a_edit.htm | 54 - .../default-304/templates/dns/dns_a_list.htm | 88 -- .../templates/dns/dns_aaaa_edit.htm | 54 - .../templates/dns/dns_alias_edit.htm | 38 - .../templates/dns/dns_cname_edit.htm | 38 - .../templates/dns/dns_hinfo_edit.htm | 38 - .../default-304/templates/dns/dns_import.htm | 55 - .../default-304/templates/dns/dns_mx_edit.htm | 42 - .../default-304/templates/dns/dns_ns_edit.htm | 38 - .../templates/dns/dns_ptr_edit.htm | 38 - .../templates/dns/dns_records_edit.htm | 12 - .../default-304/templates/dns/dns_rp_edit.htm | 38 - .../templates/dns/dns_slave_edit.htm | 97 -- .../templates/dns/dns_slave_list.htm | 59 - .../templates/dns/dns_soa_edit.htm | 131 --- .../templates/dns/dns_soa_list.htm | 62 - .../templates/dns/dns_srv_edit.htm | 50 - .../templates/dns/dns_template_edit.htm | 38 - .../templates/dns/dns_template_list.htm | 53 - .../templates/dns/dns_txt_edit.htm | 38 - .../default-304/templates/dns/dns_wizard.htm | 95 -- .../default-304/templates/error.tpl.htm | 8 - .../themes/default-304/templates/form.tpl.htm | 1 - .../default-304/templates/help/faq_edit.htm | 29 - .../help/faq_manage_questions_list.htm | 43 - .../templates/help/faq_sections_edit.htm | 20 - .../templates/help/help_faq_list.htm | 19 - .../templates/help/help_faq_sections_list.htm | 43 - .../templates/help/support_message_edit.htm | 33 - .../templates/help/support_message_list.htm | 53 - .../templates/help/support_message_view.htm | 22 - .../default-304/templates/listpage.tpl.htm | 1 - .../default-304/templates/login/index.htm | 33 - .../templates/login/password_reset.htm | 33 - .../templates/mail/mail_alias_edit.htm | 39 - .../templates/mail/mail_alias_list.htm | 56 - .../templates/mail/mail_aliasdomain_edit.htm | 37 - .../templates/mail/mail_aliasdomain_list.htm | 56 - .../templates/mail/mail_blacklist_edit.htm | 41 - .../templates/mail/mail_blacklist_list.htm | 59 - .../mail/mail_content_filter_edit.htm | 50 - .../mail/mail_content_filter_list.htm | 59 - .../templates/mail/mail_domain_admin_list.htm | 58 - .../mail/mail_domain_catchall_edit.htm | 36 - .../mail/mail_domain_catchall_list.htm | 56 - .../templates/mail/mail_domain_edit.htm | 73 -- .../templates/mail/mail_domain_list.htm | 56 - .../templates/mail/mail_forward_edit.htm | 37 - .../templates/mail/mail_forward_list.htm | 56 - .../templates/mail/mail_get_edit.htm | 60 - .../templates/mail/mail_get_list.htm | 62 - .../templates/mail/mail_mailinglist_edit.htm | 86 -- .../templates/mail/mail_mailinglist_list.htm | 53 - .../mail/mail_relay_recipient_edit.htm | 35 - .../mail/mail_relay_recipient_list.htm | 55 - .../templates/mail/mail_transport_edit.htm | 56 - .../templates/mail/mail_transport_list.htm | 62 - .../mail/mail_user_autoresponder_edit.htm | 44 - .../mail/mail_user_custom_rules_edit.htm | 22 - .../templates/mail/mail_user_filter_edit.htm | 38 - .../templates/mail/mail_user_filter_list.htm | 44 - .../templates/mail/mail_user_list.htm | 66 -- .../templates/mail/mail_user_mailbox_edit.htm | 81 -- .../mail/mail_user_mailfilter_edit.htm | 26 - .../templates/mail/mail_user_stats_list.htm | 53 - .../templates/mail/mail_whitelist_edit.htm | 41 - .../templates/mail/mail_whitelist_list.htm | 59 - .../mail/spamfilter_blacklist_edit.htm | 49 - .../mail/spamfilter_blacklist_list.htm | 62 - .../mail/spamfilter_config_getmail_edit.htm | 22 - .../templates/mail/spamfilter_config_list.htm | 51 - .../mail/spamfilter_config_mail_edit.htm | 66 -- .../mail/spamfilter_config_server_edit.htm | 38 - .../templates/mail/spamfilter_other_edit.htm | 80 -- .../templates/mail/spamfilter_policy_edit.htm | 64 - .../templates/mail/spamfilter_policy_list.htm | 63 - .../mail/spamfilter_quarantine_edit.htm | 44 - .../mail/spamfilter_taglevel_edit.htm | 52 - .../templates/mail/spamfilter_users_edit.htm | 50 - .../templates/mail/spamfilter_users_list.htm | 62 - .../mail/spamfilter_whitelist_edit.htm | 49 - .../mail/spamfilter_whitelist_list.htm | 63 - .../templates/mail/user_quota_stats_list.htm | 52 - .../default-304/templates/mailuser/index.htm | 34 - .../mailuser/mail_user_autoresponder_edit.htm | 37 - .../templates/mailuser/mail_user_cc_edit.htm | 26 - .../mailuser/mail_user_filter_edit.htm | 38 - .../mailuser/mail_user_filter_list.htm | 50 - .../mailuser/mail_user_password_edit.htm | 37 - .../mailuser/mail_user_spamfilter_edit.htm | 28 - .../themes/default-304/templates/main.tpl.htm | 188 --- .../default-304/templates/module.tpl.htm | 41 - .../default-304/templates/module_tree.tpl.htm | 42 - .../templates/monitor/datalog_list.htm | 49 - .../templates/monitor/show_data.htm | 12 - .../templates/monitor/show_log.htm | 25 - .../templates/monitor/show_sys_state.htm | 25 - .../templates/monitor/syslog_list.htm | 56 - .../default-304/templates/sidenav.tpl.htm | 24 - .../templates/sites/aps_install_package.htm | 56 - .../templates/sites/aps_instances_list.htm | 62 - .../sites/aps_packagedetails_show.htm | 139 --- .../templates/sites/aps_packages_list.htm | 50 - .../default-304/templates/sites/cron_edit.htm | 68 -- .../default-304/templates/sites/cron_list.htm | 74 -- .../templates/sites/database_admin_list.htm | 68 -- .../templates/sites/database_edit.htm | 113 -- .../templates/sites/database_list.htm | 66 -- .../sites/database_user_admin_list.htm | 50 - .../templates/sites/database_user_edit.htm | 54 - .../templates/sites/database_user_list.htm | 51 - .../templates/sites/ftp_user_advanced.htm | 50 - .../sites/ftp_user_advanced_client.htm | 22 - .../templates/sites/ftp_user_edit.htm | 54 - .../templates/sites/ftp_user_list.htm | 62 - .../templates/sites/shell_user_advanced.htm | 34 - .../templates/sites/shell_user_edit.htm | 72 -- .../templates/sites/shell_user_list.htm | 59 - .../templates/sites/user_quota_stats_list.htm | 54 - .../templates/sites/web_aliasdomain_edit.htm | 125 -- .../templates/sites/web_aliasdomain_list.htm | 59 - .../templates/sites/web_backup_list.htm | 41 - .../templates/sites/web_domain_admin_list.htm | 61 - .../templates/sites/web_domain_advanced.htm | 146 --- .../templates/sites/web_domain_backup.htm | 32 - .../templates/sites/web_domain_edit.htm | 249 ---- .../templates/sites/web_domain_list.htm | 59 - .../templates/sites/web_domain_redirect.htm | 76 -- .../templates/sites/web_domain_ssl.htm | 68 -- .../templates/sites/web_domain_stats.htm | 37 - .../templates/sites/web_folder_edit.htm | 34 - .../templates/sites/web_folder_list.htm | 58 - .../templates/sites/web_folder_user_edit.htm | 49 - .../templates/sites/web_folder_user_list.htm | 55 - .../templates/sites/web_sites_stats_list.htm | 62 - .../templates/sites/web_subdomain_edit.htm | 112 -- .../templates/sites/web_subdomain_list.htm | 60 - .../sites/web_vhost_subdomain_advanced.htm | 146 --- .../sites/web_vhost_subdomain_backup.htm | 32 - .../sites/web_vhost_subdomain_edit.htm | 208 ---- .../sites/web_vhost_subdomain_list.htm | 60 - .../sites/web_vhost_subdomain_redirect.htm | 76 -- .../sites/web_vhost_subdomain_ssl.htm | 68 -- .../sites/web_vhost_subdomain_stats.htm | 37 - .../templates/sites/webdav_user_edit.htm | 64 - .../templates/sites/webdav_user_list.htm | 59 - .../default-304/templates/tabbed_form.tpl.htm | 27 - .../templates/tools/dns_import_tupa.htm | 56 - .../templates/tools/import_ispconfig.htm | 103 -- .../templates/tools/import_plesk.htm | 74 -- .../default-304/templates/tools/index.htm | 20 - .../templates/tools/interface_settings.htm | 31 - .../default-304/templates/tools/resync.htm | 67 -- .../templates/tools/tpl_default.htm | 37 - .../templates/tools/user_settings.htm | 39 - .../default-304/templates/topnav.tpl.htm | 9 - .../templates/vm/openvz_action.htm | 53 - .../templates/vm/openvz_ip_edit.htm | 46 - .../templates/vm/openvz_ip_list.htm | 58 - .../templates/vm/openvz_ostemplate_edit.htm | 48 - .../templates/vm/openvz_ostemplate_list.htm | 61 - .../vm/openvz_template_advanced_edit.htm | 110 -- .../templates/vm/openvz_template_edit.htm | 74 -- .../templates/vm/openvz_template_list.htm | 52 - .../templates/vm/openvz_vm_advanced_edit.htm | 64 - .../templates/vm/openvz_vm_edit.htm | 107 -- .../templates/vm/openvz_vm_list.htm | 68 -- .../themes/default-304/yaml/!important.txt | 4 - .../web/themes/default-304/yaml/core/base.css | 229 ---- .../themes/default-304/yaml/core/iehacks.css | 310 ----- .../default-304/yaml/core/print_base.css | 120 -- .../default-304/yaml/core/slim_base.css | 50 - .../default-304/yaml/core/slim_iehacks.css | 36 - .../default-304/yaml/core/slim_print_base.css | 21 - .../themes/default-304/yaml/debug/debug.css | 157 --- .../yaml/debug/images/grid_pattern.png | Bin 29833 -> 0 bytes .../yaml/debug/images/warning_iehacks.gif | Bin 2912 -> 0 bytes .../yaml/debug/images/yaml_debug.gif | Bin 2842 -> 0 bytes .../default-304/yaml/navigation/nav_vlist.css | 109 -- .../yaml/patches/patch_layout_draft.css | 29 - .../yaml/patches/patch_nav_vlist.css | 61 - .../yaml/print/print_003_draft.css | 32 - .../yaml/print/print_020_draft.css | 31 - .../yaml/print/print_023_draft.css | 40 - .../yaml/print/print_100_draft.css | 31 - .../yaml/print/print_103_draft.css | 38 - .../yaml/print/print_120_draft.css | 39 - .../yaml/print/print_123_draft.css | 40 - .../default-304/yaml/screen/basemod_draft.css | 70 -- .../yaml/screen/content_default.css | 170 --- 1451 files changed, 1 insertion(+), 17931 deletions(-) delete mode 100644 interface/web/themes/default-304/css/central.css delete mode 100644 interface/web/themes/default-304/css/navigation/nav_side.css delete mode 100644 interface/web/themes/default-304/css/navigation/nav_top.css delete mode 100644 interface/web/themes/default-304/css/patches/central.css delete mode 100644 interface/web/themes/default-304/css/print/print_100.css delete mode 100644 interface/web/themes/default-304/css/screen/basemod.css delete mode 100644 interface/web/themes/default-304/css/screen/basemod_2col_left_seo.css delete mode 100644 interface/web/themes/default-304/css/screen/content.css delete mode 100644 interface/web/themes/default-304/css/screen/content_ispc.css delete mode 100644 interface/web/themes/default-304/css/screen/jquery-ui-custom.css delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_flat_55_fbec88_40x100.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_85_dfeffc_1x400.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-icons_217bc0_256x240.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-icons_2e83ff_256x240.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-icons_469bdd_256x240.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-icons_6da8d5_256x240.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-icons_cd0a0a_256x240.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-icons_d8e7f3_256x240.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/images/ui-icons_f9bd01_256x240.png delete mode 100644 interface/web/themes/default-304/css/screen/redmond/jquery-ui-1.8.16.custom.css delete mode 100644 interface/web/themes/default-304/css/screen/tipsy.css delete mode 100644 interface/web/themes/default-304/css/screen/uni-form-generic.css delete mode 100644 interface/web/themes/default-304/css/screen/uni-form.css delete mode 100644 interface/web/themes/default-304/icons/device_sprite.png delete mode 100644 interface/web/themes/default-304/icons/flags_sprite.png delete mode 100644 interface/web/themes/default-304/icons/x12/accept.png delete mode 100644 interface/web/themes/default-304/icons/x12/accept_blue.png delete mode 100644 interface/web/themes/default-304/icons/x12/accept_green.png delete mode 100644 interface/web/themes/default-304/icons/x12/arrow_2_left_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/arrow_2_right_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/arrow_left_blue_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/arrow_right_blue_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/article.png delete mode 100644 interface/web/themes/default-304/icons/x12/article_text.png delete mode 100644 interface/web/themes/default-304/icons/x12/bar_graph.png delete mode 100644 interface/web/themes/default-304/icons/x12/burst.png delete mode 100644 interface/web/themes/default-304/icons/x12/calendar.png delete mode 100644 interface/web/themes/default-304/icons/x12/calendar2.png delete mode 100644 interface/web/themes/default-304/icons/x12/cancel.png delete mode 100644 interface/web/themes/default-304/icons/x12/cancel_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/clock.png delete mode 100644 interface/web/themes/default-304/icons/x12/code.png delete mode 100644 interface/web/themes/default-304/icons/x12/comment_blue.png delete mode 100644 interface/web/themes/default-304/icons/x12/dollar.png delete mode 100644 interface/web/themes/default-304/icons/x12/double_comment.png delete mode 100644 interface/web/themes/default-304/icons/x12/download.png delete mode 100644 interface/web/themes/default-304/icons/x12/envelope.png delete mode 100644 interface/web/themes/default-304/icons/x12/flag_black.png delete mode 100644 interface/web/themes/default-304/icons/x12/flag_blue.png delete mode 100644 interface/web/themes/default-304/icons/x12/flag_green.png delete mode 100644 interface/web/themes/default-304/icons/x12/flag_orange.png delete mode 100644 interface/web/themes/default-304/icons/x12/flag_red.png delete mode 100644 interface/web/themes/default-304/icons/x12/flag_yellow.png delete mode 100644 interface/web/themes/default-304/icons/x12/folder.png delete mode 100644 interface/web/themes/default-304/icons/x12/info.png delete mode 100644 interface/web/themes/default-304/icons/x12/link.png delete mode 100644 interface/web/themes/default-304/icons/x12/lock.png delete mode 100644 interface/web/themes/default-304/icons/x12/magnify.png delete mode 100644 interface/web/themes/default-304/icons/x12/minus.png delete mode 100644 interface/web/themes/default-304/icons/x12/minus_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/money.png delete mode 100644 interface/web/themes/default-304/icons/x12/new.png delete mode 100644 interface/web/themes/default-304/icons/x12/pencil.png delete mode 100644 interface/web/themes/default-304/icons/x12/pictures.png delete mode 100644 interface/web/themes/default-304/icons/x12/plus.png delete mode 100644 interface/web/themes/default-304/icons/x12/printer.png delete mode 100644 interface/web/themes/default-304/icons/x12/question_blue.png delete mode 100644 interface/web/themes/default-304/icons/x12/refresh.png delete mode 100644 interface/web/themes/default-304/icons/x12/rss.png delete mode 100644 interface/web/themes/default-304/icons/x12/rss_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/security_green.png delete mode 100644 interface/web/themes/default-304/icons/x12/security_orange.png delete mode 100644 interface/web/themes/default-304/icons/x12/security_red.png delete mode 100644 interface/web/themes/default-304/icons/x12/star.png delete mode 100644 interface/web/themes/default-304/icons/x12/star_blue.png delete mode 100644 interface/web/themes/default-304/icons/x12/stop.png delete mode 100644 interface/web/themes/default-304/icons/x12/stop_round.png delete mode 100644 interface/web/themes/default-304/icons/x12/upload.png delete mode 100644 interface/web/themes/default-304/icons/x12/world.png delete mode 100644 interface/web/themes/default-304/icons/x12/world2.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/accept.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/accept_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/accept_green.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/arrow_2_left_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/arrow_2_right_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/arrow_left_blue_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/arrow_right_blue_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/article.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/article_text.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/bar_graph.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/burst.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/calendar.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/calendar2.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/cancel.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/cancel_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/clock.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/code.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/comment_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/dollar.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/double_comment.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/download.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/envelope.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/flag_black.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/flag_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/flag_green.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/flag_orange.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/flag_red.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/flag_yellow.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/folder.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/info.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/link.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/lock.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/magnify.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/minus.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/minus_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/money.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/new.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/pictures.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/plus.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/printer.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/question_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/refresh.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/rss.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/rss_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/security_green.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/security_orange.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/security_red.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/star.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/star_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/stop.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/stop_round.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/upload.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/world.png delete mode 100644 interface/web/themes/default-304/icons/x16-list/world2.png delete mode 100644 interface/web/themes/default-304/icons/x16/address_book.png delete mode 100644 interface/web/themes/default-304/icons/x16/address_book__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/address_book__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/address_book__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/address_book__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/address_book__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/address_book_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_000_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_045.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_045_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_090.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_090_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_135.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_135_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_180.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_180_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_225.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_225_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_270.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_270_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_315.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_315_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_circle_135.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_circle_225.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_circle_315.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_circle_double.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_circle_double_135.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_skip.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_skip_090.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_skip_180.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_skip_270.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_stop.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_stop_090.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_stop_180.png delete mode 100644 interface/web/themes/default-304/icons/x16/arrow_stop_270.png delete mode 100644 interface/web/themes/default-304/icons/x16/auction_hammer.png delete mode 100644 interface/web/themes/default-304/icons/x16/auction_hammer__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/auction_hammer__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/auction_hammer__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/auction_hammer__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/auction_hammer__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/auction_hammer_gavel.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon_left.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloon_small_left.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloons.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloons_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloons_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloons_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloons_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/balloons_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bandaid.png delete mode 100644 interface/web/themes/default-304/icons/x16/bandaid_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bandaid_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bandaid_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bandaid_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bandaid_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bandaid_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/bank.png delete mode 100644 interface/web/themes/default-304/icons/x16/bank_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bank_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bank_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bank_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bank_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bell.png delete mode 100644 interface/web/themes/default-304/icons/x16/bell__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bell__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bell__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bell__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bell__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bell_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/bin.png delete mode 100644 interface/web/themes/default-304/icons/x16/bin__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bin__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bin__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bin__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bin__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bin_full.png delete mode 100644 interface/web/themes/default-304/icons/x16/binocular.png delete mode 100644 interface/web/themes/default-304/icons/x16/binocular_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/binocular_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/binocular_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/binocular_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/binocular_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/blog.png delete mode 100644 interface/web/themes/default-304/icons/x16/blog__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/blog__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/blog__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/blog__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/blog__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/blog_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16/blogs.png delete mode 100644 interface/web/themes/default-304/icons/x16/blogs_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/blogs_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/blogs_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/blogs_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/blogs_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/blogs_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/book.png delete mode 100644 interface/web/themes/default-304/icons/x16/book__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/book__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/book__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/book__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/book__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/book_brown.png delete mode 100644 interface/web/themes/default-304/icons/x16/book_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/book_small_brown.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark__small.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_book.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_book_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_book_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_book_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_book_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_book_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_document.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_document_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_document_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_document_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_document_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_document_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_folder.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_folder_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_folder_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_folder_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_folder_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/bookmark_folder_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/books.png delete mode 100644 interface/web/themes/default-304/icons/x16/books__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/books__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/books__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/books__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/books__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/books_brown.png delete mode 100644 interface/web/themes/default-304/icons/x16/books_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/box.png delete mode 100644 interface/web/themes/default-304/icons/x16/box__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/box__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/box__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/box__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/box__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/box_label.png delete mode 100644 interface/web/themes/default-304/icons/x16/briefcase.png delete mode 100644 interface/web/themes/default-304/icons/x16/briefcase_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/briefcase_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/briefcase_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/briefcase_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/briefcase_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/broom.png delete mode 100644 interface/web/themes/default-304/icons/x16/broom_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/broom_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/broom_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/broom_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/broom_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/calculator.png delete mode 100644 interface/web/themes/default-304/icons/x16/calculator_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/calculator_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/calculator_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/calculator_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/calculator_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar_day.png delete mode 100644 interface/web/themes/default-304/icons/x16/calendar_month.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera_black.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/camera_small_black.png delete mode 100644 interface/web/themes/default-304/icons/x16/card.png delete mode 100644 interface/web/themes/default-304/icons/x16/card__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/card__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/card__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/card__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/card__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/card_address.png delete mode 100644 interface/web/themes/default-304/icons/x16/card_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards_address.png delete mode 100644 interface/web/themes/default-304/icons/x16/cards_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/cassette.png delete mode 100644 interface/web/themes/default-304/icons/x16/cassette_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/cassette_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/cassette_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/cassette_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/cassette_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/cassette_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/chain_unchain.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard_empty.png delete mode 100644 interface/web/themes/default-304/icons/x16/clipboard_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock_fill.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/clock_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/color.png delete mode 100644 interface/web/themes/default-304/icons/x16/color_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/color_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/color_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/color_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/color_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/color_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast_low.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/contrast_small_low.png delete mode 100644 interface/web/themes/default-304/icons/x16/cross.png delete mode 100644 interface/web/themes/default-304/icons/x16/cross_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/cross_circle_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/cross_shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/cross_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/cross_small_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown_bronze.png delete mode 100644 interface/web/themes/default-304/icons/x16/crown_silver.png delete mode 100644 interface/web/themes/default-304/icons/x16/database.png delete mode 100644 interface/web/themes/default-304/icons/x16/database_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/database_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/database_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/database_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/database_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/database_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/databases.png delete mode 100644 interface/web/themes/default-304/icons/x16/databases_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/databases_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/databases_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/databases_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/databases_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disc.png delete mode 100644 interface/web/themes/default-304/icons/x16/disc_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/disc_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/disc_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disc_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/disc_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disc_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/discs.png delete mode 100644 interface/web/themes/default-304/icons/x16/discs_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/discs_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/discs_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/discs_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/discs_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk_black.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/disk_small_black.png delete mode 100644 interface/web/themes/default-304/icons/x16/disks.png delete mode 100644 interface/web/themes/default-304/icons/x16/disks__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/disks__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/disks__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disks__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/disks__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/disks_black.png delete mode 100644 interface/web/themes/default-304/icons/x16/document.png delete mode 100644 interface/web/themes/default-304/icons/x16/document__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/document__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/document__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/document__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/document__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_horizontal.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_horizontal_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_music.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_music_playlist.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_shred.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_text_image.png delete mode 100644 interface/web/themes/default-304/icons/x16/document_zipper.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/documents_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/door.png delete mode 100644 interface/web/themes/default-304/icons/x16/door_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/door_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/door_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/door_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/door_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/drawer.png delete mode 100644 interface/web/themes/default-304/icons/x16/drawer_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/drawer_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/drawer_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/drawer_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/drawer_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/drill.png delete mode 100644 interface/web/themes/default-304/icons/x16/drill_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/drill_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/drill_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/drill_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/drill_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/envelope.png delete mode 100644 interface/web/themes/default-304/icons/x16/envelope_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/envelope_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/envelope_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/envelope_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/envelope_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/equalizer.png delete mode 100644 interface/web/themes/default-304/icons/x16/equalizer_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/equalizer_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/equalizer_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/equalizer_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/equalizer_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/eraser.png delete mode 100644 interface/web/themes/default-304/icons/x16/eraser_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/eraser_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/eraser_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/eraser_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/eraser_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/exclamation_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/exclamation_shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/exclamation_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed_balloon.png delete mode 100644 interface/web/themes/default-304/icons/x16/feed_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/film.png delete mode 100644 interface/web/themes/default-304/icons/x16/film_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/film_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/film_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/film_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/film_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/film_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/films.png delete mode 100644 interface/web/themes/default-304/icons/x16/films_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/films_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/films_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/films_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/films_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/flag.png delete mode 100644 interface/web/themes/default-304/icons/x16/flag_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/flag_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/flag_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/flag_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/flag_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_open.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_open_document.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_open_document_music.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_open_document_music_playlist.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_open_document_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_open_film.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_open_image.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_shred.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/folder_zipper.png delete mode 100644 interface/web/themes/default-304/icons/x16/folders.png delete mode 100644 interface/web/themes/default-304/icons/x16/folders_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/folders_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/folders_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/folders_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/folders_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/folders_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/funnel.png delete mode 100644 interface/web/themes/default-304/icons/x16/funnel_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/funnel_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/funnel_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/funnel_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/funnel_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/funnel_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/gear_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer_left.png delete mode 100644 interface/web/themes/default-304/icons/x16/hammer_screwdriver.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart_break.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart_empty.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart_half.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart_small_empty.png delete mode 100644 interface/web/themes/default-304/icons/x16/heart_small_half.png delete mode 100644 interface/web/themes/default-304/icons/x16/home.png delete mode 100644 interface/web/themes/default-304/icons/x16/home_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/home_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/home_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/home_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/home_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/home_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/image.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_resize.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_resize_actual.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_small_sunset.png delete mode 100644 interface/web/themes/default-304/icons/x16/image_sunset.png delete mode 100644 interface/web/themes/default-304/icons/x16/images.png delete mode 100644 interface/web/themes/default-304/icons/x16/images_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/images_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/images_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/images_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/images_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/images_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/inbox.png delete mode 100644 interface/web/themes/default-304/icons/x16/inbox_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/inbox_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/inbox_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/inbox_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/inbox_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/information.png delete mode 100644 interface/web/themes/default-304/icons/x16/information_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/information_shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/information_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/key.png delete mode 100644 interface/web/themes/default-304/icons/x16/key__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/key__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/key__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/key__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/key__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/key_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_2.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_2_equal.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_3.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_3_mix.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_2.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_2_equal.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_3.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_3_mix.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_footer.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_footer_2.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_footer_2_equal.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_footer_3.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_header_footer_3_mix.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_join.png delete mode 100644 interface/web/themes/default-304/icons/x16/layout_split.png delete mode 100644 interface/web/themes/default-304/icons/x16/lifebuoy.png delete mode 100644 interface/web/themes/default-304/icons/x16/lifebuoy_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/lifebuoy_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/lifebuoy_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/lifebuoy_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/lifebuoy_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb_off.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/light_bulb_small_off.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/lightning_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/loading.gif delete mode 100644 interface/web/themes/default-304/icons/x16/lock.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/lock_unlock.png delete mode 100644 interface/web/themes/default-304/icons/x16/logout.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnet_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_left.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_medium.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_medium_left.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_zoom.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_zoom_actual.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_zoom_fit.png delete mode 100644 interface/web/themes/default-304/icons/x16/magnifier_zoom_out.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail_open.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail_open_document.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail_open_film.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail_open_image.png delete mode 100644 interface/web/themes/default-304/icons/x16/mail_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/mails.png delete mode 100644 interface/web/themes/default-304/icons/x16/mails_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/mails_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/mails_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/mails_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/mails_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/mails_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_black.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_medium.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_medium_black.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_medium_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_medium_green.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_medium_pink.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_medium_red.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_small_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_small_green.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_small_purple.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_player_small_red.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_players.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_players_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_players_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_players_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_players_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/media_players_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/microphone.png delete mode 100644 interface/web/themes/default-304/icons/x16/microphone_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/microphone_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/microphone_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/microphone_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/microphone_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/minus_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/minus_circle_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/minus_shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/minus_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/minus_small_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/music.png delete mode 100644 interface/web/themes/default-304/icons/x16/music_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/music_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/music_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/music_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/music_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/music_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspaper.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspaper_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspaper_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspaper_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspaper_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspaper_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspapers.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspapers_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspapers_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspapers_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspapers_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/newspapers_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebook.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebook_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebook_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebook_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebook_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebook_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebooks.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebooks_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebooks_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebooks_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebooks_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/notebooks_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/paint_can.png delete mode 100644 interface/web/themes/default-304/icons/x16/paint_can_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/paint_can_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/paint_can_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/paint_can_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/paint_can_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/palette.png delete mode 100644 interface/web/themes/default-304/icons/x16/palette_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/palette_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/palette_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/palette_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/palette_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/paper_bag.png delete mode 100644 interface/web/themes/default-304/icons/x16/paper_bag_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/paper_bag_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/paper_bag_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/paper_bag_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/paper_bag_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pdf.png delete mode 100644 interface/web/themes/default-304/icons/x16/pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/pencil_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/pencil_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/pencil_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pencil_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pencil_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/photo_album.png delete mode 100644 interface/web/themes/default-304/icons/x16/photo_album__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/photo_album__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/photo_album__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/photo_album__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/photo_album__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/photo_album_blue.png delete mode 100644 interface/web/themes/default-304/icons/x16/piano.png delete mode 100644 interface/web/themes/default-304/icons/x16/piano_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/piano_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/piano_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/piano_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/piano_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_small_sunset.png delete mode 100644 interface/web/themes/default-304/icons/x16/picture_sunset.png delete mode 100644 interface/web/themes/default-304/icons/x16/pictures.png delete mode 100644 interface/web/themes/default-304/icons/x16/pictures_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/pictures_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/pictures_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pictures_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/pictures_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pill.png delete mode 100644 interface/web/themes/default-304/icons/x16/pill_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/pill_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/pill_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pill_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/pill_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pill_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/pin.png delete mode 100644 interface/web/themes/default-304/icons/x16/pin_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/pin_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/pin_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pin_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/pin_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pipette.png delete mode 100644 interface/web/themes/default-304/icons/x16/pipette_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/pipette_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/pipette_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/pipette_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/pipette_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/playing_card.png delete mode 100644 interface/web/themes/default-304/icons/x16/playing_card_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/playing_card_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/playing_card_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/playing_card_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/playing_card_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/plug.png delete mode 100644 interface/web/themes/default-304/icons/x16/plug_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/plug_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/plug_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/plug_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/plug_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/plus_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/plus_circle_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/plus_shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/plus_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/plus_small_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer_empty.png delete mode 100644 interface/web/themes/default-304/icons/x16/printer_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/puzzle.png delete mode 100644 interface/web/themes/default-304/icons/x16/puzzle__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/puzzle__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/puzzle__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/puzzle__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/puzzle__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/puzzle_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/question.png delete mode 100644 interface/web/themes/default-304/icons/x16/question_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/question_shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/question_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt_shred.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipt_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipts.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipts_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipts_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipts_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipts_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipts_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/receipts_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/report.png delete mode 100644 interface/web/themes/default-304/icons/x16/report_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/report_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/report_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/report_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/report_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/ruler.png delete mode 100644 interface/web/themes/default-304/icons/x16/ruler__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/ruler__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/ruler__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/ruler__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/ruler__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/ruler_crop.png delete mode 100644 interface/web/themes/default-304/icons/x16/safe.png delete mode 100644 interface/web/themes/default-304/icons/x16/safe_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/safe_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/safe_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/safe_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/safe_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/screwdriver.png delete mode 100644 interface/web/themes/default-304/icons/x16/screwdriver_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/screwdriver_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/screwdriver_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/screwdriver_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/screwdriver_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/script.png delete mode 100644 interface/web/themes/default-304/icons/x16/script__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/script__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/script__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/script__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/script__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/script_code.png delete mode 100644 interface/web/themes/default-304/icons/x16/scripts.png delete mode 100644 interface/web/themes/default-304/icons/x16/scripts__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/scripts__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/scripts__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/scripts__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/scripts__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/scripts_code.png delete mode 100644 interface/web/themes/default-304/icons/x16/shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/shield__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/shield__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/shield__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/shield__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/shield__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/shield_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/slash.png delete mode 100644 interface/web/themes/default-304/icons/x16/slash_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/socket.png delete mode 100644 interface/web/themes/default-304/icons/x16/socket_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/socket_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/socket_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/socket_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/socket_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_alphabet.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_alphabet_descending.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_date.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_date_descending.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_number.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_number_descending.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_quantity.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_quantity_descending.png delete mode 100644 interface/web/themes/default-304/icons/x16/sort_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/stamp.png delete mode 100644 interface/web/themes/default-304/icons/x16/stamp_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/stamp_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/stamp_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/stamp_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/stamp_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/star.png delete mode 100644 interface/web/themes/default-304/icons/x16/star__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/star__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/star__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/star__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/star__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/star_empty.png delete mode 100644 interface/web/themes/default-304/icons/x16/star_half.png delete mode 100644 interface/web/themes/default-304/icons/x16/star_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/star_small_empty.png delete mode 100644 interface/web/themes/default-304/icons/x16/star_small_half.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note_pin.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note_shred.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note_small_pin.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_note_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes_pin.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes_stack.png delete mode 100644 interface/web/themes/default-304/icons/x16/sticky_notes_text.png delete mode 100644 interface/web/themes/default-304/icons/x16/switch.png delete mode 100644 interface/web/themes/default-304/icons/x16/switch_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/switch_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/switch_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/switch_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/switch_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/table.png delete mode 100644 interface/web/themes/default-304/icons/x16/table__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/table__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/table__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/table__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/table__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/table_delete.png delete mode 100644 interface/web/themes/default-304/icons/x16/table_delete_column.png delete mode 100644 interface/web/themes/default-304/icons/x16/table_insert.png delete mode 100644 interface/web/themes/default-304/icons/x16/table_insert_column.png delete mode 100644 interface/web/themes/default-304/icons/x16/tables.png delete mode 100644 interface/web/themes/default-304/icons/x16/tables_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/tables_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/tables_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/tables_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/tables_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/tables_stacks.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag_label.png delete mode 100644 interface/web/themes/default-304/icons/x16/tag_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/tags.png delete mode 100644 interface/web/themes/default-304/icons/x16/tags__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/tags__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/tags__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/tags__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/tags__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/tags_label.png delete mode 100644 interface/web/themes/default-304/icons/x16/tick.png delete mode 100644 interface/web/themes/default-304/icons/x16/tick_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/tick_circle_frame.png delete mode 100644 interface/web/themes/default-304/icons/x16/tick_shield.png delete mode 100644 interface/web/themes/default-304/icons/x16/tick_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/tick_small_circle.png delete mode 100644 interface/web/themes/default-304/icons/x16/ticket.png delete mode 100644 interface/web/themes/default-304/icons/x16/ticket_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/ticket_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/ticket_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/ticket_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/ticket_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/ticket_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/trophy.png delete mode 100644 interface/web/themes/default-304/icons/x16/trophy_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/trophy_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/trophy_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/trophy_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/trophy_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/tux.png delete mode 100644 interface/web/themes/default-304/icons/x16/user.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_add.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_comment.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_delete.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_edit.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_female.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_go.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_gray.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_green.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_orange.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_red.png delete mode 100644 interface/web/themes/default-304/icons/x16/user_suit.png delete mode 100644 interface/web/themes/default-304/icons/x16/vcard.png delete mode 100644 interface/web/themes/default-304/icons/x16/vcard_add.png delete mode 100644 interface/web/themes/default-304/icons/x16/vcard_delete.png delete mode 100644 interface/web/themes/default-304/icons/x16/vcard_edit.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall__arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall__exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall__minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall__pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall__plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall_brick.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall_disable.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall_small.png delete mode 100644 interface/web/themes/default-304/icons/x16/wall_small_brick.png delete mode 100644 interface/web/themes/default-304/icons/x16/wallet.png delete mode 100644 interface/web/themes/default-304/icons/x16/wallet_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/wallet_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/wallet_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wallet_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/wallet_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wand.png delete mode 100644 interface/web/themes/default-304/icons/x16/wand_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/wand_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/wand_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wand_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/wand_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wrench.png delete mode 100644 interface/web/themes/default-304/icons/x16/wrench_arrow.png delete mode 100644 interface/web/themes/default-304/icons/x16/wrench_exclamation.png delete mode 100644 interface/web/themes/default-304/icons/x16/wrench_minus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wrench_pencil.png delete mode 100644 interface/web/themes/default-304/icons/x16/wrench_plus.png delete mode 100644 interface/web/themes/default-304/icons/x16/wrench_screwdriver.png delete mode 100644 interface/web/themes/default-304/icons/x16_sprite.png delete mode 100644 interface/web/themes/default-304/icons/x32/calculator.png delete mode 100644 interface/web/themes/default-304/icons/x32/client.png delete mode 100644 interface/web/themes/default-304/icons/x32/dashboard.png delete mode 100644 interface/web/themes/default-304/icons/x32/dns.png delete mode 100644 interface/web/themes/default-304/icons/x32/domain.png delete mode 100644 interface/web/themes/default-304/icons/x32/drawer.png delete mode 100644 interface/web/themes/default-304/icons/x32/email.png delete mode 100644 interface/web/themes/default-304/icons/x32/help.png delete mode 100644 interface/web/themes/default-304/icons/x32/login.png delete mode 100644 interface/web/themes/default-304/icons/x32/monitor.png delete mode 100644 interface/web/themes/default-304/icons/x32/network.png delete mode 100644 interface/web/themes/default-304/icons/x32/server.png delete mode 100644 interface/web/themes/default-304/icons/x32/sites.png delete mode 100644 interface/web/themes/default-304/icons/x32/state_critical.png delete mode 100644 interface/web/themes/default-304/icons/x32/state_error.png delete mode 100644 interface/web/themes/default-304/icons/x32/state_info.png delete mode 100644 interface/web/themes/default-304/icons/x32/state_ok.png delete mode 100644 interface/web/themes/default-304/icons/x32/state_unknown.png delete mode 100644 interface/web/themes/default-304/icons/x32/state_warning.png delete mode 100644 interface/web/themes/default-304/icons/x32/system.png delete mode 100644 interface/web/themes/default-304/icons/x32/tools.png delete mode 100644 interface/web/themes/default-304/icons/x32_sprite.png delete mode 100644 interface/web/themes/default-304/icons/x64/client.png delete mode 100644 interface/web/themes/default-304/icons/x64/dashboard.png delete mode 100644 interface/web/themes/default-304/icons/x64/dns.png delete mode 100644 interface/web/themes/default-304/icons/x64/domain.png delete mode 100644 interface/web/themes/default-304/icons/x64/drawer.png delete mode 100644 interface/web/themes/default-304/icons/x64/email.png delete mode 100644 interface/web/themes/default-304/icons/x64/help.png delete mode 100644 interface/web/themes/default-304/icons/x64/login.png delete mode 100644 interface/web/themes/default-304/icons/x64/monitor.png delete mode 100644 interface/web/themes/default-304/icons/x64/network.png delete mode 100644 interface/web/themes/default-304/icons/x64/server.png delete mode 100644 interface/web/themes/default-304/icons/x64/sites.png delete mode 100644 interface/web/themes/default-304/icons/x64/system.png delete mode 100644 interface/web/themes/default-304/icons/x64/tools.png delete mode 100644 interface/web/themes/default-304/images/Thumbs.db delete mode 100644 interface/web/themes/default-304/images/ajax-loader.gif delete mode 100644 interface/web/themes/default-304/images/buttonHolder_bg.gif delete mode 100644 interface/web/themes/default-304/images/chevron.png delete mode 100644 interface/web/themes/default-304/images/favicon.ico delete mode 100644 interface/web/themes/default-304/images/header_bg.png delete mode 100644 interface/web/themes/default-304/images/header_logo.png delete mode 100644 interface/web/themes/default-304/images/lists_tfoot_bg.png delete mode 100644 interface/web/themes/default-304/images/lists_thead_bg.png delete mode 100644 interface/web/themes/default-304/images/meter_bg.gif delete mode 100644 interface/web/themes/default-304/images/screen_bg.png delete mode 100644 interface/web/themes/default-304/ispconfig_version delete mode 100644 interface/web/themes/default-304/licences.txt delete mode 100644 interface/web/themes/default-304/templates/admin/firewall_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/firewall_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/groups_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/groups_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/iptables_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/iptables_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/language_add.htm delete mode 100644 interface/web/themes/default-304/templates/admin/language_complete.htm delete mode 100644 interface/web/themes/default-304/templates/admin/language_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/language_export.htm delete mode 100644 interface/web/themes/default-304/templates/admin/language_import.htm delete mode 100644 interface/web/themes/default-304/templates/admin/language_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/remote_action_ispcupdate.htm delete mode 100644 interface/web/themes/default-304/templates/admin/remote_action_osupdate.htm delete mode 100644 interface/web/themes/default-304/templates/admin/remote_user_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/remote_user_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_cron_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_dns_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_fastcgi_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_getmail_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_jailkit_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_mail_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_rescue_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_server_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_ufw_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_vlogger_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_config_web_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_edit_config.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_edit_services.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_ip_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_ip_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_php_fastcgi_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_php_fpm_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_php_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/server_php_name_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/software_package_install.htm delete mode 100644 interface/web/themes/default-304/templates/admin/software_package_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/software_repo_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/software_repo_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/software_update_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/system_config_domains_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/system_config_mail_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/system_config_misc_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/tpl_default_basic.htm delete mode 100644 interface/web/themes/default-304/templates/admin/users_groups_edit.htm delete mode 100644 interface/web/themes/default-304/templates/admin/users_list.htm delete mode 100644 interface/web/themes/default-304/templates/admin/users_user_edit.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_circle_edit.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_circle_list.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_del.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_edit_address.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_edit_limits.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_message.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_template_edit_limits.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_template_edit_template.htm delete mode 100644 interface/web/themes/default-304/templates/client/client_template_list.htm delete mode 100644 interface/web/themes/default-304/templates/client/clients_list.htm delete mode 100644 interface/web/themes/default-304/templates/client/domain_edit.htm delete mode 100644 interface/web/themes/default-304/templates/client/domain_list.htm delete mode 100644 interface/web/themes/default-304/templates/client/reseller_edit_address.htm delete mode 100644 interface/web/themes/default-304/templates/client/reseller_edit_limits.htm delete mode 100644 interface/web/themes/default-304/templates/client/resellers_list.htm delete mode 100644 interface/web/themes/default-304/templates/dashboard/custom_menu.htm delete mode 100644 interface/web/themes/default-304/templates/dashboard/dashboard.htm delete mode 100644 interface/web/themes/default-304/templates/dashboard/dashlets/limits.htm delete mode 100644 interface/web/themes/default-304/templates/dashboard/dashlets/modules.htm delete mode 100644 interface/web/themes/default-304/templates/designer/form_edit.htm delete mode 100644 interface/web/themes/default-304/templates/designer/form_list.htm delete mode 100644 interface/web/themes/default-304/templates/designer/form_show.htm delete mode 100644 interface/web/themes/default-304/templates/designer/module_edit.htm delete mode 100644 interface/web/themes/default-304/templates/designer/module_list.htm delete mode 100644 interface/web/themes/default-304/templates/designer/module_nav_edit.htm delete mode 100644 interface/web/themes/default-304/templates/designer/module_nav_item_edit.htm delete mode 100644 interface/web/themes/default-304/templates/designer/module_show.htm delete mode 100644 interface/web/themes/default-304/templates/designer/paging.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_a_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_a_list.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_aaaa_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_alias_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_cname_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_hinfo_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_import.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_mx_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_ns_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_ptr_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_records_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_rp_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_slave_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_slave_list.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_soa_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_soa_list.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_srv_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_template_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_template_list.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_txt_edit.htm delete mode 100644 interface/web/themes/default-304/templates/dns/dns_wizard.htm delete mode 100644 interface/web/themes/default-304/templates/error.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/form.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/help/faq_edit.htm delete mode 100644 interface/web/themes/default-304/templates/help/faq_manage_questions_list.htm delete mode 100644 interface/web/themes/default-304/templates/help/faq_sections_edit.htm delete mode 100644 interface/web/themes/default-304/templates/help/help_faq_list.htm delete mode 100644 interface/web/themes/default-304/templates/help/help_faq_sections_list.htm delete mode 100644 interface/web/themes/default-304/templates/help/support_message_edit.htm delete mode 100644 interface/web/themes/default-304/templates/help/support_message_list.htm delete mode 100644 interface/web/themes/default-304/templates/help/support_message_view.htm delete mode 100644 interface/web/themes/default-304/templates/listpage.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/login/index.htm delete mode 100644 interface/web/themes/default-304/templates/login/password_reset.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_alias_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_alias_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_aliasdomain_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_aliasdomain_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_blacklist_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_blacklist_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_content_filter_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_content_filter_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_domain_admin_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_domain_catchall_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_domain_catchall_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_domain_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_domain_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_forward_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_forward_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_get_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_get_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_mailinglist_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_mailinglist_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_relay_recipient_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_relay_recipient_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_transport_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_transport_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_autoresponder_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_custom_rules_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_filter_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_filter_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_mailbox_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_mailfilter_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_user_stats_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_whitelist_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/mail_whitelist_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_blacklist_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_blacklist_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_config_getmail_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_config_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_config_mail_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_config_server_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_other_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_policy_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_policy_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_quarantine_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_taglevel_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_users_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_users_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_whitelist_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mail/spamfilter_whitelist_list.htm delete mode 100644 interface/web/themes/default-304/templates/mail/user_quota_stats_list.htm delete mode 100644 interface/web/themes/default-304/templates/mailuser/index.htm delete mode 100644 interface/web/themes/default-304/templates/mailuser/mail_user_autoresponder_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mailuser/mail_user_cc_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mailuser/mail_user_filter_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mailuser/mail_user_filter_list.htm delete mode 100644 interface/web/themes/default-304/templates/mailuser/mail_user_password_edit.htm delete mode 100644 interface/web/themes/default-304/templates/mailuser/mail_user_spamfilter_edit.htm delete mode 100644 interface/web/themes/default-304/templates/main.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/module.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/module_tree.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/monitor/datalog_list.htm delete mode 100644 interface/web/themes/default-304/templates/monitor/show_data.htm delete mode 100644 interface/web/themes/default-304/templates/monitor/show_log.htm delete mode 100644 interface/web/themes/default-304/templates/monitor/show_sys_state.htm delete mode 100644 interface/web/themes/default-304/templates/monitor/syslog_list.htm delete mode 100644 interface/web/themes/default-304/templates/sidenav.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/sites/aps_install_package.htm delete mode 100644 interface/web/themes/default-304/templates/sites/aps_instances_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/aps_packagedetails_show.htm delete mode 100644 interface/web/themes/default-304/templates/sites/aps_packages_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/cron_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/cron_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/database_admin_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/database_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/database_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/database_user_admin_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/database_user_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/database_user_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/ftp_user_advanced.htm delete mode 100644 interface/web/themes/default-304/templates/sites/ftp_user_advanced_client.htm delete mode 100644 interface/web/themes/default-304/templates/sites/ftp_user_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/ftp_user_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/shell_user_advanced.htm delete mode 100644 interface/web/themes/default-304/templates/sites/shell_user_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/shell_user_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/user_quota_stats_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_aliasdomain_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_aliasdomain_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_backup_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_admin_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_advanced.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_backup.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_redirect.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_ssl.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_domain_stats.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_folder_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_folder_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_folder_user_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_folder_user_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_sites_stats_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_subdomain_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_subdomain_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_subdomain_advanced.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_subdomain_backup.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_subdomain_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_subdomain_list.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_subdomain_redirect.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_subdomain_ssl.htm delete mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_subdomain_stats.htm delete mode 100644 interface/web/themes/default-304/templates/sites/webdav_user_edit.htm delete mode 100644 interface/web/themes/default-304/templates/sites/webdav_user_list.htm delete mode 100644 interface/web/themes/default-304/templates/tabbed_form.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/tools/dns_import_tupa.htm delete mode 100644 interface/web/themes/default-304/templates/tools/import_ispconfig.htm delete mode 100644 interface/web/themes/default-304/templates/tools/import_plesk.htm delete mode 100644 interface/web/themes/default-304/templates/tools/index.htm delete mode 100644 interface/web/themes/default-304/templates/tools/interface_settings.htm delete mode 100644 interface/web/themes/default-304/templates/tools/resync.htm delete mode 100644 interface/web/themes/default-304/templates/tools/tpl_default.htm delete mode 100644 interface/web/themes/default-304/templates/tools/user_settings.htm delete mode 100644 interface/web/themes/default-304/templates/topnav.tpl.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_action.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_ip_edit.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_ip_list.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_ostemplate_edit.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_ostemplate_list.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_template_advanced_edit.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_template_edit.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_template_list.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_vm_advanced_edit.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_vm_edit.htm delete mode 100644 interface/web/themes/default-304/templates/vm/openvz_vm_list.htm delete mode 100644 interface/web/themes/default-304/yaml/!important.txt delete mode 100644 interface/web/themes/default-304/yaml/core/base.css delete mode 100644 interface/web/themes/default-304/yaml/core/iehacks.css delete mode 100644 interface/web/themes/default-304/yaml/core/print_base.css delete mode 100644 interface/web/themes/default-304/yaml/core/slim_base.css delete mode 100644 interface/web/themes/default-304/yaml/core/slim_iehacks.css delete mode 100644 interface/web/themes/default-304/yaml/core/slim_print_base.css delete mode 100644 interface/web/themes/default-304/yaml/debug/debug.css delete mode 100644 interface/web/themes/default-304/yaml/debug/images/grid_pattern.png delete mode 100644 interface/web/themes/default-304/yaml/debug/images/warning_iehacks.gif delete mode 100644 interface/web/themes/default-304/yaml/debug/images/yaml_debug.gif delete mode 100644 interface/web/themes/default-304/yaml/navigation/nav_vlist.css delete mode 100644 interface/web/themes/default-304/yaml/patches/patch_layout_draft.css delete mode 100644 interface/web/themes/default-304/yaml/patches/patch_nav_vlist.css delete mode 100644 interface/web/themes/default-304/yaml/print/print_003_draft.css delete mode 100644 interface/web/themes/default-304/yaml/print/print_020_draft.css delete mode 100644 interface/web/themes/default-304/yaml/print/print_023_draft.css delete mode 100644 interface/web/themes/default-304/yaml/print/print_100_draft.css delete mode 100644 interface/web/themes/default-304/yaml/print/print_103_draft.css delete mode 100644 interface/web/themes/default-304/yaml/print/print_120_draft.css delete mode 100644 interface/web/themes/default-304/yaml/print/print_123_draft.css delete mode 100644 interface/web/themes/default-304/yaml/screen/basemod_draft.css delete mode 100644 interface/web/themes/default-304/yaml/screen/content_default.css diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 83b6ffba3a..cc22d9e02d 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2248,6 +2248,7 @@ class installer_base { // Remove directories recursively if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); + if(is_dir('/usr/local/ispconfig/interface/web/themes/default-304')) exec('rm -rf /usr/local/ispconfig/interface/web/themes/default-304'); // Remove files if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); diff --git a/interface/web/themes/default-304/css/central.css b/interface/web/themes/default-304/css/central.css deleted file mode 100644 index 91c793c368..0000000000 --- a/interface/web/themes/default-304/css/central.css +++ /dev/null @@ -1,33 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) central stylesheet - ISPConfig 3: default theme - * (de) Zentrales Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import core styles | Basis-Stylesheets einbinden */ -@import url(../yaml/core/base.css); - -/* import screen layout | Screen-Layout einbinden */ -@import url(navigation/nav_top.css); -@import url(navigation/nav_side.css); -@import url(screen/basemod.css); -@import url(screen/basemod_2col_left_seo.css); -@import url(screen/content.css); -@import url(screen/uni-form-generic.css); -@import url(screen/uni-form.css); -@import url(screen/tipsy.css); -@import url(screen/content_ispc.css); - -/* import print layout | Druck-Layout einbinden */ -@import url(print/print_100.css); diff --git a/interface/web/themes/default-304/css/navigation/nav_side.css b/interface/web/themes/default-304/css/navigation/nav_side.css deleted file mode 100644 index ea947a5b02..0000000000 --- a/interface/web/themes/default-304/css/navigation/nav_side.css +++ /dev/null @@ -1,125 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Vertical list navigation "vlist" - ISPConfig 3: default theme - * (de) Vertikale Navigationsliste "vlist" - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - #submenu { - width: 100%; - overflow: hidden; - margin: 0px; - list-style-type: none; - border-bottom: 2px #ddd solid; - } - - #submenu ul { list-style-type: none; margin:0; padding: 0; } - #submenu li { float:left; width: 100%; margin:0; padding: 0; font-size:0.9em; } - - #submenu a, - #submenu strong { - display:block; - width: 90%; - padding: 2px 0px 2px 10%; - text-decoration: none; - background-color:#fff; - color: #444; - border-bottom: 1px #eee solid; - } - - /* Menu Title */ - #submenu li.title { - width: 100%; - padding: 0px; - font-weight: bold; - color: #444; - background-color: #fff; - border-top: 2px #888 solid; - font-size: 1.1em; - } - - #submenu li.title a { - background-color: #f0f8ff; - color: #444; - } - #submenu li.title a:hover { - color: white; -} - - #submenu li span { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - border-bottom: 1px #ddd solid; - } - - /* Level 1 */ - #submenu li.active, - #submenu li strong { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #fff; - background-color:#aab; - border-bottom: 1px #eee solid; - } - - #submenu li a { width: 90%; padding-left: 10%; background-color:#fff; color: #444; } - #submenu li a:focus, - #submenu li a:hover, - #submenu li a:active { background-color:#f63; color: #fff; } - - /* Level 2 */ - #submenu li ul li a, - #submenu li ul li#active, - #submenu li ul li strong, - #submenu li ul li span { width: 80%; padding-left: 20%; } - - #submenu li ul li a { background-color:#f8f8f8; color: #666; } - #submenu li ul li a:focus, - #submenu li ul li a:hover, - #submenu li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 3 */ - #submenu li ul li ul li a, - #submenu li ul li ul li#active, - #submenu li ul li ul li strong, - #submenu li ul li ul li span { width: 70%; padding-left: 30%; } - - #submenu li ul li ul li a { background-color:#fcfcfc; color: #888; } - #submenu li ul li ul li a:focus, - #submenu li ul li ul li a:hover, - #submenu li ul li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 4 */ - #submenu li ul li ul li ul li a, - #submenu li ul li ul li ul li#active, - #submenu li ul li ul li ul li strong, - #submenu li ul li ul li ul li span { width: 60%; padding-left: 40%; } - - #submenu li ul li ul li ul li a { background-color:#ffffff; color: #aaa; } - #submenu li ul li ul li ul li a:focus, - #submenu li ul li ul li ul li a:hover, - #submenu li ul li ul li ul li a:active { background-color:#f63; color: #fff; } - - /* Form-Elements in the Menu*/ - #submenu * select#server_id { - margin: 3px 10%; - padding: 1px; - width: 80%; - } - -} \ No newline at end of file diff --git a/interface/web/themes/default-304/css/navigation/nav_top.css b/interface/web/themes/default-304/css/navigation/nav_top.css deleted file mode 100644 index 573ebc6dbf..0000000000 --- a/interface/web/themes/default-304/css/navigation/nav_top.css +++ /dev/null @@ -1,116 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Horizontal list navigation - ISPConfig 3: default theme - * (de) Horizontale Navigationsliste - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - #topNav ul { - list-style: none; - padding: 0; - margin: 0; - } - - #topNav ul li { - display: inline; - margin: 0 2px 0 0; - } - - #topNav a { - background-color: #D3D3D3; - background-position: center 5px; - background-repeat: no-repeat; - color:black; - display:inline-block; - height:20px; - padding-top:37px; - text-align:center; - text-decoration:none; - min-width:78px; - } - - #topNav a:hover { - background-color: #eeeeee; - color: #000000; - } - #topNav a span { - padding: 0 3px; - } - #topNav #topNav_current { - } - - #topNav #topNav_current a { - font-weight: bold; - color: black; - background-color: #ffffff; - } - - .topnav-admin { - background-image: url('../../icons/x32/system.png') !important; - } - - .topnav-client { - background-image: url('../../icons/x32/client.png') !important; - } - - .topnav-mail { - background-image: url('../../icons/x32/email.png') !important; - } - - .topnav-mailuser { - background-image: url('../../icons/x32/email.png') !important; - } - - .topnav-monitor { - background-image: url('../../icons/x32/monitor.png') !important; - } - - .topnav-sites { - background-image: url('../../icons/x32/sites.png') !important; - } - - .topnav-dns { - background-image: url('../../icons/x32/dns.png') !important; - } - - .topnav-tools { - background-image: url('../../icons/x32/tools.png') !important; - } - - .topnav-help { - background-image: url('../../icons/x32/help.png') !important; - } - - .topnav- { - background-image: url('../../icons/x32/login.png') !important; - } - - .topnav-domain { - background-image: url('../../icons/x32/domain.png') !important; - } - - .topnav-dashboard { - background-image: url('../../icons/x32/dashboard.png') !important; - } - - .topnav-vm{ - background-image: url('../../icons/x32/drawer.png') !important; - } - - .topnav-billing{ - background-image: url('../../icons/x32/calculator.png') !important; - } - -} \ No newline at end of file diff --git a/interface/web/themes/default-304/css/patches/central.css b/interface/web/themes/default-304/css/patches/central.css deleted file mode 100644 index 27dd462b75..0000000000 --- a/interface/web/themes/default-304/css/patches/central.css +++ /dev/null @@ -1,37 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) IE-Patch stylesheet - ISPConfig 3: default theme - * (de) IE-Korrektur-Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* Layout-independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ -@import url(../yaml/core/iehacks.css); - -/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ -@media screen, projection -{ - /** - * min-width/max-width workaround for IE5.x & IE6 - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - * html #page_margins { - /* Fallback if JavaScript is disabled */ - width: 80%; - } -} diff --git a/interface/web/themes/default-304/css/print/print_100.css b/interface/web/themes/default-304/css/print/print_100.css deleted file mode 100644 index 95e63e80ab..0000000000 --- a/interface/web/themes/default-304/css/print/print_100.css +++ /dev/null @@ -1,31 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - ISPConfig 3: default theme - * (de) Druck-Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../../yaml/core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - - #col2 { display:none; } - #col3 { display:none; } -} diff --git a/interface/web/themes/default-304/css/screen/basemod.css b/interface/web/themes/default-304/css/screen/basemod.css deleted file mode 100644 index 31e7bd1aed..0000000000 --- a/interface/web/themes/default-304/css/screen/basemod.css +++ /dev/null @@ -1,124 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Screen layout for YAML - ISPConfig 3: default theme - * (de) Bildschirmlayout fr YAML - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Formatting YAML's basic layout elements - * (de) Gestaltung des YAML Basis-Layouts - */ - - /* (en) Marginal areas & page background */ - /* (de) Randbereiche & Seitenhintergrund */ - body { background: #EEEEEE url("../../images/screen_bg.png") repeat-x top left fixed; padding: 10px 0; } - - /* (en) Centering layout in old IE-versions */ - /* (de) Zentrierung des Layouts in alten IE-versionen */ - body { text-align: center; } - #page_margins { text-align:left; margin: 0 auto; } - - /* (en) Layout: width, background, borders */ - /* (de) Layout: Breite, Hintergrund, Rahmen */ - /*#page_margins { min-width: 980px; max-width: 80%; background: #fff;}*/ - /* #page_margins { min-width: 980px; max-width: 80%; background: #fff; display: inline-block;}*/ - - /*WARNING: ADded a overrode for this setting in main.tpl with javascript to target non chrome browsers, - This has to be changed too in case that page_margins get changed. Reason: Chrome does not support the - display: table; attribute correctly*/ - #page_margins { min-width: 980px; max-width: 80%; background: #fff;} - /*#page_margins { min-width: 980px; max-width: 80%; background: #fff; display: table;}*/ - - #page{ padding: 10px; } - - /* (en) Designing main layout elements */ - /* (de) Gestaltung der Hauptelemente des Layouts */ - #header { - color: #faf0e6; - padding: 15px 2em 5px 20px; - background: #9a9a9a url("../../images/header_bg.png") repeat-x top left; - } - - /* (en) Text Alignment for #topnav content */ - /* (de) Textausrichtung für #topnav Inhalte */ - #topnav { text-align: left; } - - /* (en) Absolute positioning only within #header */ - /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ - #header #topnav { - position: absolute; - top: 0px; - left: 0px; - } - - /* (en) Text Alignment for #topnav content */ - /* (de) Textausrichtung für #topnav Inhalte */ - #topsubnav { text-align: right; } - - /* (en) Absolute positioning only within #header */ - /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ - #header #topsubnav { - position:absolute; - top: 10px; - right: 10px; - } - - /* (en) adjustment of main navigation */ - /* (de) Anpassung der Hauptnavigation */ - #nav ul { margin-left: 20px; } - #nav_main { background: #9a9a9a repeat-x top left; } - - #main { background: #fff;padding:10px 0; } - - #footer { - color:#666; - background: #f9f9f9; - padding: 10px 20px; - border-top: 5px #efefef solid; - font-size: 0.8em; - text-align: center; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Formatting content container - * (de) Formatierung der Inhalts-Container - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | #col2 | - * | 25% | flexible | 25% | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - - #col1 { width: 25%; } - #col1_content { padding: 10px 10px 10px 20px; } - - #col2 { width: 25%; } - #col2_content { padding: 10px 20px 10px 10px; } - - #col3 { margin: 0 25%; } - #col3_content { padding: 10px; } - - /*------------------------------------------------------------------------------------------------------*/ -} diff --git a/interface/web/themes/default-304/css/screen/basemod_2col_left_seo.css b/interface/web/themes/default-304/css/screen/basemod_2col_left_seo.css deleted file mode 100644 index 3914fc33b1..0000000000 --- a/interface/web/themes/default-304/css/screen/basemod_2col_left_seo.css +++ /dev/null @@ -1,48 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Variation of screen layout (basemod.css) - ISPConfig 3: default theme - * (de) Variation des Screenlayouts (basemod.css) - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /** - * (en) Repositioning content container - * (de) Neupositionierung der Content Container - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | - * | 200px | flexible | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - /* #col1 becomes the fixed navigation column | #col1 wird zur Navigationsspalte mit fester Breite */ - #col1 { width: 200px; float:left} - #col1_content { padding: 0 10px 0 0; } - - /* #col2 is turned off | #col2 abschalten */ - #col2 { display:none; } - - /* #col3 becomes the main column | #col3 wird zur Hauptspalte */ - #col3 { margin-left: 200px; margin-right: 0; } - #col3_content { padding: 0px 10px 10px 20px; } - - /* Graphic-free column dividers between #col1 and #col3 | Grafikfreier Spaltentrenner zw. #col1 und #col3*/ - #col3 {border-left: 1px #ddd solid;} - #main {padding: 1em 0} -} diff --git a/interface/web/themes/default-304/css/screen/content.css b/interface/web/themes/default-304/css/screen/content.css deleted file mode 100644 index 4f65858bd5..0000000000 --- a/interface/web/themes/default-304/css/screen/content.css +++ /dev/null @@ -1,203 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of standard content elements - ISPConfig 3: default theme - * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * Fonts - * (en) font-family and font-size selection for headings and standard text elements - * (de) Zeichensatz und Schriftgrößen für Ãœberschriften und übliche Text-Elemente - * - * @section content-fonts - */ - - /* (en) reset font size for all elements to standard (16 Pixel) */ - /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ - html * { font-size: 100.01% } - - /* (en) reset monospaced elements to font size 16px in Gecko browsers */ - /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ - textarea, pre, tt, code { - font-family: Consolas,"Lucida Console","Courier New",monospace; - font-size: 0.9em; - } - - /* (en) base layout gets standard font size 12px */ - /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ - body { - font-family: 'Trebuchet MS', sans-serif; - font-size: 75.00%; - color: #444; - } - - h1,h2,h3,h4,h5,h6 { - font-family: 'Trebuchet MS', sans-serif; - font-weight:bold; - color:#666; - margin: 0 0 0.25em 0; - } - - h1 { font-size: 200% } /* 24px */ - h2 { font-size: 200% } /* 24px */ - h3 { font-size: 150% } /* 18px */ - h4 { font-size: 133.33% } /* 16px */ - h5 { font-size: 116.67% } /* 14px */ - h6 { font-size: 116.67%; font-style:italic } /* 14px */ - - #header h1 { - font-size:2.5em; - letter-spacing:-2px; - line-height:65%; - color: silver; - } - - #header span { - color:#333333; - } - - p { line-height: 1.5em; margin: 0 0 1em 0; } - - /* ### Lists | Listen #### */ - - ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em } - li { margin-left: 1.5em; line-height: 1.5em } - - dt { font-weight: bold } - dd { margin: 0 0 1em 2em } - - /* ### text formatting | Textauszeichnung ### */ - - cite, blockquote { font-style:italic } - blockquote { margin: 0 0 1em 1.5em } - - strong,b { font-weight: bold } - em,i { font-style:italic } - - pre, code { font-family: monospace; font-size: 1.1em; } - - acronym, abbr { - letter-spacing: .07em; - border-bottom: .1em dashed #c00; - cursor: help; - } - - /* Set a background-color, no system backgorund used anymore */ - select, input, textarea { - background: #FFFFFF; - border: 1px solid #DFDFDF; - padding: 1px; - outline:none; - } - - - /** - * Generic Content Classes - * (en) standard classes for positioning and highlighting - * (de) Standardklassen zur Positionierung und Hervorhebung - * - * @section content-generic-classes - */ - - .note {background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted;} - .important {background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted;} - .warning {background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted;} - - .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } - .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } - .center { text-align:center; margin: 0.5em auto } - - /** - * External Links - * - * (en) Formatting of hyperlinks - * (de) Gestaltung von Hyperlinks - * - */ - - a {color: #4D87C7; text-decoration:none;} - a:focus, - a:hover, - a:active {color:#182E7A; text-decoration:underline;} - - #topsubnav a { color: #f0f8ff; font-weight: normal; background:transparent; text-decoration:none; } - #topsubnav a:focus, - #topsubnav a:hover, - #topsubnav a:active { text-decoration:underline; background-color: transparent;} - - #footer a { color: #999; background:transparent; font-weight: bold;} - #footer a:focus, - #footer a:hover, - #footer a:active {color: #4D87C7; background-color: transparent; text-decoration:underline;} - - /** - * (en) Emphasizing external Hyperlinks via CSS - * (de) Hervorhebung externer Hyperlinks mit CSS - * - * @section content-external-links - * @app-yaml-default disabled - */ - - /* - #main a[href^="http://www.my-domain.com"], - #main a[href^="https://www.my-domain.com"] - { - padding-left: 12px; - background-image: url('your_image.gif'); - background-repeat: no-repeat; - background-position: 0 0.45em; - } - */ - - /** - * Tables | Tabellen - * (en) Generic classes for table-width and design definition - * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen - * - * @section content-tables - */ - - table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } - table.full { width: 100%; } - table.fixed { table-layout:fixed } - - table.list td{max-width:350px;min-width: 32px;white-space: nowrap;overflow:hidden;text-overflow: ellipsis; -o-text-overflow: ellipsis; -icab-text-overflow: ellipsis; -khtml-text-overflow: ellipsis; -moz-text-overflow: ellipsis; -webkit-text-overflow: ellipsis;} - th,td { padding: 0.5em;text-align:left;} - thead th { background: #444 url(../../images/lists_thead_bg.png) repeat-x; color: #fff } - tbody th { background: #ccc; color: #333 } - tbody th.sub { background: #ddd; color: #333 } - - /** - * Miscellaneous | Sonstiges - * - * @section content-misc - */ - - hr { - color: #fff; - background:transparent; - margin: 0 0 0.5em 0; - padding: 0 0 0.5em 0; - border:0; - border-bottom: 1px #eee solid; - } - - /* Sorting cusror and backgorund */ - .pnl_listarea th[class^="tbl_col"]{cursor:pointer} - .pnl_listarea th[class^="tbl_col"]:hover{background-position:0 -15px!important} - -} diff --git a/interface/web/themes/default-304/css/screen/content_ispc.css b/interface/web/themes/default-304/css/screen/content_ispc.css deleted file mode 100644 index 64e2df350a..0000000000 --- a/interface/web/themes/default-304/css/screen/content_ispc.css +++ /dev/null @@ -1,1045 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of ISPConfig elements - ISPConfig 3: default theme - * (de) Einheitliche Standardformatierungen f�r ISPConfig-Elemente - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - .pageForm_description { - font-size: 12px; - } - - /* Tab-Box */ - .tabbox_tabs { - border-bottom: 1px solid #d3d3d3; - } - .tabbox_tabs ul { - list-style: none; - padding: 0; - margin: 0; - } - .tabbox_tabs li { - display: inline; - margin: 0 2px 0 0; - } - .tabbox_tabs a { - padding: 0 1em; - text-decoration: none; - color: black; - background: #d3d3d3; - border: 1px solid #d3d3d3; - } - .tabbox_tabs a:hover { - background: #fc0; - color: #540; - } - .tabbox_tabs .active a { - font-weight: bold; - color: #ff6600; - background: #ffffff; - } - - .pnl_toolsarea fieldset, .pnl_listarea fieldset, .pnl_formsarea fieldset { - border-top: 1px solid #949494; - margin: 20px 0; - } - .pnl_toolsarea fieldset legend , .pnl_listarea fieldset legend { - font-weight: bold; - color: #6299c5; - } - .pnl_formarea fieldset { - font-weight: bold; - } - - /* hide line and legend when inside tabbed content */ - #tabbox_content * .pnl_toolsarea fieldset, #tabbox_content * .pnl_listarea fieldset, #tabbox_content * .pnl_formsarea fieldset { border: none !important; } - #tabbox_content * .pnl_toolsarea fieldset legend, #tabbox_content * .pnl_listarea fieldset legend, #tabbox_content * .pnl_formsarea fieldset legend { display: none !important; } - - .codeview { - margin:20px 0; - padding:2px; - border: 1px solid #ffcc00; - background: #fffaea; - font-family: Consolas, "Lucida Console", "Courier New", monospace; - font-size: 0.9em; - } - - /* Lists */ - table.list { - width: 100%; - border: 1px solid #d3d3d3 !important; - } - table.list thead th { font-size: 10px; } - table.list tbody { border: 1px solid #d3d3d3 !important; } - table.list tfoot td { text-align: center; background: #f8f8f8 url("../../images/lists_tfoot_bg.png") repeat-x bottom left; padding: 24px 8px 8px 8px; } - table.list .tbl_row_even { background: #fcfcfc; } - table.list .tbl_row_uneven { background: #f0f8ff; } - table.list tr:hover { background: #fffacd; } - table.list td { word-wrap:break-word;white-space:pre-wrap; } - table.list td.tbl_col_buttons { word-wrap:normal;white-space:normal; } - - /* Password Strength */ - #passBar { - width: 101px; height: 10px; - background: url("../../images/meter_bg.gif") repeat-x bottom left; - margin: 2px 0; - float: left; - } - #passText { - padding: 0; - float: left; - } - - /* Systemmonitor */ - .systemmonitor-server, - .systemmonitor-ve, - .systemmonitor-state { - margin: 10px 5px; - font-family: Consolas, "Lucida Console", "Courier New", monospace; - font-size: 0.9em; - float: left; - width: 100%; - } - .systemmonitor-server:hover, - .systemmonitor-vm:hover { background-color: #FFFACD; } - .state-no_state, - .state-no_state-ve { - border-top: 4px solid #95A19F; - background-color: #f8f8ff; - } - .state-unknown, - .state-unknown-ve { - border-top: 4px solid #30302e; - background-color: #cecfc5; - } - .state-ok, - .state-ok-ve { - border-top: 4px solid #23fb00; - background-color: #adffa2; - } - .state-info, - .state-info-ve { - border-top: 4px solid #183e99; - background-color: #d4e2ff; - } - .state-warning, - .state-warning-ve { - border-top: 4px solid #ffa800; - background-color: #ffda93; - } - .state-critical, - .state-critical-ve { - border-top: 4px solid #ff0000; - background-color: #ffb9b9; - } - .state-error, - .state-error-ve { - border-top: 4px solid #ff0000; - background-color: #ff7f7f; - } - div.icoDevice { - float: left; - width: 64px; - height: 64px; - margin: 5px; - background: url("../../icons/device_sprite.png") no-repeat transparent; - } - .systemmonitor-server div.icoDevice { background-position: 0 0; } - .systemmonitor-ve div.icoDevice { background-position: -64px 0; } - .systemmonitor-network div.icoDevice { background-position: -128px -0; } - div.statusDevice, div.statusMsg { float: left; } - - div.statusMsg p { - float: left; - padding: 5px; - } - .systemmonitor-state .status { - margin: 5px; - } - .status { - float: right; - width: 32px; - height: 32px; - background: url("../../icons/x32_sprite.png") no-repeat transparent; - } - div.status { - float: left !important; - } - .state-no_state .status, - .state-no_state-ve .status, - .state-unknown .status, - .state-unknown-ve .status { background-position: 0 -207px; } - - .state-ok .status, - .state-ok-ve .status { background-position: 0 -270px; } - - .state-info .status, - .state-info-ve .status { background-position: 0 -336px; } - - .state-warning .status, - .state-warning-ve .status { background-position: 0 -143px; } - - .state-critical .status, - .state-critical-ve .status { background-position: 0 -463px; } - - .state-error .status, - .state-error-ve .status { background-position: 0 -400px; } - - /* Usage unknown - .systemmonitor-content table { - border: none; - margin-top: 10px; - } - - .systemmonitor-content * .online { - border: 1px solid #ffffff; - background-color: #E3FFB8; - color: #000000; - padding:0px 5px; - } - .systemmonitor-content * .offline { - border: 1px solid #ffffff; - background-color: #d12f19; - color:#ffffff; - padding:0px 5px; - }*/ - - /* Dashboard */ - .dashboard-modules { - float:left; - width:60px; - height: 60px; - border:1px dotted #888888; - background-color: #cccccc; - margin:10px; - background-position: center 5px; - background-repeat: no-repeat; - text-align: center; - } - - .dashboard-modules a, .dashboard-modules a:hover{ - color:Black; - display:block; - font-weight:bold; - height:30px; - padding-top:42px; - width:60px; - text-decoration: none; - } - - .dashboard-modules.admin { background-image: url("../../icons/x32/system.png") !important; } - .dashboard-modules.vm { background-image: url("../../icons/x32/drawer.png") !important; } - .dashboard-modules.client { background-image: url("../../icons/x32/client.png") !important; } - .dashboard-modules.mail { background-image: url("../../icons/x32/email.png") !important; } - .dashboard-modules.monitor { background-image: url("../../icons/x32/monitor.png") !important; } - .dashboard-modules.dns { background-image: url("../../icons/x32/dns.png") !important; } - .dashboard-modules.tools { background-image: url("../../icons/x32/tools.png") !important; } - .dashboard-modules.help { background-image: url("../../icons/x32/help.png") !important; } - .dashboard-modules.domain { background-image: url("../../icons/x32/domain.png") !important; } - .dashboard-modules.sites { background-image: url("../../icons/x32/sites.png") !important; } - .dashboard-modules.billing { background-image: url("../../icons/x32/calculator.png") !important; } - - .panel_dashboard h2 { - font-size:20px; - } - - /* Image-Replacement */ - .swap { background-repeat:no-repeat; } - .swap span { display:none; height:16px; } - #ir-HeaderLogo { background-image:url("../../images/header_logo.png"); height:32px;margin:0 0 0.2em; } - #ir-Yes { background-image:url("../../icons/x16/tick_circle.png"); height:16px; } - #ir-No { background-image:url("../../icons/x16/cross_circle.png"); height:16px; } - - /* BUTTONS */ - .buttons a, .buttons button{ - display:block; - float:left; - margin:0 7px 0 0; - background-color:#f5f5f5; - border:1px solid #777777; - border-top: 1px solid #c8c8c8; - border-left:1px solid #c8c8c8; - - font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif; - font-size:90%; - line-height:130%; - text-decoration:none; - font-weight:bold; - color:#565656; - cursor:pointer; - padding:5px 10px 6px 7px; /* Links */ - } - .buttons button{ - width:auto; - overflow:visible; - padding:4px 10px 3px 7px; /* IE6 */ - } - .buttons button[type]{ - padding:5px 10px 5px 7px; /* Firefox */ - line-height:17px; /* Safari */ - } - *:first-child+html button[type]{ - padding:4px 10px 3px 7px; /* IE7 */ - } - .buttons button img, .buttons a img{ - margin:0 3px -3px 0 !important; - padding:0; - border:none; - width:16px; - height:16px; - } - - /* BUTTONS STANDARD */ - button:hover, .buttons a:hover{ - background-color:#dff4ff; - border:1px solid #c2e1ef; - color:#336699; - } - .buttons a:active{ - background-color:#6299c5; - border:1px solid #6299c5; - color:#fff; - } - - /* BUTTONS POSITIVE */ - button.positive, .buttons a.positive{ - color:#529214; - } - .buttons a.positive:hover, button.positive:hover{ - background-color:#E6EFC2; - border:1px solid #C6D880; - color:#529214; - } - .buttons a.positive:active{ - background-color:#529214; - border:1px solid #529214; - color:#fff; - } - - /* BUTTONS NEGATIVE */ - .buttons a.negative, button.negative{ - color:#d12f19; - } - .buttons a.negative:hover, button.negative:hover{ - background-color:#fbe3e4; - border:1px solid #fbc2c4; - color:#d12f19; - } - .buttons a.negative:active{ - background-color:#d12f19; - border:1px solid #d12f19; - color:#fff; - } - - /* Button with icon and text */ - .iconstxt { - background-repeat: no-repeat; - background-position: 4px center; - } - .iconstxt span { padding-left: 20px; } - .iconstxt.icoPositive { background-image: url("../../icons/x16/tick_circle_frame.png"); } - .iconstxt.icoNegative { background-image: url("../../icons/x16/cross_circle_frame.png"); } - .iconstxt.icoAdd { background-image: url("../../icons/x16/plus_circle_frame.png"); } - .iconstxt.icoKey { background-image: url("../../icons/x16/key.png"); } - .iconstxt.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } - .iconstxt.icoDownload { background-image: url("../../icons/x16/arrow_270.png"); } - .iconstxt.icoRestore { background-image: url("../../icons/x16/arrow_circle_225.png"); } - - /* Button with icon and without text */ - .icons16 span { display: none; } - a.icons16 { height: 18px; width: 18px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} - button.icons16 { height: 20px; width: 20px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} - - .icons16.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } - .icons16.icoFilter { background-image: url("../../icons/x16/funnel.png"); } - .icons16.icoEdit { background-image: url("../../icons/x16/wrench.png"); } - .icons16.icoDbAdmin { background-image: url("../../icons/x16/database.png"); } - .icons16.icoLoginAs { background-image: url("../../icons/x16/user_go.png"); } - .icons16.icoWebmailer { background-image: url("../../icons/x16/mails_arrow.png"); } - .icons16.icoPDF { background-image: url("../../icons/x16/pdf.png"); } - .icons16.icoAction { background-image: url("../../icons/x16/arrow.png"); } - - #ajaxloader { - text-align:center; - margin-top: 180px; - } - - .blockLabel.email_at { - width: 20px !important; - margin: 1.6em 0.3em 0 0 !important - } - .textDisplay { display: block; } - - /* Form Length Classes */ - .textInput.formLengthBool { width: 25px !important; } - .selectInput.formLengthBool { width: 60px !important; } - .textInput.formLengthLimit { width: 50px !important; } - .selectInput.formLengthLimit { width: 85px !important; } - .formLengthDate { width: 75px !important; } - .formLengthIPv4 { width: 125px !important; } - .formLengthIPv6 { width: 100% !important; } - .formLengthEmailUser { width: 30% !important; } - .formLengthEmailDomain { width: 30% !important; } - .formLengthHalf { width: 15% !important; } - .formLengthDouble { width: 50% !important; } - - /* Individual Form Lengths */ - .textInput#username, .textInput#password, .textInput#passwort, .textInput#source_password { width: 100px; } - .selectInput#language { width: 75px; } - .selectInput#client_group_id, .selectInput#default_group { width: 125px; } - input#refresh, input#retry, input#expire, input#minimum, input#ttl { width: 50px !important; } - - /* --- */ - - a[href $='#logout'] { padding-right: 18px; background: transparent url("../../icons/x16/logout.png") no-repeat right top !important; } - - /* Select Menu with Images */ - select.withicons option { - background-repeat:no-repeat; - background-position: 1px; - padding-left:24px; - } - select.flags option { - background-image: url("../../icons/flags_sprite.png"); - background-repeat: no-repeat; - padding: 1px 0 1px 30px; - } - - select.flags option[value=EL] {background-position:0 -1475px} - select.flags option[value=AD], select.flags option[value=ad] {background-position:0 -1px} - select.flags option[value=AE], select.flags option[value=ae] {background-position:0 -23px} - select.flags option[value=AF], select.flags option[value=af] {background-position:0 -45px} - select.flags option[value=AG], select.flags option[value=ag] {background-position:0 -67px} - select.flags option[value=AI], select.flags option[value=ai] {background-position:0 -89px} - select.flags option[value=AL], select.flags option[value=al] {background-position:0 -111px} - select.flags option[value=AM], select.flags option[value=am] {background-position:0 -133px} - select.flags option[value=AN], select.flags option[value=an] {background-position:0 -155px} - select.flags option[value=AO], select.flags option[value=ao] {background-position:0 -177px} - select.flags option[value=AQ], select.flags option[value=aq] {background-position:0 -199px} - select.flags option[value=AR], select.flags option[value=ar] {background-position:0 -221px} - select.flags option[value=AS], select.flags option[value=as] {background-position:0 -243px} - select.flags option[value=AT], select.flags option[value=at] {background-position:0 -265px} - select.flags option[value=AU], select.flags option[value=au] {background-position:0 -287px} - select.flags option[value=AW], select.flags option[value=aw] {background-position:0 -309px} - select.flags option[value=AX], select.flags option[value=ax] {background-position:0 -331px} - select.flags option[value=AZ], select.flags option[value=az] {background-position:0 -353px} - select.flags option[value=BA], select.flags option[value=ba] {background-position:0 -375px} - select.flags option[value=BB], select.flags option[value=bb] {background-position:0 -397px} - select.flags option[value=BD], select.flags option[value=bd] {background-position:0 -419px} - select.flags option[value=BE], select.flags option[value=be] {background-position:0 -441px} - select.flags option[value=BF], select.flags option[value=bf] {background-position:0 -463px} - select.flags option[value=BG], select.flags option[value=bg] {background-position:0 -485px} - select.flags option[value=BH], select.flags option[value=bh] {background-position:0 -507px} - select.flags option[value=BI], select.flags option[value=bi] {background-position:0 -529px} - select.flags option[value=BJ], select.flags option[value=bj] {background-position:0 -551px} - select.flags option[value=BM], select.flags option[value=bm] {background-position:0 -573px} - select.flags option[value=BN], select.flags option[value=bn] {background-position:0 -595px} - select.flags option[value=BO], select.flags option[value=bo] {background-position:0 -617px} - select.flags option[value=BR], select.flags option[value=br] {background-position:0 -639px} - select.flags option[value=BS], select.flags option[value=bs] {background-position:0 -661px} - select.flags option[value=BT], select.flags option[value=bt] {background-position:0 -683px} - select.flags option[value=BV], select.flags option[value=bv] {background-position:0 -705px} - select.flags option[value=BW], select.flags option[value=bw] {background-position:0 -727px} - select.flags option[value=BY], select.flags option[value=by] {background-position:0 -749px} - select.flags option[value=BZ], select.flags option[value=bz] {background-position:0 -771px} - select.flags option[value=CA], select.flags option[value=ca] {background-position:0 -793px} - select.flags option[value=CC], select.flags option[value=cc] {background-position:0 -837px} - select.flags option[value=CD], select.flags option[value=cd] {background-position:0 -859px} - select.flags option[value=CF], select.flags option[value=cf] {background-position:0 -881px} - select.flags option[value=CG], select.flags option[value=cg] {background-position:0 -903px} - select.flags option[value=CH], select.flags option[value=ch] {background-position:0 -925px} - select.flags option[value=CI], select.flags option[value=ci] {background-position:0 -947px} - select.flags option[value=CK], select.flags option[value=ck] {background-position:0 -969px} - select.flags option[value=CL], select.flags option[value=cl] {background-position:0 -991px} - select.flags option[value=CM], select.flags option[value=cm] {background-position:0 -1013px} - select.flags option[value=CN], select.flags option[value=cn] {background-position:0 -1035px} - select.flags option[value=CO], select.flags option[value=co] {background-position:0 -1057px} - select.flags option[value=CR], select.flags option[value=cr] {background-position:0 -1079px} - select.flags option[value=CS], select.flags option[value=cs] {background-position:0 -1101px} - select.flags option[value=CU], select.flags option[value=cu] {background-position:0 -1123px} - select.flags option[value=CV], select.flags option[value=cv] {background-position:0 -1145px} - select.flags option[value=CX], select.flags option[value=cx] {background-position:0 -1167px} - select.flags option[value=CY], select.flags option[value=cy] {background-position:0 -1189px} - select.flags option[value=CZ], select.flags option[value=cz] {background-position:0 -1211px} - select.flags option[value=DE], select.flags option[value=de] {background-position:0 -1233px} - select.flags option[value=DJ], select.flags option[value=dj] {background-position:0 -1255px} - select.flags option[value=DK], select.flags option[value=dk] {background-position:0 -1277px} - select.flags option[value=DM], select.flags option[value=dm] {background-position:0 -1299px} - select.flags option[value=DO], select.flags option[value=do] {background-position:0 -1321px} - select.flags option[value=DZ], select.flags option[value=dz] {background-position:0 -1343px} - select.flags option[value=EC], select.flags option[value=ec] {background-position:0 -1365px} - select.flags option[value=EE], select.flags option[value=ee] {background-position:0 -1387px} - select.flags option[value=EG], select.flags option[value=eg] {background-position:0 -1409px} - select.flags option[value=EH], select.flags option[value=eh] {background-position:0 -1431px} - select.flags option[value=ER], select.flags option[value=er] {background-position:0 -1497px} - select.flags option[value=ES], select.flags option[value=ET], select.flags option[value=es], select.flags option[value=et] {background-position:0 -1519px} - select.flags option[value=FI], select.flags option[value=fi] {background-position:0 -1585px} - select.flags option[value=FJ], select.flags option[value=fj] {background-position:0 -1607px} - select.flags option[value=FK], select.flags option[value=fk] {background-position:0 -1629px} - select.flags option[value=FM], select.flags option[value=fm] {background-position:0 -1651px} - select.flags option[value=FO], select.flags option[value=fo] {background-position:0 -1673px} - select.flags option[value=FR], select.flags option[value=fr] {background-position:0 -1695px} - select.flags option[value=GA], select.flags option[value=ga] {background-position:0 -1717px} - select.flags option[value=GB], select.flags option[value=en], select.flags option[value=gb] {background-position:0 -1739px} - select.flags option[value=GD], select.flags option[value=gd] {background-position:0 -1761px} - select.flags option[value=GE], select.flags option[value=ge] {background-position:0 -1783px} - select.flags option[value=GF], select.flags option[value=gf] {background-position:0 -1805px} - select.flags option[value=GH], select.flags option[value=gh] {background-position:0 -1827px} - select.flags option[value=GI], select.flags option[value=gi] {background-position:0 -1849px} - select.flags option[value=GL], select.flags option[value=gl] {background-position:0 -1871px} - select.flags option[value=GM], select.flags option[value=gm] {background-position:0 -1893px} - select.flags option[value=GN], select.flags option[value=gn] {background-position:0 -1915px} - select.flags option[value=GP], select.flags option[value=gp] {background-position:0 -1937px} - select.flags option[value=GQ], select.flags option[value=gq] {background-position:0 -1959px} - select.flags option[value=GR], select.flags option[value=el], select.flags option[value=gr] {background-position:0 -1981px} - select.flags option[value=GS], select.flags option[value=gs] {background-position:0 -2003px} - select.flags option[value=GT], select.flags option[value=gt] {background-position:0 -2025px} - select.flags option[value=GU], select.flags option[value=gu] {background-position:0 -2047px} - select.flags option[value=GW], select.flags option[value=gw] {background-position:0 -2069px} - select.flags option[value=GY], select.flags option[value=gy] {background-position:0 -2091px} - select.flags option[value=HK], select.flags option[value=hk] {background-position:0 -2113px} - select.flags option[value=HM], select.flags option[value=hm] {background-position:0 -2135px} - select.flags option[value=HN], select.flags option[value=hn] {background-position:0 -2157px} - select.flags option[value=HR], select.flags option[value=hr] {background-position:0 -2179px} - select.flags option[value=HT], select.flags option[value=ht] {background-position:0 -2201px} - select.flags option[value=HU], select.flags option[value=hu] {background-position:0 -2223px} - select.flags option[value=ID], select.flags option[value=id] {background-position:0 -2245px} - select.flags option[value=IE], select.flags option[value=ie] {background-position:0 -2267px} - select.flags option[value=IL], select.flags option[value=il] {background-position:0 -2289px} - select.flags option[value=IN], select.flags option[value=in] {background-position:0 -2311px} - select.flags option[value=IO], select.flags option[value=io] {background-position:0 -2333px} - select.flags option[value=IQ], select.flags option[value=iq] {background-position:0 -2355px} - select.flags option[value=IR], select.flags option[value=ir] {background-position:0 -2377px} - select.flags option[value=IS], select.flags option[value=is] {background-position:0 -2399px} - select.flags option[value=IT], select.flags option[value=it] {background-position:0 -2421px} - select.flags option[value=JM], select.flags option[value=jm] {background-position:0 -2443px} - select.flags option[value=JO], select.flags option[value=jo] {background-position:0 -2465px} - select.flags option[value=JP], select.flags option[value=ja], select.flags option[value=jp] {background-position:0 -2487px} - select.flags option[value=KE], select.flags option[value=ke] {background-position:0 -2509px} - select.flags option[value=KG], select.flags option[value=kg] {background-position:0 -2531px} - select.flags option[value=KH], select.flags option[value=kh] {background-position:0 -2553px} - select.flags option[value=KI], select.flags option[value=ki] {background-position:0 -2575px} - select.flags option[value=KM], select.flags option[value=km] {background-position:0 -2597px} - select.flags option[value=KN], select.flags option[value=kn] {background-position:0 -2619px} - select.flags option[value=KP], select.flags option[value=kp] {background-position:0 -2641px} - select.flags option[value=KR], select.flags option[value=kr] {background-position:0 -2663px} - select.flags option[value=KW], select.flags option[value=kw] {background-position:0 -2685px} - select.flags option[value=KY], select.flags option[value=ky] {background-position:0 -2707px} - select.flags option[value=KZ], select.flags option[value=kz] {background-position:0 -2729px} - select.flags option[value=LA], select.flags option[value=la] {background-position:0 -2751px} - select.flags option[value=LB], select.flags option[value=lb] {background-position:0 -2773px} - select.flags option[value=LC], select.flags option[value=lc] {background-position:0 -2795px} - select.flags option[value=LI], select.flags option[value=li] {background-position:0 -2817px} - select.flags option[value=LK], select.flags option[value=lk] {background-position:0 -2839px} - select.flags option[value=LR], select.flags option[value=lr] {background-position:0 -2861px} - select.flags option[value=LS], select.flags option[value=ls] {background-position:0 -2883px} - select.flags option[value=LT], select.flags option[value=lt] {background-position:0 -2905px} - select.flags option[value=LU], select.flags option[value=lu] {background-position:0 -2927px} - select.flags option[value=LV], select.flags option[value=lv] {background-position:0 -2949px} - select.flags option[value=LY], select.flags option[value=ly] {background-position:0 -2971px} - select.flags option[value=MA], select.flags option[value=ma] {background-position:0 -2993px} - select.flags option[value=MC], select.flags option[value=mc] {background-position:0 -3015px} - select.flags option[value=MD], select.flags option[value=md] {background-position:0 -3037px} - select.flags option[value=ME], select.flags option[value=me] {background-position:0 -3059px} - select.flags option[value=MG], select.flags option[value=mg] {background-position:0 -3081px} - select.flags option[value=MH], select.flags option[value=mh] {background-position:0 -3103px} - select.flags option[value=MK], select.flags option[value=mk] {background-position:0 -3125px} - select.flags option[value=ML], select.flags option[value=ml] {background-position:0 -3147px} - select.flags option[value=MM], select.flags option[value=mm] {background-position:0 -3169px} - select.flags option[value=MN], select.flags option[value=mn] {background-position:0 -3191px} - select.flags option[value=MO], select.flags option[value=mo] {background-position:0 -3213px} - select.flags option[value=MP], select.flags option[value=mp] {background-position:0 -3235px} - select.flags option[value=MQ], select.flags option[value=mq] {background-position:0 -3257px} - select.flags option[value=MR], select.flags option[value=mr] {background-position:0 -3279px} - select.flags option[value=MS], select.flags option[value=ms] {background-position:0 -3301px} - select.flags option[value=MT], select.flags option[value=mt] {background-position:0 -3323px} - select.flags option[value=MU], select.flags option[value=mu] {background-position:0 -3345px} - select.flags option[value=MV], select.flags option[value=mv] {background-position:0 -3367px} - select.flags option[value=MW], select.flags option[value=mw] {background-position:0 -3389px} - select.flags option[value=MX], select.flags option[value=mx] {background-position:0 -3411px} - select.flags option[value=MY], select.flags option[value=my] {background-position:0 -3433px} - select.flags option[value=MZ], select.flags option[value=mz] {background-position:0 -3455px} - select.flags option[value=NA], select.flags option[value=na] {background-position:0 -3477px} - select.flags option[value=NC], select.flags option[value=nc] {background-position:0 -3499px} - select.flags option[value=NE], select.flags option[value=ne] {background-position:0 -3521px} - select.flags option[value=NF], select.flags option[value=nf] {background-position:0 -3543px} - select.flags option[value=NG], select.flags option[value=ng] {background-position:0 -3565px} - select.flags option[value=NI], select.flags option[value=ni] {background-position:0 -3587px} - select.flags option[value=NL], select.flags option[value=nl] {background-position:0 -3609px} - select.flags option[value=NO], select.flags option[value=no] {background-position:0 -3631px} - select.flags option[value=NP], select.flags option[value=np] {background-position:0 -3653px} - select.flags option[value=NR], select.flags option[value=nr] {background-position:0 -3675px} - select.flags option[value=NU], select.flags option[value=nu] {background-position:0 -3697px} - select.flags option[value=NZ], select.flags option[value=nz] {background-position:0 -3719px} - select.flags option[value=OM], select.flags option[value=om] {background-position:0 -3741px} - select.flags option[value=PA], select.flags option[value=pa] {background-position:0 -3763px} - select.flags option[value=PE], select.flags option[value=pe] {background-position:0 -3785px} - select.flags option[value=PF], select.flags option[value=pf] {background-position:0 -3807px} - select.flags option[value=PG], select.flags option[value=pg] {background-position:0 -3829px} - select.flags option[value=PH], select.flags option[value=ph] {background-position:0 -3851px} - select.flags option[value=PK], select.flags option[value=pk] {background-position:0 -3873px} - select.flags option[value=PL], select.flags option[value=pl] {background-position:0 -3895px} - select.flags option[value=PM], select.flags option[value=pm] {background-position:0 -3917px} - select.flags option[value=PN], select.flags option[value=pn] {background-position:0 -3939px} - select.flags option[value=PR], select.flags option[value=pr] {background-position:0 -3961px} - select.flags option[value=PS], select.flags option[value=ps] {background-position:0 -3983px} - select.flags option[value=PT], select.flags option[value=pt] {background-position:0 -4005px} - select.flags option[value=PW], select.flags option[value=pw] {background-position:0 -4027px} - select.flags option[value=PY], select.flags option[value=py] {background-position:0 -4049px} - select.flags option[value=QA], select.flags option[value=qa] {background-position:0 -4071px} - select.flags option[value=RE], select.flags option[value=re] {background-position:0 -4093px} - select.flags option[value=RO], select.flags option[value=ro] {background-position:0 -4115px} - select.flags option[value=RS], select.flags option[value=rs] {background-position:0 -4137px} - select.flags option[value=RU], select.flags option[value=ru] {background-position:0 -4159px} - select.flags option[value=RW], select.flags option[value=rw] {background-position:0 -4181px} - select.flags option[value=SA], select.flags option[value=sa] {background-position:0 -4203px} - select.flags option[value=SB], select.flags option[value=sb] {background-position:0 -4225px} - select.flags option[value=SC], select.flags option[value=sc] {background-position:0 -4247px} - select.flags option[value=SD], select.flags option[value=sd] {background-position:0 -4291px} - select.flags option[value=SE], select.flags option[value=se] {background-position:0 -4313px} - select.flags option[value=SG], select.flags option[value=sg] {background-position:0 -4335px} - select.flags option[value=SH], select.flags option[value=sh] {background-position:0 -4357px} - select.flags option[value=SI], select.flags option[value=si] {background-position:0 -4379px} - select.flags option[value=SJ], select.flags option[value=sj] {background-position:0 -4401px} - select.flags option[value=SK], select.flags option[value=sk] {background-position:0 -4423px} - select.flags option[value=SL], select.flags option[value=sl] {background-position:0 -4445px} - select.flags option[value=SM], select.flags option[value=sm] {background-position:0 -4467px} - select.flags option[value=SN], select.flags option[value=sn] {background-position:0 -4489px} - select.flags option[value=SO], select.flags option[value=so] {background-position:0 -4511px} - select.flags option[value=SR], select.flags option[value=sr] {background-position:0 -4533px} - select.flags option[value=ST], select.flags option[value=st] {background-position:0 -4555px} - select.flags option[value=SV], select.flags option[value=sv] {background-position:0 -4577px} - select.flags option[value=SY], select.flags option[value=sy] {background-position:0 -4599px} - select.flags option[value=SZ], select.flags option[value=sz] {background-position:0 -4621px} - select.flags option[value=TC], select.flags option[value=tc] {background-position:0 -4643px} - select.flags option[value=TD], select.flags option[value=td] {background-position:0 -4665px} - select.flags option[value=TF], select.flags option[value=tf] {background-position:0 -4687px} - select.flags option[value=TG], select.flags option[value=tg] {background-position:0 -4709px} - select.flags option[value=TH], select.flags option[value=th] {background-position:0 -4731px} - select.flags option[value=TJ], select.flags option[value=tj] {background-position:0 -4753px} - select.flags option[value=TK], select.flags option[value=tk] {background-position:0 -4775px} - select.flags option[value=TL], select.flags option[value=tl] {background-position:0 -4797px} - select.flags option[value=TM], select.flags option[value=tm] {background-position:0 -4819px} - select.flags option[value=TN], select.flags option[value=tn] {background-position:0 -4841px} - select.flags option[value=TO], select.flags option[value=to] {background-position:0 -4863px} - select.flags option[value=TR], select.flags option[value=tr] {background-position:0 -4885px} - select.flags option[value=TT], select.flags option[value=tt] {background-position:0 -4907px} - select.flags option[value=TV], select.flags option[value=tv] {background-position:0 -4929px} - select.flags option[value=TW], select.flags option[value=tw] {background-position:0 -4951px} - select.flags option[value=TZ], select.flags option[value=tz] {background-position:0 -4973px} - select.flags option[value=UA], select.flags option[value=ua] {background-position:0 -4995px} - select.flags option[value=UG], select.flags option[value=ug] {background-position:0 -5017px} - select.flags option[value=UM], select.flags option[value=um] {background-position:0 -5039px} - select.flags option[value=US], select.flags option[value=us] {background-position:0 -5061px} - select.flags option[value=UY], select.flags option[value=uy] {background-position:0 -5083px} - select.flags option[value=UZ], select.flags option[value=uz] {background-position:0 -5105px} - select.flags option[value=VA], select.flags option[value=va] {background-position:0 -5127px} - select.flags option[value=VC], select.flags option[value=vc] {background-position:0 -5149px} - select.flags option[value=VE], select.flags option[value=ve] {background-position:0 -5171px} - select.flags option[value=VG], select.flags option[value=vg] {background-position:0 -5193px} - select.flags option[value=VI], select.flags option[value=vi] {background-position:0 -5215px} - select.flags option[value=VN], select.flags option[value=vn] {background-position:0 -5237px} - select.flags option[value=VU], select.flags option[value=vu] {background-position:0 -5259px} - select.flags option[value=WF], select.flags option[value=wf] {background-position:0 -5303px} - select.flags option[value=WS], select.flags option[value=ws] {background-position:0 -5325px} - select.flags option[value=YE], select.flags option[value=ye] {background-position:0 -5347px} - select.flags option[value=YT], select.flags option[value=yt] {background-position:0 -5369px} - select.flags option[value=ZA], select.flags option[value=za] {background-position:0 -5391px} - select.flags option[value=ZM], select.flags option[value=zm] {background-position:0 -5413px} - select.flags option[value=ZW], select.flags option[value=zw] {background-position:0 -5435px} - - .panel_login { - max-width: 80%; - min-width: 680px; - } - - div.subsectiontoggle { - border:1px solid #ccc; - font-weight:bold; - font-size:14px; - padding-top:10px; - padding-bottom:0; - margin-top:5px; - text-indent:15px; - cursor:pointer; - margin-bottom:10px; - background-color:#f4f4f4; - -moz-border-radius:5px; - -webkit-border-radius:5px; - -khtml-border-radius:5px; - -o-border-radius:5px; - -ms-border-radius:5px; - border-radius:5px; - } - div.subsectiontoggle span{ - display:inline-block; - margin-bottom:-3px; - margin-right:10px; - width:16px; - height:16px; - background:url("../../icons/x16/plus_circle_frame.png") top left no-repeat; - } - div.subsectiontoggle span.showing{ - background:url("../../icons/x16/minus_circle_frame.png") top left no-repeat; - } - div.subsectiontoggle em{ - display:block; - position:relative; - left:425px; - top:-13px; - margin-bottom:-3px; - width:13px; - height:13px; - background:url("../../images/chevron.png") top left no-repeat; - -webkit-transform:none; - -moz-transform:none; - -khtml-transform:none; - -o-transform:none; - -ms-transform:none; - transform:none; - -webkit-transition-duration: .2s; - -moz-transition-duration: .2s; - -khtml-transition-duration: .2s; - -o-transition-duration: .2s; - -ms-transition-duration: .2s; - transition-duration: .2s; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -khtml-transition-property: -khtml-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform; - } - div.subsectiontoggle em.showing{ - display:block; - position:relative; - left:425px; - top:-13px; - background:url("../../images/chevron.png") top left no-repeat; - width:13px; - height:13px; - -webkit-transform:rotate(90deg); - -moz-transform:rotate(90deg); - -khtml-transform:rotate(90deg); - -o-transform:rotate(90deg); - -ms-transform:rotate(90deg); - transform:rotate(90deg); - } - div.subsectiontoggle:hover em{ - -webkit-transform:rotate(90deg); - -moz-transform:rotate(90deg); - -khtml-transform:rotate(90deg); - -o-transform:rotate(90deg); - -ms-transform:rotate(90deg); - transform:rotate(90deg); - } - - div.gs-container{ - margin-top:10px; - } - div.gs-container *{ - margin: 0; - padding: 0; - background-position: 0 0; - text-decoration: none; - font-size: 1em; - } - div.gs-container input{ - background: url("../../icons/x16/magnifier_left.png") no-repeat 4px 3px #FFFFFF; - height:20px; - border:1px solid #444; - padding:0 22px 2px; - color:#444; - -moz-border-radius:5px; - -webkit-border-radius:5px; - -khtml-border-radius:5px; - -o-border-radius:5px; - -ms-border-radius:5px; - border-radius:5px; - } - input.gs-loading{ - background-image: url("../../icons/x16/loading.gif"); - background-repeat: no-repeat; - background-position: center right; - } - ul.gs-resultbox{ - margin: 0 !important; - padding: 0 !important; - width: 300px; - z-index: 999999; - border: 1px solid #777; - font-size: 11px; - background: #fff; - -moz-box-shadow: 2px 2px 5px 0 #c5c5c5; - -webkit-box-shadow: 2px 2px 5px 0 #c5c5c5; - -khtml-box-shadow: 2px 2px 5px 0 #c5c5c5; - -o-box-shadow: 2px 2px 5px 0 #c5c5c5; - -ms-box-shadow: 2px 2px 5px 0 #c5c5c5; - box-shadow: 2px 2px 5px 0 #c5c5c5; - list-style: none; - -moz-border-radius:5px; - -webkit-border-radius:5px; - -khtml-border-radius:5px; - -o-border-radius:5px; - -ms-border-radius:5px; - border-radius:5px; - max-height:500px; - overflow:auto; - } - ul.gs-resultbox li{ - float: left; - width: 100%; - clear: both; - cursor: pointer; - } - ul.gs-resultbox li.gs-cheader{ - height: 13px; - overflow: hidden; - padding: 5px 0; - color: #fff; - background: #6ea6d1; - cursor:default; - padding-bottom:10px; - } - ul.gs-resultbox li.gs-cheader p.gs-cheader-title{ - margin: 0 !important; - padding: 0 0 0 10px !important; - float: left; - font-size: 12px; - font-weight: bold; - } - ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{ - margin: 0 !important; - padding: 0 10px 0 0 !important; - float: right; - font-size: 11px; - font-weight: normal; - } - ul.gs-resultbox li.gs-cdata{ - margin: 0 !important; - padding: 0 !important; - border-bottom: 1px solid #c5c5c5; - } - ul.gs-resultbox li.gs-cdata:last-child{ - border-bottom: none; - } - ul.gs-resultbox li.gs-cdata:hover{ - background: #eaf4fd; - } - ul.gs-resultbox li.gs-cdata a{ - display: block; - padding: 5px 10px; - text-decoration: none !important; - background: #fff; - } - ul.gs-resultbox li.gs-cdata a:hover{ - background: #cde0ff; - } - ul.gs-resultbox li.gs-cdata img{ - margin-right: 12px; - } - ul.gs-resultbox li.gs-cdata p{ - margin: 0 !important; - padding: 0 !important; - color: #444; - font-size: 10px; - min-height:30px; - } - ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{ - display: inline !important; - margin: 0 !important; - padding: 0 !important; - font-size: 11px; - font-weight: bold; - color: #000; - } - ul.gs-resultbox li:first-child{ - -moz-border-radius:5px 5px 0 0; - -webkit-border-radius:5px 5px 0 0; - -khtml-border-radius:5px 5px 0 0; - -o-border-radius:5px 5px 0 0; - -ms-border-radius:5px 5px 0 0; - border-radius:5px 5px 0 0; - } - ul.gs-resultbox li:last-child{ - -moz-border-radius:0 0 5px 5px; - -webkit-border-radius:0 0 5px 5px; - -khtml-border-radius:0 0 5px 5px; - -o-border-radius:0 0 5px 5px; - -ms-border-radius:0 0 5px 5px; - border-radius:0 0 5px 5px; - } - - div.df-container{ - } - div.df-container *{ - margin: 0; - padding: 0; - background-position: 0 0; - text-decoration: none; - font-size: 1em; - } - div.df-container input{ - } - input.df-loading{ - background-image: url("../../icons/x16/loading.gif"); - background-repeat: no-repeat; - background-position: center right; - } - ul.df-resultbox{ - margin: 0 !important; - padding: 0 !important; - min-width: 250px; - max-width: 500px; - z-index: 999999; - border: 1px solid #777; - font-size: 11px; - background: #fff; - -moz-box-shadow: 2px 2px 5px 0 #c5c5c5; - -webkit-box-shadow: 2px 2px 5px 0 #c5c5c5; - -khtml-box-shadow: 2px 2px 5px 0 #c5c5c5; - -o-box-shadow: 2px 2px 5px 0 #c5c5c5; - -ms-box-shadow: 2px 2px 5px 0 #c5c5c5; - box-shadow: 2px 2px 5px 0 #c5c5c5; - list-style: none; - -moz-border-radius:5px; - -webkit-border-radius:5px; - -khtml-border-radius:5px; - -o-border-radius:5px; - -ms-border-radius:5px; - border-radius:5px; - } - ul.df-resultbox li{ - float: left; - width: 100%; - clear: both; - cursor: pointer; - } - ul.df-resultbox li.df-cheader{ - height: 13px; - overflow: hidden; - padding: 5px 0; - color: #fff; - background: #6ea6d1; - cursor:default; - padding-bottom:10px; - } - ul.df-resultbox li.df-cheader p.df-cheader-title{ - margin: 0 !important; - padding: 0 0 0 10px !important; - float: left; - font-size: 12px; - font-weight: bold; - } - ul.df-resultbox li.df-cheader p.df-cheader-limit{ - margin: 0 !important; - padding: 0 10px 0 0 !important; - float: right; - font-size: 11px; - font-weight: normal; - } - ul.df-resultbox li.df-cdata{ - margin: 0 !important; - padding: 0 !important; - border-bottom: 1px solid #c5c5c5; - } - ul.df-resultbox li.df-cdata:last-child{ - border-bottom: none; - } - ul.df-resultbox li.df-cdata:hover{ - background: #eaf4fd; - } - ul.df-resultbox li.df-cdata a{ - display: block; - padding: 5px 10px; - text-decoration: none !important; - background: #fff; - } - ul.df-resultbox li.df-cdata a:hover{ - background: #cde0ff; - } - ul.df-resultbox li.df-cdata img{ - margin-right: 12px; - } - ul.df-resultbox li.df-cdata p{ - margin: 0 !important; - padding: 0 !important; - color: #444; - font-size: 10px; - min-height:30px; - } - ul.df-resultbox li.df-cdata p span.df-cdata-title{ - display: inline !important; - margin: 0 !important; - padding: 0 !important; - font-size: 11px; - font-weight: bold; - color: #000; - } - ul.df-resultbox li:first-child{ - -moz-border-radius:5px 5px 0 0; - -webkit-border-radius:5px 5px 0 0; - -khtml-border-radius:5px 5px 0 0; - -o-border-radius:5px 5px 0 0; - -ms-border-radius:5px 5px 0 0; - border-radius:5px 5px 0 0; - } - ul.df-resultbox li:last-child{ - -moz-border-radius:0 0 5px 5px; - -webkit-border-radius:0 0 5px 5px; - -khtml-border-radius:0 0 5px 5px; - -o-border-radius:0 0 5px 5px; - -ms-border-radius:0 0 5px 5px; - border-radius:0 0 5px 5px; - } - - span.icons16-empty{ - float:left; - display:block; - height:20px; - width:20px; - margin:0 7px 0 0; - } - - .ttip{ - width:16px; - height:16px; - cursor:pointer; - background: url("../../icons/x16/question_frame.png") no-repeat center center; - float:right; - display:inline; - position:relative; - right:-2px; - top:-2px; - } - - p.prefix { - float: left; - margin: 0; - text-align: right; - } - p.label { - float: left; - margin: 5px 15px 0 0; - } - p.value { - float:left; - margin: 0 0 0 2px; - } - select.search_limit { - width: 50px; - } -} \ No newline at end of file diff --git a/interface/web/themes/default-304/css/screen/jquery-ui-custom.css b/interface/web/themes/default-304/css/screen/jquery-ui-custom.css deleted file mode 100644 index a90d8b9874..0000000000 --- a/interface/web/themes/default-304/css/screen/jquery-ui-custom.css +++ /dev/null @@ -1,7 +0,0 @@ -.ui-datepicker-calendar thead tr th { - background-image:none; - background-color:#FFFFFF; - color:#000000; -} -.ui-widget { font-family: 'Trebuchet MS', Arial, sans-serif; font-size: 100%; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: 'Trebuchet MS', Arial, sans-serif; font-size: 100%; } \ No newline at end of file diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}<irI&an_s0pV!D+$FtuP31JO&3=I&aE+u|=5A)Hv$*VMh&S3C#^>bP0l+XkK DSH>_4 diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_flat_55_fbec88_40x100.png deleted file mode 100644 index 47acaadd737478ddb090f47f618810712163317b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA993)+ za~~)OO5|O5sDCi_{N8&XlRv*c;OQ6|AR59NN?mFzWBXJVGojypu|S6~c)I$ztaD0e F0syyrGF|`x diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png deleted file mode 100644 index 9fb564f8d0a117f17aa6b844490309dadbd94821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|on978O6-=0_GYj6;7zWBfT zzjhI`OjAO{6(N>+Em!s|xjZW|^1EO|(5d{JeUmv{p6fa-GJh;t>KCH4`R~7(L8qj} Y_egNRQF(If70@^aPgg&ebxsLQ0Qgob)Bpeg diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_85_dfeffc_1x400.png deleted file mode 100644 index 014951529c315d6042e72febc310a4d2db5b4a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|lm978O6-<~(*YA_IRxoBVf zfAX@vsV!R#l$@#*eLnw)_Sv|_?i7P!ORnX)SxaXh+BPpZ!Fw~yjr&#G|Jw^YMHDhV X&EsZx`7bsSXc~j3tDnm{r-UW|&(SK+ diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 4443fdc1a156babad4336f004eaf5ca5dfa0f9ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png deleted file mode 100644 index 81ecc362d50ef5abbc0420aacd5345822f1f6098..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3457 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 POMny9)vos2J3syt(aqlh diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png deleted file mode 100644 index 4f3faf8aa8b1054ef1b18b80ab58f670b406a794..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)k5nV~E7m<R8BtKd)C~V`FPe z^ffRtGB7YSFfcMOd?b?G;%#7X=!+3wPjRL<14F_FmL0`{@$Z0I89ZJ6T-G@yGywp_ Co*P~O diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png deleted file mode 100644 index 38c38335d0919ceb7b0dd09e88a86be90a966ef3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)R^lV~E7m<R72EzpqzgV`FO* mbT@c3B{fBc=iOpSMuu`pmi>1R+}Z$C%HZkh=d#Wzp$Pz8A{XNT diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_217bc0_256x240.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_217bc0_256x240.png deleted file mode 100644 index 6f4bd87c041453ef037c4a9a1a698f0105d02eba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_2e83ff_256x240.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 09d1cdc856c292c4ab6dd818c7543ac0828bd616..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_469bdd_256x240.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_469bdd_256x240.png deleted file mode 100644 index bd2cf079add1ca236adeb509698adabbffb08acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 zcmd^?`8O2)_s3^p#%>t<I$5%B*(%$RifAlJDl()+*_W)tkR^Mivc*^<vL;zGk~JZc zvCJ4vq%n2|WBYo)Ki|(^@p+urx%YK{x#!$_?me&PE5RCdk&{h?4FCXenwy#00sz3{ zD`1rcd~6Bkmv)cclC`DXdDHCa|DDrcAYFJ|I4Zyvbp;><JH^Ce-TpXBRm#o>c^56h z`;7ykFJNMJN#e#ybz9|Ft@x<U2Yo|5r%lD$n!+nSl%%|^d@p~1lUZSdfYORwUlvq* z%;a7$^on?P|Ne;C0RX@qYi??67yNq3DaCcFfd|rORz4T=TqVq%cEjTAy^ZG{568VK zvsK=X2AGd;k&b*JSSDX11mb+1%+!vXg&|00*-)ZG5Afn;e{U}V%x6uz5t~~GAoxRm z+E-)mpWw>`UI}T5QRij?pZ}<iF>6v#Srs793k0w~#4dRsO_y8vaKB*UbCk3l9Lh&v zS5!q|FV83GvJ|wlWy2IQI27&mA~vn>kbZHR1lRB?uEUiLWJ2Rgpr(9;PtX|H61Y%8 z>>Yvu=(<$fHnjpCX`E;Qw8u0=3KGsNhap}(`<L3D#x*ma9$(ls<d=1+Q*sdCDidxB zF3Al8n=lq`mdNB|5lB1on0vF?nA-1I*NKud44w271(6OEGhejn`Qjc$+d;r9Y$Yeu zjNASMPIh9Fmja9})Ei#^vD&dbIxAJU#-IS#*(Tg2pLRR7v%CF2G_FPF!@gmyko^zv zG;MCgW}3(*Yl5vSv`Gvp|KfD^G~d)Yw|IJ2`7p7dT6r327lm|hJs9S3WlHe#Rd<Q< z;Bq*z$=3jV!Ke|>ul7lx-)UB6U7Rt{a^<^*Xbmf7)2^xf*8T2&U<6)1vO~m1F!2^L zin5`}H)*h3_*XzG*7fMOwuHkuK2hW)$!EE#jpyRaiy2tEzf~(B-PTBkPS$@K<m+5} zSocG_ljAK?*^jlWpzm$D=|+V@jU9L`JkRQNEFW@?%?hQ$GnUnV(8tPDx?S@8*VBU~ z==x1BB#mGTY%R!g*yJ<!1Sb)b<beqvW(zJL`jIb;YF7=^Nxb<iK7p3cGWG6B$c)S) zbp}7iYznf)Sb(8uk^Td);c$Bk0(l=XRy4QIYXOJZW4(CzdAp=s-bhuXvG2;lJfcOB zs=!AHGHOw)S8r|pgmGLHg!Y~VLZ#8U==|phY+&>|y8w%~JYu8>vRGGA=Z$>guC|z6 zYkPw1&xf?FV0;xWt*`eV2oI-ePL2>on#}}WB8O9XBtD6GWYHw9TuY06(#pZ&TR3xK zNc7;n$4wnDC1?2MVtE1Zp2zT~^LboWF^niS1c$xMo}Gq?!`2q?IncFGB{AFxiTH7M zW6Wg6!H-Orl|zm+8G{^~&Fg2IE-7Q;uqGzAXEz)n_H1kYekmQLMJ)H_N1Ou8dug}I zg*SK#Fw;F<!rp`9Z@f7^UD15ZDy3I6v<>agf;H2=cerAvd2^*^YFJ_1850U&t}@Ts z-Ut9ox+Q;6E(XDZh@X=Gp(SPg)l4tQCH^(ZRf@E#KwlZPL;7ULUU0tSrvtn6Xt=Bl zG)w2|kn&t0Rld8d(t&f+-Jt5c7!Jl(SI2y<(E*K?=rQ%uV%4h0>FKm&7~0UnkICBc z3tgbbnW=GN@m656hHUzj6+go+`f^?6f@&?MiRslUz(!JYo`t%GZBP|O5#B?8Q!s!E z9<c(2wv1In>^Ae>??aVeK~d<8G-`&+;~iK=r$D=se~1hP`y1FFARfPyp)iel=Nft8 znC=6UJHKKc>@v6^BHUgm$;1MCFRkRU9c7-T4r93DR+husFU7$gur@@f0$OZ1L9tGX zFTXe+OLbvyc&y1PF}4L`4x@XUJmE|_sn56h!ty42=@$~}wrWyVWoN^*yMa(A8bATs zAQRl8t3PnEeTy?M>ryqZSZwydvk3EmU|_Uk0Qsgqf@$HLq<cVt)@g41u2!E41nh?g za-^my;h6^Rz9-P0)k308o?_3LAcRK0LoS;|vAXjW$KZrELjW8=OlI7aA-?aMUvTkS z0`cGr+$TJAN6!RL=}F_)n{}-XtWNR+B_H5!gUT$T8gL9Dt$=)pr08ZS{+Wh&+{Fm7 z{JO	&~D293i`N7fiJv_rb$i2VNL5GuoyK>Z+||@PwmP+C~J3t-;t^A+ZQlqV5wK z%GQPfh`B@R4>AFJqdaImV^e(7#NPh2=V`CA9k=gtO&aqe{dJo=cvqPvaG92p)a~Xp z00|*>BOjuss)}zZTg6iEpZ?)}$XnxQ1Qg_)<m?hc^-#_vuW6br@Q#Q^csmnFKshv? z1@H?9_l}IgF8f%iWPas53u=VgT@+a6V->cP)Z6UQ6-ntKI-zNkl5kLs$#d)vS?t#w z!<uEqASS!|wq>8oVgTG*33YBWB19B(GJxaF`p4zLTN+P(%31kt_<`l{r>rZ!6_mdb zQ2G)orW{~?O-?TSj+obv!+*!zpy&O)wRPJ8Pk81{)Oy2}-GFV2upGunf@d9Zj*xDj z7qF*O&^J3$XB&xT{P@0?J=lOEoWxAgO<1qa2@7S(ulwn5`u0ZIhxiRM`xz@Lwi5}} zFmUKSu+FHdbWSZRbH=Njjqlg3bI?_^<)xC@N6|xn{jq-rBH;45p?jA-NO#)90~=We z`1WnuC0t?^F?mXMxB<>OFqV<tY#Z6VyX3%rTS`e0$ANn4v57<N@iE=M-F_i}D_$R^ zq^E*eAS62kOuUrAmUQOddVQShQEFU@;?hh6UhX{JnOx1#{tTgxXr%kD7x+_via1;5 zDKyDy@Hsv249^x=I#_E=OzU%$XziH=>HH<;)^|gPGvusmW>aZ#v=NEbmy8<+L~aEq zb?!#AginWl{)d^|4v}nB`B(4jVKZ7Iy1CIhSv^hQOhf!s#z}J5u3$Wazo9+lhXzoV zU?V3N$vi_HH+t<c**V_$Qt4!oU)aHeM$|Jnxvr&(JAYnlUx8!tYbUx41^kngj8$!8 zpPH$BlFx+L-Cyh}>N(o4dYLvo%axH{x=B;;WvxFYfHT^zTRZS-)ilGp4vP-#pjR+3 z0%AL(^7El8`jyby7DPOXkyc9c@x89GcL(I`x;OT9C2(7J_wbGq>f4s{1-f8d15uu8 z8f6E6ysykf?j%`qVZfG_d47Alp4Qq)&Ed7VJi!ZzB~Xpz+p&9z!3a}h*ZhBHMI8ME z`sT7cRIrw++gd-2I&ZoXq5sH{RaSX(4>Xgl28_+db^7dda<7Wp{^21-MnKeV;U}j1 zJlbMKy?iK~xdXZZeWGbO-RdG-&TvR$TLq8$SdU1N2V4uxE|G#`^e#F>j_3sou4UZn z{C$_N4Ze9WA?dkJU0fKh9qCKOiFvSv``rOim|N#5oQb^^FtmwEeS9tP@DabN`@-&g zimf*(7!$`vRmhu|WqK+rjfNHtN5|W0pW_z?HkS*h88fw>@(*n6h;?a81CT{n{I7>- zw)`=8;Bv=1(tJ@D7qPxosVY+7!w>N=h7e~49~ZKrd98AX6llP7)?3wvc|(^&|FRC# zm9&_;h5z)KIJl{%c3uuW{QBtIlSS~S52Hh?4HeeoZjq-G;6Cq;^mUA?2&V}!)H5jT zKrwiWx-cfD+5-NhGnt}u5wMMwtfXC-yRp|6MTzZFAQItktp4`(v7X4^_2{~i;(sv8 zGkpL3!V-Ai-ycXut#0|8o<z&B)N`xT)%3yLhuOtN{zWTqXE19lsyyI%WKY?Y|6|?3 zPo-8<IQwOYDT9G^(Z&tAqzVHbiB4}ik(-1ww-~EGJT<a*fJ#I#6*r;@_}zIBvY@j% zmA}Q3lxK*X3Di~x@-Fh=ttb7Drn`Vq+R?>e4TJ7QUV~Do&p{zVG3v90J>;eENX2w? z$`}Ppr0ft|Zp)w~g{!onDe?@5CcjhC($cq8IM%2O?{Sub8>170^%I69aO+A8&Z&BD zgG+l-HBZPNSO59Ce~-or33^w(Q*U1mHc-Y7c>~Y9et7S1V$SEVbmSSq9Wv|A@EF?V zoP27TfvhVv%A0&@V8B4UGLGc+dc9a<hxNhhcnK5SbMLaYD>4FJBD)l_bZ##HH_vnc z5uC}#FmQiORque`?w?#K6-*)a9uAKX-OqH<F+aQ|&0{CHSj&jJRlXFv_-v<jz%^Ob zPI^3xe8N{k?7UOxl;dh}8r$9X6Lcvj@0xMBK;Gfs6(4c~5+8=)AL$t{0=}Ko{23RN zhYc#Tjg)kj-mZ0M;f8UL<bzAMN0QWhWgFnU3%l1u8`;YayI69121KXt`z(EV=xk00 zIwbD)$hnsGG1Trl2#^lzEX3*V^-{-ula{8$*_^X%b;mzpJ{9nHfs;(e_G_oTYp?{U zv#|gh-hJVx+PIU<nA1<`g^buyt-K!!=#3W&(Ksd=&|94XwxH}f)V;9K`jA%82|$Jg zD7cQLu#V^BA7)RQk+G;e@X=1u)scwgnn6!yOT0W9?yYvhYyAjXT;s{@kcd?|E^QBx zn!63W`H3BiaO(+*GQfLLu>Y?AUdoQYTafr%B>#SB>Q67K{M@<(#;PhLl`o?5`vwPv z;YkLv3FfS>7&%-e=_!*VvjMU8a!T+$b_h1o9(Qs@^ircOb^M0YY-y!n>Di)^q4Cgj z5IOL{sLD(nyg859i=2xJ;iPM|R!#<PWE^s&l%nmY(xE{xAid&yqV)Dbs5R0ilM`il zO6}+%?2V(hLMr_QU=b*CZ6`S=!X-*G*b*Pac~;QbhNPEFGw@0L*}C8sz*5>N0a|vH zI}K@UZv9M*&=i}!VrxAmUNEWCy|T3%5~+mC9{NYcI*9J?VqXjh+Egl5Pm-Gb*!~SO zzW+D8H$3YhoTXOmc=gtYw!k@=oeiMmKJaz8r)%e;z1ORe$@QRI4oCa8Imz(dcoLo8 z^y{}ols#&09(EWKFND_x<kGkbCnv~@5B2q4m#cj}k1;wgp?LiM&RQWDWit_bDGT=w zU#p#Ihg3=EWcJTf+wQX6jy1)|awLx5W0KjjS^ju2PnYhUidA56H3NVJLsvO2HAt>L z&4gxpi)Mk9t&j{}^_frnHu6jB_}_d{Fugq2t)_RvnL%6W<RK{2S?zIF1}Zto7C(20 z(k7U%(?jGezKR=R>Y5;D&m?%xbpLEisZuPhT|(X^A|G5mlj0d)w-`54(J%ZTc<Q4% zQ~JWV=||wvb#WQMFD61p28O=mb^-hAXw#?td${ZgQ@0DS#*c<s2YW4;i*#(*40L+C z1^JH}J=UXdY^L+f5KU~n<zs@)0<<IWk|x{B;Xqc<&hDqnbnnmL#<q|B5mex#kQPjV zC;whhs6Ih=i~r?{m!$QX9l!2t5094Cq5=)_-&WUzSJ0ft!Cq|#izMbyTKjtp5=1(j oqJYi09hkelwsW4<{@F3=oA(!!)DN^i{^|qF&!bGMOwiH)2WwGkY5)KL diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_6da8d5_256x240.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_6da8d5_256x240.png deleted file mode 100644 index 9f3eafaab0f048da81e1e072c3091282742c4980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_cd0a0a_256x240.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index 2ab019b73ec11a485fa09378f3a0e155194f6a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_d8e7f3_256x240.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_d8e7f3_256x240.png deleted file mode 100644 index ad2dc6f9dbeeabbda9ae6917659b6df07817ec35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_f9bd01_256x240.png b/interface/web/themes/default-304/css/screen/redmond/images/ui-icons_f9bd01_256x240.png deleted file mode 100644 index c7c53cb11904843e176e4ce1f4e7247cd90b3590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5355 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 W`?Hm7LpJ~Km-$3pU#(WfA?ANr)k-=5 diff --git a/interface/web/themes/default-304/css/screen/redmond/jquery-ui-1.8.16.custom.css b/interface/web/themes/default-304/css/screen/redmond/jquery-ui-1.8.16.custom.css deleted file mode 100644 index e3e05d1d9e..0000000000 --- a/interface/web/themes/default-304/css/screen/redmond/jquery-ui-1.8.16.custom.css +++ /dev/null @@ -1,444 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=0px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=0px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; } -.ui-widget-content a { color: #222222; } -.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; } -.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } -.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }/* - * jQuery UI Autocomplete 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.16 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * jQuery UI Button 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Datepicker 1.8.16 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -} \ No newline at end of file diff --git a/interface/web/themes/default-304/css/screen/tipsy.css b/interface/web/themes/default-304/css/screen/tipsy.css deleted file mode 100644 index ea735c7627..0000000000 --- a/interface/web/themes/default-304/css/screen/tipsy.css +++ /dev/null @@ -1,25 +0,0 @@ -.tipsy { font-size: 10px; position: absolute; padding: 5px; z-index: 100000; } - .tipsy-inner { background-color: #000; color: #FFF; max-width: 350px; padding: 5px 8px 4px 8px; text-align: left; } - - /* Rounded corners */ - .tipsy-inner { border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; } - - /* Uncomment for shadow */ - /*.tipsy-inner { box-shadow: 0 0 5px #000000; -webkit-box-shadow: 0 0 5px #000000; -moz-box-shadow: 0 0 5px #000000; }*/ - - .tipsy-arrow { position: absolute; width: 0; height: 0; line-height: 0; border: 5px dashed #000; } - - /* Rules to colour arrows */ - .tipsy-arrow-n { border-bottom-color: #000; } - .tipsy-arrow-s { border-top-color: #000; } - .tipsy-arrow-e { border-left-color: #000; } - .tipsy-arrow-w { border-right-color: #000; } - - .tipsy-n .tipsy-arrow { top: 0px; left: 50%; margin-left: -5px; border-bottom-style: solid; border-top: none; border-left-color: transparent; border-right-color: transparent; } - .tipsy-nw .tipsy-arrow { top: 0; left: 10px; border-bottom-style: solid; border-top: none; border-left-color: transparent; border-right-color: transparent;} - .tipsy-ne .tipsy-arrow { top: 0; right: 10px; border-bottom-style: solid; border-top: none; border-left-color: transparent; border-right-color: transparent;} - .tipsy-s .tipsy-arrow { bottom: 0; left: 50%; margin-left: -5px; border-top-style: solid; border-bottom: none; border-left-color: transparent; border-right-color: transparent; } - .tipsy-sw .tipsy-arrow { bottom: 0; left: 10px; border-top-style: solid; border-bottom: none; border-left-color: transparent; border-right-color: transparent; } - .tipsy-se .tipsy-arrow { bottom: 0; right: 10px; border-top-style: solid; border-bottom: none; border-left-color: transparent; border-right-color: transparent; } - .tipsy-e .tipsy-arrow { right: 0; top: 50%; margin-top: -5px; border-left-style: solid; border-right: none; border-top-color: transparent; border-bottom-color: transparent; } - .tipsy-w .tipsy-arrow { left: 0; top: 50%; margin-top: -5px; border-right-style: solid; border-left: none; border-top-color: transparent; border-bottom-color: transparent; } diff --git a/interface/web/themes/default-304/css/screen/uni-form-generic.css b/interface/web/themes/default-304/css/screen/uni-form-generic.css deleted file mode 100644 index 8daf43953a..0000000000 --- a/interface/web/themes/default-304/css/screen/uni-form-generic.css +++ /dev/null @@ -1,136 +0,0 @@ -/* Uni-Form by Dragan Babic [Superawesome Industries] - http: //sprawsm.com/uni-form/ */ -/* Some rights reserved - http: //creativecommons.org/licenses/by-sa/2.5/ */ -/* Do not edit this file directly, make your changes to uni-form.css in the same folder */ - -/* ------------------------------------------------------------------------------ */ - -.uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */ - - /* Some generals and more resets */ - .uniForm fieldset{ border: none; margin: 0; padding: 0; } - .uniForm fieldset legend{ margin: 0; padding: 0; } - - /* This is the main unit that contains our form elements */ - .uniForm .ctrlHolder, - .uniForm .buttonHolder{ margin: 0; padding: 0; clear: both; } - - /* Clear all floats */ - .uniForm:after, - .uniForm .buttonHolder:after, - .uniForm .ctrlHolder:after, - .uniForm .ctrlHolder .multiField:after, - .uniForm .inlineLabel:after{ content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; } - - /* A class to be used on a label that contains a checkbox or a radio button */ - .uniForm .inlineLabel, - .uniForm .inlineLabels .inlineLabel, - .uniForm .blockLabels .inlineLabel{ width: auto; float: none; margin: 0; display: block; } - /* IE shows borders & padding on checkboxes and radio buttons if they are declared on an input element, remove them */ - /* Legacy/Inheritance fix */ - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input{ border: none; padding: 0; margin: 0; } - -/* ------------------------------------------------------------------------------ */ - - /* Styles for form controls where labels are above the input elements */ - /* Set the class of the parent (preferably to a fieldset) to .blockLabels */ - - .uniForm label, - .uniForm .label, - .uniForm .blockLabels label, - .uniForm .blockLabels .label{ display: block; float: none; padding: 0; line-height: 100%; width: auto; } - - /* Float the input elements */ - .uniForm .textInput, - .uniForm .blockLabels .textInput, - .uniForm .blockLabels .fileUpload, - .uniForm .selectInput, - .uniForm .blockLabels .selectInput, - .uniForm .blockLabels select, - .uniForm textarea, - .uniForm .blockLabels textarea{ float: left; } - - /* Postition the hints */ - .uniForm .formHint, - .uniForm .blockLabels .formHint{ float: right; margin: 0; clear: none; } - - /* Position the elements inside combo boxes (multiple selects/checkboxes/radio buttons per unit) */ - .uniForm .multiField, - .uniForm .blockLabels .multiField{ width: auto; float: left; } - .uniForm .multiField .inlineLabel, - .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } - .uniForm .multiField .blockLabel, - .uniForm .blockLabels .multiField .blockLabel{ float: left; width: auto; margin: 0; } - .uniForm .multiField .blockLabel .textInput, - .uniForm .multiField .blockLabel .selectInput, - .uniForm .multiField .blockLabel select, - .uniForm .blockLabels .multiField .blockLabel .textInput, - .uniForm .blockLabels .multiField .blockLabel .selectInput, - .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: 0; } - -/* ------------------------------------------------------------------------------ */ - - /* Styles for form controls where labels are in line with the input elements */ - /* Set the class of the parent (preferably to a fieldset) to .inlineLabels */ - .uniForm .inlineLabels label, - .uniForm .inlineLabels .label{ float: left; margin: 0; padding: 0; line-height: 100%; position: relative; } - - /* Float the input elements */ - .uniForm .inlineLabels .textInput, - .uniForm .inlineLabels .fileUpload, - .uniForm .inlineLabels .selectInput, - .uniForm .inlineLabels select, - .uniForm .inlineLabels textarea{ float: left; } - - /* Postition the hints */ - .uniForm .inlineLabels .formHint{ clear: both; float: none; } - .uniForm .inlineLabels .multiField{ float: left; } - .uniForm .inlineLabels .multiField .inlineLabel{} - .uniForm .inlineLabels .multiField .blockLabel{} - .uniForm .inlineLabels .multiField .blockLabel .textInput, - .uniForm .inlineLabels .multiField .blockLabel .selectInput, - .uniForm .inlineLabels .multiField .blockLabel select{ display: block; width: 100%; float: none; } - .uniForm .inlineLabels .multiField select{ float: left; } - -/* ------------------------------------------------------------------------------ */ - - /* Required fields asterisk styling for .blockLabels */ - .uniForm label em, - .uniForm .label em, - .uniForm .blockLabels label em, - .uniForm .blockLabels .label em{ position: absolute; left: -7px; } - - /* Required fields asterisk styling for .inlineLabels */ - .uniForm .inlineLabels label em, - .uniForm .inlineLabels .label em{ display: block; position: absolute; left: auto; right: 0; font-style: normal; font-weight: bold; } - .uniForm .inlineLabel em{ position: absolute; left: 7px; } - -/* ------------------------------------------------------------------------------ */ - - /* Messages */ - .uniForm #errorMsg, - .uniForm .error{ - } - .uniForm #errorMsg dt, - .uniForm #errorMsg h3{ - } - .uniForm #errorMsg dd{ - } - .uniForm #errorMsg ol{ - } - .uniForm #errorMsg ol li{ - } - .uniForm .errorField{ - } - - .uniForm #OKMsg{ - } - -/* ------------------------------------------------------------------------------ */ - - /* Columns */ - - .uniForm .col{ float: left; } - .uniForm .col.first{} - .uniForm .col.last{} \ No newline at end of file diff --git a/interface/web/themes/default-304/css/screen/uni-form.css b/interface/web/themes/default-304/css/screen/uni-form.css deleted file mode 100644 index 6b6f746462..0000000000 --- a/interface/web/themes/default-304/css/screen/uni-form.css +++ /dev/null @@ -1,131 +0,0 @@ -/* Keep in mind that wherever you see 'Required property' it means that the property must exist */ - -/* ------------------------------------------------------------------------------ */ - - /* Generals */ - .uniForm fieldset{} - .uniForm fieldset legend{ color: #333; font-weight: bold; font-size: 100%; margin: 0; padding: 1.5em 1.5em 1.5em 0; } - - /* This is the main unit that contains our form elements */ - .uniForm .ctrlHolder{ padding: 3px; border-bottom: 1px dotted #dfdfdf; } - - .uniForm .buttonHolder{ - text-align: left; - background: #CEDEEF url("../../images/buttonHolder_bg.gif") no-repeat right; - margin: 3em 0 1em; - padding: 8px; - } - .uniForm .resetButton{ float: left; } - .uniForm .primaryAction{ font-weight: bold; } - - /* This class gets added to div.ctrlHolder to highlight the row */ - .uniForm .focused{ background: #fffcdf; } - - /* .inlineLabel is used for inputs within labels - checkboxes and radio buttons */ - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input{ float: left; margin: 0 .4em 0 0; } - .uniForm .inlineLabel span{ float: left; width: 90%; } - -/* ------------------------------------------------------------------------------ */ - - /* .blockLabels (default style, will be applied even if you don't class the parent element) */ - .uniForm .blockLabels .ctrlHolder{} - - .uniForm label, - .uniForm .blockLabels label, - .uniForm .blockLabels .label{ margin: 0 0 .5em 0; } - - .uniForm .textInput, - .uniForm .blockLabels .textInput, - .uniForm .blockLabels .fileUpload{ width: 43%; /* <- Required property */ } - - .uniForm .selectInput, - .uniForm select, - .uniForm .blockLabels .selectInput, - .uniForm .blockLabels select{ width: 43.5%; /* <- Required property */ } - .uniForm textarea, - .uniForm .blockLabels textarea{ width: 43%; /* <- Required property */ height: 12em; } - - .uniForm .formHint, - .uniForm .blockLabels .formHint{ width: 55%; /* <- Required property */ font-size: .9em; color: #777; position: relative; top: -.5em; } - - .uniForm .multiField, - .uniForm .blockLabels .multiField{ width: 43%; } - .uniForm .multiField .inlineLabel, - .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } - .uniForm .multiField .blockLabel, - .uniForm .blockLabels .multiField .blockLabel{ width: 30%; margin: 0 10px 0 0; } - .uniForm .multiField .blockLabel .textInput, - .uniForm .multiField .blockLabel .selectInput, - .uniForm .multiField .blockLabel select, - .uniForm .blockLabels .multiField .blockLabel .textInput, - .uniForm .blockLabels .multiField .blockLabel .selectInput, - .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; } - -/* ------------------------------------------------------------------------------ */ - - /* .inlineLabels */ - .uniForm .inlineLabels .ctrlHolder{} - - .uniForm .inlineLabels label, - .uniForm .inlineLabels .label{ width: 20%; /* <- Required property */ margin: .3em 2% 0 0; /* <- Required property */ } - - .uniForm .inlineLabels .textInput, - .uniForm .inlineLabels .fileUpload{ width: 35%; /* <- Required property */ } - - .uniForm .inlineLabels .selectInput, - .uniForm .inlineLabels select{ width: 35%; /* <- Required property */ } - - .uniForm .inlineLabels textarea{ width: 35%; /* <- Required property */ height: 12em; } - - .uniForm .inlineLabels .formHint{ margin-top: 0; margin-left: 22%; font-size: .9em; color: #777; position: static; } - - .uniForm .inlineLabels .multiField{ width: 60%; /* <- Required property */ margin: 0 0 .3em 0; } - .uniForm .inlineLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } - .uniForm .inlineLabels .multiField .blockLabel{ float: left; width: 26%; margin: 0 3% 0 0; } - .uniForm .inlineLabels .multiField .blockLabel .textInput, - .uniForm .inlineLabels .multiField .blockLabel .selectInput, - .uniForm .inlineLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; } - -/* Focus pseudoclasses */ -.uniForm .ctrlHolder .textInput:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ } -.uniForm .ctrlHolder textarea:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ } -.uniForm div.focused .formHint{ color: #333; } - -/* Columns (they are floated left by default) */ -.uniForm .col{ width: 37.9%; /* <- Required property */ margin: 0 2% 20px 0; } -/* Use .first and .last classes to control the layout/spacing of your columns */ -.uniForm .col.first{ width: 39%; /* <- Required property */ float: left; clear: none; } -.uniForm .col.last{ width: 39%; /* <- Required property */ float: right; clear: none; margin-right: 0; } - -/* Messages */ -.uniForm #errorMsg, .confirmpassworderror{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px; } -.uniForm .error{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; } - -.uniForm #errorMsg dt, .uniForm #errorMsg h3{ margin: 0 0 .5em 0; font-size: 100%; line-height: 100%; font-weight: bold; } -.uniForm #errorMsg dd{ margin: 0; padding: 0; } -.uniForm #errorMsg ol{ margin: 0; padding: 0; list-style:none;} -.uniForm #errorMsg ol li{ margin: 0; padding: 2px; list-style-position: inside; border-bottom: 1px dotted #df7d7d; position: relative; } -.uniForm .errorField{ color: #af4c4c; margin: 0 0 6px 0; padding: 4px; background: #ffbfbf; } - -.uniForm #OKMsg, .confirmpasswordok{ background: #C8FFBF; border: 1px solid #A2EF95; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px; } -.uniForm #OKMsg p{ margin: 0; } - -/* -IT IS STRONGLY ADVISED TO MAKE YOUR CHANGES AFTER THIS COMMENT BY REPEATING (COPYING) THE SELECTOR FROM ABOVE, -AND MODIFYING IT WITH YOUR OWN PROPERTIES/VALUES. THIS IS RECOMMENDED BECAUSE IF YOU HAPPEN TO RUN INTO TROUBLE, -YOU CAN VERY EASILY REVERT TO A GENERIC STYLE OF UNI-FORM. BEST OF LUCK... -*/ - -/* ------------------------------------------------------------------------------ */ - -/* This is the main unit that contains our form elements */ - -.uniForm .textInput, .uniForm .selectInput, .uniForm textarea { - background:#FFFFFF none repeat scroll 0 0; - color: #000000; - border: 1px solid #DFDFDF; - padding: 1px; -} - diff --git a/interface/web/themes/default-304/icons/device_sprite.png b/interface/web/themes/default-304/icons/device_sprite.png deleted file mode 100644 index af531d7fba6139a1a0e5afb176e43a4b65376ced..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10582 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 diff --git a/interface/web/themes/default-304/icons/flags_sprite.png b/interface/web/themes/default-304/icons/flags_sprite.png deleted file mode 100644 index 036a8aa41674a8e06d494a5f70e40734ed70b1f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88755 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 XHFZ@a+U*rJ00000NkvXXu0mjfEZ#v4 diff --git a/interface/web/themes/default-304/icons/x12/accept.png b/interface/web/themes/default-304/icons/x12/accept.png deleted file mode 100644 index 6a9f2e2ebcb0a18b80fc49712fa5c1d702bf5e4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4b)GJcAsXkCfBgS%൏@^Wr zw{I1O9uwVX+^!cmwu<qt%Y;MMrnml&mV4f8x=^EO<3!)Q+Bk+|3fs1>?B!^is-b4D z%`lrUDSGCOjvLlDj2l!Pt{qfK=$h@Abbeu1Z*E0`pWDV=ALHaA94|N9>@aRn<5v7F zxI|*z%AcP9{{Q<gns7Ps9K*@Q84lk}JOZ!Y^qFD&!?CL{%YjeQTH0E3M$#U$0|o)i f+!`($TvZrWwoANP8@v1i(B%xCu6{1-oD!M<*Ed~U diff --git a/interface/web/themes/default-304/icons/x12/accept_blue.png b/interface/web/themes/default-304/icons/x12/accept_blue.png deleted file mode 100644 index 47ab08aa864fffe0c02c10bd6362896f93f7adc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmV<A0UQ2_P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG00052Nkl<ZD9>Gz z-z!657{|}Q!aXHQiqa%$q)2h2Tq##>-4SVL8=++9IAzSz#N<c0afMy@wPp6hj%{Z@ zINRc4Y-0!Yb)I*)@YeTzpPujMecz|&eL1Vu%8^VaQ<X&@8|(J;-j1t8qL^~z{c>#L zdA?N?1SJv*An{bhrTWE0G3Cf3hHcPySBrv8&15n-kTs0DRSY<i7}Pbgtzsus26@B~ z%ULYuSvqC^PD8g8N0$^s@2Uc$7{ib=iP7ye_QGX$6R{lC8P63kyqQA#l8l~}C^~KT z7_i6Se|$ss^%G;e4~S+9AeP&AyEIQiKV6V<6ncT<;u(F?J-q26Xsn$-G0&6KKrDCQ z-qKFu?=UXk;VM;u)cglqB~K15b3qsuLO4~*AeNOB&Ay;Vh`=x(z(u0KVDT)AX6r2) zc|ZCk8N{%XEN1hp91g(geMQZr7j1L57<VgZ;%`tl?L)(ik9oupTWPCUX{+Nhj}HBo z+KDUFPhG>f7{t1sV{H|G+WPl!qM*p(AR>=>97l>w6jP48zlZz(HJlE6`fzuvM56fr a*Z2k$i<>Rht0chy0000<MNUMnLSTZ};o&O) diff --git a/interface/web/themes/default-304/icons/x12/accept_green.png b/interface/web/themes/default-304/icons/x12/accept_green.png deleted file mode 100644 index d5d5709ef66251c23f213eea9c5f3ba5591aef6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4gPtyqAsXkC6B?T4&68tQm}g)8 z?ag=X@O6Lq4=I>=@TeSb;AvoDQ#k3~FZZ|p@7t&UU%%IDHtgUPYR)ogn9U>f<KyGw z|5eS?{`cR0+TP@tq+q#1jdeoXPlezOn&)na|J?tq!Y+bu3EPrsj7x-5OwEq++u!~D z|Lb>g18K0}6UzzJj$M5Ace#%l991xQeTrp+j0dlWZVdA#r3oufbOo9ySaZ%kX~0u1 vv}?KJEVY=7qa2z$mV5GrO;YZ=vV@UARHa5GWviDt&@&94u6{1-oD!M<jtXE} diff --git a/interface/web/themes/default-304/icons/x12/arrow_2_left_round.png b/interface/web/themes/default-304/icons/x12/arrow_2_left_round.png deleted file mode 100644 index f52da180c94fbb63c4bcc4603dcba6db2cbd0a94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmV-I0lof-P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0003ANkl<ZD9@Er z!D_-l5ZzDl6a3KJw1}?On>C;}l~NGfLvLa(6^p2cMHDr*DzOHUJbgp9jl~|iFl3l{ z@9mq}C>0;aaZ;BkYpp+B*9C()YwW4yxfIfD8e_l{MG;P?NOIO<V)|Q|g)j^SKw$87 zgugjp<_GxL9>88qN|8{u%1Q9ptnk==MSrr!+~3Ph#40j>gIiA>JXEX5<}`ZmOL)Vj z2okF}96b~KHW)z{?_qDOxOH>~3yIzSD2osR)v4Sc8szdtc%Jt+!CK;g<LO2`*PAcM z7fQ(76$E@`$qvnJ5KPZjwbpo+?`#$P44qsnw?Q>aU{3JWT5mlZ{W5Mo+<$+KGy8$9 U4sBCBF8}}l07*qoM6N<$g3{iK761SM diff --git a/interface/web/themes/default-304/icons/x12/arrow_2_right_round.png b/interface/web/themes/default-304/icons/x12/arrow_2_right_round.png deleted file mode 100644 index 35fecf506c647b41354aae7a0fa58d752d31a339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apHrP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004SNkl<ZD9>F| z%TB^j5bdw%m-u<m;>s7G(#Av!iL7M7LX8^}gGMkdpdvy_pz<oB_C?X-Op_vblW8Y& z=ggcrcZ5VDA+W__u{BYWBw3a_s;b)AtZK6_QjqVWyzmo`$2U@`R7=-1c%FyoIIfGT zu7U43Cj=0BJ(*1Q=qwWbIbcm)3@jJH4`7-mIEQluQ4}{dsvMo-#WkA75O0=`X7>Zy z>j=&a)JX^D3e1yf%)fy-RomX%$6+ReLh%wM-9Y7Kf?CVMm+eAP<c>fC`dry|1AMx` zNiH9DG7JOC(J{`>OSr4|F{6UHT-FyzjSw(q&hNnjP%f8|K2SoyLu2#@U`j4g8caMG zLmyi^X|i3Y`66z#F7BVktCS=fL?`K3je2{E)529qq1>?OKfrCR5652`I+E2id$383 zM`H@DX`%8wM6Er6?f;W?`QfTnomx8xh%X!a99wy~mDQj<V4gIb&Bi{*mRI8!2+qAu Ttx0(I00000NkvXXu0mjfFcG|O diff --git a/interface/web/themes/default-304/icons/x12/arrow_left_blue_round.png b/interface/web/themes/default-304/icons/x12/arrow_left_blue_round.png deleted file mode 100644 index aac963c1386f02904556236b51a794bec67fb2c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmV<50U-W~P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004|Nkl<ZD9>Gz z%P#{_6vpRYVQWKz#L6pP(I7%1u@OYV&OacLc(l`cM$u78qa`X-s+NrfVN+VFuNkc| zXiHdVwP6y;XU;_zZt~rneCK!WJvsMsCX<OH>Gk>|qqZCywg>l~Gf$$JJj(rXY%>@P zHG;(=i;)oSUUKlIzL+Q`k8;GY0<F4Ou&k!i=`=i&iV;@|J$40MwmS^%CYeV$Vu<C8 zMt+7)amQ4&t=~dtO`vf#j)83jqx+BO&^&kalifrtM}6KtzoUQq9t~y*?Q3!H-X|np zRh-E=w5;5qZ%Y9&#Bv8Nr+TWWXfnqz?358q=JB_Vq%4}vBAS;)5JN2IaqXxl@+WHN zBN%if;J?om3cRrl>J}oX*F+4ltflx<2HjQ(<<nQFo(*Blqd<E8!0}B6ReTVgf&^k% zOGcibk)k1N`m-pX3ZQH<fRb@PbW36MT4Si3x`g8*3u1`<8LRL!)(zhqS{K8pnDC=? z{2YyQ*RX3I8>{d;*22RH7FmjhAtvA86?04!lSjG2!~Opnn|9m7;r>pZMDhQx@eLLe Vng>?@EY|=4002ovPDHLkV1m%u*m(c| diff --git a/interface/web/themes/default-304/icons/x12/arrow_right_blue_round.png b/interface/web/themes/default-304/icons/x12/arrow_right_blue_round.png deleted file mode 100644 index 71f5dd9fc53a083f47f3ee0671653905af78219c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmV<50U-W~P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004|Nkl<ZD9>Gz z%P#{_6vpRYVQWKz#L6pP(I7%1u@OYV&OacLc(l`cM$u78qa`X-s+NrfVN+VFuNkc| zXiHdVwP6y;XU;_zZt~rneCK!WJvsMsCX<OH>Gk>|qqZCywg>l~Gf$$JJj(rXY%>@P zHG;(=i;)oSUUKlIzL+Q`k8;GY0<F4Ou&k!i=`=i&ilN;kx@>pou`3vHrI<%KVu<C8 zMt+7)aYsMVv3`ru{YMOJD`;GeLuXB(P4nC_mEA-vM}6KtzoTzULCeYw&g2{tuPS)& z6WZ6}XfR9Y-@XSi#Bv8Nr+TWWXkHf4Y!-1OW%0Ly$vlRgGMdaW5JN2IaqXxl@+ayS zBB;~kjb#c2{`(vT9SPLVM?eg*tflx<2AzV0Dn5wgn+&Aq4~%&fRL_P`K7EC5s{~?L zOGcibk)k0uF0!bcx<s!v2HjE^CF6dSO$Jat6~LxH3u1`<8LRL!R=e*FjdRy19Y06K zgdeSoVQgp~8>{d;*22RH7FmjhAtvA86?04!lSjG2!~Opnn|9m7;r>pZMDhQx@eM1F Vng{dmy>S2l002ovPDHLkV1i1E)r<fD diff --git a/interface/web/themes/default-304/icons/x12/article.png b/interface/web/themes/default-304/icons/x12/article.png deleted file mode 100644 index 276094e3ca29518d7902fc76686fc39e1cfd3f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmV<b0094qP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002SNkl<ZD9??L zO$&lB7=XRjKk6T9d6SOa>e{he#|}cEVINW$VwR!>mZm1*+cq_cIce~)F`kF*<p6+_ zBnepb1)(d7B8R~)R|Po~>y5}u>WJ?&22POufbZv;OZI`l_ZkB)%)pP~8%(A%7>>r| z%zVM{Q!s;^nuiLkTS~xkg%#HGP{Hw<5U{AbPuQFz(7hKs*t;=dcPZr6DTKAt5^Rx# z(d-CR^p~ai0M$;|fr2EZ6lLQMi$egi8MA{nsNf&4`vKSN)He)j2mJs5002ovPDHLk FV1jdcZrlI> diff --git a/interface/web/themes/default-304/icons/x12/article_text.png b/interface/web/themes/default-304/icons/x12/article_text.png deleted file mode 100644 index dbc47e51e554e465e624088eed921578039e662f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4Bu^K|5RLQ6KmPx>Km6q6<o}Nk z#m=28WNT~7qrek%n&EN-uYyUbNAgvM;DYBjqYc<LevheUU$)!YnyKT`hScwl25qYx zfs!3-7$t?TFdR0xU1-JGebV_DTMdIVv!TQiF@~p?4^I{ia7zN(#^CAd=d#Wzp$Pyy Cmo@nS diff --git a/interface/web/themes/default-304/icons/x12/bar_graph.png b/interface/web/themes/default-304/icons/x12/bar_graph.png deleted file mode 100644 index 7df4a34c20951d4abc88b69868e4094540f8d7fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4DV{ElAsXkCfBgS%&&=~&Wa|I+ zOBROAio7>lQ&lp5^tXJ>ZkYAw|HI|gOEP!-`uL}Qh6P9R)d`^i$0p2*Wq2lEw^RCN z<p08(4B;Cd9xO7bO}-!ZN9tY8Fa9ut=UMhM?6#+w*74rX`@^FB!Y-V7ng6-j&GCoV zJf44mYgK=G<IBUszdmHIxXE~NLam9&qJ=9Nce6Q3Fl@Y(d^vs|iy+W_44$rjF6*2U FngEL$SCIe! diff --git a/interface/web/themes/default-304/icons/x12/burst.png b/interface/web/themes/default-304/icons/x12/burst.png deleted file mode 100644 index 2dfc873a4e90fe00d71822a35da1f9cc3051535e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004=Nkl<ZD9?4y zJ7`o<6ouin&tt}nk~BUDhF~c{1i@ZGYy#Fcg4QAg5esX<P9;JtthBUNLO=pyWg$ch z(bB>YFvG~5xp(H?bI#t&LIfZ9)&GJe8*ginz`?nIK`$<KSr<g`u^0VXJ<IDLj}H2= znaomCO%t4mzzLSV*GWc`b}<#Z*|hm=Ri{gB(qjPbt8t-C3K2mVO*$N!i$_4*Y1;BC z20KII8DJpzw5aWk>NEy;!8`XMG+jA9?edocF^rs(=d+}QppTzcKx`6t?FILgIt&7w zGUMf@%kv@<0SNxID!|L4HcZ7%hW%=`-H$$dCr^z0JO1S~i8b%!amYo_8F?K<#D6g- z<%XKQ2}<rxr)k|ecN^gHzmGr>ya#Z_j4_Ox^jVcFKDb2zHc77jHtGP189sS05Bkv$ zLYM8Z6I530d{KKOz!rdI03gr?=k6+b(K1hv*l_|3i(z}*r1>^!EXHeHvAwKzwadEG zW!(jE!^r)~EF*{jxfqPByvVIw>|4tEA~^RBf`?ryRWCaBqWcN}KLGIg_W~K+Av6F0 N002ovPDHLkV1gIz&{zNf diff --git a/interface/web/themes/default-304/icons/x12/calendar.png b/interface/web/themes/default-304/icons/x12/calendar.png deleted file mode 100644 index 56ea24c2af964ca99dd334f3a0b1c0f3ea1f8f2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4Ku;IP5RLQ6Cr)Sw{r~^po|)sh z$khMG-J1<!6gNt&TUdDf^8X_jG^98ZMR--LUq0QP&tlldmNI$5PYcrrK`r6TX09sM moHPBmESKN+&p&Ph6GLe1TuHST*&l$0GkCiCxvX<aXaWF|DKEMJ diff --git a/interface/web/themes/default-304/icons/x12/calendar2.png b/interface/web/themes/default-304/icons/x12/calendar2.png deleted file mode 100644 index e82b31608c00b6dae14b0d84d7899ddef4669de3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmV<T00{qyP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002KNkl<ZD9>Z4 zYiLogt8X;@|NlQjT3XtFT=cZ5Q>NE7G--o5q+qay_ANKS7{<m&lV`*3{YU<P`S}kl z@CWGV*YCf;*&qyKlW)VCjXVBdyZan0aQpGQ|7Y(!1GDdE=Yuhb{outHgoaH!4*Y-g z>Kj<#<;Q>jZ$AHwq2b*RN}RNO&9?t%t~>$@T)g@6|IstI!0Ze6-u*vv86tl5?mHwu xY~K6-`h$;PfjiHC{yz`YgwB5W<{x=Z0sytKaRtnJZ|nd7002ovPDHLkV1iOYcq#w@ diff --git a/interface/web/themes/default-304/icons/x12/cancel.png b/interface/web/themes/default-304/icons/x12/cancel.png deleted file mode 100644 index bff763a22038c10253c41ddd0adeca402adc6d78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4g`O^sAsXkCJv_XV{k*+@^Rw`1 zW@hqaW=N>8O=4cjxGI&wIPdB6|LvJgUQLBslagjg?KrT1(W3t+%oJz$=p3KWqw-PS zlWDp{+tvG@KOf+la8qGt$O_|)RqsNpv?P+bdDckf9d~Ik+}3cQ;L=V3`yG=LazxY> zXV)CNFMRm&i6n)s1)Z1c=4mWb%yyc_%$>u>dtigq-IdZ#%z?^%GnOzeV)Q66@#=nm R$rb2W22WQ%mvv4FO#qs_QGWmc diff --git a/interface/web/themes/default-304/icons/x12/cancel_round.png b/interface/web/themes/default-304/icons/x12/cancel_round.png deleted file mode 100644 index 803532cf0937811afa6e7e71dfa9772a57d4d8ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004hNkl<ZC{tZh zO-lk%6rI0PzoczMADCs7MFbkOiGu7eXezX<X;UbDt20{BxF~m8Y7ixii&QK>n!pHc z(dzWhlcKzEhCA<^bMJfiJtYtbD1_JR?emM+4TYYMH0_gM&NXsBI{ESWd;{C6T7EQ5 zw5wHo-QP<v=NdU`q(Qj*w^X&>Xf)7CCQ(}Vz;wF=+$ee0&@l{<qlQ{#!|xBu%1HxO zB!ah#b38bmc$jm-ibYY|QPDOoWhZKt-EjE%qf&vnx`JjR0miE^5sXIURB+3nhFaxV z*S|XX9PVakke#%ndDb;CSRm(^kQ_DCN<%xB#qIPIGIks43H{f=JTpEfI0vYa2DW*x zl#yR@qk4ECg*9E1V7zEC!7YLsxg{Q?P%OgIV=y;^DDQ`n8XZDvWDwQpsrV1UifbtR z9GasNbFPcIqNzoYcFp73HjFEQjC%o1QHUHha;$$Zj-6ViC$w(TU5LD37XM#d@6*^5 i`#g!qKMCf&PvaW{44Xe-4zsra0000<MNUMnLSTZhiNk#W diff --git a/interface/web/themes/default-304/icons/x12/clock.png b/interface/web/themes/default-304/icons/x12/clock.png deleted file mode 100644 index 589bd9494750123f6b3aa853760edc58145e7df7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004?Nkl<ZD9>Gz z-AV#c6ouzi>J>C12oluPg6N_r=puT7=mGk{-%0~<hNv(liZseDgDxU0Bb8Fe8A~lo zOA*wR8oXG|K9&~^tYNd(w-1|r4(D__Ig-_C9dM{$z`t8M2_1AuRFg;9AIE++n@uP1 zd_l^jP^`6a^V&tU)MYh!lo7)k)b2rn_mwM^3L>(C`A`{)XJt4qs+c<}GmkQ2h~*p( zyNgaa$tsxI%EQb*VJB8c=KTu>?<4alBZgRx=FES5Vs`%p7GDk)K8Nk=8bq~W+$%GW zGGd73PQwSv)w6;Lp9Hfvi?Iz6+tC_wwQuO$A}p#$88O6ik?^5%S@?#*lY!oy!NTz~ z>g_Hr<R(U4Y3NnoxG91dV%bQK?@dhe5=?4%Q*0p+tHS6`V{9#j5&J!6wqy{)MsnEg zE?G<=aM!}HH3^eD1<gtV+SMd9s<f*K1mi6bLu_xYLT|19SOeqh56~>#VQ4vyNlzO7 z+eUA#!tYx97boxqSxiHEYv5dJGf_<*W&Ml$|1^SoyQQ<^!w!k+|4-uw+6k1il12sT P00000NkvXXu0mjf)CbQ* diff --git a/interface/web/themes/default-304/icons/x12/code.png b/interface/web/themes/default-304/icons/x12/code.png deleted file mode 100644 index fc2b05f682e164d0292b9dd54185aafd9683511a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401 zcmV;C0dD?@P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG00044Nkl<ZD9?@2 zUn@g#7{KvUZtzarxpm=INx6|5@fIZIHQ4N2(9al42n*RnA|V$Pxj-=uwURk!=ZyJn zXFIdAKVKI(T1|QCd-=I|o<{)`Aq0Ol=JhtKs;a1}ssM`e1FC#Y8K{2ui#$zrfi9hz zgb*CvBoRX3^LpCq0@HFx*|=aOvWtIi86gC9fst`|NES%Q65*YF!kb$JgR=-B&~?2Q zB+?%oN3*n##)({I=nb1po=b}5D$`SbG)-%8fn6*UI!n_Nc*b||Mm$wuFJ>{YZZLi# zSqvW_-(`ynwy!1K!DmLcO=4P}J1s{{&$DnL>0Qzo+AuNFg$@_IW*t0-uk@`Z30-A~ zn>MG9S^DQ+7+gydjGSXxc5BTJw=X%?E+t(dgRMJ@&WR_6S2Qwqh1r<^hG8_;fGSX~ vRJc!lU|0^(L;;yAxlc4r^Y=>s2~a)(U53NjE0F<#00000NkvXXu0mjfR9T~; diff --git a/interface/web/themes/default-304/icons/x12/comment_blue.png b/interface/web/themes/default-304/icons/x12/comment_blue.png deleted file mode 100644 index 248ddb6b59edbd11614e865f57e30c8ae53b2f48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmV;F0c-w=P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG00047Nkl<ZD9>Xs zXgJLP!a8-QWHqZ#R=V|FydFRI+PCESH@-#9y879!<NQ(esuS`0^{4qk>KK3wR=xVu z`W7u`ug^H}^#6l5-~a#n_a6*?{rUI*%F{3ZYuDfV4^+1ahy@sc;tblgr%r4*|N1{Z z(7gG<f3>O;vlw*iPAO(Bx%vO%<1ctMfaD#z&VOLgt~+H3((vT{PrMpH^4=3JePz(9 zJ*f%Q@O$^wcX%~`<c*uo++@(KIVk|dJr!&2{(t@X7gogwZ+`e6GVRK5U?@g_Jq-*l zZjI`bT|mLlQ};dnf9Am_cqq*}`1C)}z^A}qPcj4rD=Z#B7$~76R&Zp^@)Ixr{{bql z-*EpwFb=i>14bUE21SED5CemF;r7dK|K~5i{a?NM<W$}IQ|!oUP&L$_7Pn|Ud(N@z y{C}O=Qx!llCS-XG4M3~`wB-g+aV)w*7zO|sMS(UNPg<4$0000<MNUMnLSTaabil~~ diff --git a/interface/web/themes/default-304/icons/x12/dollar.png b/interface/web/themes/default-304/icons/x12/dollar.png deleted file mode 100644 index 223f3bdae46f7d160c4cb1c1376d43c130e4c625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kPfr)e5RLQ6KmPx>XXZHm_EYo2 z{{jE%XGr+)au_FEZfN1m`q9t&_zFXKORxVFwv^T*R-GySk4uHNC8(a|cga>Ti#Yk+ dWZx1-h8ryzk^g+yRs#)X@O1TaS?83{1OQ#oEztk~ diff --git a/interface/web/themes/default-304/icons/x12/double_comment.png b/interface/web/themes/default-304/icons/x12/double_comment.png deleted file mode 100644 index 21262ec2a9778775efb6db9a37e3e81a3d496828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmV+*0pI?KP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002zNkl<ZD9>Z~ z|NlP&DHse48crwpO}ccyd&i^yGY&lcU%2A-f1ucWAQoUi2SCAwx()aLBZE)h|NIAu z0p-qv<bgN<uEA@<B^1RQ&%XiNu<!bNu*TE(KmA{F{KbEVuJh-?Hl{4N0atwE`Pcu* zd}IKU18UgMVApZ(J;)>w0J$GzGA;lz4CIFZ5aa3lpZ`IgCa3}GaRVS;4-yEUarHmU zMs&Y{orDxx1)z`tIWcnP)%PIhfouh7h6eL~lwgL2`+KNu0-zuTc@$(LD4wvzM*<Kl mAo1UWf*h-2Yyf5(x;OyuK3f{(pE>dX0000<MNUMnLSTYrU3*&q diff --git a/interface/web/themes/default-304/icons/x12/download.png b/interface/web/themes/default-304/icons/x12/download.png deleted file mode 100644 index 3866bb20ba7291d6a675d95e25f4ef753d97adfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmV-50m}Y~P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002|Nkl<ZD9@FU zv5LY#5QgWKY^~11E`=xPS&3j_pG`LI=?h$=wt|mi6A}^=wNdnxi#~-gW=3{Nv^f`k zvi$RX*=1qy^9heMpf~xb_NR3$rZ=foX{H07qd2bcp!;oA2s+)C9G1qd3eBV#azIK6 zLJ0aIMGNzNoA<i6Z5v$I1#ldP;q&2wyT7dw7RSzGe?9Vy82T~8r{8nw-bKN5IYTT9 zS$08M#rw~9UpR}J+|haxGW31_Mba?Mh%o{cN-0#{*hm^ya>O%YN<#huCVCaSl8~k; zMp1-Gl3)-7xK1{huGScaA$M^cGs8lDoTcCTAF&`m`K{amkw|$3Hq;?J00000NkvXX Hu0mjf;huy; diff --git a/interface/web/themes/default-304/icons/x12/envelope.png b/interface/web/themes/default-304/icons/x12/envelope.png deleted file mode 100644 index 5b48a00b61551520fb1c82c15e06fc70e94a296c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4NKY5X5RLQ6KmPx>XV#q2n8KTx znfc%IU;?jw{eM-i#ThfUJ^lE9b^pDFn+j4hc_$sdz%aQ%^N3p8LdHl&E9v#T3Q{fn u@zuSz*-|cFFbuPwAmXKRlzF8gFGKPFgRf1hb;^L2FnGH9xvX<aXaWE?2r|$B diff --git a/interface/web/themes/default-304/icons/x12/flag_black.png b/interface/web/themes/default-304/icons/x12/flag_black.png deleted file mode 100644 index 66464debfd39743ad6b464ec5c188da3c25a63d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004nNkl<ZD9>$> zO-lk%6o&7pIbb?4iW?I@TDcenv5m_Xxd}lcTZp3gF~W#7g0vC*1GRAJrez?~KXBD1 zb)fkHZCkVqYEy`u-aDw6c;MlFo%fz|UZ!aptJmwy=kqayY`5F{Hk(bu{!|bIJsyvL zJDtukTgOTu%CdZghu2&#N0mxtDT?A}I-REJbV|iy@fWEVz{^^#*1f8#&wjsu5sSsB z*XxmC7}RVwDVa>tXf&e9WI};J;01y{uP|=6+aH-shFmTeWwTit4u>?G%}7xcDwRrP znx^$ZFc^GejYi`b6>cD+P$)#<aF}Yf8Vv@61zP!uMx#_H6etpjJfTgMA(?Xs!91VO zlO##}r={ENzV>>(muO=SZh>SCy%KQFbzNVkQYpf<2@Y1i@KxBjv=*Q>KF?#hT&6@K zae`oQiFrI8_Aj<7a1;#p)#-E|y4@~=V+?ayc@BreVpqVq<BniG<7XJas@3X-eS#zK o4h(Jv#B7^=0uGM_xZZvH19```JLJl{Q~&?~07*qoM6N<$f+6|BmjD0& diff --git a/interface/web/themes/default-304/icons/x12/flag_blue.png b/interface/web/themes/default-304/icons/x12/flag_blue.png deleted file mode 100644 index 4ced1c2b42d4ee802e0d8ea531c0991975ac7c17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV<b0RaAqP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0005TNkl<ZD9>Za zOiN}+PfKO6OrOf2lQe@#D|SM#M$AN4!{q6@dWln9t#js`H%OW`S36+}gF(u41_qc0 z^Ry`j`l+**2e<9~8Pv4lgGt)Vdmgo$J}o={@qhZnJ)cygCpZH&af38O12yzpr}VxK z>pAqlcH^`E>u>z{Up(jV|B$W&|L2|m_kZ>I_y4VO=4}PqoWYQhma+w?>3vXA(SP^) zZU2jw-TdEo@Z<kY*FXLbXxQ*Scgd~)+aLb_U%Tw=fA6Z5cNx;s(zJj!RA!_k{&z_2 z{2w{-#Q*Zu_y5m4`u2atf)oFJo3{P0T7CC_Nb`mpwt4fXfi!@ya8_E<waBE*|Bj_A z|3~*9`EQgqbGCc=vIgVyS+DgHr!Lb;n4)ZuJe?h;0p#(Rtkn4bUKuU_buyRVlZ%|f zVVXIYK|g7#qITRwR^zmp3?K~G0K_anzidfN%l_|`Qs?EH(Zt}8-p`<$Jd;5ueiDOG z>I@7GAZ!W5e~Qzhy7SXw8In`e8LU(Kz#2?ar!knOO~=px!jpmcKhTL*8Nm2SO-pA; zNy~s^Y#LO7_$3e@1Y%}%d2AX$xEzRo0dYLK902BK`^7mR!_@!)002ovPDHLkV1nWI B1v3Bu diff --git a/interface/web/themes/default-304/icons/x12/flag_green.png b/interface/web/themes/default-304/icons/x12/flag_green.png deleted file mode 100644 index d9fe8e4dafcce94a9c8a942db2dd28f61a255328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0005UNkl<ZD9>$? z%}Z2a9EG3X``)>CK5lw5A`>H`g-A-|RSW-uAW)F#52%=E(IPO~E77J!yK3F0jf>i} z2rBwqxv-?5$=p~uPUG0jTy^HY_r5KhD53|>@|?rrNb&q7a4oGf>m)g|*BX1JWp;je zj`tDdcyIT?x%I}{V{17lA~*n8Jd2%jGWz<!{$nGK*6GsPyLw;HA50FP<@J|mQ*TNy zr?qmPJHRb0V?=5qdsI6?K47%>l*;D{!E&`kwOL{8@PzxhT$<U8HimRKGI~*r8j&sC z)jCoqbq#*f#o&P<K9t|nG))Hf4Pr2dw&JK?hvVS_+E(<2dpgO-wE7y@1c))BBwnd5 zJGH3Ba^=%})N0<BVzCHNAXZQ9o_M@HT|sxLH2S`M)zA9h+NOPNJKmZH?s|?_-yIDR znRHgw+(*u$uXaw>7UTTRoko(xp2|H`Xrq)^5rq!Ju;ZbGVnA(XhD9-%E&HpP6(8wN zQ{%-5f>IjA-)MW2SQ_q&p3Cm59<mEP$WI4SzzCS%Km1_{;hxPVGYAhX$rJZ&fGYtO z5csEIm)i)dzzv{4vYRZOhW{D90&~C#-~!T#?&udZcdxV?hexyk0000<MNUMnLSTY0 CB=hG0 diff --git a/interface/web/themes/default-304/icons/x12/flag_orange.png b/interface/web/themes/default-304/icons/x12/flag_orange.png deleted file mode 100644 index a2b1090138fefd9f6fa809b31a7c9e99a45aa88b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmV<B0UG{^P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG00053Nkl<ZD9>$> zUr3Wt7>8eTVNf@r78L~{-3-+3LW45O2qPl8Dg7+l_MPvmZRCaa=c1D8N{L14bm?|c z;o8E4(2yV@q}wEfbdW>vDt3{0r6D}N8)9KzJe<RMdCu>gpEUbJ;<sJN_UsW}$~JoB zGTl;7zf=;{b#U(#eZ_Izi=K)670Qk>AW7bzS|MGxNUSJJvTBLU2z)rd#0xo1uk4g- z{!o(&k=bYEIZ`$7^*PK>!uTZ^J_nfzm`TCl?lDbvr6mv?wfy1Vy=^Dq%|RGzh3{|S z=SN6-;qyIMn1%^Q=M{5ejPV9+=f35;#kbCV@a}{TpTe|CpRTBM3?@4uT|G-;S5zEh z6uZ>&g?~H@U1T{?2C1{qzkh(&2Rev(azsmp^!*k3>5_axfq?B=S6gl~{-hFKNmd)% zLA*$`ox|GPc4FF+vLR@SM++Ej4_XX8s%=O=J}#Nap?uY%x66ORIyJ^Pt7jS?bX{n^ zBSF_E3z5=-u+rx#uvy5{Z5xADU3<g6DXwEnSjEsfTM0*$U&<Gy*fx&*%T_|3yUHKs b`sUdhQ(P4)N-$Ky00000NkvXXu0mjfpLyT% diff --git a/interface/web/themes/default-304/icons/x12/flag_red.png b/interface/web/themes/default-304/icons/x12/flag_red.png deleted file mode 100644 index a6b68395c6594b07b27758ee513a54439e99fbbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV<N0S^9&P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0005FNkl<ZD9>$? zF-Tic6o!8hEE)_{FiCZh43U!B;envd(7}L%1a%M`#KzFP_weP3q7*b^7Z*W9=u~hJ zK{AOLL)1Zp)<)ZyVv9|&6e(08ii(Oz_3wEl6qO7gT<$&J{m;1<-KL44VPM7S#3umn z0dGp!1Y940npA1&+l`{4F<HX`w}giufx#V*=Xb{K{wdPhSBGQwcyf~2rl#CGpfP0$ zFHG~X2ptKBBYos_@_KlfS4&I$(bB^Gh6ZwZnP;&WH*L0A5sDEqj5(2Vqdp%`D=Ns& zPI7vh=kYkdyWPC%?IklA{xVHUOV6OHYU4{?9}Vg{7bJlm4>>Tvn`DxEp%4!gg@4A! zx!c-$Aqh{Rg~Jw)y8HUFuL1$?m6h>YTG_6vTi;QX*j7o&P1<h%BDXhhSTjh%Kf;=( zc1i3^Z7p-aN!D(!`sQ+B9e6Iq<<<+`5hUe-%(6NpGrXy<k4*UeNO-;YoG(n>7xMTe ziS5y7v~6SrJ-Uv?%1UfYU0T>GAXrRUQjcLMUH$!#2f<u*HRk1G=cUC$!V}?8Q`NYZ n-wQ?}|0yI`ycRBn!2PqoZ^h(PuAX^e00000NkvXXu0mjfVH)KG diff --git a/interface/web/themes/default-304/icons/x12/flag_yellow.png b/interface/web/themes/default-304/icons/x12/flag_yellow.png deleted file mode 100644 index e197045cfe526b70a7f28791a703a35f4169fde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmV<U0SEqxP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0005MNkl<ZD9>$> zO-mb56o%hmf`znTkuJ2*LZ}-l*n*p`N*5(yU1TFM4ulYAGBq(tYuzd6Ui}AV6X+tA zF0ze8P~5bIYH${6z%euCV>Kfql4vrVo+&ETdg0;R!@bYFhZmw4M=~j5W1|<gjb6jR z;^`?;M0j^`f%L(_i>9Kux4DM{93hnwJ;mbVkBx?VN7LStrj6OU4pY~kQ?t2Fwc3bn zSqODHc!Fp&u{<>;Zx#wY?Zd+!B3fX6QKce~s=ng=cQTA`bbO5Mvop*g98RuHOr-0X z%pjG^UDR%m@}*U3wYF$?*GrZa;(mv!)k!Lq`c%lW<cq~(X+cO+KHpFK`w!{zGE9v| zf)r(lOml$h^#G6MD^;rxR=}4Xy!_LT`T22v)kAxG-i~3ozVHZwuDi;riiJuAedp)s zx)vZwu@8dq$<Ah9)5!^bb0VIrWV$&ym!<(M;6~ul5Q)UU&dfxpSR5M8=ZBHYy@6po z0{;X~?Y3~mOHq`qVDNJ$5SWGEKL<s5296X*M{by=`#-^9Ns?sZ`rhdiiAhXPN4ZA- u*87B~jL!UY!eANya-ZPftTvOnd-ex4F(GT_1e;j^0000<MNUMnLSTZv$?L=b diff --git a/interface/web/themes/default-304/icons/x12/folder.png b/interface/web/themes/default-304/icons/x12/folder.png deleted file mode 100644 index 92c08caff5abed92661cb3dfb769dc50168e037f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4f1WOmAsV8r2NxCz2Z}IU_<T=K zX@S;?hwNFeKb~;?TyA=?S9#r;13Z)b54cRoWIJ`?&9eOad*=lE@tc32!Eo){pE`;A zHQKBVCKYd|``Sqv#@@Zx_;iQ4{I+;ThOT{w-6a^OJ(kP4SIfj;AiqucBjazuBHP*g z(LkFGcK@@P{`xM*$4}BRckgw6mERTN#}GHKuH&@)+n1+Jnz*JUE}p;d^t~fh3)e3) z-xKsYI$&XZpThP13=9glnHDtFv28l3W5mtX=ppdgSi;f1Ib-u1-*2Jc)E0MUY%;$o z9P;9`zrg9mNiM2vMG9Jbg&Ztx@7zgd0@}>*#w!g>H~c@4)o!uaJL@$_)YH|^Wt~$( F69B$sexv{Z diff --git a/interface/web/themes/default-304/icons/x12/info.png b/interface/web/themes/default-304/icons/x12/info.png deleted file mode 100644 index 150c5cb3cc06b7dac3dd60bdb7a2a2b04f32e830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004nNkl<ZD9>Gz zOG^S#9L49W)F)`uB4|;hfd#Gl06nlT(q?ot$|9VhP)vzlMj6y1h>D6J3e3kimYR>u z3hgB{xHx&P<)VQz9M1XO%jJKs<Z`(rN|xmgrTGN|{=&}ITAiY2#_o?3KZnE7r>SZ- zm53qt@`dw!0~dvc@XXke5eu5DJ2ln&ST2_lF-+JuN(fxlFn98bsm+qe*pVSCDT>q0 zU3PR6Bg+|By?1aORUjWe!KU3~WGN#$GGry5GgJA*#A+Uciv}iFbMPELHy4yKtfpb} zrbS1Fth5_mGtVAO40%(qEa(^yW{|Ib<H-0xzb6UXqAofzWTi-W-8{{H!#bbDfG2_8 znK%v-HSEW0!ZTw>hO9W!-P1cpmkjhMQFO~uM50w8dS>j%h$AUZr`t%z5W4<A*Ypi6 zv$u#A>q7L**pVUI8mrbCtM9UgF<%PyKuh$@#8|c8v9>QxQ?rI1hhBWcLGn|Go*BFL o#r=O8p%s5&Z+pE?(f@xMKQXnIid{$SuK)l507*qoM6N<$g1OzvNB{r; diff --git a/interface/web/themes/default-304/icons/x12/link.png b/interface/web/themes/default-304/icons/x12/link.png deleted file mode 100644 index 1e7eb87035a0146bc71b72d621dc822f4351cec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4Xipc%5RLOwgB-aS6gWO_-FL0o z-pESBY}tjx37eJzWjl7auM*3v{mtWQw)v3SB)?;ywLF-vtyb8`^(jo`Tiy3BDo4~3 v1xi$1#Cw-5SNNyy!*5=d5U;G9qA9yFte0)y;)Iz%YZyFT{an^LB{Ts5_+K(F diff --git a/interface/web/themes/default-304/icons/x12/lock.png b/interface/web/themes/default-304/icons/x12/lock.png deleted file mode 100644 index 33a24b6f01c2ad05f187b4104a9d4fcd1a8e5212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)48J;eVAsXkCfBgS%&&*L>Rb^yh zVPUX*>C(UM$2B!Id0xJJnNZ4Oz`Jtg$~Oupv#+m9Oqfs+6eMKb)iz^>1nUg8l*@^K zcI>cV72%yWZJLIZgWrMGjI(cFG;C|zzdroI5ew5lRTj+J$5uZ4{k2Raz2S#};TkEs z`P%Hs0`kY&K5oqVQJ^B*<5(jheeC$Ehfmqc*GQ~pOKK8j*v;RlnzpU+BhZZup00i_ I>zopr09%St3;+NC diff --git a/interface/web/themes/default-304/icons/x12/magnify.png b/interface/web/themes/default-304/icons/x12/magnify.png deleted file mode 100644 index 730675e88dac72a9b386476d3dabc1acf5cbe4cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmV;;0W$uHP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004$Nkl<ZC{tyS zO-lk%7=<;6Hj1kj^(ShnZd|ym*3vIXLfqD}O^)3e%?bNZ`q)&9B1DE#h#+Vps30gU zjW$`4P&p1ZYE+!wTWMJ@9PZb7&VBDSNs?q@jP(WuVJ#Mq8;eUz#`Nr5Sr7toQ53uQ z`EPM^k1Wf#s=5zN(@?3_aR2ZKCA|#-P9#z6ZUF>ANT{j`UN0p56{x(^NZL@+pqs~9 zfLJ_Md(w2&$^1k_(EzS1K!G;)&#w`ll+Q%Q+M59NTq`}-QKsZ#mCVn;l@8<x+RGO) z6`i?ZY@(wHM5EEt<xLT#H%k3BUzC6h0h@<8NKz<8Z)s}+)Z;`#N#WLb|7;^q#w>vc zcXceRu7d>wEEEd;yn%k9lP1a4jU;xCv)IiPpd6fHet8XE?+|=GpGH6FX+YnkXb}SA z!*umlM4mdL^~ykhU&Lm!!EU$1@Ap^fY%m-SH-InkUMa1er@34%6V-^tVu91?Y(SnC zpdp^*cDp&iYm`F{hl97L|1<vu%w{tmyjH8VOi=Cv3A#@<z^u^;00000NkvXXu0mjf D-zmw@ diff --git a/interface/web/themes/default-304/icons/x12/minus.png b/interface/web/themes/default-304/icons/x12/minus.png deleted file mode 100644 index a76b0e2975e9572061cad21226852b64e9a36e64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k2TvEr5RLQ6fByfsXVz>e6v*=M z_Wtd^sm)8xtu4R)ztJD&Ti?FRPhi{pzwu`M!bd*!{|s~lgp`912k?glnKCd~UJBdU T!_&kIG>gI0)z4*}Q$iB}W56fT diff --git a/interface/web/themes/default-304/icons/x12/minus_round.png b/interface/web/themes/default-304/icons/x12/minus_round.png deleted file mode 100644 index 3d848055f5cdc746526ddb0b024b1dbe81cfd1b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmV;30eAk1P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0003`Nkl<ZD9>Gz zOG^S#9L49W)F)}xB9t<WXk{--T1A_lAHZpBpR+P_Q*BgQWe`0e6$~T?9V(p^8fuYX zGl8qqJ%1F`f!}aA=iEE@F<Lwx*GMcDn=sUqOr_fAnT$`U=`kDh<fZHSRKhfy)p{Mj ztrmKfia<?|89OpSjh;L;%}>{L;os!Z+~0#8jSAHCn6bmIc5E0YoW;vu!&;7@x)Oo4 zzAA`T9y4~>)spFSyZhmwwzG|LcplG7izCou#tysMMK;^>N+r~e4&gW6@u${33_WJ- zuqy+)r2<|KcHzCf!grhz=rLnQ2JkZ-r-|~`2JUC3@i-S$1o{NUW5$jwi5szO8{b!1 z+=YUQ03H@X0yRBm?8v5hREhqve&sSKY_8!pJS$MsW0n{k>+r>KmQJIApW>51O>gAl m#(#}7wa&|2&L`C4zs5h{LXV792Ugnv0000<MNUMnLSTXecdyt0 diff --git a/interface/web/themes/default-304/icons/x12/money.png b/interface/web/themes/default-304/icons/x12/money.png deleted file mode 100644 index 6deb5756cfcfcb97b72cc8344a9446fe510cb09e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmV+j0r&oiP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002bNkl<ZD9>X^ zU7PqH7X|``@TI|g)w?PfYJj+EXE_4{NaEq=`xqEmQ}AMc*;hYbFg*G42%%xctwksp zCJxgSwLFaf&WBs58dBFK{O>s04A%gnku}Axh*ZaGL&UOB3{5B+UjBLZ|IyF;a1C|) zD&YpiuZqUh0Ak<xauvl%FvT#8qT%EJcmMBxyM>|wqzL9L3=Qah04V@D3*;9J4Rfwc z`5(B*=YP$<^8d?kF9d5?d1EPx$5Aw3i@1&V)?kP+;7c0C+w;Doiva+~LY(wc!#y?t O0000<MNUMnLSTaXlX7(c diff --git a/interface/web/themes/default-304/icons/x12/new.png b/interface/web/themes/default-304/icons/x12/new.png deleted file mode 100644 index 49bf82c95cc9a846af2a172ecb5d6d5682f71064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kM^6{W5RLQ6KmPx>XV#q2_)V&a z|JZ+Z)@IWN1~aMI5;4p?3ZE0-EI!ZoM`^{u`tG;oIYkz8Th6&%beOc9J^lzI!&9X# VHRn6xKLZV8@O1TaS?83{1ORbhDcAr2 diff --git a/interface/web/themes/default-304/icons/x12/pencil.png b/interface/web/themes/default-304/icons/x12/pencil.png deleted file mode 100644 index 6bfdad47421635a7e05c51eb8eb8a20982a4a18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmV+|0n+}7P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002=Nkl<ZD9>ZK zSjfPDjxQ9mF|1y(gkjl+jSRQr;tZYz1pEi#cWrH{4EQuGU%So%r110d<zW1_vGG4n z4J%i!GFi21)qfC%DaNg#kktUD_~OM&U>c<OOI@8QriKCr3n2X;gioG4^}o2d7>w6d zR9Jj(YC<zPpTPvC`2WLZFbz_iQc!BJp{j}jMFUW=0bKE;y8keCXJM#GN>K#^ss<!y z{C`jdS9}d9-dP;MfU2RGSruV&EnG3k#_K@CFf?3Q5t9v8e6IpoF~~0rST(%7JR7bM zj3Lfrz^MTU{=dAw@ay?<k&KJE44TNHhD`$iqo5D3jV3IM00000NkvXXu0mjf7ovT1 diff --git a/interface/web/themes/default-304/icons/x12/pictures.png b/interface/web/themes/default-304/icons/x12/pictures.png deleted file mode 100644 index 0478e958efb88b658ad2870fb08627f2c40af2c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4<(@8%AsXkCfBgS%?;I6%t3F0T z>-?076Av;RN;q2IxM+ughn<~WpRmW`tOIFQJ~m29P8NE4ecVepT@Ux1{ryk4NUn{y zWlno2v)%KB6;hE&Z#S3!|D4YHKmN;xxfZ;_Wq1GCt6qEff66795Z)Ib877~IE&5$w z`2X1dqm#EU%<}N}PxtWfc+l0;BcgVSf9A}Y3epk{56^V!Px+^u&2TiKs!B@O@FWX^ YW^MJIb6Mvv0iDd?>FVdQ&MBb@0E??zU;qFB diff --git a/interface/web/themes/default-304/icons/x12/plus.png b/interface/web/themes/default-304/icons/x12/plus.png deleted file mode 100644 index e3afb66734bfa629cd884718dadf02142d25d757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4PEQxd5RLQ69^T%`4u}6=H0ZKn zHsf9U{M3ON8N6TJxefxUtL()GC8o2LnE%(mKb!T~jVA}ByuK~}r+<(2sCDrF>2uo> z1f<pYf|#!dY%%{?|Bz4P-n>8iUsMQ5G~X~NoFKJ>tz^z_Rk@x*OU}cWBWEWanDHXO r>$U*r!6R87_e8jk9l710p2@(V6vo+MdfDwN&`}JYu6{1-oD!M<^Q=nA diff --git a/interface/web/themes/default-304/icons/x12/printer.png b/interface/web/themes/default-304/icons/x12/printer.png deleted file mode 100644 index b3fc25f8814ba17dc91c3982184aca739001a777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)44W2HJAsXkWPBi3WQWS7qzU6~T zwT{pZrWnT?7jky=rf(2RcHgpbvtfwZBfdhl*Qc`PJYkji$32-rkwv17QB!x%_fwYa zwfDmlw4PKae%NCh^ZM1Bw6jfyZA+wV;*7X=U+!IMxM$NfCJsf1?7Je%dRT+J815(( zC)&w9b<hkI$VuA4dM|Jtmt}gMj-#YlQV;hVZTUm`=VHI#_xQoZt+~|bpX<V^Jqr%) hHfKEe%v|F;OYPG+k1{^Z5d*rN!PC{xWt~$(699X&SZ)9S diff --git a/interface/web/themes/default-304/icons/x12/question_blue.png b/interface/web/themes/default-304/icons/x12/question_blue.png deleted file mode 100644 index 97c006bd48c0d277825131e3046cd812fcc95299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmV<D0T}*?P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG00055Nkl<ZD9>Gz zO-lk%6o%)o)E{Wmq6qq;AX-(lX(0*ygrJ~BL|>?5(ihQ4keNnB*@uEiw2B}KvP@^j zL7i-@u?U(ntEt7?oEx?1!nqvI`@Hua&b^%5?dB*P4o3xVt$^RB?QL(ADJZ8JX}=uX zoK9z>R}j>+m_+WOgp<M-i`>I2s74ww%wV}Iy~5(1uImUZpBRqaWBj0qkysJ^VI8}& ziK3+uLoCPht|>ZYEA@`P^&4a#O%#kz78kc~um$qi7T?)T#B$VU?!E;3S{@xs8H_~l zU=OMo*wa93C{jR={~E*)%k76Y%;UU?_Qf>X7GyNcNU#TTkn}fbPbPW;S+vZ{Acj~j z9NILG)DN`INobx)p=nw~{H6@iGT3|>)O%7)BZgSkQl|Kf?j;2^&IDR4(?nE5mms6g zeT7;+!8Br6OT5c9rASEx&tFhA7DwA`5{I&Z!H|lo(Q{N!#+gP8u|H$={)~0y)IjHg z2>Y^(R?j8cEwlg30BOXqvHm@rS5Orxh4ig~m{h_+x&+0_sYcr0!~Opn!Bw9Y+1V^p dQ2zgGd;_x_nZD4hx`_Y)002ovPDHLkV1jSa;)(zO diff --git a/interface/web/themes/default-304/icons/x12/refresh.png b/interface/web/themes/default-304/icons/x12/refresh.png deleted file mode 100644 index 5c76d9b7c39c0656a486023fad440185e4e61fcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmV+k0rvihP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002cNkl<ZD9>Z~ z|NlP&DVTv|4U#$bU@V$$Cj-R)k+H@ED+Y-?TRD+5dvS?u2e3LYA(3S-2T~BZ-5;Vj z&CUrZ&Lf&(Cj!$fl5Q^|nG4q7zyMPW(;%4*wow>eTr9&*ltBU_i6Q|LLl##kbprDl zBy#LMF*E?hfSQCbY|gP40-K~+?*f<5Y;Zxb1yzFs1A|y5rUXb#JPW&1!F~|Sw1c}@ zzSf38Jj32fB+afCIplx_u);NfFi?TGWU-B$Qj-k>dVGjw*vr7wksQ+i9fJz&i68?k P00000NkvXXu0mjfVo_kt diff --git a/interface/web/themes/default-304/icons/x12/rss.png b/interface/web/themes/default-304/icons/x12/rss.png deleted file mode 100644 index e918050ae78acf46e11a874d1bff361a2eb3daa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002xNkl<ZD9>%u zzY76j7zgl+h{&iI{RJ$PKSBNh*={xX7j7apSx+gGm<~lpZfB7)m{}QQQJn8n->bK` z8$Nfv&+~rop8H|=wlRb^+`$18@?eCK!vuWI8QPEt3lyLM9XP>P2`(Y02h!SA>Tpy- zd&sH*4;ElSm5mIHl#mmQXK1rOpa)R~ZKc-=0`iu&+#EFL5a*o^tX<@J)Y)a6wG!&H zUV|TNrW8_8WHSjHHeXO-{mR-*7A|~vjzJlo++Z=#<@%;Sbcq{wT(2Mk&0vo-r~EZs k<(mvx^Ek46+_Ai%KOI#tYQ9k{2><{907*qoM6N<$g7IH+>i_@% diff --git a/interface/web/themes/default-304/icons/x12/rss_round.png b/interface/web/themes/default-304/icons/x12/rss_round.png deleted file mode 100644 index c436887723821660e32a64043f7158ea637a8662..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmV;d0aN~oP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004VNkl<ZD9>e* z%`O9B6ozNP1z2FghJ}TVTW|?h?8JqzBGGng-yccSMwE`Sq7exq5@8{9v>KI=RywVw zp{SP4<D3rhH_1ES$vN+Pe!lM*e!t&Pcs!l~Q@%(vUW{9*hC*%iY3z&F{&~IL(O@uq zV`uU-AI_kjfG3OQV;VbijmDJI7KnN<5Db+{jssN_PDkLd1NIF#?uYw%N=_N&DA(}$ z%mvND-838xK_e%)fXgY^5z)55@w6)`*N8-yi>+E3cDrFuGA0Zc?~hOn!e*!VduY{c zlxxJ-Qg2kG=XD{SOi2GSLviU-RF@VfAt`pnLb<M>ocPYHc)1l(+_mdceNC!3tF9mt zla{LDOm@M+7`zr-;&a|Tn<dy9rgeXgat)s;LuX~^+$>l>X4oHh&y8WYGO@FHl>6ga z%aEOe<z846Vpy=!2lfmSBoO+%)?W`Nm6{c4uVA&Iw)%cO+`rX`$!a8JH3Vw^U5yVM W$eUx*O%)#i0000<MNUMnLSTY~mcP{i diff --git a/interface/web/themes/default-304/icons/x12/security_green.png b/interface/web/themes/default-304/icons/x12/security_green.png deleted file mode 100644 index f6818153ca30909a14db6ff3d542d3cd8770efa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4g`O^sAsXkCJ@UGe8y@bs<stA_ zUefvK0|_4$)1yW%;jKp-Mdno2^RPA_aVSzSHQ+6{?7;P??B_wz!#7T3Nlfr%)pWSt zaK`;2!{j5aotHj*{Vsk;Dxs_H&)>egZ67u%2$%TA*VP_dC9!0h;zq@`{t5O8QVv-M z6QyG%#h8UGeiW*=B~6g9&{F`KmHg3uT}N{gTM4hkNv0O%Q%$-PuQD*Wtq*&iE~4cC PbS#6XtDnm{r-UW|y8=-$ diff --git a/interface/web/themes/default-304/icons/x12/security_orange.png b/interface/web/themes/default-304/icons/x12/security_orange.png deleted file mode 100644 index d1ba672d95695796898a8287c3bb86bcba77c1cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4X`U{QAsXkCJ@UGe8y@bs<stA_ zUefvK0|_4$)1yW%;jKp-MgCN6=Vfg^;!vbuYQS4?*?}ug{#%oF+s27k4HRZ`1vRW= zoY}vKQLU5v@zoDszl$5Fc`^GK?o!*)_F<EPaLlX=qRm%~RLqWi5d6gM!|b7Jk+WF) za8f~L({WZ8Ugjd5f5$}&1I_?VQI2dVaEaWYx=D&5i@!|b?r!~;Ko>H2y85}Sb4q9e E0Lhq20{{R3 diff --git a/interface/web/themes/default-304/icons/x12/security_red.png b/interface/web/themes/default-304/icons/x12/security_red.png deleted file mode 100644 index d2f1bae8f40ec481498dc6bb69e823cfe34df362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4iJmTwAsXkCJ@UGe8y@bs<stA_ zUefvK0|_4$)1yW%;jKp-MQUpQNU$~^aVSzSHQ+6{?7+q6=6XQ%@Qo8$5*K`rE@QlD z#+EYqW8xes2L@?rXXagMB}WT*AEr90o!FMJnQ@uKl4*(?72Eh{>)!BTU&-2@Tap^V zW9F+-$QXFIL8kkEp{tCD@q+9F9%3)L93>d;{>z)QPy6i$pyL=kUHx3vIVCg!0H;Yu ARsaA1 diff --git a/interface/web/themes/default-304/icons/x12/star.png b/interface/web/themes/default-304/icons/x12/star.png deleted file mode 100644 index 77cbacdd07eddb0bd9c9f13bd6a893127e69e1dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0005iNkl<ZC=~_4 zKTp#^9Khkv_wL$XDJ?A&D5-4)!A1}g2VxvdjGLRg#=*_axahzOaB1S=;0rJqjgC4w z5UWf&xnSCeO@P|8fQ3T;-S5ulk#e~Vfb)V94}g|%!#cey!X^l*c#lM+OY=010stWq zj1a&&m0g<s`{=^t@kZ!WQYlX^-NShSKmm9UiC~0?N8ui<mn47l>R?%kyKh5qUH||v zKza~HCi>Q-C&z7mHWNIYD_jOd)*8Jhzv{!-(5mm&`E$S;@XxR1s&@)mn~jYZ#`48E zNEQLZt?T=xwfWkM-f5e91KMY)4=Qx(wRPrXCEpz@l{E2*8Hg-Eut+R9ORf-SI;A-1 zOl^lwKUG@!Z#&K6-OaC8Du+!4;Q+!egdK2wj@s~kyHMHhOx;uBe;WX!!#|CG!L!<4 zuacRmYy1#Ifo;)hcQ`r=UK-`<00zJVM*HY=um}AHgJGLdXh;Mt<|o=j_1fyl>30Gc z01&jYtK(F4wN`MIs`=RMM-SH*-0kJe!NpWiywN((AmT9q0sxC&YAaj2$CqBkqTyR> zg{_^1rJwQiW9Rjf5>h}%0f5JO-D-B{J~=O+1&;`bP&*kU-wbT*2lxoUf5>sd`&sH+ QO#lD@07*qoM6N<$f_BRCqW}N^ diff --git a/interface/web/themes/default-304/icons/x12/star_blue.png b/interface/web/themes/default-304/icons/x12/star_blue.png deleted file mode 100644 index 5bb59dfba15d8d6bd0f3d19591dc3c7e66014765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004yNkl<ZD9>Gz zOD_Xa7>4Js@CW<=Bt@DCLHY-*Bw}M>Woy^VG;Ij&Oe|;-9n_`lut6kkBcx-RnN%-& zl@cwjwnSd%JLsY(c_&}q_xaA8eCG(FC<-L2)!OA?Ys0seJ=_b_NmP?Z*+0iWHk-{P zOHxYLRHVx_g!5lqRFg*;F}#6wcgvEuP%IV^GFq4k7BHneVsh(|*W^(~46%a4VRzCl zhw&!N-URxW3>>Ky?A}$-w`gE+C4mE$5kss%=X`j2$F!2gd?<(2>oPt*ztLb?4?jaZ zFJU&A2QkD7N5MerGTp+6SBG-*g3fiKzG7T5Kn$@$D5$h9QcVoFHH>+5L^HKEe4DFt z&*aiT46*!3iBc67*+8!t!&UMPnU^NiLLJF+1Eb3tCfMJJ;YV`V?M@@E!WXT=<cwi% zCkcy3!;mY6+3f_(Zk9!=AcolAvC6+=^+zfgW<bwEl*`PT$m3&`|Hj(BI9W;=@q6g` z3QqMJ&X}kskFxf~bv}(v|62BVU#XL*?tB_QO!=YFC#OL600000NkvXXu0mjffu+r` diff --git a/interface/web/themes/default-304/icons/x12/stop.png b/interface/web/themes/default-304/icons/x12/stop.png deleted file mode 100644 index 86a01e00781284c371bc42464e4225e9ea4537c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4Yo0ESAsXkC6Am!RJ$Yi$V8Cqn zAg(Oz|KB%n{wwe#Jr1q0R(5{qmv*c^g-7V{%7<=Ium0U;{rUfX&OM%E3T7TWs~@e_ z^yIr9H0l5S+?*f$%pft9_Jt3Nf(}(G{Nq1l!0@>FNr1?F{|?_B69j(Cx7o+<=R0;H zNx?MX=<?*nEa#56-M5z(|0~~iU&e|9ETOQKM}4ufl;2U8Kkmn_N6$VW5i7G~+QW#H z8^0e<O#DC5kY_=6^A#f*PX2%Weed;VuphheM1rr4ZJoV@)Q9;NGCSlLil1{&VH7{L Q8t6j?Pgg&ebxsLQ02799PXGV_ diff --git a/interface/web/themes/default-304/icons/x12/stop_round.png b/interface/web/themes/default-304/icons/x12/stop_round.png deleted file mode 100644 index 5c9963e99b1446867afde21dad729ac2bae49f22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0004mNkl<ZC{taM z-!DR89LCST!e8RjY?x4qF0h#~6E|esmvX1*xM6dHo63zYZLP@>wbfQOCuKRUHWA0< z#~$zVV#C?KXWu=~=XrlCe!pK~c|4vrpZK<ScW?H>VUxw48oeJ*{=8mqM@UtR*?b<4 zr4m}2CW}2adSqlkq}w-D_0}*9JjY@vyWKDX0T`hW%8Lt9qeq6Uvg-4#aTGIlgq+=m zt0gzyn@xO}CiInM<ZM>yks+&aoz2oUF6Ugxh(LCH46SMvZ;b}>u32P6fF2pL%6=r$ zGS4)mog=syb|5ui!BZiRmr4aG>j2J&honb_tPDJf4Qj&B95$R<`=M_HQQT6I9PE=C zJu))DY3{F!NKa29Vd+Iu09V0v=nOa=LhF$p8M!2GBv&Y)ei*@VcNgMT3ts9qygoc2 zF=7{5r}W6kP4lQi-^W^uhH)}6isZ}`wE0;iC&r{kkBmIl-xtSG8oG|VMEt8nPwmge n{eK!eVx0%ksL5jg|7m;zNcfLfJLGrQ00000NkvXXu0mjfVXnp3 diff --git a/interface/web/themes/default-304/icons/x12/upload.png b/interface/web/themes/default-304/icons/x12/upload.png deleted file mode 100644 index b1810b31b5ac4ea872a798ce7e1c89740fc6cbdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmV+q0r38bP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0002iNkl<ZC{tr7 zD=T9tFR5V2?g?ecnCiul+UF&b-0%7ygp+z)MKY&)gXPMKD;P>kOBono8qzxb8REJf zgh2|o{mlbo5Id^VN*E-EqM@X)lp(g!T@a*T`jyE4Gp|RXXo{(K7A!6(g=qNy|38QU zmVjZH24pdi8jxDBVh}!g@+3$AEIH?11Y83MfaGB6z#5)EfByf@<C|~|$TolgNDib1 zMFX-8=o&zB7#eyy``{XoF$i>b_Ttun4S?h@G!TQq8Y(L*ePAI#2m|BH2OJNiU;v8@ Ven|#zn2Z1b002ovPDHLkV1n3yXnFtu diff --git a/interface/web/themes/default-304/icons/x12/world.png b/interface/web/themes/default-304/icons/x12/world.png deleted file mode 100644 index b7f9a8e8e77c606d08e9dce80f2fb6ac2e24539b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7S|P)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG00060Nkl<ZD9>$D zPiWI{6#jvphIrNU4&GL=FolUAf^=Sm9sF|;5y68BUSyNO^dPNEqd1k>#<t0lm^N#h z(zPx^H`lFAmo96yt<I@1c9~NTT7Rj>&!jT+;Nd+Uyzl+{-bWaQA+GuTe$V|Nlh@=p z)s(EQ%4u7Xc*+LH^KNbj*L8tFV2I};v}C@<r1c8d3;|;+Gcez`Q8C{l%5l`ibPJs7 zJ_l?kSC?>lE{KEE!`LsM!}-}L?iHK3xDbQ7QbIHwv0W@-8AdnE29CVA2@*Phq1g#! z>OUY`TR4^-0pa@K$z6xOWa1&q>O_+hbkdp!i4DS+zl&&f1KAn{Q?}4MeE~i4AV}mW z?ifj=!~`X|q}Ca(syLju4aNG5OzkJqtKV^@pg2vu*exDM&y){i)g0ntx<gV4wUb)g z#G&{tc+*!gQhbS-x{b$`7W%at*d+|0SG|P72a1>=cZeeL)Ld`lvaW&fUhI{97+owN zU;l-PN&|c3Q#g?cp!}{4k&ja6=yBbpQ)zBt-}AH18Xjkg-klO!UdMnoibqxpbEP^S z1R1?cD;Eyg)z&7?EIh$UjfJ@U4Wju45n~%#vyJkb4RE2Se`wu#+_P|q8r23C*S@0o z$;SLgilQ4=YH%9<ecZp&U>#{BB!NnjYztG89siFsegpfIeo*3O_n80y002ovPDHLk FV1k&Y3K0MR diff --git a/interface/web/themes/default-304/icons/x12/world2.png b/interface/web/themes/default-304/icons/x12/world2.png deleted file mode 100644 index 2855f3bcce50f9203b636d35eefe2b1e64dc881b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)<h;3K|Lk000e1NJLTq000aC000aK1^@s6R&`wG0006iNkl<ZD9;7K zPfSvA00;2z@An=&0zuve45A<$W@V^Ynu`@3Y|9C?=GLM=TWjmkrAw!}w=Ug0x79qj zxp`=-Q(ao)k~K9ex2IE5@*yJd9>n849>3S;L(=IqhzV#xOSC&^E;tmL*>!iuJj{*g zPT!I&NsG+T=bNfrBOC=6i<|&Ef+T-Id^?;Oe|$D^J|@{^ArTo7GN*H~ZrCv`v+awl z(pa%{tHd(`adVu_+LC6<&sA~La~oIu*Wl%R*le!jlky&`=ZcpCJeeJk?ALkY7`?xD zQcsC(4Wr>v#Klvfgu+IF?fM3EX28q$qR@Ys3aH#8o{b2%2E<-G?R$vK(JXWVfB^rP zj$&&MaaR~2yN0HvLiQV3-V{mVZg2`$eNzAj5C#Yokdy*muD=1(42T{-65argNBjwH zdh)?D)7KGxwpXAr6LEJ0764`erqw{nY~et!qmM)}p`>(fVla~lM&pqe#n*VZ`w>3D ziFi*O9-9YKp)>+Q4?dJXBgrM<lK5|QXJc)lRaP+Qio!4rJYRbSN!<dm07bLFx)e^k z1A$Ht3cr6XP^H$GJN#bC4|V$iJH>=J45#TrRc&LxT7|9QM3%n{{)dq-m8)}HC^Xrw z%gS<%?40q0+|fI(dmySC#mYWP2UXPnw$S;iep$^Io^;IKZJtsFqr)xNH!3%xMPIHE xTc6n#{)`a<w6*4vyd^Dm4Qt*ogc`>){0Ec3?cV{kM)d#y002ovPDHLkV1h5B5fK0Y diff --git a/interface/web/themes/default-304/icons/x16-list/accept.png b/interface/web/themes/default-304/icons/x16-list/accept.png deleted file mode 100644 index b0f56047f99201d98034229b9346111d361457dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`6FprVLo7}w|M>sko>_H9V-j-# zW6i8LZ{PlB-pI&o*Wh1#`f}6%0B4pDQVr+YGusjc<d2%A2q&^FxZSfxGLO@Tag*YW zIlb#7<+xA$Ym#*8Ih!Cg|D{6N;kPkw&b3K4oEA&>SHDx|X3j8MvBhMuM1%IM3x`?P zGv44ixLooucf=&ExU)Beq}_~;%?{~2X>ufi!Jqwu@!d<@qCm$nc)I$ztaD0e0suAC BOo;#h diff --git a/interface/web/themes/default-304/icons/x16-list/accept_blue.png b/interface/web/themes/default-304/icons/x16-list/accept_blue.png deleted file mode 100644 index 128614830de4dcf06bad4a47733dffded999c57a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004*Nkl<ZILoDz zK}!N*5QhCJ{fZ79I&|<L6bJ<cQ4$J49fN*AbO^Q(DufNuG!!}nog}2BOAtj8Dz>e< ziba{JY(;7$)4o%?xVD}gc-U`e-gkDtZ)a_`o)84VrIFB}9*}d{`h`{;(nyM;Na=K% zR8=KCutp9wXrQ$+H)63E8;bQW3SBp7EnZ=;Mh*cDw5BHLs+)sXb(#*BEJ3ZSNz&Le zUJVhrtkGmpv1C3{;wv<WzwNltAc6fAYHf1*^Onqp6;ibN+5H>eLkkbQXuyZGcTuGY zQD)rHqOqO{YKGSqKlP*CA$LS!Ej;jY1H|fanH)Ze;&&<wmk*0H<(Db1n_C@P(sIy1 zi!e1<IVzD;lqgqi8iri;*Zki4rp0K1?AuueT2lkO&hGgWjd?RP?#q(=(lllOX3s&M zYdX+&Z-EaHrqRt5<JifNTxqg-AtW1l9ca4`(fEws(?=TFxMl3#6wL)B<6Z|E(`W1* zq^<Y^4X@u=g4(}9vKnRS`ICf`GI{nT25aQ{j`F}i(;&a|4+?drgC-PTv;Y7A07*qo IM6N<$f<gt$o&W#< diff --git a/interface/web/themes/default-304/icons/x16-list/accept_green.png b/interface/web/themes/default-304/icons/x16-list/accept_green.png deleted file mode 100644 index 043e5c694399b3f548f1fb9623f5a74fddcf5c3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002*Nkl<ZILob* zp$@_@5Qg_CJP{s4DiAmlBtfJ01jF(UOGsd10)d#BK#?HOqy!YA^lK>T)&s=2<dUxU zfB$;dElFCDrm3=7*fgzVPbHti7JD|UEXzz?*G6k?e6VJZ8XB|`e980N0jKNHtPV@F z*w0+DW{*IFwqb&+hY=6geKDy8Ce^!Vj`j;4ZwC#NS33%Wg8n$-H<)^P-neJhFt8Z7 zA%$<BmZJzJ?vI<Rp@o5U1_Z+b;4KK}yGaDIhXySX8MFZj77fA{LK6x0gA7}UhUiTs uSQ?^ujhIMqbd8-qq`!R1oqwh-zw;BeXpIo~z}rs%0000<MNUMnLSTabzIjss diff --git a/interface/web/themes/default-304/icons/x16-list/arrow_2_left_round.png b/interface/web/themes/default-304/icons/x16-list/arrow_2_left_round.png deleted file mode 100644 index 517ee8e6375863dc9339ae0ba23221b6b84f70c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004cNkl<ZILoC| zO;5r=6zos&r|}E$pz$xL*o!go&<hu%A<=X7gq#ePq|vMx2!5mnkSbykga+ENv!R=o zP%pgXCGGB;*`0ZBHEk($UC%{XjuK1BwVaj}(dI^!wqY0$LcsGp#KCW_agQ~uT?HPP zrl~+d7-BXLF!ks7ozCPxgEg#8k&rb74nj;K;Bf5Y^Lv8M#|X~*54@3|B(ardUhO~d z>suG1<w897(f1~@ZXqW}f-?1GfltoPk<V|UR`0-WxUicp=20Cn#F9XoM2$)Cjdh3p z!T}t|L9tjwRkTri?8)qXjU|RyNx-0C1h-z=*xf6jQmH6eB(UmTMZlXeQUr9HCtLSV zI65{^DwR|#Nk9pi1T18$q+#75n$7@M*A@!;p_D+wtcOmf1Zg5YV5<nG+cb>Drx%yl z+TOwKf?$=2s*UV(5*%l_+E6A^W~z<LgTy}blq5lXatuxl(yCGB6{(Y+F!{~3%u!zZ dF|G5Q{{R>5<;V1&u15d>002ovPDHLkV1oQg$uR%` diff --git a/interface/web/themes/default-304/icons/x16-list/arrow_2_right_round.png b/interface/web/themes/default-304/icons/x16-list/arrow_2_right_round.png deleted file mode 100644 index 14de6fe9b21c78ddfce7930051708f85f126ce09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmV;d0aN~oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004VNkl<ZILoC| zu}Z^G6z!+@X_+#qUm#K(EJ(*Xm_ZRbh&UM`h(pC8C<w1ZK+-{L1Z%6crfqCX(;jmk zzK|EvsTVFJ_uX@H&$%z9QZB01s*z+PN#v3>qqHiL!;K_`Wm)h%4`CQW1)o{t8GG1U z1Rgk!lY$n@CFb!0(^-t)>0G`u*u!3pgsd8PvBV?+4x<^qekOST93%J`Aso-LBqG(! z(emK-TPFp#J43XB0leov`r$<O{mU^((4fBjmrc{e@o63YOE(1zzX#FkAx`>;A(jNv zBx=l#&3X_7sMQWpKfjdV$EU8$?sp_H?2!Zv8kW_p>I@+Sc6Q6KZ|)@l&lws4-Og%O z^(cy9+cwI36<psniwQUmSCuu4b=P&VUpc_V)onU{kpyWXJ>aU8VVhgqI666l+kDl) zMJA?e<ert=jR#)?s-#S9jrohjJ@YGhAZrS&U8JI`%n_-Ro-p~$+RCfE_RqA=@B9b* W%;U*4R-7UL0000<MNUMnLSTaG*uX6S diff --git a/interface/web/themes/default-304/icons/x16-list/arrow_left_blue_round.png b/interface/web/themes/default-304/icons/x16-list/arrow_left_blue_round.png deleted file mode 100644 index 44f7ea8fde9ffd93b96968d97528804fe30ba44e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmV;j0ZsmiP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004bNkl<ZILoDz z-z!6L7{>Rf_$yqvaN%MXE|hZNMt0*?t(1~GQR>hlsUz8t5-CY1EiDR(EN#-7onvi& zjcv`uCVHIboAYhw$FBC)r{43v&-?WKb$mWYD2fs=iJ8CwYXM)gFq>^AaaC23OeRsO zRA2>j*4U$lTCd@<rfFi}zVwaN%Q7aSF9PPQF{q)|W<pnMIDAn;|60})_8Ls$a?e~E zW97VvzOdn9a3d>VP7ULKI{_NRxIevENAGgR#oTcLAN601??1{KwVdHB4a6ZWoxY++ zO-si1^3dOE@*w$b^{C|xXN3V{bT^0Y#S{YTI?jwLoMH6|bB4`eWG4&%{4E9|cR0zs zy9}&8VQw?vau$xB&=tCo1h)*N3t!S8xNXQDwT)X4he&bfOv1&KmP57ngW*kG)~Ibf zM0t&&!v}OsU%T*!5(4Jb*sjs}kY=NKv`=1n!k+6Pc|GOS^Cy&p9EKt(0dv-xKIN8w crdEFEKeFbe$qEBxDF6Tf07*qoM6N<$f>@c#5dZ)H diff --git a/interface/web/themes/default-304/icons/x16-list/arrow_right_blue_round.png b/interface/web/themes/default-304/icons/x16-list/arrow_right_blue_round.png deleted file mode 100644 index e321918ac1bbe3789316f18023ebc61e2798eb1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmV;l0ZaagP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004dNkl<ZILoDz z%}WAd5XSve`YSqg=+MDKhal+CCE82ZKnQ~976ri;Qbe#3X+;o45D`mANI^v;Noa(a zyNUK?scc4R6w^LK`?CACo_yd3vop^O@7D$bl2lbyY~nT~ft(U(CcD^Xlhibg(&;o= zmPL*bBZnG1@cK1ZbzSF%yUG`>CaN?Mdu9+L2f+icX9%V`&5?@=^{?f9LCrNJDfWz| zK`ZBF>Wi2(xRGZN%fJKuZAZa?IQD0h8`Qg;W5)L%=)LhnbH^o-a|17W(2D_lNK2<L z)T3pYvAv==K;yN}-%bs{iyrjy0BCf#K;4TO2C=L&vqs9g;i-EDjO^qoIDf++mUWVQ zqk-tHr!EFyISWUR)D^yFLffWj%$7bWv}KAKfY-eRK13KhXHv}Yra`s(H%;jUk#hsD z`w+!7h7a$lWBQ7M;S_^d1|H8f$`5HaR;2dHOJ7j?_mKRaa^~rS)Pn*IMKcUy<eEO^ emVc&Je&=87#-zy>EI=>-0000<MNUMnLSTY@U&34f diff --git a/interface/web/themes/default-304/icons/x16-list/article.png b/interface/web/themes/default-304/icons/x16-list/article.png deleted file mode 100644 index 6beaafc4fdbb5cbb382e0e2f2434df133856bd83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmV-v0ha!WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003nNkl<ZILnoh zy-ve06h=?dh7>U%RjeHtVS;C1;{_NPSu^%AI+pS$@kkUgAjHCe#LiHag!*0v+liAV z1uQwTW8dTB&ylJEFr7~Aprhq^emowJAN}0dMIj)|GFGCff(D!Ju4iiyzZQq5D3Gs& zuWw;l7#6v($OV9dlXKEEolho{qp&7!su}?!YP;GFFx*L6A^otpSP4cHQALEZ7~tde zfn_1=jt=>Jf1U%;8bA~W01>SL-d>(s!>s|d1t1EiXBQavZ!{cme>-ajh-wKaLGC(! zO@B9VMJ1%lL)2~R0*Fi9>RaW|!swq2>dGGA%^Ct7uMjAU)UUJEkGlceNnB;%A&pQs zKO@yiA;@N9ZD2!)NiSl5Z$KEfx{tb9((AZ_5xBX!<iG6)XMH)1!27qi00000NkvXX Hu0mjfCdZd9 diff --git a/interface/web/themes/default-304/icons/x16-list/article_text.png b/interface/web/themes/default-304/icons/x16-list/article_text.png deleted file mode 100644 index 6e0b9de5bdb92439061543b9985a5b591997b7c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003-Nkl<ZILnoj z*-FDe7=`nezEtk=04^6c;*A%2r6MAN8}3#uUF{ZYmn@S#>2YR4N>XQ9419rM=6wGl zWE21jL(??q`W`B}&e^SGY;J9X?WwA|p%k7xrxXS09Ej;FO6CYDL7Z~f-m*j}U|~N> z7YwI_!}d<9(~?9eU{mRV1x3Mq$0<pK0#;WhI6OYb{?QqB4o>-6DDWb=U>Tvn4O19a zh=CcRHx1C4_-KuNG)5k3-yS}OE<Ym`I6;E`EI^lr+cenx@lj`CBMZOv3CJpe?I*&z zMM#jy1*RAOsazenc%_q{y95tk4sR(H%-ncwgS@3sFd;EM4HxhE)E>bjoyz`!+m?;% zrUh%2VC+O|8(7{7!N`vALZ?1;v#ED&8#hfGR}Bl7bqg0YlYb|vfL)^eB872AP$Ih{ dQo(=7bH6sb7=fpEXLJAn002ovPDHLkV1gKwo`L`X diff --git a/interface/web/themes/default-304/icons/x16-list/bar_graph.png b/interface/web/themes/default-304/icons/x16-list/bar_graph.png deleted file mode 100644 index 31920e0582058d7665c094910e2ed47445cde96f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmV+f0sH=mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002XNkl<ZILoDz zy9&ZU5Jhjq&(zK?K0t+t3KnTp&_+KqX>uopI}2lxm;@C~blYVQ=ghD$Gng61^T^QQ zJl^&2=lL7Z|8)7Bbv++~&IX%!if}vlJwY@BUG`f70MHSl*}J5my+H{$E@y~G!_NlK zgQI2;M*x5dp_K14m_<7b!gXQbSQ#h@FZ>QjMUjfu1`mJ`$~J)9BPjvm>MeK@+S(xZ zl>wC<4H^m3Od#Rg0Fvem9O3+}G?15sz^vHXWU=b>oiC?-004K6_N1cN96H<p0000< KMNUMnLSTXum}<ZP diff --git a/interface/web/themes/default-304/icons/x16-list/burst.png b/interface/web/themes/default-304/icons/x16-list/burst.png deleted file mode 100644 index dd9ddd6ce2d7eac8ed0bdfa325f42861812fb12e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005qNkl<ZILl*T zzyelW`(prOue$!Xfq_)8@WRjYbI<({0JAUt`VSLdaN+0tC6|6HVAVAB#FqpZd&a46 z`=_7$+7HA5K=%KsC%!5G*$qJUd7QTPANf?!clgu!o`WA9fb4!C`#*>eqI(a0oDZTw zYCvkc4}LTNiX~te(zf^g{?@(k{<rRV_a026;g&t`8i4qG+unEQJNAD7dy%1P>#G1D zZm8Vy(xH0mtAv{Eum2Ok@9THGfd?`}`Q{e_Wt*Nilx%$d9*F-F!o?e&tuI>ttO0}z z*FAH98<fBHsY1@`C-;H)KN0wS?wTk4Ks^QwiHq+WBrSQ+pR)A9dm#Q#1ilZ{gNVxb zMfV)y7T#+B;n)TD*2gTk`=1E>K5G8mhRAt$1mFe*&%9|6GV9j+&{?<s<HKRIZzqJ$ zx$O`(=XOKb>{|g~%|27E3HVLDe%^1|jr0D~ZZ!B!yZ#>weh;RnUf+)q|DF@CCU{M{ z296r{30Dg|CSLsy#Pgx_c@Pa0?+2=J0P)=?Tq(erA{~1!op<WJ+~C}IS;4XQ(toGk zO94QBKadT#87P;4RkL-+1qIvA3-e)oo6Za1jAYk!Q2@w3PjarbXgvqd%9d^C4X~*J Y05!zCt4nf9bN~PV07*qoM6N<$f_bk95C8xG diff --git a/interface/web/themes/default-304/icons/x16-list/calendar.png b/interface/web/themes/default-304/icons/x16-list/calendar.png deleted file mode 100644 index f278eb34cd5afc1be22a52a81f4a0c0bcf949443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmV-V0kHmwP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003NNkl<ZILl-B z|NlP&45X!{{Rd%U*<b)N047Kdh8r;P$XmEz<IWdwcG3DraCXX)yKr{ctQ(jH^c;Bo zzisbJumLsOp8YT1^aN}`?&^pCGgsUP8xX(n&i|-+w=fN8TXXt<)2dVd>z1GRU$x}; z|MEr0{uj?b`agfp;s4n)5B<-We(-<F)cyYxC++(mJ7MqtsNOxO2ILf#lZ;Uec=_%d z$r#0eXRp72v9Yl+3Pu-)@j)2HfX6RCgE2@EjE&AmmqRh&{<Du*F-Q|OHVC5_aOcSf zI7apYx;Qc)#eka+-($rfP1x8VjAFpG`)|P*qzJ}F=cCJ^7;yQ{8!$$X1#IFlF%$zX h+<HwiMlpa~3;?Cyy=0`4Q;7fo002ovPDHLkV1nJGnZW=6 diff --git a/interface/web/themes/default-304/icons/x16-list/calendar2.png b/interface/web/themes/default-304/icons/x16-list/calendar2.png deleted file mode 100644 index b121c78e58e5d41fefea64d19a896a8e6d347333..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmV+e0sQ`nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002WNkl<ZILl-B z|NlP&45X!{{Rd%U*<b)N044~-xz%lOc4kE@oSj<M0%tcgw?hnq88Gq4TexK7&KGcY z(fUVlcFK~waCX?N8<+<49C-b|ZSPC40X5s6{V(721Z+U=>WBX`SKJ315Wn!w|EPJl zFbyCV!wq=(?i&~*vkCF3YXHSwxc}@U7$dV`{QnXXU^a+GS4)%uFwN-lC<fel@&SyI z*)TpxGl&gy0kRzR!r=0qH(-p+Cd8+%0T*t)24iG4AwE^Y006$et`l+7iXH#}002ov JPDHLkV1mxZY!?6k diff --git a/interface/web/themes/default-304/icons/x16-list/cancel.png b/interface/web/themes/default-304/icons/x16-list/cancel.png deleted file mode 100644 index 0d40cc63a584399a374541ad8b41211104952f48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`t36#DLo7}wConW^*<!+|@Q<H` z=SaeYC^m_P%(}pU5Art!N*dNkE)z>*h+t^jDA}}5GE&!%Gw0l~Wo-+XoQha-6`xq` zh@Z$?Ib&|C=;C(%Htq?$J15TSX)0vZ^J6}D{P==|Icy7#n|eIlcp_kp#A@*irti7G zH77?XEb3m!qO|GRUdMd}J#xJ}o^WU>q;Lez+9<h6`G&lyeS!tAX6}OJ!ZXsQIH;If bAHKoB8Xi}^T(?mf=xhd0S3j3^P6<r_n1E4} diff --git a/interface/web/themes/default-304/icons/x16-list/cancel_round.png b/interface/web/themes/default-304/icons/x16-list/cancel_round.png deleted file mode 100644 index a987e300750e80088855fbc4099da67189cf2a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmV;;0W$uHP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004$Nkl<ZILoC| zO-lk%6!oX{lY)@GkS1-i?-oIe7A*{HBe<6`B#O)*;4Y2IiefArW$Z&|w7_bil3Kgl zoLe)@OykN6hj-q+=UnE!xzFQqL?jXsbYygp1IP)UexVnKbmU{P7|F6s?RJ}t07nir zXrOg7H`D1f8@}sx`beedB^qUbBZq(nT3ZuzHOz0vNmAy5u0YMwByXM>pN428kEjv~ zQMX(sWp#y0vmyh$mCNx84dU-O0vcp+zOP!13NwD{C<+U(FD)-Iz!A-hbJk!F54>o= zm-KpgKzDwD3X2QW(=;~pY8r#No<j{9XyJjE8z3IG!z4}l829r*vx#9w&Zt9+ur*M^ zTXf@_U`Rocx|(V>07uTKLu+e*&r$aibTv6fw_<?0>aQ8Am7@j?wALf=C3e&*<;K1A zewtwe_SXS{0nP(eDzXN9>m{1M@i`Hv%V{4qvM0QrjgBzDTSb|q^)=Smexq}cp7wSr z>m7ClYX1hwZInN&6?%;CkhHnM07tIxC=dLY26@gu@|>qKSeqP600000NkvXXu0mjf D>M+U| diff --git a/interface/web/themes/default-304/icons/x16-list/clock.png b/interface/web/themes/default-304/icons/x16-list/clock.png deleted file mode 100644 index f770a9c671fd9b5091fa31beb1c1d12dddba5eb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmV;U0bKrxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004MNkl<ZILoDz zJxjw-6o&It{1pxk4h{|ug5cnorT;*1R}_RO1t~&AtXf2h2u?wZlrDm_wiY82>Q{-< zXl-Lb`~o@VJ+;@|YwFSi58V5n_nh3XXqpm+Vdw$b08)UaYuzG9_63wo(<Ixrsnu#x zCoqPF96azw75kQDalvi#lQs%I&14=JjG-amfmdpRuASm!zDX0CRc89Yqn+}zm?IZz zQWAT{(hzIM4H{402-2rM>tPKZ#LsqgG{|Cq*NqPvTfLIlF1Ej@>hPilwP?VHv~pCZ zQL`ekRcL=r)!{`AYPkVoYR{#SWk({Ff8v~~!;6p_Ozu``c<Dlb`OEtk=fZj?CpExw z61f@;#m|{U&SOL6@r`1sOQHYfYtk0@5Mdr%IAi84m(nM7F;{^%e2C&2<A?V&Fkk)` zc%*AoAJSsxj{0Ydks$ZyAw@l9$9pAX-=)~P!(a@p>r?LeXX@p5{sxCknuNZd%K88R N002ovPDHLkV1fc7zhD3W diff --git a/interface/web/themes/default-304/icons/x16-list/code.png b/interface/web/themes/default-304/icons/x16-list/code.png deleted file mode 100644 index 3791cb592817f1475b17061c962fe113b92c3607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ANkl<ZILm#L z%Wl&^6o&IiJOgjg4HQ&vLJg{f1V}{{5)Z&43s5%P3ThQ7ZN;T1bU{;<O5Lz%BNiaF z&_Wc)v12!J?3uC0cJgz^2C0#qj`V9RpE=*0%bWs$f>OC$#%U^*N@ofu)_=dkNq}0> zV2CgtLXv`LkSGt53mDP|lQCRBh9e>zvsB7f`_UbNj0N<`xyO}bh>n*^+4dUV2qYJv z!tIi?t(@Hu?Y>N;Y}JiztbW?U;)hNAOE(J;;Q$uhXewt%LhA*I@`{=Z;Bo+iZnO#F z@Q~7w@O+A<@568e^e#`%sIze#X8~Ri!*V4RP@?k1#@PqIvHORkxNhUlx`l=%!2C2N z+qQEe2qL;!Vu75mywEW5q=|ZiW2S21?q?gf-gnURQh@8aS->xiWA=@XON%<rKi5$E z?!pxzjw~P3Z%y2;b}+SMU}ftNLWp}A!2HfJuD{YTS<$h&=TOc*4h#;B_HPY_i)5Q! zGjU;F1LMK{4B$Xxm|N>$`kjfXWdpT+4}B`;Peb6^LJKqW@7%K{mNyO|rJT#Qk!oP{ z1S(&9xcSk-Wy-nU61e)Zg&Rw46rVN;n7+&~4D;J~WHPj=U9am7CRR-B5@3>wS$y2Y zzRn<{csxK25u;Wz>OG@Ya@qqKLePA0C5n({EdfMPGzxh5==5<O_Y(gCXEz~eO2Kf6 P00000NkvXXu0mjf>BR^b diff --git a/interface/web/themes/default-304/icons/x16-list/comment_blue.png b/interface/web/themes/default-304/icons/x16-list/comment_blue.png deleted file mode 100644 index 8bc780f4118869648de4b88b2eb4a1ce047e068f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmV-O0k{5%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003GNkl<ZILl-B z|NlP&GB9X3?Eu8<f%rWT|3|{_q2dlG8ej$hB?N$Yzir34|J^$t{Xc#G(|=?D;)BFN z@*s5}^>72An$L&NxcdL;`=9^u0gyaM9Y{Uc5U2t3K_-9t{^vh20HhA;lKC(L-h-S+ z3IM4G>4O>Yf8X`@BpCow57GxWV9D_pBpCowk8HsClm$0PG619=qz`6*1F^0E1>lSW zPhn}p0XZEcfCLLy+{PJ|H=cimg+2%;pd=)uR0v8WV1*mczd;E!q(tO^krL68vjWHv zSZag?7!dbkD8^v`I7~pGZo_?4ClhHvf!Bmfu#kR_k%5RXU_R7VP<l6Dzz1*`upgdT a2mk<Fj${$D6hK}80000<MNUMnLSTZv9)PL< diff --git a/interface/web/themes/default-304/icons/x16-list/dollar.png b/interface/web/themes/default-304/icons/x16-list/dollar.png deleted file mode 100644 index a8a2b53051dd55feb3c2794e718c1c2e0db44c4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`{+=$5Ar_~TfBgS%&&+fD?Wg94 z{}p&dfAb$ruuS=?aHiorgNe@;#{VA^n%EX(98fh&U<;686FGjUK1<?5ea3O7K(>H6 jLMtbUub3{~X~@7}*VrvN<3su{pwSGTu6{1-oD!M<Z1gW4 diff --git a/interface/web/themes/default-304/icons/x16-list/double_comment.png b/interface/web/themes/default-304/icons/x16-list/double_comment.png deleted file mode 100644 index 574729c16edc05ca302768fed50595a99ee3ddfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002>Nkl<ZILl-B z|NlP&B^VA28csI=@qaA1ABY7QZ~>4c5T6GrMhBn1|M@@Tz*CSR?}69=mjUx}X~y9q z5H3JA0IV1tfW$$zqsu*g|MP$0irfF8t`=axX1mvfOaC{XfAb$7sM~NKWXOE50jKYO z!mynXfO!#QKmxiqh%o@B4i*jtFh7HUZO1vR;erf6u7(?c6rKGk3vPh@2g10(zU%KX zV*{3$x_3N+1<-v^U@kfS0!1@O9;;@k0qdcX>!B`E0OI|y=tPP>1zd^hJUD7l#rA`u zG<?R@|IkE-J6Yo}^gS$3FpvYFniFs;pfo!J01e<;P1_qX5dZ)H07*qoM6N<$f-=K; AJpcdz diff --git a/interface/web/themes/default-304/icons/x16-list/download.png b/interface/web/themes/default-304/icons/x16-list/download.png deleted file mode 100644 index 2a4ec44c7128ae504de14dd830a4685faf3bc9e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmV+u0qp*XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002mNkl<ZILoDz zI}XAy5JYo1E<sCA5h*Tw32H9F2`KCn(2^=HoEv}^%}QfA#!mPY6HEJfo?SVeh;*e6 zr=8SPtL<8V`{OE?=P~JL!1=aUeFPYWL7*0Z`6>X3aU7A96$e_AL-b>eNzGe;5~9rn z<QuO6DAb|{5Vbzfv&0w|x0it2MF>HrX;O#+5b)lswnjjWb545_05l}BEo(#Z29j;m z0+2?a0|HP;2%DLM=)hY0J_0Rr9NNy~5L~MR+y(#_lb>6$zV9Wy1BxT?T#GmVg>UpX Z-~}oL`MF5=`Gx=h002ovPDHLkV1n<=Yp4JK diff --git a/interface/web/themes/default-304/icons/x16-list/envelope.png b/interface/web/themes/default-304/icons/x16-list/envelope.png deleted file mode 100644 index a98b125f1160b3148d8f0ee75d9c6211c4a776a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmV<O01f|%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002FNkl<ZILpP8 z-wMJY6o-9UAE_tlDv172P|!sY(b`t6DJ`aU9}%aWHD$3AgS^<q4-x&oBOYY{z<k2G z7jVwOC#B%=eEpR#L9Z_$%~UHi2~D}TAvj-Et7Lin!1Ks71))?<A_&PQ(GH%5gdh+K zcBv*MxK@Y92SR}G_M#n(qs($hD&e|1!Ki?T0U@Zv@|HV^g>7&?*x%_cU`1OsF75;+ s7F?Y)EMfz*=tmd4-htOk?EEvm0iQ}R#kSS9ZvX%Q07*qoM6N<$g5~{UnE(I) diff --git a/interface/web/themes/default-304/icons/x16-list/flag_black.png b/interface/web/themes/default-304/icons/x16-list/flag_black.png deleted file mode 100644 index 0b453a5adaf7264c42f68aca488c6ea9598e33eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006DNkl<ZILn2S zJ*bjV7{`y2A}L~v-uzm0P#VNQCD2KDR~<wp718kfTUT*#P6$mW+g(BeaS;Mn$>h?K zE)6ZU-C7I&J?BN?y(ZTKKMv>X_x{gwUIu{W^LZAJ$C;#QiMND_cySu5)oM`xiBR%Q z{4Bd5s1v_^J|Exwi&*n<AP~TIyM^2B=JT)q6U1UMf#z<tS}hWZ1V*C~mdhoaPA7~; zBgW$~*6TH9vl$osAa10BkI7^b3WWj=hXd(!8vTABo6QE(=@c@V4B2cJlgR{!!vUdC zh)do`1-GqM3tq36FTn5jqf{!12lo3tg25n6CKGzS9_I5ocDo(qayg`e=Y>K+JfzWR zpx5gW4u{e0cClKmuvjdhQmH`K6t6NE4ETrM->U&J<|zb05L0+O9z>&2*lacohr`eO z8dj?nX0sW`!dlJ+=3Fj!SF6>;xH_E<27`fben~t%_FswQ>AB7YoNB#Z7o#ebN-+t$ z-(=FkC4rh!d}%hDaJgJ}w8wbbOf_KV?UH~al*?sgGMR5wgC`b?g+(F}Mm1sdI*h7+ zRlq342mUIZPUl^vQhC&Fw;4$p)rV0LncZ%GSU@}@K%zg?d#M-a8;u4dF{2+%O!AO` z^O{SDHSzeEj1`MT#uKGdsjGq;;wSN!NS<Ah(LZxlz{wm_d?y^zwQ990p8W@6aDyxN Syre<^0000<MNUMnLSTXjr~{V( diff --git a/interface/web/themes/default-304/icons/x16-list/flag_blue.png b/interface/web/themes/default-304/icons/x16-list/flag_blue.png deleted file mode 100644 index 3e3609259fb0ce3b4cdc1980a55be9836e462ad7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007TNkl<ZILn2S z-AmJ96vv;7yznoGUao>xh$SwKrJ!~r3N7=ZEKP0uZD+daS}7G1Ole7F=@fjMscfTs ziAvcZ(Ij8)3KEQ7L9kR7#3HgNV)pGkKNOawUVM3Y&U4O(^L)<{00a>UBU#0M>J|s6 zLsf#YMW1Bx#Awa!n$^1|-~F2J!yH$0WUW{W;DosN;^tub`8(K|TQ|nZ54EPYU`9nR zx~4urUv&?f0(Z{;0I~5F@2%vLPMoZNg4)0$Y6qSp>rx+5?0#Gs4&%`r&^@t$y@ky$ zwA2w34Jc<oSgW+4pm7pa58k6X5W;u}XdRiwA-fOG`*XN4_7#&0zo9gYV0V6FWi%jU zB_py8PGmR(DC?QQg@IXIfBXd#^AY5^29aGIVCYBqrhg&$@*7fY-AmDc!zE+_pE#&A z;Y9s7D(=38b8rDevq1mTPe^n4;PAgf!{iSH-h7A7+O_zX2dsV@8F0*40iB}{CAX(h z+4~N;b))Ee_Bo;}^*~<}Kpw*r&Fv93`{-K09t)Y5tri8ThHKEfMp5LR!uA}OKi%O? zN>Ez8Z17TCq1(^J+y0rtimu8oPMPe`mHXIzFSv+zpq1zDkt5cw?#X(9t*m()8=7f$ zEo&5So=n_FJtCRf)Kg2I4FOW8t)##}w(t?E5h>Ix^mJKdkxOJ!oeD{yt_=aPX0lB2 zxqOZaZl0ksah3|zO)Vuwq*9YeqXu<r*8@oD<VYC=9&enCvB84<5k+Jd+?`0I&J6)l zJrcqiVr^NC%Pz{PSRAK|n*w&Rey%{W*1k)~W&kPY3Sfq{Bl?ZMrq=!eD>L-O7ybJ6 P00000NkvXXu0mjfcB4Hu diff --git a/interface/web/themes/default-304/icons/x16-list/flag_green.png b/interface/web/themes/default-304/icons/x16-list/flag_green.png deleted file mode 100644 index ac6bfb81c18cb6505ecac90d725fe337b46b53e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007WNkl<ZILn2S zT}YEr7{^Z#T@(b}+1Gv0T^B)DQP9Hnx>>en^ZnTN?mh1`vr>%8B#<r?$_nhJw1Gk& zqL9w~n47h&(xwC}F_Atgvk1x-QIPcSIdg$7niqc_-t(U4cmC)990q`K&Y4lEGbL_i zYRD$E+SzMqQU(gvE1`mIf4_Z^{V49;Jw|IQ#6Ho>{sHvcD&zqvbvjXj!tU)~OZu%* z+MKE#JBq|y6emVY;po|=Yax3Uph~wW5BDV9Q9J4<PNCynE5hHpP&L9~#+|q^(~Jk- z!{|$Oz<I~=fxvkS0Yk<SAJiT@eB*_vdr^tN>n4o;jN$f|>mbW$n5sd?`&K0Jhz_X1 zfga1ng@B}~l)_stLrqw5XrdVBpPxbJbQ?8{pe|XRc5&rRBL+WrWAt|n+Mpc^0b97i z!F3Z_`(C({5>8H;xcc$};;9fKKZ4LBML7Gc8n>ncxH)qTluPHL3`m!S3tz1UB`(1n zcc5;v3OwvY`=`KTxnDxreHY4O3ibteh+sEn12%Az&zf#O+|3TSpGa^I+fWqT>7vlq z(qvpT*2#l?`Eq8|EE^zHE&#?c9omo`>Yxo;*gpR@BI%}O>VS>q0<0nzPfe8qz2use z6Zz}ZZ~;@I64Qc(RIN<8E9C?TSwxt;%y?xS_pb4@IhaxHW!^>?(;MV8Ou0vp@c#jf zTy%-4m?fnx+-okUa2Y`vU5^Q%r^U&Xn3My+`DPLb^o#0Ns_Au8^UuH9avu{}<N^qt zOG7x1l2&G%G43NLvY#1;^(6s$q>rRIlALu##ufjP03lDt#aq&*MgKfzy7vz@3j*T> SQcf=b0000<MNUMnLSTa8NI!u9 diff --git a/interface/web/themes/default-304/icons/x16-list/flag_orange.png b/interface/web/themes/default-304/icons/x16-list/flag_orange.png deleted file mode 100644 index 639cdfc0dec82180ddbb4d118cb3691793e12dcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006`Nkl<ZILn2S zT}YF06vmG+4IxCkF{vvrl(d_|s0$&2z+I#TMJu*kTkc)WkJc0ygJ^-;jTUX?K6RUY zBdZlf(Fc-2ACwV#AqCzfA_d;$MG?-Y=iP=(ntJhY-v7t>z0W!SBLGBE6gg`%3I;_G z$f#fH5tMv>S1hePG6}yt<9_-Mb0r6$3fJW^Vw-?od4*u!1151@27KuUZj}RGIgkrb zh^X`-unxFi2aNfE*PX!4Ex^D=;A0q={>=R=Dqw<u{A@t0!`3+W%ctQV_5d%tfDc|^ zc9PLeKnY<zbTCB77?7w1%jw7l%<9c;cyzv+0A7w8fsu<$hyvf=1H;>Z+uMP69^l(k zDglIx=Cc8NjZHQv76m`N1%&Jbo;ZNFeFS_0#zVj$!Oz?I9S5df0HK1JWj(MemU}vr z9pTPeEXD{K*0B^9`_TYQL>HI<+@Xtv7HsMQd(f~9KvgzbtVx5p6<>Rc>7oL-Tc^In z4Md7-;FB1Fnt5E~+An4Qy+YcB(tVUJF4^nxdtg0nZb0hIeUuvgvSVpZasjAPmNI?J zbOxi{l}QYVZZVK2h=~04X;N`%h*kioG8j&_qP@9sF7DnXKRrc~xKJY_UDYz$vo#GF zSRGJ!%4&JTnAGZBz0MZB>_6@lJ13Q3nYmgbQ<qEAQ@a8{)ouy|;Y5?Iie-t}a$1g< z?BZ@aEa#f_g3#&!RS^|JJ)|_5CeuZW95On@@7%X0pq%=XfoQYOEQ(bQ8avhmsB&ch h<J9KtGfr+Q_aAs(9Ev|J4@3X}002ovPDHLkV1m-v9moIx diff --git a/interface/web/themes/default-304/icons/x16-list/flag_red.png b/interface/web/themes/default-304/icons/x16-list/flag_red.png deleted file mode 100644 index 08a5ea575fe76a70ffe8690fa114a70ae03a547e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007MNkl<ZILm#K zT}YEr7{{M2+i>C(9D5}N(SZbBI1n@q@j{t+=Y^tBHk<qKW6n(q1Krgq5rn`ZaOs5? zA>BxLBSaudmP_5{hFU^s8hznKHYqE%f6uEMz2@@b$Kjm!oZtI=5dgAUtz@%UXpM-L z|Ds+YQt+CZ*uNyYzbunIT9MqNWP(K^$19?53q-@b_b$cvJFTq<3BoTQ(dDFq*F*+> zyt<i_g9Eo4>y?#Q)o3C?xg6hJE?|2bdxL}U$>lHp6%@3a%~SrA6zpYZ17<TYG6HOE z;mg1PHdHF0zaJPKMKm17o01Z6I!38r=XzHcyoH5`q^AQlH9$`fFgAv0Fo;loK0X%} z0Ui%9H;04CN%%FIT^5{62pU`McG!(ZEGQKCsnY=s4aW}x0ql>DBb1hgn8gBky+^5p zv|30bNaY$lZQ;KTm6hR>OomuR1<=`vuf4rEoSsH7Hy0m@ixDxIu)!-A_U?%yGWxcT zj;M)KnNh28AP9(7RbiIs<7R28i686+mC7Gn<oDc#tEajU@5F;^4hP(|wRp>)-eqQr zVG4`Km*w2bHgR1}HV1JoSZuca7N-+ad3oTunDFzRFcW0NIaxY6Y^MYwPGfg>>_&5Q z^qC;gyh=qgS}i@+>1Z}9OPm!7NJPm5Y9?&r0yg&b-SX7c(G{1AZZ<U$*NEmbGRUV; z(E1qykvay<A=jipJmWbb?h@TL7-*oro<cGi`Ogq2nJ00{MB?1s-cFp}k?5gbPxs2p z|0@u=$o!5=E=j+M(THi?;b_hhhzv6^<~eg-((a>r3{_XtA1G(7z;ZRK@&Et;07*qo IM6N<$g0Dj^RR910 diff --git a/interface/web/themes/default-304/icons/x16-list/flag_yellow.png b/interface/web/themes/default-304/icons/x16-list/flag_yellow.png deleted file mode 100644 index bf137827010d1e7ba2df497f24df1f2bf1ae925a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004}Nkl<ZILn2S zPe=km6o+3D5d}fF%Ief1=nw=2foIQwqKmF++U{zlWr?RnrE@`Gb*f{~O@fFZ2)ast zh$5&<hfdujk0#S^Y8GcT^ziM>d-LAM%<K?jjC5Tm(^Lpkivh3?oM7IHZ*PflFz@-R z6Q3qQ$|@AaH{k1UerM%kErMLm?`|{&K@nU?q5}XIJGCT3vfw(KRi)xE*al^AByv%3 z2;MBgo-BCu`O=cW1rnm+Rm$f;2|S3nA(&ZSHdr*8kct<839i7o$oa)lc3T8w82SO< zMX~6XBtB-p&~f>4$7}*HY8YBYRg>)g-YFLbz%U<0tTukPUBFoj1X9d2{jxxQA6@pi zRnQ-gYfp-@!7eYSD_9z_imTOLYLfjc;J71^6_!dZz3213!RO~ODipj_D$UZ#iHquW zM@IoJR6El&gLyn#$BT=r-Cpk|K}x}3l3rd$sa&3DF91`3;W#yna}fUK6=fZxLFsgu zYBfh&0cVFxzzyi*IS45hixb~bCKKu?7y_T*8>mf3B)pl90?v}y#Rr&_*FvGS-`*dX W1Tps?12A*|0000<MNUMnLSTXzWzR1F diff --git a/interface/web/themes/default-304/icons/x16-list/folder.png b/interface/web/themes/default-304/icons/x16-list/folder.png deleted file mode 100644 index 1327b54b318889bc3e2680c5a05e616a58ddd669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003-Nkl<ZILoDz zK}rKb5Jg`nBM9!YapM67kKjr{atCjqSMVYR51=a#U{s77cZw@<BPdBkkqAa2I_a+O zVrEPx$%tappRR7||Nd2UJ4yU!L=Pv+hx3u@<A>f48;k3=Tfb81wPGoGlD%Ciyk020 zoU7N0OKnLi!1Y?OYAa_X4+m*NNB|hL8$aE<U(?ODTjMTDRSkt9u2RLhDw46Vv{}j? zbQ&ALE@T1>pBc1wKmwG_Q4GRW=L#Y(E<WuZyJqUZJOH)TYfwmumLT7UtX6x!2QwrC z1wOk?tbbIGiX94s$30{og&_*rI=;_i3rM0e)nyAsXku^vJBBF%%^(EGp|RLJ<PNNV zner_eOBfMU0-)$X{;f25%9+B*K|buGGpbWFN|?k{52T4CpO&B!H`!A@1nM8&F(3W? dXS)A>=P$B8Z-fNVUMm0q002ovPDHLkV1f<zn<M}L diff --git a/interface/web/themes/default-304/icons/x16-list/info.png b/interface/web/themes/default-304/icons/x16-list/info.png deleted file mode 100644 index da02eae4f9921a8fbf20c235a7bf87cbe2d547ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004ZNkl<ZILoDz zO-lk%6o&mN{fZVXTC`}<A_!WvbQARh0^3K6U<x53n2PLUBZSmSLPFXEVKiArn55}w z*@v2GlS%M4?;!{8s4EXVaPNEGbGV-#k1I4y^V&ph;DVah(<|)cfQ_N+IueNls?{o5 z!7(-F=%Ke;aU~oMOTlBgiQS6|79uYK$J7|~(5p0I*H&>LR>ss`R*0Dv4&ooqoVm6p zhO=ibjj?@R!ek)h5KYw(G%AWl595D3UN(qwf9cW>Cbk|rm<eV(G<sRXS~ieF+Bkc| zxSn#@wCCyf25z1#MJM#KhPBdw;X5)hww`qG9p+H{Y~s3LDZ1orFGFcC7s_IE^-dw4 z{}S9fy-EWvXYKSEBmP^3E3+=Rb$Z*kAcvTG{l@U}je?P@3vQj>_Cs{8(SK6F&{ABO z4`onm{0bbmbb6F)bU&n(NFIZWmzdqZSD?mR$3yD&l#@jZ+Odi0out4qwVqG8@6XiF acm4y4k)5Lvd|D;|0000<MNUMnLSTaMzQkn! diff --git a/interface/web/themes/default-304/icons/x16-list/link.png b/interface/web/themes/default-304/icons/x16-list/link.png deleted file mode 100644 index 10df4aee8b87f53ef0b7b536e2024a13a08abe24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmV<0044v4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0001?Nkl<ZILob* zyA1>(3`A+*nshLUJG=%+CZGYD*!WI!$r=ILz}mfFgpus$9~4RDi3-VAtyN|w0CIP= z)((<6z!`k>-W3W+3IO06fxDdre9iz#Dgf>SLbn0inFF}HNXpE{0OOtlNGk5WQ~+QB z%<Y9pD&E1~`*4`;dClQRa+!KsGh_kGYrN9Ms{c?y^txwD&p;ZG_ns-Wg{R;72PB!* U+nX;+J^%m!07*qoM6N<$g1<OfUjP6A diff --git a/interface/web/themes/default-304/icons/x16-list/lock.png b/interface/web/themes/default-304/icons/x16-list/lock.png deleted file mode 100644 index 5c53ec5f4ffb5c20a964c37de47174aab1d0b81a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmV<S015wzP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002JNkl<ZILl-B z|NlP&48wrEy}dwMTH1ef%zy;odaxM)QvBe-ga3E$-u-{=+O_{zu3Q1r$cErF0Hzs) zk!?SB?i?7y3?XO$hz5BDBvw>ZWB@aSBm<EBOq2mY8x<%r09(l8!Z;21`+5aIOwfQ| z4`<-T1P%Cpy&a5^oeUF$iQ_fk^SN>`Mm7K@1{23?z=tF0a10Vd=EKDB8t`UUI2?n- wkohn%yav47;Eop)G~nqnbG#U@0i-4*06plAJtZ2<JOBUy07*qoM6N<$f}GG|TmS$7 diff --git a/interface/web/themes/default-304/icons/x16-list/magnify.png b/interface/web/themes/default-304/icons/x16-list/magnify.png deleted file mode 100644 index 4c47b23469e6ee2a693ecd429565b2d7f58d2881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004nNkl<ZILob) z%}N4M6vs!Oz=gW*5#0Lm5H5Ux@eO(a7vo;2G$@8h2%<%iwWwJnx(I^Em?&H1M^gr6 zDUF$xmiF(S>lhPU3!wvln8o~l_uO-?Bw3Y6Bz!Cx7T994q*+|jZ^eF)2~brPr)NbN z*ELkGYS=$KMlzKeiG1T=IvJX#Vekp`S$czE=)2zTVkx~s5<}PtwM{1z-0cIM55VjJ z4{r>91={aGx&DN?B=2NeB;alLY;c3Yw=Y2L8K}00S=-h~kQWN7?7jrI1n@-*C_Vz4 z*#kZcp`c{czTrE9J3rx*Ca|%`1-eLJYS|o`Hu%zl&n@_<0W2)@L1sh(g;rHzgSrvG z1qSaF%A<D?771L`8m&q<?okrJvup#gSPb!aTpzbelH~bgVxslk99Fk9%rC0^WLcIG z3WX4jM#oDmQP_IAc`GxKNF?lZI!&+Fi(oMLw?tG9hr>q_kH_<W61tY6D7rLB*(HHM ofJ>xFi%F)KM0dO0@caGx7ir1H<RayVfdBvi07*qoM6N<$f{4e%tN;K2 diff --git a/interface/web/themes/default-304/icons/x16-list/minus.png b/interface/web/themes/default-304/icons/x16-list/minus.png deleted file mode 100644 index be99e5b7489dcd3f5052c88faa70372ac585c78d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`PM$7~Ar_~T|NQ@N&#c-|c!fbr zV#2g(-{vPVcg>t3@$c{d;~(D33oysBEc|cyr~T6ZfQ%J30{X&2izhKIewnaBnt?&; WU(H4{HFqYUX$+pOelF{r5}E)hoGMZP diff --git a/interface/web/themes/default-304/icons/x16-list/minus_round.png b/interface/web/themes/default-304/icons/x16-list/minus_round.png deleted file mode 100644 index e246f112a7ed309bc9289bf76e8c0db0c5da43e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2(lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003YNkl<ZILoDz zO-lk%6o%)g_>+Q=k~V{6_8VHb33M~yekeskN&Nw{R0yI~3JxKCsHj2FLWY9eo#wgd zaAz8Iz!x64ob#T;J@>;fBC;&Y^y&CW1Y)MKNq#cr)3a?`T-O!P^JFd7#K_^n8&|w= z97h!_XEXU~w`E=~D_9dlc<_dr&~;t>*=ox0JRb`=tw}GKnXRFZ=B+%P<+g$ct;R8F z&|$vc=~M=%*+k%_hFTh^Lwax2rJpquftMO;RRi=~Dk^qK_k|h^i<gRB(tSY#wlle@ z$-~KUBJk=Xs6+gjjO9L)P6S^45QA%ct5xLg=x{4|Lf065NUzmv>81~2A@}bg#XaTk s@km}OSMpf6P_QPp@hR{9nfCe4e`c4FO}Xm=4*&oF07*qoM6N<$f|6LC5C8xG diff --git a/interface/web/themes/default-304/icons/x16-list/money.png b/interface/web/themes/default-304/icons/x16-list/money.png deleted file mode 100644 index 915c983bd180033ab0dc54e7b15dca97a34ed316..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmV-O0k{5%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003GNkl<ZILl** zUlskI5C#GUzXe`Vu`44PfP54TBK|-8d><!9HYjdolu^R!80-eDy}KL(uei17KTLkv zbqG6TaX=){C0tkyfN20>5F5q^$$`|&zAz2Uk60GsK+phWKFmcRb#pJx`~&rl3y@~Q zFaX&LD{n6b8&JQ$>VMAW46r;%?eue#U=|f%81U@(V=#sp0+LTzoA5tiz7L8^paw*t z7y#3ZYzVR!kPU@JFNOiIz(Y3xB)0tKLU;hf3?bSD$eKa?Mc3wF8h~sFOd&`fSu;!= z77lO&&|?7IzaVzZiirQoYvSMrM6U?{gkk`CLP8Hjk_|vlNXQt&0DPGVrU9EA12Ned a9|i!R(cC1!_He8K0000<MNUMnLSTYP(t7Lw diff --git a/interface/web/themes/default-304/icons/x16-list/new.png b/interface/web/themes/default-304/icons/x16-list/new.png deleted file mode 100644 index 89d4487823bd64744f08ae3fd1a3035f3005eb4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`{hlt4Ar_~TfBgS%lQ9?ps z`|0=gsuDR297o=N`#*n&I>#Bm8?qnd+5RyqdYs)~|3AQ_iJ^<J{@>r9^S9bdo$<RV z&2^pQu))9k_4OO28JHDV6__u?GHhbFsVc#yu$$${)cN)G|D4Mh&!o-KYtUqoWZ+`v z(f{+?{RXQ6^P~lhoo`rk81figFIvnJmta`_`}afMjZZfMoyOql>gTe~DWM4f_tQzg diff --git a/interface/web/themes/default-304/icons/x16-list/pencil.png b/interface/web/themes/default-304/icons/x16-list/pencil.png deleted file mode 100644 index f13405605f93032fbc5c4d9f49165d0bdd9dc13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vproLLo7}&oovX}Vj$pJ?D9TQ z)v{6jgM^dcro8lQ?HjopId1>EYj2>~m1u1Ep=;tEan2)*1!CKlF;;%HwFp1?+k&e{ z<g_A-z*JwxsmotVDo^QVTDhh`Z&&lqVuh7&_KKIBkC!Z-J#}+qNSMX^r>7nKrsa#b z-<`zYC}qi(_0)NR+q46pBqsc8bnR<AU){UNb=raaM!}@oTTi$f9=%w%=;rwhpfedf MUHx3vIVCg!08jN(r~m)} diff --git a/interface/web/themes/default-304/icons/x16-list/pictures.png b/interface/web/themes/default-304/icons/x16-list/pictures.png deleted file mode 100644 index 948ad9ebcc4fb6fe64c221b4a5f1ac32d0925d97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmV<b0094qP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002SNkl<ZILl+m z%*^ymOH2Dt49>{NaQgrMKLavm07-oR@tY_NQj607Lbij{q^GCjH{j5(|6p9O%Kv}* z6gMyi@rgEI%j3WQ=O4KIpOi2`F<`-kkN-&x6BGkVR^IzhYM7uHP`>N$e^SE)Yb+p# z2?&EUf(%*rDH+ViY5=moki!IqyS$a*Y@7xFUH2b7Oh6c<8HSO=32Xo`DLa7}FpM51 z*f5F#=m~@5SioffF_@qMpfEwl7zqj80Q4}yhk;4i8UUp3-$<vdY%c%+002ovPDHLk FV1k9?X+Z!0 diff --git a/interface/web/themes/default-304/icons/x16-list/plus.png b/interface/web/themes/default-304/icons/x16-list/plus.png deleted file mode 100644 index 0c343531cb45ebaa58cdbcc5193bf6a4d5b4b4ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`J)SO(Ar_~T6Amz5x^(HEaxz;G zqet-fzgh-rw;TGbQxkl)G3uIkADofHEVce=v*As)D{<!-llQPKXg4!jw`&IHu^(3& zcr~o2dx^D42h><~>hPE|i0fGh@*k_%+n}FQ)PJ<W@aDz|r4~XxC(RW8CP+w3&UHBT uFTp_VX2bvgijA{(m<s@98fIKzWB5Kz=-aAw-&O+M#o+1c=d#Wzp$Pz#rb<!( diff --git a/interface/web/themes/default-304/icons/x16-list/printer.png b/interface/web/themes/default-304/icons/x16-list/printer.png deleted file mode 100644 index fe362609705fd0715eb46102a4662fbeecb8c48a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmV+q0r38bP)<h;3K|Lk000e1NJLTq000mG000jN1^@s6?Q>5r0002iNkl<ZD9^2u zOAdlC6h*rpMy|vqIAk@<*o|{%Oo_%A<1c~;;;(#zPulpJ)?$^!!AX<0_av{k1ON!) zx-OV-9A_ZkXOMRREgKECKbeL?LI^PnQd&cDuOPZrLJ(amMPd}hEZhcyODP00Uq?8w z@VSItT6B)12yEL11O<B*J{7P|as?E~87`odDuQhrUd1^qk2x%&4CY}5vw$iB%qW6B zXadjkdZ7t^VKg4{bz@n&!1w)L{QnKGg}Qn08oOX;A6sCczyz=QbzcbNkMs+2<_Ux} V<F$B2Cz}8O002ovPDHLkV1jh|XM_L% diff --git a/interface/web/themes/default-304/icons/x16-list/question_blue.png b/interface/web/themes/default-304/icons/x16-list/question_blue.png deleted file mode 100644 index 1f5b3608bd87e9d1065b8fd0c957a0bce912e105..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmV;_0W1EAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004-Nkl<ZILoC| zNlQXe81<+0D_XQ@;i83$AZSrLH$jUEg1}9y1|qTuN&-u=X;WYXiIju{QZ$f=N~k!` zIbm~AoIJODcr{lZIK2DLcfP|NRjLN)^?GfUjw;bWYFbq*REr%|x{O96yk0LVl?rO$ zm>O&J(EDF=*=DnehG^*%+qY#*+jD{(QzPi1R|;Wjt=W82!oW@py5lsaPP2lemZZ>F zs|#@{Yv$C5&8s5%%@JJ3U(g7HGcRiN5P!?jGQh$0g^M5PGlc|Amj#>!9x-W6Va}dG zxbPvGYIS<q!(Il6O<KRmqt_U0;-EPMPx@5^)HHh8!(I_U=#CQ5tobF5>_?G%{N21m zcS+IdC8U4}OAI|L_Y$Aqzwz|`g#~+B(&?1~I32@z2I^&>!lAtoT#09lA4DXbq_=(v zViSW8Z|Gk1NF3V_L$m5@(&??=MCBNl&r;}`cMHx~<3ihTW)+R3M>@vFi?n1<qI32R z>P0t(cLU<ff0DJPi}c@B_Ge$AKS^L{%P+_=wU$@8?Z?#4bN&Hz!=sMBh{SCG0000< KMNUMnLSTa9Bi1(n diff --git a/interface/web/themes/default-304/icons/x16-list/refresh.png b/interface/web/themes/default-304/icons/x16-list/refresh.png deleted file mode 100644 index a63077d03f11f7891a1043776a4f13ceea129e34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`v7RoDAr_~TfA}jVEZD_3>E<_y z85ztDUCCwa4TfgDH+WJMT#d~t7x6eua}IaD!0=>)!?gCqQ+pjwuq`^oFkjx2>&TP6 x2cH~gT34YaViz&_(_#JZoqkh!n)Qt*0xf3untP-#?hDW&22WQ%mvv4FO#p>}Gw%QZ diff --git a/interface/web/themes/default-304/icons/x16-list/rss.png b/interface/web/themes/default-304/icons/x16-list/rss.png deleted file mode 100644 index b35840d491b9463b2cbe79124cfaf483fc5561d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmV<P01W?$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002GNkl<ZILn=r z0SyBo3`LQEgp+U*kT3}+0SO3MQVElQgp)7{NVt`xBwhDA$dUYn@X6!14dHr*!n#Cn z){AwpVpv%Qpw+~ScL5r7%pe;pu`;VVAPTEXfV2dW68g&tcu7j|A)wy=@@CSU=H9~t zz{Uxr89xrQ%KQ<im~x;uYn)C(FvX;CZS+JQ`Gxal@A?y$ly`oen^@$<Rp(j%9W;gA tiJMS57a*7QbTR_l&qSu7)fs6S`T)Oqo19>{-EaT^002ovPDHLkV1jd^WgP$j diff --git a/interface/web/themes/default-304/icons/x16-list/rss_round.png b/interface/web/themes/default-304/icons/x16-list/rss_round.png deleted file mode 100644 index 27ce67d2b3ecec7154c442a68414f53fd0b1062e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004KNkl<ZILoC| zO-jRH5dDsjBjgA@LXMIn^awpbPLPE~5EN0OVr^YWin?gKNQz`tg)aP8T8Zd-d@qw9 z5~G_AJTlC@c{B6n`;2Lr=Xov=0@46uuKCN5w1L?7eMyo;(lnLA=rhI~Ipnq#e+-91 zt@w&XmR*s=QP5`$Mh>|(5vrEOcOYMyb}(0o#O2N$Ewcp(7p5Ft-UE@y(O7|nisb9K z6bQMWd}73NqqyyfyatufW53D~;If9b6wm`ppnS?MHo8Dy?uv{ok>_0KzOQ)#T-LBQ z6UgieqaGRk7WTaq2|FTBxyW^$Qx_N`cwiLA=sfRMB4>8KN}&01Lm*orLct!AhbVpv zF=kI=v<cRE$fqDDs;{7jxW*ywAUWtL@dYCLmijk61&y3_{Sd3)I77#65KbVnYpFlt zYPR~stnnLvU8E@pTc#b;mW$MSl~-720`kC7&|m#?l{bD&n>^<q9r>@m+i1=$00000 LNkvXXu0mjfLw2{+ diff --git a/interface/web/themes/default-304/icons/x16-list/security_green.png b/interface/web/themes/default-304/icons/x16-list/security_green.png deleted file mode 100644 index 38afbbb2095225c42bc20e1de30ca76f0a6d7075..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Gd*1#Lo7~DoxD-V!9c*}b8D5a zRPXx_kz7kp?ax>t;xX~evo~^Q-t<hoy}f<6z;QK$QfHgMRerOkm#$l)U~+YqV3K3# z>WCWoOVuo@tZ8RH%}WhnOqj@iU~@QwR_yPMwaf{M#=#6u7Z#jhZTNq8nUV3b>6Qtx z8^SlfysB_h@7K!G{r{4MLdD~(WK+#T?)jb2{j-U^Nc#Vp&#asuijVn=`NRMn$>8bg K=d#Wzp$Pzy|5GUd diff --git a/interface/web/themes/default-304/icons/x16-list/security_orange.png b/interface/web/themes/default-304/icons/x16-list/security_orange.png deleted file mode 100644 index 4c5bad763c62abaa2ee7749de532aa56f7af364c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^E_P~Lo7}&oxG8^!GMRwSe{jR zNuqGuq6MikDr^fFlTKdzJ$Z(LlI?;I`x3tJ70NpMUY5}hIUSxe=eW|*^LJOUPCUJj zSIM@wTX52nI>ra-i+&o0%om&@lGUn}@9!wtpvK?uK8|tTE{0vZ7&tO@^L!bkX02y9 z+sas=y;aO2!qQ`}eQ<a21c?WZAHFah5MU{+@R=g`;4Jg`M#evq&!y+x*&J%}ux$^} Or3{{~elF{r5}E+qkxpd* diff --git a/interface/web/themes/default-304/icons/x16-list/security_red.png b/interface/web/themes/default-304/icons/x16-list/security_red.png deleted file mode 100644 index c469be0a06b1ccc3124c29f003de3f50256db08c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmV<303!d1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0001_Nkl<ZILnoj zy$*mN41{?;2WR8p$Rj$q86Snw#LdM;rAf(AXhoAV1bQDoxw>iTT}|Hm8>Q716W1}5 z`3xbG2BF`+btK+Rnh_Gk^#s6UV(~f-)iHviT+PU`<`|R!SY!ck?Gs?>6A-`JSOsVh z&71%nn!f<fMFv2Kb_E%%6r|S2WOE9V1XvK<y#PoEf@FBIC?mk?2iXT10QJ5XskNOS XUFnInI@Aul00000NkvXXu0mjfOXgJq diff --git a/interface/web/themes/default-304/icons/x16-list/star.png b/interface/web/themes/default-304/icons/x16-list/star.png deleted file mode 100644 index 70a227c3ae024d7d38862dd5c5ff5a7d42c83231..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV<b0RaAqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005TNkl<ZILoDy z(Q8rx7{&b){1f&^^b+(idWxQW={buQ(L;!94{b@x$YvbYRyP}|-4eED5{}il29Y6U zL8}E_GI8VPvbLF_#-d9-{Ca3mQ3_iJzNhcw9KLgo$I}CnE=club^=M>Y-+G&Oh%oZ z5`^vi0HwJTNb+x6J#i)0q8h+050adUIg-5FQ!fhYm!NK77suK1qyJyWeo0|Tg`26! z(%f{EQhow9W}vwMpDbu(d0sFmEu6)gJxwNc3Nt=ZkW}zUGBb%Fyx0TfgWyD9{RXri zz@`mf%FuZX8yTp@pmGd%aX;y);a}cJ3Rp8icyk15=b&*5K0kwR4fx)M%~#Nzhj$aW zuLGp7M*cQdl0RdP;#Q-uJ`L?h@O1^;+E22^ZQPY{(uuL|sYvo$*)gbJhL1UDJ%n}< zns?ztl9F{ENr7JO_m}RBfD?lHMOeEAYuDj@9Nvzy`eX=6;a&tjJ3j#BL$Dmgt%T^< zVOSo5%2C{<14zpC%zyR%K6tqo``&Sk$(SRlV9gHGdFq43T_lZ=(~H2Y&hI8+oN4|3 ztE4_jrj<TSI)0L_t(278DwVg(zE6_*M<ap%njbZtwGXm$Zqon&002ovPDHLkV1k)e B?uP&X diff --git a/interface/web/themes/default-304/icons/x16-list/star_blue.png b/interface/web/themes/default-304/icons/x16-list/star_blue.png deleted file mode 100644 index c49e74b13e2b92da24f09f4322f1397dcd91e1fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmV;&0XY7NP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004wNkl<ZILoC| zOG^S#81<+0D_XQ@(V|7WqDAc_iWbo#2>Jn$5R4&22}WfFh7dv!Od%o#1<^yo$q@6^ zSZbv*7^YF2JeOve@v-W_VZQm!`3`gM+-tM7K$0YTli?=OLiX&oZfJ@<O-4K(4-`d# zrfJZ@nmuat(A#OaBFnNE$dtdZdtJd|uqeoyJ%S#3Eg?+RhrL&2jO}FwX9GD*_@9h- zYNn8gv1Wc6v3*&>s5fmeoT%a`rdfLQ5P!?DGa$_MrAiG9Zzc^+`?JO#ur_P-a)z@E z5Sz4d@rH4468kqLL|<z7X#Bv8)O%g@Cw&>=<qT&<0I_hWV#pnbGn7X+P@{)l!V)ka z$YOByL2&)7&^FATuG4D?;ODHJ<}u*97o0mtw*{DW*5)OMO-#IgqTd-6bR4Uw*1xfJ zUW7wdk=GiKm9nAJYu-fTH@ZU4=v%(SjPDU6?wF``vd1SqmfzTVkXC{@^e)|YB(=7K x)afY43pGe5DyDYgf~?u=dX)ctnf`N~e*yh5vd<AZ!jb?0002ovPDHLkV1i`5(mntH diff --git a/interface/web/themes/default-304/icons/x16-list/stop.png b/interface/web/themes/default-304/icons/x16-list/stop.png deleted file mode 100644 index 65fa261e423de3e392f498a76fb37f857b498571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmV-!0g?WRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003sNkl<ZILoDw zze>YU7{%`+_y|6Vj}XO%wx(^`ByE!h+Cgv?9K@-kIH?HYCi(&@B1Mc^imgfr(Wyg* zEINq8F<&sDi8s>H3qLq~=g)8%05%Vq&uz83Z>9-?G@Io)hAudUfh4*x^?==MxVGLz zg5Wk)`K7LPUK@4Toi@e?`yr(1M&7^Wk*X|=G{t|`RCwoSh#qOWkw=-#fhVQf9jY}D z<CEiffOK@H47WU}Ru%^}84=FTc053O(xdF3fxcWi?aO6M620`DvWfD2Sz3CiNJ#VL zc_BQHI`P1rRJgE8MWk`}c0+g`b;9!PT3!x78cS2~esmbZ^M8?9uOPa;qKGuZt<Crk zNb@q(WjFa%@Oa!<$M@$)h-K=?%CT#41@pkJa?A2%PVfUTBR+M10PbM<Ek{iwSO5S3 M07*qoM6N<$g5(>e@Bjb+ diff --git a/interface/web/themes/default-304/icons/x16-list/stop_round.png b/interface/web/themes/default-304/icons/x16-list/stop_round.png deleted file mode 100644 index 4cc285205dbe17d9b35b960115385429254dd72f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmV;l0ZaagP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004dNkl<ZILoC| zYfAz_6y2ZFPl~|akL?8&BosX$w1TAi;4j$BBntJTe%X%_1QAKwW0lHsTfrc=5G$!5 zxa}F*VP{ncyl~*|x#ymlJ3Avuo(PA-vW<)l@&KGHwF<k~VM9|Cg>+q~TCGM-AP0vU zG|)C{uBxia8oo*;dPyd!Y_AL;2Zw+LTEPUaPID!Zpu*$?J^1}(+4*Za&2n(4xlA-Z zGq#3!j>qX{e2l?LrT7TQ9UdCQ-#9W1GMMkvG$}VKa~RuO+@KuU5o*w)2fZ+0hxBxK zKvyHf9J%Q!Zg3Y22sLQYgI;EUC~SsE8yXPsZB<y!%R`G03~oaklpX97P|cpvTRz{w zLn|0yJLZ0jPWyZQ1!&zPutTgr8g$a@<2aw4p`ZE(Tj_FnQK&)dK1BW-i?JvjcXu&p zOY{5?uh)Z|her5~-ivg<w@XL9PKNBl99^sh_%~_|7pd7*em9C#h(<_TU12~DuH{v3 e`!TiioPPnSLXhHN?U^S40000<MNUMnLSTZhC%gLq diff --git a/interface/web/themes/default-304/icons/x16-list/upload.png b/interface/web/themes/default-304/icons/x16-list/upload.png deleted file mode 100644 index e45598e0b1e520b25aaf13f141ec1e1b3e06b9ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmV+k0rvihP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002cNkl<ZILoDz zF%AMD5JmTLUc%Pif&>aKVeLgcfyHtHTdAOc8)(M-i9^sVvuoVs2QvJ5`)9*WL^O?b zIPD11JZkghd1PsjVe|R6X8~}3T!#>~xd)6OZDXw^nR%2z1n&pHIY%)@Dy86nlo8km z351)W5CUrrAU^Z}!qIE3{Pryg;K?~tN{Jy1K;f4J^E`7;1AvBu_gvK9fo}jj@B+|A zkOVzoNdk}r-uvYdv`2hM%?U6E0P<n_b**NMp>_{Mp!Ta)SAV9h`Wx^9HNOL+c)qn; P00000NkvXXu0mjf-coC8 diff --git a/interface/web/themes/default-304/icons/x16-list/world.png b/interface/web/themes/default-304/icons/x16-list/world.png deleted file mode 100644 index a94d9a6247d89a12a30f23d96f7db70de53b219a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmV<G0Tup<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00058Nkl<ZILoC| zPbh<N7+xtCu5#td#l?+slB68OO>&Vqi5y(q)UwNJrM_l=lC}A-XqrTg`AmxT#V*Vk z`;(d(69=#FdF%J}eX~XR>S^o!^ZcIod4E5Xspzv<EOr%H6;uSo?51*`nru-~kR*u| zMWI|SN0G!UoyK1HKVrzC2DPP{zx;kbJ!C&<DBz`f*CbWA+o{IeL$iT9@|>jU_UWBa zgIWU#Sdmza%G9_tMh$Dj)VpJ&y5)Wv+4GU_EW^J|zA5rvUI>zcHZ!E*<Vt5ZnHE|Z zHd*0DVB%m)i$j$hPm6KvAjo1q$VNexr-KG|9a=Ncxou`uf~0HH%ATMX1Z-06{3y?h z)AY@baEwO*G4ddQ(yMrex5EU9{4-TcgFl*q>EOP0G60h1jd9+NMv%#WQs3$dpM<0^ zP5?0|(EDQ`zzA3sW*0@pK7bT)cp(KJ4I{9L*s~}SfP6t9$YH1}lros8t<ia$WVvD+ zdIjdAFz4n%*L*{@HR><Y`F)<+)@PUi4aJ5+x_px}UZhf2*?JgZPuy~f8-KmZ<sMTs g`S!QR^q=Sa4fh6eND|S!5&!@I07*qoM6N<$g1%?xegFUf diff --git a/interface/web/themes/default-304/icons/x16-list/world2.png b/interface/web/themes/default-304/icons/x16-list/world2.png deleted file mode 100644 index 58e7e6e4dd91ae8f4f306b1e4ebff47ab37b27a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmV<K0ulX*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008DNkl<ZI8S9$ zZAepL7`^}c6XdUc1VMl5M-+^V%4p7PShExxsVg;g;8!grmtbl-G`}+4(rFTlEjMLl zLNhm==6957?mEml(<X+M)2yIR?c=of)s3kS9Jt))Ip;j*@?3^lS3Dk%6P6^DN0daf zg31^~DiaZ#k<EsR;^m~be%@2Arq98IK>4v+A)<QYAn7Uuqvc|IQxNW$yK%Fj3m5Wg zuqx!UfxKVJX9J8eD1Taq+rtlFvRM(;my8zs5PHYvU>cf6N^24Lx<njJ4QAJf?2hx7 z6E{w?5PO<WLT<f_vG+eQKDPwhhhG?d_X8CpO1cf1+tk1V<*d4Mwp9mu8sR-jn3!M2 z)W<(~v-lTNE?DNA*w=D~_Q@Q<W(5}^;u8UkKq^qX$@!KlOgNV*(eddYrayziI=_I5 zR|;tCI$V8Gfi3zK!(B=KYUW6(fIZw2jhumUSY{Wgvp1Qb*jhsggh*nLm|Gk9@GS~r znZ3&65Ot)Z(>_V_5_fMhfjhe!!R_%l;EE(w<${U7aSe%P8P4{kp>fiL{#hFw>jcsV zOV)^xO_CqyBUi2i6O$%mYYhXq(x>ozNc~jzhAqYyz9Hq=bvi@V&#rHPRCbGH!bAz` zLX8=xjTvhk^4Kc+EeJ@g*9*U)vKeT9=OY0MwMK}}OVkXP8_KyTQ$l7`VaLM|j|f?r zkO=I~C5+B~N5PPW_V@-dvdT0dTzU(UvB~o6>Lv)A(>*cb`Z6){_AA9p#~1Y5oX`xm z!q*@~zFvbUv1H|tNcs6me8QtIu@O2c6*$%AI^jVF%$6Cn4bPzY`6RUMBlLeLQkfu% zO=AhiBj6Sx=Xt0y90mIOD6VU#gtGchlxm-#<X#7I%Im1}2C{dNT<64><&w-YHZ@BD g0`g4Wc`|#|e^)y=*b=~26aWAK07*qoM6N<$f`6)BQUCw| diff --git a/interface/web/themes/default-304/icons/x16/address_book.png b/interface/web/themes/default-304/icons/x16/address_book.png deleted file mode 100644 index 923e0bc8422955a4b7aecc4b0371fdaea9f99888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007TNkl<ZILn2T zPe@cz6vlt^=FM{)N3(GwB^E*p6OmG^z(v|3S4A!itzA&=g20L_f*^9$URo3_3MGOF z!lDRDQ49Jr1%i=eO5*ruH03>g@1A>G%=iaPJa9PN!{s~Q_uYF!wrvBn0cH2km}<6< zufU~Fw+UkmcD7mexVN|6iA0Dx4zXx-E%S17iRI)FjYf$^B2=}sbZ<nnMFgO%r>l$e z)oB2hvpM&l@mFJSPj|Xa0F%J;RR&f?MFmw=iv&TiCHF`qf;KcHuXHz5HaE8cYZ5H2 zHNNlTc^*m(N(5uFG{Yh6aF|#u7p)Bop2y786q^7<gcUzv$DTu!R32ZOyg2=f(Se6J zj)MrKU6+|u%4`G(iwJ(8$lF~*arrR@x;rp{)|&lC&rw?2%5?GxS{wG&)m_+GRP+hJ zS_M!_vAp6_T;9N7&voL7QVyQHLCvX~e0zP5+`<xkKR}cr7#{8_OeAUx6Nz;I5kV;- z2m(Zey@y-rd(=S?1ZbV<D<z1)g6EN*oz>~t*>wp@DU_(}#ca)<SNtFYB!Y+`?Yhj* z&FM`ZXjx}4^8Nt_PF!RB`<qNn_5vEEG9Kg?6nr)tJg}8ggp6T4`I7yOmq}0l<jb>L z%=~!A@Qd3lj16IoMoGqlym<UbJRV<TV2cO_&EMZ25E057+X0vx?Pqap5RA!4P#F(I zB(zaNL~D)FnsCUlH1U!7u^})J4qMpa5XNMl)b}-M*JauBY*|{uHpc7%^0n4jmWAUu zTYhEBvPkyz4_&OUe`;Je?T?PeLO?Ze2dF$-!o+sFobnlYmEtb20{r<0=<Q(6y?V=5 P00000NkvXXu0mjf$h<Uo diff --git a/interface/web/themes/default-304/icons/x16/address_book__arrow.png b/interface/web/themes/default-304/icons/x16/address_book__arrow.png deleted file mode 100644 index 0af9c50b487d2ca51474949700553ee27885ef5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007`Nkl<ZILnQY zT}V@59LA67P0>Xd6h(JJLfNN5Oz^@~Qe2|BV_y?(txdKXp{*D!8<o12efyO{re!HP zQ>nJ)W{o+gt=yRDST^QoiKc=iUSvMKJL<^@s{=ot7yjq@@xFg5C@6>`WD+zF(*sTa z!3_enm8PjJJRU_Y2sBTPMl_nuFxYIcI2?HIcEj!SVPIqgUneK=ZDt0uv$G&Yk-y9e z0s;d3)X_AJW_8Rz@!w)Wa$u>TUZqlDRF{q6CfTz1=Z5?k{Fs{qDT|j18gg=SFw}S& zy){C(t52Y-Dg&;{d3qil$Hyl^X0FSP#>DhA)<s5&39O(=sZ^rBUV;x*=@>K@0~21B zDUS)x2kGe3O7Q$rG`wSDSP>d3BCvuN3WWl_wIcXTckzAHgSL{xuo5gqsTl7zV4}wW zPt8d*srE7DwGk0}2&_Oam&=)J&wTENrI3cJ_8fEe^X4{>N&ozrGK$$j2$w4%u!82S ztSmV0r(vq!NeTy<Y%WM*vgKwnlm2;~B8u5TFo%;#U<EBQnGE*wBN+c=hw*wMle(+i z-%?(t1+U14YRBjwJ1|S7QgoE2V#M7BgC+sC3Mq4THmK*b{xay|R@@r~!ZnV*9apT` z+w)zlz$zAt@wSA9z4jsoU1q$@i-TSr2a&oQ32Gg<gx%6I9MgJnYXAsSwGM2{b@CSl z9YUcH9VIC+UW-TjV<mi@CWa(!Kh%AIpbJQK{Nk(!2vJzxEebjX0s-2KlJUAA4o1y> z=<{Qt&x^&;^BQo@R50w4lwxnC7s;K#dST7rhEqB|MZS%M-i(Y4@`Myv?<6iucxExe z%)shHWkV}DX@#V>$}b2fydr$zZ=&pfV{@cnY)yRLc;HU{1@eCwA^0bagE8y@Ho@=! O0000<MNUMnLSTZbUQ5mZ diff --git a/interface/web/themes/default-304/icons/x16/address_book__exclamation.png b/interface/web/themes/default-304/icons/x16/address_book__exclamation.png deleted file mode 100644 index abd5fa9f6f19c921f233f6fddf5c9245427109a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmV<b0s#GqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008UNkl<ZILn2S z&1+m`6vlsd=H5GZ?#!ggjh3N}iH%WALX354TS*p@EG+m%yQrip2*uj95Uo~G+*t50 z2rd*CN)i`}iV*@X{HQuqY@`H)sI@WECYel<CNr6N-}An1CX<MY2ObXREPm&C;5e@9 z0-Oap-+9vJ`2V^LJb$5l0&6X9ecAcJ)YPc&c?7;s7z7Qal1aiuf*=S8Jdgg7k@4L$ zS403hC&tD&lPdwRRoBYDoIe+S`NW0t34j9d$+m-7Z*MRC{Wnoc{ik=&^Dvg7nHR^0 z`c9ra3p66cj4{+|H7b<~S}a-wYwI@S4sJY77$z~svR0|EeB%cH0Eh_Hnqp7K5!(75 zYFxg#^gF*^d=KCE5rI;<%<|%*-3^F~2sNci?LS1edzg#k=dpk>hMosc(|-6AOEVv0 zjOEV3!RK09TYm(IZ3DE{Y*lMyyNCF0;uX?SJNG^QDu<50#?RAlQ<Y1U{b_=h0%~@4 ztT~DfH%HM9Kt#}5P)Z>p+<x>FU%!7Ir4$y$#(JJR9ymuLv(D<~Dy3r4l#0cj2wH2j zXp~ZDUGMeTxCMgD{e(>stsVEWxbQivD=X%25kv$dI}U#N>Rk>#_A>KVrrCRUmZn>~ z7<p!b?13ELPCffg6s0exo0=K`S8I)9E!Sqgpy${NlnQhF^zj=kUHu5XRRk$AIXQ`{ zEi!QA(ShN6Do;nvVIzVoB3KOTfBb-m(0yzafQ7l&X};|M3#B}teLBi=HIL(`80;z> zJUuY$Yy&)F4AvOpj%8y$&+66hvECY~wk4c|hp*Ro_>s4myOINUgMGI+`?cn1%v!t8 zTAMM(5R1j|eV=5IAd^bsB(IZgPmqjVC+%&rS$v7Kw@KRD;I6K8OSQ%s2gm_$0)0=l xF~9rwdxq)A>?Pd2bK-2pL;iFe>~Gh|{{`89LZnP`K%oEt002ovPDHLkV1j`RYJmU% diff --git a/interface/web/themes/default-304/icons/x16/address_book__minus.png b/interface/web/themes/default-304/icons/x16/address_book__minus.png deleted file mode 100644 index 1fb998230d2e0afd312dffe52b180435de680c7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007mNkl<ZILn2T zO-NKx6vuz>&70>qX4$lnoGgq89mGtr2p46GS|znew042H4y4E;Xj7{eK?`Y-34It9 zK|vCIEK1CxA{C?-lBtDXGg>h(-@E7D7LH$3c;Rq3hs*E$&*gtD$8i9ffTC+hOa&{S zkHCqG=|dP}a5BxJTb-TFZa7TDb%{nI3z3tZO*AWuNF+ie9Hy+kzGErP5fOl*JFTrW zR-^#<or&Z>#-ED5sJoax1n?brIIqA?BodUB{Uiv2|7s71!)QZI@5zpu(!+<FfQ1!o ztu?;y<9QxR3`zuJGBQIJPAEh)nvK?m8P8*KY>dAEBEqa6ux8^9;-&i*CjXrH!eDnh zuInNKsdSpj@o}>h5E2pmK#@~WNq+HOx;t7hfYzFl-Nz`bYG9)GE?OJ5R97EgyKdck z0DB&wl;ZcSPkwO?ukV~;RjiQhwP&e3c#giOSIN$c<NE=k48g!aYhEl?l^2UG0z?F* zgdhkI5jO2?;ML6*f*?TaxxP|@2+VjMsi`TQnwnZ%K`Dh2mARP7nR?a_=0GBd7*gpp z)5)Y>wt|SDWl_QBmu-|EIL&bXv$@>c322m>dxKJAKHT{93Cpr9fUd^I#$Cs@C9z^9 z<QLb__viw)4Nl1B*S&sZbOzhD@w|Z8hOG?s^$q9x{$ppUBMq7#U*8}i6z^{aAUW8@ z$Y>XJduo@vDv{W5y}i9+9uU@AW3(n@8GentWqPOw41_{9e!*(4Jb#c;pjf?rGeZLd zBYE)7F~+P1a<$gjwvFq$e_1%uP`+U0w#)Z>&WqeP@%W@aIC$FvDu4?>>CreNEB)nh ipU+RmxdhAt-~Ip%4NTtB)(&(40000<MNUMnLSTa46hoZ= diff --git a/interface/web/themes/default-304/icons/x16/address_book__pencil.png b/interface/web/themes/default-304/icons/x16/address_book__pencil.png deleted file mode 100644 index d56768d3e4b4410cc58109ec0d83dc3e027c699f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 763 zcmV<X0tEeuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008QNkl<ZILnQa zZAep57{~7|DTpvCR5HIPf;pux<%cvSUov}>OeaN!YfTpp7ibELVaqJd%rIM8LB5ow zSnAB$meU;K+#0D^x|Yc@dlAhEqWB^6-?=Auu@6xfemsZs@c-R&4iDqz=Ee|C6N>Jq ztZe@eN(fAlP{;_9k{D)5P}E>BKw~sQ-_wJxzCOIR*<f=x@M(M;->0WBJ3o(wg$0mc z8W-jTEX#5{77B%ED~$Ok+$okM2bT*PRVo!Gv|0GlBL6E~UtbV|pNoqiVd-)~b8c=f zK5H^CTql98_7vXKh%iw7o1q6M@&1v7_O+Ly;hdX;XLz`jzzbTGN+m`c)A6<@1!Klr zfOCXr#@>$psuX;Dl8)BAXpBrwVnske8i5x)Qz#S|u1|xby$nAl>@bxdK{ugGos6kL zJ)A>&*y~c!qKcy7P=R2(g=Ad<U3PXhJ@)+9L3G^|VxT^Ut~okOlW67oP0C2jna${Q zckef`>@Js}Ei*F{efLgaX0)FK4%6CJe2CVL>j|`S{i?Gu(5lq{d2|iS8eM`8xm*tG z-J_WLV1?mYJgwR*2mYw0J5jhGiNQRXiBKOOLnXt+x&%g<Oa@CuGRAEt=!^EFr&31O z{mq56_BP9*tJqAgqQEA9e~pJgka*13mw$t9sZ@$r<w98N&tq)Bi07B%peu}n;p#pZ zN_U`D?M1^C=hkDy-U08(NI8KQSR@h&EaizLuovcsN;rDkDb}V8K3tRUiQDq6bPl{C zBF+$aL9bXWhFP6}m&N3-MSGwt*p1fwFgz{uq~XfEjnJ2bqat-Dor85DAz5n!0~zk~ zCJc*2B65X9bl-^QX;5teX6>lH=mA}E811JAvgXyn!8xn^{KO=;h7)WfydZo#?!#D@ tL-vpw$vQ<r>^s+9tS3{ulnEwm_ywwyBqoLfolXD%002ovPDHLkV1j_xUpN2& diff --git a/interface/web/themes/default-304/icons/x16/address_book__plus.png b/interface/web/themes/default-304/icons/x16/address_book__plus.png deleted file mode 100644 index af396b41050db1bc095eca7b12686d2569710525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00080Nkl<ZILnQY zYe-XJ9LCRd21QgXFc>1C)S3!?us$gGVX0^~EiXqBD%V<@INAqe!D84@^0KB;c}dJn zyD8aHsodIT4fEFWf~CVu=B*T$6D09N=F_{QjzX*s{CHmYpXYbp^QYKsHbuxFXz!<c zTmFM$0u@ZtR8UF^MXd?6Pt0aCS*<X3cA~AX4?T7}><$MeW@hkhejeYKmax3M3{sT3 z%N_xX#d6a?(=<#4QUAn!i#197?*hF>qrq&;MSN*iY>Ins%#Xs)l@*Y(>~}$9c6K(V znl50ZP6GSGbNEmz!a&U`Ll4g4(_;xUZ@C%?*Wx04BO+u3kDyttR%2YBiI27En6#Dw zu2ByQ!xr@4OUKyLOgztt#HiB=FCI@y@CaV0R4R<rOX0BG!jIWubd;Y&JE5&K6?20| zxQ2`vt~-xr%@L-&J3Ral!6Pszl}hH?OJ4`kRzhQ-{t|O`^X5hhlkWL5wSd_{pir1e z@CZy<Sy|}2dm0Pl{iKk@q)B&z$=2(MOuFX{Dgm<tPFPq5!6Rr@C={?&reW^04d$W* zCR+-Hf8_C+g9xbhN7`HYh8<Ytayhzhr((w50i*U9I;-W(xxcYsHTAjR*9Ji1Qi7`R z9orfgbeO8*cm(Y-nGEmBY1rzoU~<5UmwB-;6vV=OEe^smK6sV>;8*Ph?UW+4Q2_6f zJrmR&PQ|*QTOyI5yF8f`j-u<48jfBILr+5vcqM)iOebxCD&6&dUC=8Qi_uk@h}Syu zRc#Cm`Oz@sMZ;7W1EFpo_UpJfQ0#}0i3o&Lhr=tEGf5TgsG!KhC5(tfBJvB#Xup}T zDg1mcxQ<}3F7KS$5)dFJy=`tmDB%@h`jj7K`x}ArZ0GhfK66yOkDk0ALg4%YP9_@C TX7j6=00000NkvXXu0mjff~HtP diff --git a/interface/web/themes/default-304/icons/x16/address_book_blue.png b/interface/web/themes/default-304/icons/x16/address_book_blue.png deleted file mode 100644 index 6f855e7421f91af66e1f0517a05b172d732d8790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007XNkl<ZILn2T z&r4KM6vsdF=FRgtPG!?ZEczj|a7?5hM218`L2Zmc3ZZQoM6?RpwG1i<iUR+E!iXS* zu&|&qiWa3N4HO8bB$_%}GEd*V=iC-EO+rW)?&91ZpY#2mdv3z_eSmX7gB-iFjsK6& zz?EFsk8=*cyx4HRukTWjN)ZMD=`gI!n(AuORaJyxNSI2|(%IRylIDvDK*NLXZrFVm zh=Ik`(=Q!9k_-C*CV}2R3cRMKCj6Ebj4`WTPNh;f)sCLaJsr&_Po4uR7CcoYj$@)I zLdBwDan6-ClRn9$PjxztQ)MBFn3<a5AAl3V#LKj7S;v9qO_j_OKYsD(?I=MI;8ZCT zi_A<<yOn^Xh@d8B$Hp4=H`Z~z=Plq+RZbnu(Y|*xPltctMA_cf*0p}ah7SPVAAq%% zczKD|#yW01ct?FU!-eC!xOid@_xe9kS6hvVV^jo_&v(~mvwLf^*}ni0!CH$k1`(ls z-&U^O8z{x97-O*3;>5BLMHFUdwJ<yT*MhYc5nDNEjKP*;6EBy+ii%Ju7MY)$(|>9p zq7?-XUw`3z`%d1BjB~zyCohM`ae!K3ds|!Anzd^`x)n9>t+hCp;MMRrXOHF>n=Eka z@gVQN&T#iho}sY?)H$43Og`UTlgYGZGMS2kaz{FbzWv0CaOP+u03Sx@7##bBbCfJt zVIhhTk;F<1DOCk^kVrBzvB>b)JkEiaOyVVdaHS`;CZ<p<vJ^$WEH2_Z=jwqqs*3M< z1VONBD|?>D^A{fna))mBx?-^qkB+7jz;56w&`ka5Z~y(w@$^?_p4|kNf$zTopGjZ5 TZ?$AS00000NkvXXu0mjfc-=ui diff --git a/interface/web/themes/default-304/icons/x16/arrow.png b/interface/web/themes/default-304/icons/x16/arrow.png deleted file mode 100644 index 82cfae37cce484b4f63c7cabf3eb6ab65fe8ccd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005nNkl<ZILl-B z|NlP&B^XTTwO?Y;@3;)d_H$prvBSKVGl4k9X4X>%i>VJ7jQeha)oawB!fk+Y?+pf! z1}HuQ#W6%10K!H+*TFUd@tGM<{{IKj7E|uW5N!Ym8+Kg<*?6Y&>firU9{l?cVgp?l zgJFPf+r^nc!85pU<Jq78i}ro_-+S}Ve-Iz2J_f}AAO~p6um80tzx}T{@$G;0@vmT9 zb?oc^%A;TZ7wq};KV!>#Fm68o<3C8fdfmwwxB*J#ht7aBq-}Z!#|i6R{SRL9@W0ob zoBv&=UH<Ph<suk^*cm%s{0HfQ8z7Un6X?wE|H}@2`CoY8^Z)1_@BVvkc=6wL-Shv> zYoGl$UHas|=Ddes?7Q{#e~^0F{9Onah^KFwDVDbJ3@)s?_4|Lm)nES`?fU*7#0RR6 z0UCk`1E3&-NXmK)ES$WKK_GtB8KE8j|I6+9{~yE_OjsQQQjcN)w{au`mr(=;=8jkl z!e=CQ{r?Z5c_Np@@VM7AuuAGMfB@V8T!2YbgMlq*?imnfwJVEZ7SlwLM>c>7i1~n6 z28gwQ*cgVHtcsU086}rM`Px7%3&i|D%#3URBM`Gg4G{xkDI8b~s+j|1Dck@`FaT6! V`gL9)4>$k-002ovPDHLkV1mOd{Wt&s diff --git a/interface/web/themes/default-304/icons/x16/arrow_000_small.png b/interface/web/themes/default-304/icons/x16/arrow_000_small.png deleted file mode 100644 index 02867c8e314d3df5a02fb7612ae19c136be8f943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmV+m0rdWfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002eNkl<ZILl-B z|NlP&C759t8lcyHiNUbzDueCpXAE|8p3k(O`{E3cj<J|>A1p_-0VaJn8GxG3%zXO) zKZrJ;d@qJ519V$2%mgYt1H#<#tIkBPz59Q{qyPUwe4tzmK?7`;Jbc#i;Q#-m%m4p} zok!r3oB#hSR~|k?&;ZGt?K35^ww?iDkPFNg-u)kV?*D%fA1FuI1we%iqG=l$gp=1X z@Ww1ZqjT{8e-O<Vw=xDKN3;QKL30_{0_V(R4VZlfNXGyTVIazY(WFc|1^}}r$nmj% RUUvWh002ovPDHLkV1f{~bA<o^ diff --git a/interface/web/themes/default-304/icons/x16/arrow_045.png b/interface/web/themes/default-304/icons/x16/arrow_045.png deleted file mode 100644 index 6dbd51635918c324d26667c93b903601b7e14e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmV<V0S5kwP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005NNkl<ZILocl zNhpO;6bJCzBN9r6XIQW>Wk{JK8B2x*3rdE&F(pdMTL@W*QV1E!kjDb0C}WweD0M^P z85YJ&2~ngB$2niGFP|X`Zv8snIj8%-n~wni`wR9j0TJC7vPkV^2NJ*NPy~c^oqfbZ zJ5NQ+0YKgM8`SEQ8us3R_CE&Tk_ERO@Sv7`QNQyHn#Bi&ij^mzog%=qQZTQoRpwK( z!F=m<%&&f%G$K*8_5^w3H!{uQJ<wbcpw1g(b_J8nNi)w}%a<vPdsnZC(xqES?9@SA z>pH|VuS!z;c7b+32Dp?haSRcK)29&KBxJdxhf+<_ZUODT4R9=;;}{~cr_LdyZBv#$ zaso6@89IX4-aYC2OMq?u1ji7OJaY~1J;$>6@hhM?YNQ%Id?EFU0L#oFBBB-^!Fupc z7C7|)G`Gqc=JW_v>WL!2JY#@xv-E!9vG59pqc7k*_X^b0+&sRLnFgdWs#2dZp!|{O z7^pp%QA7zhPSy&CSpcfk)BNM1o_r24LT<=k<)5QbCA14wKyDHCuE+`5AxmV2jFIYd vfB~{X4#-}A!A3u`&|fssKV<kN;4j_*%&<9Q;p|hR00000NkvXXu0mjfyDr~r diff --git a/interface/web/themes/default-304/icons/x16/arrow_045_small.png b/interface/web/themes/default-304/icons/x16/arrow_045_small.png deleted file mode 100644 index 2d850694e6429d193e18e99f099d1f6014e29f40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmV+l0rmcgP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002dNkl<ZILl-B z|NlP&C759t8elv78H3%N=QHi+zBq%7L1IK1U@_%B2%nkx^#A`UPyYX}yYT(<3?LgM zMw9_sjb|A2+ArCeHXncHG4aIzs@wnnXCC|f87M}a0kVaAxRompFVXM6d^7C)|NqVt zPW%VaKr!MBkjUD)M631WP0v&R|0^^czo}Wg{h9yS|NnvF#2LUFv;2(h@&Es&%J$p@ zvX}73ud)M)@x`qqE)dxQ=XkIN%svCeOE^Opa03ls;Eq@fGI+$KM7kRQ0CV=(mwJUe Q>Hq)$07*qoM6N<$f?z6sZ2$lO diff --git a/interface/web/themes/default-304/icons/x16/arrow_090.png b/interface/web/themes/default-304/icons/x16/arrow_090.png deleted file mode 100644 index 7e670dd348da116ab08d0572011f39c22304f598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005UNkl<ZILoDt zPe{{Y9L8Vf{6o<|o69;BD<+wQ1BFO1I*5nBLkBUiA+hjMoh1CTlby<oQ_|Xq4h^h1 z##rK99wHL;@^%oTLvu^39Y(Z6FpO|}dLQ98Hn%y!FMRg${P{f-0K`$)`?>V!ldwMd zEZUqAadl=}bhzW<`pd*^h2%?3pE-N%mmA<m(iI2zQXhU`dW&WG><8dj`-_?H05$#c z0~23alGEE6Jb3pf%VabS`pioXv^?HmD5qj+47^PiF#hEqn6p<f&@?7#%8AG>Mpsi9 zSxMo3IEh}*H}t)Z!5-K`zb}fR<zHZr{k(xj$EwRRx*~JA<By`#DPi+Qus>rzZ$O#i z!tnAQ=Z8LubA#{YEnf`Rp01<E8wE9et;2rN0rSHT;`F@`kvIHtSlyfGn)?ZA`pioX zsDBa0y8#V(C78rnPXeuh-=Nkq_6i10cGyLYwMQ6iZ#1N3VFw0Z3g&tBDy?PuhGxOb z8_=%8)Fh7ez9P~T&OjH;pl&e(YWmEzD>}f_)n62qH(yB85^y2})P@0S`ngwZpjyFJ ztFC=;R@ePpW>K2H;<Dm+sR6yhs5o-~rxaDW1OEZ$oB!`Tm(5`S0000<MNUMnLSTX& C0r7nR diff --git a/interface/web/themes/default-304/icons/x16/arrow_090_small.png b/interface/web/themes/default-304/icons/x16/arrow_090_small.png deleted file mode 100644 index cd82139450ab3c89bcfb5693e08aff49bf687077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`$30yfLo7}w|M>sko>_H9qJ&h! zjoRLWMYo*Ue(%&zdh>j*4f7($nh6#c*&=*u87`HiJ-ht>zoSWq{}x8J*l@?L^FHiZ zdHcTq|9?gO|NrJ63WbY!F08OGUH1Rt|Nn{E@BW_O!?iH_{r~^`Lh7d&eom@2e%keI z&cnX=(qrN)SY03*7_`zRoVj;QVbZ35Jy(JHfX0KBFJNPPcS2R6=GYUC3#<-ON7y@s xQyH=!$Z+t@u${d1;~8TEUQuaH&zT`S3`_h^9D8nlY!A>&44$rjF6*2UngBHIZp{Dy diff --git a/interface/web/themes/default-304/icons/x16/arrow_135.png b/interface/web/themes/default-304/icons/x16/arrow_135.png deleted file mode 100644 index a0882c227845eae464b8c5a49ecbf2837c2fdf54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005nNkl<ZILl-B z|NlP&C76L~1~|-nITMJ_5Wq9-=e}ToVH5*wW<5PK;m-g6JvaVg;7RxX{|Cw2&VCjH z#0)TuVu1PNduQ4%{r+El{09o|z4`Y)NX}x){TQGj3^)xi>bZWV=EV2^xjR3BamJRn z|LaeG`VSHZ;(j1zFzmj@px1thLA&`JgI41iR0DKc&Yvke^yPoz+L!+W=G^%2I`Qm( zmkDS7=kI>@A0!9V6r);wj6uG5FM~wZRtB;3O{fL{CC{X9fA!yS`j!7Vdtdywn{pA3 zlea$k50Y1@IvRu10HDMfueDGAC+vOmAH<H{`TD=XtUGWVxam1qT&`$O3|0exf@cEu zefkfgfw&(;yYBe#UvBYBIJVsM4lFO8xg`d}0HMS+XFymuX)Rb1M1%OcJAeG=Tm2P| zm9~8U4^@k50B`iNnLr%F>)FV_Z4$`<qCtF~sHJBlcmDg&wDI46ksbg3gZLnEF4tOA z1K4zf8JNX18IS>p&t_j9!yY{E4Bz(u|3Nf}4^xL?01z+&F$)lL0x>@jivqDU5Gyg6 zq~$UB&N#zloKghj8w0TcNFJL3%s|Wv#2i4(4a9svEC|FRKr9Z#l0Ym4rMan+8v(~6 VI`A8NqGbR8002ovPDHLkV1mj+_n!a& diff --git a/interface/web/themes/default-304/icons/x16/arrow_135_small.png b/interface/web/themes/default-304/icons/x16/arrow_135_small.png deleted file mode 100644 index b51c5c67d59bfae5a9ba4d029aa1cc10657c1548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmV+o0rLKdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002gNkl<ZILl-B z|NlP&C759t8eli)`Aqw{FU}xikeKc4XT%v`G3EZ5nNR=!ue<R5^OPt5|AW{dF(4++ z0KN80XEKj{{#<qY|9_8(C;po@AAbfEv(sukL!1H1m50xSo&W#edBTbRAX>lw@=c)F z64}B%+(a25k+t<q`qlscHH)`DQ)oDT)A{88|0>NVZvw@a5M=;g+{&4}G0V^J$FH&j z(o4ij_uN$3|NlQoj3@(u3K_T~7Bc`1VBid0z|9&kdkGMqVGEq&F;Y?@-3<T$zlYd^ TN33;a00000NkvXXu0mjf4Apy_ diff --git a/interface/web/themes/default-304/icons/x16/arrow_180.png b/interface/web/themes/default-304/icons/x16/arrow_180.png deleted file mode 100644 index a1e5e6bc61f8403e588f24a32090b5ccae1eef74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005wNkl<ZILoDt zTS!z<6oz*rmZ(^fP8am09<nUM83-}Uv?S=UAV%1cU|3Iz7ra6~1SO&dq0)%@qL?~3 zl?0KH50>575T<!S@B$tu1rub3P}IM*rtvVtcp`AYxA$6`e|=j35WB&9#8-V4iI2Yv zYyG51Zk!dV&6>E}wkQdETI)}-&AI9k9nSwtAPMEeE40>4{HLH{Mv_F?HGppxT587w zmW>5<6OttA**s7)wh8W&YJLPQ?<hF?XjsytYMk3b;eZ<tzpa61BPegz1t%YTkt9)1 zr#Er`^@^8*cdMxQ=t23A2W21JD1HBzl0i2rKY74;U2wc~P(7L2KyKeJoowe4Zg$M! zddnoPHjN;oVb}}zw(eQ*jxLDH@0YQ8Z&mf^I&QyQMrx-EDbF=zI$gNZyMT1Z0@8Xk zT<q3xp-V%0uM3>l1vH4m_xhwc_m#T!c^y#>4-($|2G2%N-X0*JM{zLQArIW?QRjz% zBmDsPhjN@E`tFM$IIj!1LXVyik=Lq3WLAfau(hib0|4KI2)EdRh_Ge_3brf6d`g5~ zDv^6{v?|6F6EBR)Utl7lh*;t@VKrHDicKj+o!tA8K*SOI`7eLL9%7$QVkV9mVD>GC e@u#|AH~aw`Ci-F}_rJaX0000<MNUMnLSTXewe$@D diff --git a/interface/web/themes/default-304/icons/x16/arrow_180_small.png b/interface/web/themes/default-304/icons/x16/arrow_180_small.png deleted file mode 100644 index 431b8384aa5ed0772f34cb824e0bc891daf63b14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmV+g0s8)lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002YNkl<ZILl-B z|NlP&C759t8lcyHiNRvZeFnQZ&tvT8zBmJ<XWGtw#$ecW6)Z=T0p^qM#Q+UCGxO>H z{~+3=?<VmE=(b*n0V+H*^~wML(QEJi=Z;@>2E+$ppxjJ?1}Ik^KGX5w|NpS_2poUu z|NoMk|Nq-AdH9T=0g^e}V<fV+o=Lg#|G)V{hzme`5C+N-b^%Z!17F<A7~YuWXN(U2 z{|};tlh-kbrfmev5oG{S69Ze|oEX-C*=K<COtzr8#2YZ0lu5?`Gj7Qh9R%Z100000 LNkvXXu0mjfOvrVw diff --git a/interface/web/themes/default-304/icons/x16/arrow_225.png b/interface/web/themes/default-304/icons/x16/arrow_225.png deleted file mode 100644 index 1d5c216b11ec9c6fa9b3819b9de55ce63e5119fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005lNkl<ZILob* zOGs2<6vsbip+pnLn4>2TGzY6w(kEg3u~ANl<YiR0yg~GJ=6FN>UWXL0$MlWx#Bc zW|I>wvKB?U_<9KCNLrbXg$Wj8_?WT&p8rL!4oL=j;K#Y=@%_%~DgbIPsC^M+G)$<> zrY|Pxbv~6^HDYGg*=@5br*qB_G&5`V`R4xwtuuV2o4x|ftalbPer^?v5P{UPtX<=O zaOX`B^`Cx&HTxj~E(@BZ)s7kzFte`pt>M<IWsB+$L2T@92~zI9Bf92e5X^#$xpHI` zH=iw9RJ>g^=c$$N%_Ei|q3ku$r7wTU(hB%}Td&}n_oqeK(306tEFUs>FhmgV93<NL z!jG$-1(Xjjp`iCWE_6@gT)Pj2{ola(v6ANokNqWxx$Y&pc+ih459e{#J&7|dW5{Us zA-``LoW<UFV(<_J$BWvP{lw`lfurC7(HFf7NOsR4v1`gC_t6~K7hI0QUKLr?rw+uY zsm-ti_RIH(PU`m~`u>j)QapZecJNZS5uV?vwudFKMV(SI)NxOPIPy4vNWmc-_5=_i zL=ObOdD!_5V@H9+QCpVNZOd!X|0K)VBfIIsNx{Bda7b_nF_i5>?8a{RzWj~raNjO) Tat|^i00000NkvXXu0mjfF+=ye diff --git a/interface/web/themes/default-304/icons/x16/arrow_225_small.png b/interface/web/themes/default-304/icons/x16/arrow_225_small.png deleted file mode 100644 index f082991f028b0040350f0ad98915892a76af9b1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmV+r0q_2aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002jNkl<ZILl-B z|NlP&C759t8elQyK7-ZtM+~MD?=aZRe8O!%_r($*K4UlMxd%}Om`}bp6KKd8paFJ3 zdP(5Q7dK}-{r?{%Mw9`1?U&9>d-DIkdF#n%4s-6^Y`g#ezx&*~H-X|yh%!LA^6;6k z^Z)<b^_}<+qK*15-UNy*(QG))O_Tu=SzFI&u6g&_@X-JNR=p?wYnASJ1{AZCDcDV1 zAo9j6KVy6R|9}34uRaUz`2Sz?!2kasF(4++0Jgw6Gg$*>pFzeTF}9$&BPJ!%-2ebG WIoKe;F4UI*0000<MNUMnLSTZrMST7M diff --git a/interface/web/themes/default-304/icons/x16/arrow_270.png b/interface/web/themes/default-304/icons/x16/arrow_270.png deleted file mode 100644 index bc00395a32d594e944b5ba54c8a35b4048d372cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005iNkl<ZILoDs zPe{{Y9L8UkgHTe43N~oPM3Cq(mjog+A@yP&0?R=^gUITTT{IOP6nXQMkcgA?;5;-( zXi7<cm&NeV>mjJqG8Lw_i=r}EAbWhD(c<@~o%+G&_wsz7hmQat{)g=E!q_hZwd2X4 zLh1;bHwJ-kblr>`S_K}*GkCHBFq=09LDle@89DHMAA!X*_%fR}2Em#BB~dvT*CQV- zrE%}|E*^eKgIV8mZxEd7{2<B#G2t2bmO};>Q@B05h2B^S%(;#`?k$4TT~Sfm`#Eb@ z$gYJQw1if0XD$I|-q~}PS3ul73!<zqCT~1nM%|!9Yd8*O-g6s^z}4|SsE$&PKk^eb zLtk+vybN>4y+Pn?pVu6BU&;2^4ld1XqH%fyzR5LsMt`6>w2Jyj0(DafG`~!OJMIkv zbri>M&1lEkrsdU7dvJx47B0?jgFScLTLh{UCD+4RaqBZ#^YJ%|BdNbsyh($1_S{(n zN6udpg<iiXYIq=u{2{HdWkQxmGqAnL!2K=*X5QJ`9cKkUgFye;PLzuRU$<tz{8T#M z0(_Zy*MI*K*cB%gUd1_^_vU?D(}?8D{0Fz<a6Z8yMTx?paOUBtqChV=05^F9$Ti8= Q$p8QV07*qoM6N<$f`WSQr~m)} diff --git a/interface/web/themes/default-304/icons/x16/arrow_270_small.png b/interface/web/themes/default-304/icons/x16/arrow_270_small.png deleted file mode 100644 index 4971995972f94f19b18dae22999a5297db71563f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`=R92;Lo7}w|M>sko>_H9qJ&g} z`EyH&+vjTyjlW;Go~|IJ<~D`V&Gx#a&T?CphsMV9|NZA*<XAJoB9JZP%KW4YxqA;J z+^Bu)^LFn4|Bfad{6gxd7{1;THg4=XUvPZAm2mCH|MddAkD8Bk8ab@XI6t#1`v3oE z-Cf`Bzq4rZ+xh9gy~i94W|zxm$2yj*u@^3S_rLyW?f?JPbAJ7oKf>NAoXQYj$n1aR zlEk|cs_7+sOnVuYfGoer#$al=f$dCR;>Y==Y%a||T%-+{J~J`6xSVLJd6jtt=raaS LS3j3^P6<r_u8wah diff --git a/interface/web/themes/default-304/icons/x16/arrow_315.png b/interface/web/themes/default-304/icons/x16/arrow_315.png deleted file mode 100644 index fab81cdb4b27a8d4a9e30618aef139650474f6ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmV<L0TBL)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005DNkl<ZILob* zODIH97{^bONCrjY6?qg{uo#O`9#M8=Ll$%_hLXpMu}~~gA`>EyNS+JE;^M{vC9yf> zO?eliOq#M_qS5F3E@s?DQk?qr-S7WD=eN5I0N7t({~|DSow3xO3zjixW!WQl91%2W zr#z+Om?gLFDwB4C-gpWIZs?Kdxdfm|`|kza=X6<^PhX*7!vUQqPN1D~m4NPbpAV=6 zR3M`5@CB;n2N$h-&p^4p{fLu*ChZ@%1ym-t?C_-KZPC2*3>A_cjFvkn8oz?NH5*Wl zm}yon-hA$A0R;(7TRgsTQ`D~8A+zrQ(tGz6jItFdFO{w#Z|p?*Mmz-+#?-I!Xw!<| z%Qnytp1LTIZk3reaRt;PZb4{H6^kt&QUp|l*T_7qdQs%c_YgmNtwKM23)CTQ!RPUf z*0bR9ITloAVL`@OGa?KN4-h_e?;>u-4wNIF0y;j0Bh0UOf@@1AMWXD0fSE@Xy16Hy z4*6c-T`<g1A|jWZ5HRlqe?&`2PVkf7GwL<EM3uk`2}P1LX{ISne!uvUG}AcVjruCk lAX+2@iTDLNB=BGU#y12NC;eK;X~zHn002ovPDHLkV1mCZ*aZLp diff --git a/interface/web/themes/default-304/icons/x16/arrow_315_small.png b/interface/web/themes/default-304/icons/x16/arrow_315_small.png deleted file mode 100644 index 868724a4b72b948eca65f48d828f20b911f92dbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmV+q0r38bP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002iNkl<ZILl-B z|NlP&C759t8eli)xrhDS7iWNYiOtL>+@=%nFj!50#9%SyK5+&B6`q;-^#A|Bl`n1r z*-L;1*nz~%C*PY%lmU9}mzH?UyL+?a{{R0DbMD<VZ$0^}|Iz>dK=Cs~8KBv4np?T@ z@Dii`i#Nm0|Nn2-cj7;Y28t19fK0(|28pb#c3P!7o>}#t_-}aV|9{Oj?>+;?h%<mU zW;qC-F+1}Azu=Dl|M?fb`mD15|9_AeQ3kLD&1GN<oHLU(VD=eg3=$hDDUt35006vT V*bK~OE^Gh*002ovPDHLkV1ii;eQp2% diff --git a/interface/web/themes/default-304/icons/x16/arrow_circle.png b/interface/web/themes/default-304/icons/x16/arrow_circle.png deleted file mode 100644 index 8087eeaa43fc931fb04fb4d2a77efbd7ecb7940f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007oNkl<ZILoDv zSx8iI6vqDy;)|A1qRv2+feV^ZYN3TFD1^%Nk`H1o4<k{jB}ihX6^c}1HIoZjn2|MT zZaHS5g<4n|+-V{#Do1n4Eo_;>t<=-`E^;#pdg#J$?svZPo$oS&h{XRO|AbwgEN7&@ z0DmLn!KgzkChS8lkBZ>3A+g<H{Z$ZhWh|Z-Qu!#6zHdpUbdU(1p?@hf*E|=aYqjkO zuN)6&PyI&$45omQiU$@cPnxImZx#qM>o6v@!16tfcWDuoqe;P~gPVRU2)yuC6I{~Y zQP?|A*^j=`#r{Qt4%GKaOh9DiaMqEw&xV|?Z+e6EhkjStKo;MuQ3|%6?M+Q=8Xq~< z{)tXMpCO**zk|2`xz}P_;Y)wkXAayRH)XYdypzy4X5?9`6!_$sjTs$N)9Eb}6jjk@ z<++5Bmca*vZ~n8WP<?OP!TR^FIBQ|QNGb5hek^5nPLZy5n4rB*JQbeDpTsleo;lsZ zn`f`w9^@V--h5}{tPNTz*pSgKrL<1c-s=Mdy*~ZEa6j6K1Np5<yC>jbhYYgNN`X4% zt}&)&Xgc!7Fm1{2wyF=c#5pH73g`Vz!YS#NfQE-1GRWdaDd0eAK#_T5XY~X{*Nx5c zEUnWu#Nik~!@~|4WO1VuI3?C-)+X0mf|_l#x$X<?Hhq}&%kQ$TPN<duG(7B(K^8Yk z!K!^m;SgJ;b<)+pa5v48Tf+=_w#?Cv2lFz}@UTM$S==ZEcvLRl!Y(9JYad%>aX8sC z;&^Rx+QGCyK-TPGhYYfKRu<SXu8gnB#V0})boi7iy0})Qy=0bwhQ~Y3_%Uv{Sy`ZB k92plz^AB8?vnt&F1d3lLN7x%(CjbBd07*qoM6N<$f}7_{@Bjb+ diff --git a/interface/web/themes/default-304/icons/x16/arrow_circle_135.png b/interface/web/themes/default-304/icons/x16/arrow_circle_135.png deleted file mode 100644 index 5ddb81b1aac080155f41f5132431f572401baed4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008hNkl<ZILoDy ze@x7A7{@>RqCXsECAwQkt0W;VEzxRee#B{pX@}a>YP!o(V~v_0Wy6|k{TPNylcFn5 zKU7B|#J+V~3&Rz5UDrkBYUh-AJkK}$Vf|tA*<Sm;pXYf$@9(}p7yz*Ufvw8X39K&o zzydECSkUFZS;1FKG9(jeMtI~pqQsemJmjUF$pT#06&h1wHRjUvjxlXc*AFuSs4a2# zhV`LEMlE_|lLzF#7l#%aqH?>xXP?rJRiETXUm|7%2<!pQV12Qn1HH080n&4?nQzt` zn>G1eAvwBl38^h3*@+E9>Mh0kM&InW%?OWLcTh8AO=}qe^uXGJZY}OegaDs2orG9k zVc42-e;^_5mN5tG(<{!t2%~TUwH$lAqS|Cd4@BNJ>akV|0bVED2zO<@X~%w5k0LOu zGi6D7`%3SOcDDEgF9gs{uqO}6d!<v}>V@Q{PZr!M6#_g`pE8f5Ph1W^_!Ja*?Om|@ zk;hWkl!wgaP!n5_e4oubs9|0hv?#5W;f#;1)B}2fv=Bgs`APRKpqc+0>eJjgv4PD? zY@|Rw3Ii1NCLk>Yh!wR2A6eTEJFAQWv6=y(o<v!<$0@#s&5o&J;`kc5-<jvS@bVtm zQU1Y#^NB~GA;NFE{SkaidSUzBL7*DRv)`v;c2PH&Lv*E_df`>Q)_}4;kY={&v7UH| zwtLG6er@$IY-|_-x3WPXy)?Z=M}30y26eyHyW%tW-!X%Ij7n=4Sw8U@r|-H-@L`We zfv!GvR&cvx1&^Aq;HMcCAnjE71s1BUU>B|G5Ji;8X6`PX_>nkAPd07aCH@x~HW4LF z%QBzom#aQnoa)9wq#lPEMJ9{rSgRgq+NptuW!xN3Mn?$1<IDvlU*)7RNvNgV9IsH$ z|G;r>bM8$}cD_x3H1%+X9xucZnescp7I8r4B9ecAmPH6h0Y3qZV-EzN%c{%(0000< KMNUMnLSTY3R%$Z< diff --git a/interface/web/themes/default-304/icons/x16/arrow_circle_225.png b/interface/web/themes/default-304/icons/x16/arrow_circle_225.png deleted file mode 100644 index 3bec0d1063ffd36892a3de637d4a95a1ddaf0688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmV<S0tx+zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008LNkl<ZILoDt zdq`7p6vwZ_%(BNMO*Wr|mM)=eMrfLvWl}AO1j8qqAn7D)pceIqnowcovc#ffKA2Od zrkT`yC72jo9Y`A0&D6`-1kJRznK@6tb7znh^hXyy_kPbg-|zQQ06_f@+-t9#p@PaL zsL%&GD(sO#7+x_YCDan=6;Mm@h92}{2Kl`}a!8@qrgzS>g~N+RIkOD%56gf$y=$Ju z8+!g;aBo}^rO*w_84DC?7omXuwhG*pj#(h8Qa6m=RRw{!-wF4ZjcISbS%k}dUm&|< z)_lB@Wdcjy(+FzZ;Z4qbhY;e$jQG}DYr*d8ucdKn9h=)Z17}+eW-`+OH%8*nfS|@* z#uI}%uX_fPTJ$Vt2-X5o!JtywZZKvv=^*^h2(z<r2m@T$FQ2CTuMSbTizppsGMjZE z>zOuUhF~r5x%85jw&@{7H36u1Tp6H5B<Oy=lk${xbKnkdX$_N*^J1Fw5v&Eo(3_-Y z=VFx~=TN(6cTjHG8m_?OLf3slg4;O_`sn!jNyvOY1*ox@D-dM17e`ev+UT0eQUCmY zjUeOcQKz(K+#~b~cLRzBm}9jp#MDg~$*jaXS3t}X-@;eQeKq>FAjNnqnXhd*)3nDi zMU6K)vHLUNH@amSf>j0(7Z0*zmf}yig3U>Fe8<$rJiq$clI?Y~CH_@9xod7u-ljyA zm_UcL&BGDRSMXMS0@VD}#vYOp@{{YW1smg)l*8%jZ5vV=l3f~2S<Y%xmTR*~>eXrv zUmsgV?|QZXPHGc`b}azTgdzfE>msri;KSSMOWB6z2<&33BJD5sov<%wW7a-i3R`pX zAsyIj0iTW~j)VOcz#Soh3;rx1j|0KWW}Tzh#v|x}jp$S)&--u$FIcAJNy_Oz2$oe7 ozvr(7b_6~_KoI@|^f;sc2ZU}6P(tl9y#N3J07*qoM6N<$f>zRIApigX diff --git a/interface/web/themes/default-304/icons/x16/arrow_circle_315.png b/interface/web/themes/default-304/icons/x16/arrow_circle_315.png deleted file mode 100644 index 7a4f23eaf5648fa632f1644b2f148fe2c4f19253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmV<Y0t5YtP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008RNkl<ZILoDu zdq`7Z7{<R2;y;>_iMm0ViKY%oQ^79c5Rop-{>VVglv0v(Mresx<~3VVwq;2ciFvm% z!&!-lx70K{x|rI{qa|~?g+WSd>8!W+6FFD}{m}=%bDr;cpZ7V3008+PRv$qMj_fX* zCLwqAB=o*PD6TL{k$Qw(gK8<Ah1{DZsAG}xzZFQrE9W#x9gDgG?XpQR`4cEqQ!lJy zt_w4T2uu0B;PyvJ!~?yybm|9O)+|He$TG-AEl@nZ0#~#aD0;OF*WXwGKg5>nVfD=y z1m1Wr+*dZGQE(Q>?)wVoIv31`YxP{9e1fGMRnBt7V@r_rY!MXP3Q$dbzQFJ5m^7|= zPM6vF8IsioGu~PM;_;Y(l6PdMY?RJ#QBOW$fwb07P&8r!dglv#@`vlvyXH-&RWl$~ zjB}!bkr)gRuiTf!JCBXU`RZ@y4=t`z@^%TR#}{~H^|Kk>^AK120jS=QJxIJRy&#?! z2Z-l|=jGJ<6YBE?uIZg@N}CamR80caTh6u<VQMRJJKs&qiF;-*aZT%>xd6<FF&nxy ztz#QsAV_&y7u7gz+FvsbzIg+jAo)p*W8x!XAODazo@ypkqqj?x)1Qf%l*pRNDBSVj z3osxJxHhcY(_nyz#u+o-+06+}F|>e!`XG9;@OqsBGpT;Ep-8+7_yYU5MxjHZN)z0& z03ziV5H}gk-g$kT-SGw%>G96%Z5OKyYMjY2lj@M53d0?1zF_0AI${%DEwN8fY2DOj zaB2Dm?k(TJzio-KfciChk8viqJE4rntbp$D1@tgZUc@RSLt-6Wt+B}&)Y(=VO*ZNk zKo(GIY_bRHtfQ+kF|(a!=~-W3g*YQ3#>pp~2|km{94b{Zk~_ml4|70%lL<;XxnYyr uUd;F+E_7#o0fX2gPKfXyIIm?Hy88=OiYH*y4on&V0000<MNUMnLSTYYS78bO diff --git a/interface/web/themes/default-304/icons/x16/arrow_circle_double.png b/interface/web/themes/default-304/icons/x16/arrow_circle_double.png deleted file mode 100644 index 47eafce4c7cbf24635334e43444a3123e9fdd15e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 zcmV+l1NHogP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008fNkl<ZILoDt ze=O8t9LK+IvdXG6`f=vRF=AJLlsj#wiMm;4bDL#L>q=t%QFmh*yBL3nLg;QgEh#qE zbwr{gE<%fCJ!pk-u{7t`R&oiaj!&QGd)jK+`lDxieV@;d*Yo}|0KohY>?gErwge%6 zfzJ7eFTxACH{%d|XOa=$`p5*TM_Jf_;L<4>E{J9vpm1c3MLh;UXGO-fko4D<=yOl! zrN_#rB{<`42%rNb2O&kntB^%jAb-#bw9gx`hF*K~L!RCLT~Rb_RY=NAvEt%!?>_=W zH;t}h%~*SO-!i1V_zL+0D?n?J>ODb(()%XmmF@*~M%Oo0-dl?*sCZ0?Z@9vu5nI54 zyaD;CYSTn&>u1R9HUst~|J^cs2NVu72lEF5u+B~Cm}@{sA5&%0Vjqdv0t8vTT6xpV zVp8J_gqIpevDYAE9cF)aAG7ajU&QfJqXC^Ebo+5$KzD3_Z(0{gY@P+VehO&qm)XPY zP4AW=C0?nWjA!z5#xLU)^*Yfpqid!$Vhcc_^MZcb9QSzAOl$X~XN*@$2g64^F1M8+ zGPgtn^$0qEF3_3=vjMzIO$AX8KJ-g<6GNiwJqF&z#t4^$Iy$G2bu_peMF*mE<BQm9 z>7EThIZ}9oXb<aV^kF(v1NOPj@s9$W;%exQ$lB(C-r@D1038q&_D*0gr$1o>cATx^ zIw#aBCCv*e!NV`AL%L}-KdoK4{fthC5b+Z;NLm)aM>hww=AN%@$2YFr*lJtAw$ob1 zF{aX+8($MEGFTLDbxR7*`enIaqa}3f$qFK9vVcp?5(FA7Kzk$yVeEGcYytFecKI{* z!Ku8>F%^<MnJ=Yo<)&zUi#23Z)Lr7=x(e>iRu*B$D$p4sV;}wsz~hMU?Y1}x?L5Rs z>;xwy9G|eGoS<YaC-OGgKu~fe`kucBI3Qevhq(R&>g=TcPkLkxl8%1^aR2}S07*qo IM6N<$f(x2vCIA2c diff --git a/interface/web/themes/default-304/icons/x16/arrow_circle_double_135.png b/interface/web/themes/default-304/icons/x16/arrow_circle_double_135.png deleted file mode 100644 index 289419c8310cdffc598a644ef93e8aec2ea20dc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008%Nkl<ZILoEe zYe-XJ7zgmTQwb%hX<8fB=1j8{q)sUnap*pjrH}|3S>h!FbzNrKuoATq8e!8kw2Og) z&dj{zQd3(~)~Jpy(!^{+rEXqoH7|L^x92_8holcd2Y#IA{XggY&!>Yh#^`?_?|ePO z=jKP`e`^E<+#R(MmX3vhYd{TXPzjP@$M(N%KrlyvlD`%3g6<im@h#?xOx=PmZ(!LB zaF%Xi=0xk{P++N11<%L;P5fC<^nn#rIvkzXza*FG78<X-UhK>5T`~g<GlmT3_AFxf z5M401%-op*LEby$b$!6Xw`edh_syL6l4e?-uAOcOQ;f8F$=|C19i}koW!<wly<-we z<}sN`&J?)k_7be{%1@zbZC}LaRHl45=XhLw8%)ag<n)kzA)sYl(^%3pjx#i7OwLRJ zKf8-?NvJo3pHYq`iHiHByDoQo?v`~Ux6D^)XBHg=dw6*YpKt%n$k2SlBx4F(FKUtN zh3DMU&0_({jRv7hx<<g0b|7x53OS{z$*u%4dL@!G1zXRyp>2}(5>CofdL@!`Q=cJc zX(!@H+7V=en7R>RLZdMNc3h@_mGqdPW11&$M4ge5s4`)av6Gvkwj?UirubUKN>qBf z%e2x^#Zc0rGJQDgU6=y01oZy83G7vFz+p`$OwORtHns*?N8d+waSwyxoFl3n&i7M{ zial~(hQgV}6j&Wo5VX%DGZr;Z;q3|&CbM%!r=H|M&CBR$-CJdB;8%Z@2Q^QLZR2VJ zt&dk(Fa_%)$_QGhn#bhMSI%O`+V7ZCKZ|!L=Lj>*eULSJJ(-i+#65_%j4WquI9l=Z zU!d&W(AvXy=wD<Ok>x73?8OkLa(sr{vV?(|Q!%b%Wos+e9VwTt@lWGX4sM8COaWYu zly6EIC5V^6ETA0tB5L2MOzPl`YAU3-3#h3B@&d~HWbCSqPJZwVAJ~J{zYDB@9oP)m g|A4$~2`EzV14vO0ECB7!>;M1&07*qoM6N<$f_vC|rvLx| diff --git a/interface/web/themes/default-304/icons/x16/arrow_skip.png b/interface/web/themes/default-304/icons/x16/arrow_skip.png deleted file mode 100644 index 860332d754ed5a288875c5ad98ea4df8f2d87ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmV+^0@nSBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005-Nkl<ZILoDz zOGuPa7=}Mbbm2^4Xgb|CMW|p}GcF{eyM!%kqi`U>G#61((G{`+yVzxuMHA`9!9_z; zsSuMQ5?wHk;Us3ROe!-8qHq|q=<WLsXMRGF1P?s_d*1WE-+TVePXK5>P{GAFRCuZ1 zXntLv<2N;qIc#qF5@6JZJD;fd=6mvAA2PYz+E=p|_^-Vq8L()Jnsb5RyE<rYWc2Ni zfM{{Uu$ps$u&#bUZq%0te&fdQAIP4+PB{f@E<^)tw5Sv${B+LhNgVE)z?H#Yuz6() z_@V3HPC---MC+nIar$Kpr(VQx@_7s=o=xCT=MU7he>0rxjhlSVnI1(ek3ZEC7G;c= zfr{`rb_YkW^X?F~-|ENKhNwaIa<;$YtC^wY2O|3X>q&?*##eQJN9n^cl!QNH+x<~& z35}vC_yKuMBZktpag$$h@QI@AeXW74>PK2MyQa<Y(^=IX$HGty1(7&xUde^ThBEg) zFe(KJpCF?$OzC^>>Ga3IvJOD@iz-4&a;CuTFQ+tL8Ko@ACt0H66S&Ko1)UiIL_Os} z<=Ii|<o~-|i*qS;SECkEHXc*SS$Q)vjGOT?tC>Q^|1YlfM_OFI%A>qrYcpOuBeRsm rq%s~R!@gWP3tpR9U}utOzQ6NdX{5sXx%S!B00000NkvXXu0mjfc*h0z diff --git a/interface/web/themes/default-304/icons/x16/arrow_skip_090.png b/interface/web/themes/default-304/icons/x16/arrow_skip_090.png deleted file mode 100644 index 2138dfd5330816811febf698305a70ef93f47b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmV+e0{s1nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005XNkl<ZI8T+0 zT`1jQ9LJyJZK0@1xpCvYC|kKuYDz97cEOY=yTOg<Ol=X(&A6EIQjU`gY9X8(FNL;A zdC#vzYGkL=&akrD&~YPtJ>OIR)BiZ<wD#2J|MY!%zJCQkWq0kXXFZ21x8I@itS*&5 ze5PKEoL6gvH#L3c?6J>x#PbO-z(-;`1$a~c&j8CZbON+*-@y74pr-%tfxho7$)M{V zmSwk>0p~sFGY>xS@f$-KaNeO|{;wZBN4H?kp5H*$hdr9o=eR}N<~3S3uF?GE3U#x8 z(DeBd@7COSyXr>w!424B-)A7RQ*0UUcf?G~$^|MvIZ;1%g2x&AJ_FiRX&u`hQrovw za_hR(+8rqD71T@~gPOk4VL#wNO527?db3QVYRZ9v{#{f~9D|xZ^PmIzFDkKd(LhS4 zUC13eM9Jh2P#YP0egjFCuPVN7#*7rt|3<$37m8-jL2b_2_ZfJS^U6cqYrBChwsu+! zsEy3%`V5#)R8fbDt{U@$zWD?l2+b^0k>w+{$cj<%qBVW<2{aI@d8$badpRueOF+y5 z5Vr_W)7K<u!h;P&Xwo&$L-H)+AthGvqBVU@mL|$P@Bl1r^v@h1h{pf`002ovPDHLk FV1iS7_t5|V diff --git a/interface/web/themes/default-304/icons/x16/arrow_skip_180.png b/interface/web/themes/default-304/icons/x16/arrow_skip_180.png deleted file mode 100644 index 1d0612926bc6dd0ddb52fb865c18c0b2c8c47fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005;Nkl<ZILoDz zPe@c@6veM2x@aaSOdYK@LNtM9&1|AVi;7TMMUcW58iuxrA}U+-M_O1R8ZE4Nk#4kz zrbZn%RvU9s8K0m@HG-fKI$9(IHOQcy?)`diz#&uc!jE&$d*`0FdIW%00{QCR(bgO9 zDR66qcH9}K-S;PGPwTW|tm2j_awxnxY;yVagGL?yuL8wr8&eo)iY&9Bc}#JMwk7~k zDfBmfGU25Qnj(rz%yDC69<pz5_>egMZ$ZKJA;m`D`vTPV#ZW&KhxlYTXGwvm<7xBN ze#IradHgp{_53hgc=Z!k`eV5K_Ai&-#Bgn37Lt<>ipq0Q%DdR7Z;#HQrh8@qm7%XV z^6)cCAB<rC-C-PkJPOG&=H_@;)Ogx>=7rjD`nhiS7)Nz@2FE(T<50&plypwvKq!iR z&nB@qIEj+*G$hB6XmK!Vyco)^39GE?E`4?&j?AaOP|!0A@yT$`%0AgGdCT#pfDNs! z45~F1PxP+W!1|Yf>={)dT6dx&f#jq>)bVE0a`MS@u#P<C?aE!&rhUDDC_}6KWeFtb z<i)!K<+NZ@v$jxLQLRcp+@b|nrjM30F2>DxnN3Wg%U^Zgwe#E~-UCT&vol`%Ms6vE sNoPDvhW#>k5xjP0wSAL9EB&4S0J+G<6|DBY#{d8T07*qoM6N<$f;1oqrT_o{ diff --git a/interface/web/themes/default-304/icons/x16/arrow_skip_270.png b/interface/web/themes/default-304/icons/x16/arrow_skip_270.png deleted file mode 100644 index 3c37e6e8b8aacd1dc6de3b257003d24cbf8c3779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005gNkl<ZILnod zO-NKx0EI7;qJgOi1sW=dF5C<?L6lNf2(<_iLjxV5Fm#hCCMdRv2wZ3+A?Qn}Y-li4 za0E#iMi>5Ux<t7!WfBL)Lct7CnAIHbk)FK!o-VrZz03Kz=LrC!=<SBa^>>?wLRv8F z9lj$6pR0Yp?8xp2@G1=OrnYyqfx_N3J4Qjzsx+atceH^^ub2NDZQw%3f`+H_hv9j- zC=XHE-q8l~p3Vt(`@9wT;#(ALb9;FHH418L&b~H~Q9mxSpG=DUXJ1TY>&z}{NB^K@ zdKc7Y#vc2Qfpd>1L{?Ks<hIQc*);hV_k1gOII;?A`pnroc7S9y2Kg6R{V9y%E{RJ2 z5~%5$9p}KK&xSIkmGXgQT<iXhGJhEMjD2n3Y~85$Ol?5cOl{%z@H%b{t)tKv!TC2o zQSc#xn*(dOp(qXf27Byl1IiSq9}Ia@?+?n7&<?VE8xD%bw!xe|_8kK%6sM~E-lWQp z@^UDO<iWi|+!ImIXU?8uz&r`=yW(U;zc;b`z03{8;0nZ$9gKmRK6CRNHE=?aqDYUs zQr{3?+9%V40B>sLXDHGXamNkBD>4-x#YLB=rrC9;NAjlrM~))VI<ODfEB}zXGTmJO O0000<MNUMnLSTYW74zQ! diff --git a/interface/web/themes/default-304/icons/x16/arrow_stop.png b/interface/web/themes/default-304/icons/x16/arrow_stop.png deleted file mode 100644 index 702b9b7b791ab1ffbc3ceb962b75434421d1f156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006fNkl<ZILoDz zYe>^k7{*VF%F;@yyhMwr4=u2kTOUNb5kw&Lr6QCLC|F7m8ePn;Bf8i<u(Foe7e_&f z(sZC<L1Gu{gxU}-!W1jAV6@gStM&B0r!n}uee(}L-plix=bSHp0YHogv8>{?u%7X1 z*3^8Cu=dullaMQKeiWJ421HiX;8;y@H3Zl%_6a@^Mum|aV88UnpjGw*Tnzz??Lx1< zkx<u%0Ir!=-%AcyartdTJKGb|T2ug&aju7NRHwRsp|bxkxTn`i_Hq!<$6t-=y;yp> z+ew0o#nFxt>}vMoeD81YOkSCOvXd`W<?TVe6Bfq{RpA}Qk>^1ieip=`r$HQi5=43X z5A1IBqqxzhInntO>|K1ULvr2o=)0c9!UJuJ4;8t61`6uGV2f)IIn{kwU**NRD_z*( z83Oy6{Dx1u7xPM5l;h<H%Gv_h|2TkBO5W!Aik!L+$gUlLwfdcAvu7CWHJ3h+T(c>h zt4Jw!JClp<t5{gwex%;<VO2{2Jd;<Z?raj=FRJ^dcRYyM+ZznbDy$cY`FB-Xa|o7) zA#k5ma8I(AdaX@w{G<0G-kv9>*>VlU=hiaH+zN0_$aBer4Gs~vd}~A#?*E#I^_k{a z#N<siikY;!OioN*5~Xo~uDl~=5c7$2!p@ko_TDzx3inZ;K`bDWh(y9nn#;8DhGGu~ uOdzHZGl>*p?ikX-ho=&8QNHp1&i?=sP4O1t3A_IQ0000<MNUMnLSTY9A|_}6 diff --git a/interface/web/themes/default-304/icons/x16/arrow_stop_090.png b/interface/web/themes/default-304/icons/x16/arrow_stop_090.png deleted file mode 100644 index 3f65f5ce25f5e04bac733f79a570255aa3fc4d24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005?Nkl<ZILnoc zOGs2v9L5iWHBur*hNX~DEp(yy!pJa$L|jBKkV0lr8!N>Y<H`_frG(}y%f=xLERjS) z%}E#8rZ)Ls_(}(zL3Bh?Ol%Qi+I*dF$YHK?1v~J&=YEg#DF7<3eZ`@X|G>d_B=E^~ zF3GcbpwSaf!>o~~a{&8>f%7kXj-1v7*)QxH2DGWpJ)aMf-RxD_O&*)R<=<_{**6_X zubon<HRCFyZrYad#4SzUKj2MGpSkHkO7*BZ^Wck0el(*0$5@v7nQhz~SVx_E3)J+P zv&X(+AhBXN5F|bP%97MhZ=s}bElAD8Cg?L~kNvQL)0LkY%Hwap1CMU^EaOJU94@y_ zp|E8X_Tlef&R+O{{Uc4O9^XX8r=Pgfzl3WqCz0PMxZ<3^&DU-{=0>T@2lm)E3?$qi za>SPpN+?BLUR-Dy!}ZQt?9SLX3}{oGD02lkUOJ$TmGnx%+eM_cd2q4I2Wt8|9rjHJ z;_mjVm|NXMvfll`$&O{D^{j%LK6BH7=(9FuO-NOT@~c!-@f#wi-ftkf`xg@XHb70E zIS>1WfzV^kt5lIiujJ?lKP<g|#JK#RrXPCD1|l@En)m}(of10)M7e+?g8(&sO`PW7 wUISK5k|xuVWAC(FYLy^b)7PYE4u=l>1(^*W^7VcaRsaA107*qoM6N<$f|=V3ApigX diff --git a/interface/web/themes/default-304/icons/x16/arrow_stop_180.png b/interface/web/themes/default-304/icons/x16/arrow_stop_180.png deleted file mode 100644 index 573ff4889bd49f1a63d35d9c4e7e1b440c43629e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006mNkl<ZILoDz zT}V_>6oofaR^$+cIsQ;DLZxBpj6Q@#iD5oe5Iu;&fuf1Rmn2M!3MC2?s|l*HrnDDp zEQQK`pdTt6qD)R$TA4#X&RA3g5spq$j;pipTyNf(H!pm5owL_k`#xO)K$C&;FMRVT zB<rfiuf*il2WXkQpH`gv%)XfDF<G@e8cUCK6NjWb0I+g_$#M0KFA)0tpLhJNd4UQ_ zmwybbT*^J+k1ja<QSj`{01VG@tk)<T3shJh?HvUx7kQ|@BKYnOjG^{b)U(&UHkFM9 z>LqKse}gsia2GA9c`5jO@<Rj_?O`11ih8k7Sr4UGcglm$N5HzM>X~45`A1Q9e^8^+ zH-rNnVU7Jy!`SzP8Aes-FRepqdwh~jR;KRFAC%ty3Fr0iDE0=iwxJJ&^*ty!^+JQs zJlop#MeESKop<Hl$3tM9Uv^Kh?&=7^-tZn-=igy@Q$N<U4508z5UVc-QP3PjzBhoP z)=yf8Y}?ypMSBRW$)&d_X~zx0=MBDLBsc#+_RT@fi-pR1X!hn7S^g*lRs}DlIa^u< z-*bHtq~3{WUV`%~&E0m*1ZOF}q)D!OFalNu&B!h$Yf&{>H(eAwOM3{zo9QSq5toul zG;L#}%upd#OJX{WKT~WO6t}Wc@ce(z^jPxBy_WT7rP534x<Fx5%u*yN7F!(7-JDV9 z938u2p`M%0J5qI06bXuW-LNVWC-|{)Q)#ll^IsJ-@%PeJmW%)Z002ovPDHLkV1lmm B8=wFH diff --git a/interface/web/themes/default-304/icons/x16/arrow_stop_270.png b/interface/web/themes/default-304/icons/x16/arrow_stop_270.png deleted file mode 100644 index ebb649f56503f191d6c5aaa105f622ca2fd39857..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NB%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006HNkl<ZI8Tj} zT}V@L7{*`3ps*+d6Bc9_g(WGZ;Ke`+vYQZ6vJdP)DxnY-QsPB|i^#l~(Fc(X!xf{V zGNUeRveZ~OaQjOt`2qPwP+CN>E*u#0^nZ*qjynbpew_2Z&+mQ4E+z-szeyqoz27|= zWx<o^5C9?tZC_VI-JJz)eggR9yo&R$V844za$Cm5+4|XvYMEGqEAj{K@g;D!=Ja{D zT#(r~AbYPwB&T^q^6yNUsOuw(s1GinX?PKw&5Ry>-mNIex;iM?O+%7<V}dAGB!(J) z6pi5+ICIaO-hT_ozH1-&Evh~k#Yx``&UJkOXYNhMR<Oqv_UNUuQrS6!!dnXE9aBim z=*J6oH-w0>>vF&T-3zFAIg2x$(<t$d;n3|t6t|DUcs7aCPbX2^GY5L~c^5CxOW9f1 zXJlOJRdu1CaNhf9qbe{D=Je>>3UnyjFLWD@^L}+U_zT(hr{k0bet>)C^i~w49dpaJ z>eu3^=@KpR-AJo?rAqpKBf~e3qPJ0S=AJn{`n+2%NX|Mc>yJN>4JRJTCgX{0t$ZP= z6&=Qw^5?3cCk8$_bI+U}ecss$Oj1tyWMkPQL!<cQY|ZTjrCyI-sx_nic!B;n))lv@ z(lBr&1RU<yf1dY1eh|oc2W0jFI|4v@H<0QFHopPr^Uf^DOLAU(oK)1R){ORf$AZ7A WQ1>D2EjaxE0000<MNUMnLSTY<u@QFw diff --git a/interface/web/themes/default-304/icons/x16/auction_hammer.png b/interface/web/themes/default-304/icons/x16/auction_hammer.png deleted file mode 100644 index be94131e3cdf37f8fe773a12de32d5008619e489..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmV-80>}M{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00061Nkl<ZILnoi z-%FEG7{|ZrToS96=FcT_YMZGkSqTkFOSDrknimR|QxIK9DuS9J29*>MA*DpT-FYJv z1bMBOf?k}<@TU9y1MgK=$LIU{u5HY~4t#ic$DR-0=Q#(E(-H_{;2i$)_yRCf4=grA zEnk6tbrqI?*B!u{>$&7KW(%h4q2|KSdn<9{O4Nx3LuF9Oi_p6-V`d}KX1<Me*serN zlgbgqPUjQ%L2pe*&HKI@v%T1BeoRIUlk6<?*px6y8r&<+M|ojUvU)#ce~Q%^Ci(R- zVY0{JPROwWSE4BSp1fv$PTh1QOp-N@vsgT-1)etp?>d3?uA^8Z6~I(TL|*9ihY_0+ zCgC{TNjk}kwqpdJyMg%#uo{K6`KTd9i8IcFkj<Si32#Sw)Kbeo1hb8>zV=^A$?sOL zCo>Kg%iEc0fMQRcVC^=PNc0C4Ne!Nd#UvDDFLt;bijOQ$@b(6jNc7IaU7Pi(>_Fzk zpg*%%UUB-B4h4Z*6|UgfWhau}Uy1)=U21inFcR{|pbsc51UfxOf}XQLpahvS5r7hj zK3E$ytdl_~+Sz!bGvJ5*{bk&+-Z=wReG30~!X6}fRS^%y<+ELA6`F)bp-u=0oVHYu z0U(3GD-;O@bkw+13spj;P%e}Sez(czHZq^A6S5H$Qg8?~P0(AB3yRbL0000<MNUMn GLSTX{bNsCU diff --git a/interface/web/themes/default-304/icons/x16/auction_hammer__arrow.png b/interface/web/themes/default-304/icons/x16/auction_hammer__arrow.png deleted file mode 100644 index 199bc64ee8ef4b33e8a833f7fbb27347a444c571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007QNkl<ZILnQb zOGs2<6vzL?ID(I|Eb|pUbMiHzmDWIJ#@JUN%>)|es30~nr4poBVo-@?65=C?n=KMb zNDyifEpihDwfNNN1ts=^rbWwHwK|=18y!W1F8uhokMq0#bG~~KX8}s1fXekDYBm9_ z=|D#gR98Oq<pLNCt`q`2yOy)8aH*gr9qMcr^viA+1tsdg1=X=o-el+(mnvwi)=m!^ z3Ijoj<|4IBP!X{bR}}Q476<i}C(_dnCr$bsBuS>)4+cacNfyANu$3q)43YF7P74fH zq>?0gH&9DU+mV?Fs|tb=C6Wp6PI}n9*OW+-CGD7lMblQ`d=AiC1Pt&08>=o3Xij61 z6?*unEg%v}BJIdb7Lr`FuOb*J1=?&tzXQhji44C;%yy2X1!N|YM0SU3RA=r#1ZOf~ z+;(sC^L4{%3AH1GmECF0fRdUOf}s*9mgpPG=C9fSLy|bkeJHaPnS*tD2Y;20e3~n{ z^V75E<`>wny$K1f?uKHCo@y@($a<P*aO`-K`A|XMdldWbf{V2AgGkom;m@8$!MSWR zl77|g`Ymf`p7{wQw|fTpJ+BRZPz#au6S`({o(8@X$vNNi;A9dMOZ11KdXm+b0#%&? zWakzl<HB?7yZ6oC`<1BSEm75Mh_;VJd|#t7272yRBguLo8Y&?ii${2}9kK4~M*OMA zT95?AWAo&mA(Hci<|iIxS>TnevRTl`H9MF*W;>I~q%uhie;L>qU2}gn?-^0FXM8%+ z*;U8a*2s$zgCsEV%ob)d6U)Rf>lpsw5n*+Yj)u8Lr>!nSir0$Z56jChNJa!1OaK4? M07*qoM6N<$f-V0r$^ZZW diff --git a/interface/web/themes/default-304/icons/x16/auction_hammer__exclamation.png b/interface/web/themes/default-304/icons/x16/auction_hammer__exclamation.png deleted file mode 100644 index 0f44985dbd69cd48d2dafa1a832da55a05d6c678..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007$Nkl<ZILnQa zYe-Z<7>3`8%_x)#FQpmgCD+WX)B+943+D7=(SB@Xu?1n4q#=}9Vq{tAR#<74Cvq*Z zi+M?*6iO;dJPM~DVy>A85~c_m%Hoe8nC4qoQ#9zn!^eDc<~i@o9C+w}XlKB<@-K(o zfYW|Jb})GE7HF5ZLy_Q07;r6OKJymN6=e8<p9zGf<|he<g#Wi7*%dt18(LeQK|C>q zit1xwHitx$i}*Z&VZ}m{oS`*lM2Q=Fy~Mlhcu|)YB`8TtR-BC_lw<}ZEL{k9f<ls_ zeZIE4h7E#}e7R#1bGJihLM$q9NH|GeriP1#^hmpelFZqT{a|roJ#ao4DBKB@?3s>r z!~;n8l_Do-C5d_)Nhk?zht6as$;Hq`1f|iySv^n`1?AZx|6!6)lB!I%sixb@Md$r+ zLAN8<@SM&65M%~GdANV$u<R@G@;^D~g~X?qbmKq2mx|h}y78O{B+{A%g5uraQlj1B z`r!ksp->X_6+=e@Gkk82`|*3KMp#>8tTd)RF)O&f16)e9maJGC)l>2e>dg#oHB8rD zx1@Y>#5`d%8pXs=-UN-QFPRpc+XOBpT1S4;FRD2q_Fotuo-=%W!Q#5!Z&N3Sa)k^m zM!udDTC=}OeVWJdb>LE>S&NSfs%bvp$v!}?iQ#P}V=YyzY|v^N>+MbuZ(e7K?yhLj z)wyeo`ZN#YDro%=QUui)7jVyIn0=ZoEb>#myE@nxD+YSP?Fpz3^hAi(S{Ie(5vW5d zU6o#k6#2qdNr)s!5@0d2>R#1<Y_vaEjD8CeQ{xxxmFQEwM;jIPh(6@yz*DkTvPR-A yakUhnth@l7mO^yQP*DiA!VLAX8SRxfaqkaiMp1L$^fVFx0000<MNUMnLSTYo<wo-W diff --git a/interface/web/themes/default-304/icons/x16/auction_hammer__minus.png b/interface/web/themes/default-304/icons/x16/auction_hammer__minus.png deleted file mode 100644 index 70ddbec91f218cb4b218eaab2c19110b1933cdd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006UNkl<ZILnQb z%}Z2K7{;G;8X=~#{K&7E8Na5?j4Xp@VOChDU}#zxSUG~|grpLb8d9LC5fNe|VmD|J zgpm-`I+sB$&NAAxpMT&kq}B0x@4f1s8G{CX9OiJ|-+kWq+>6Qp&=mrD4(@QL92lzy zCR?DMoP?e^4U6DeJ1~DXmz+YsV6-0UVKelP*`)C#>c0iOWl-rl=<m}B^S-amd>UxC zJ&9(K$`K^?6_N}=e;tjRmse`cx5;kvc{pw)$@=(ZTO^WX3tZh>hzi0I$-=d${W=jb zlH}K7pYgXNGZA(bcoHR&we%VDW#qggktDu$oWbJWQQ&b4@Zub>bis|4ssu)&6a}G| zZp3VnND^sBX0ny!Y1=M><u2e+3|NT6TD{$n6^YZ%^{6c~ktA|EtWi@Z{vmkK2<z?5 zrY!fZ?!ZnvGFZ8tu?8rqDG+2jp(xR>R4jYz5G+X|0{>v|R`BJj2Hx?uKEfw>-T_64 zULU_?%X*(PV4wH^_h6=o|0!Cga1Acof{Ei!B>i(X`B&DdR_7JQ;t^M{3Rpa>^O1cF z)k0CCe`orQtixfb-Y^j6_rVVE#zk+WQYIhSM^7pApOrx)>&5+0)g{RJ@teW`pES+G z`OHaz<^a-iRj~jDdG-`(CC5l3iI7^tHv@;s0mAViNQ%iGc}R^1XNxMr&QU?iNU2v8 j@(Lv%M+uG+MIzV)ekt`bSO@&A00000NkvXXu0mjfu&5NQ diff --git a/interface/web/themes/default-304/icons/x16/auction_hammer__pencil.png b/interface/web/themes/default-304/icons/x16/auction_hammer__pencil.png deleted file mode 100644 index ac7a9c9fa0da59cd8b9c5c840fbc554f5325bc6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00073Nkl<ZILnQb z-%Aux6vw|er!B(V(lXtQ)lJ<Lv(k!MDp%9(77VSBf`vt9E8-eqnI&bK6#c?XF&T-X zlENU+hh9>GK&*#(OCsrg|A7sbo^Iz%qwcakbm7BgE}ReFbM75vYJfi#sB<oJW)pD9 z19TNb-rNbZZx0LtcgldfdlN}0j2E<fAg>g{{MsK>wnYB7pdkY?lmm0NS68nZOVvbE zS=5%8R3sAw`nqI-sW7M7ed=MrrKY=T)Q47|;v_SjN24s^B#YqK>SUw?21^Ex=S83D zxr&p_4>qd!c6cVtiUM0AS@J$qt|r3=EeR)yYsVTaTDAe#i-G(5f#HgOvCd`!;XD#K zU=E-3Mp?p1xE-F!Vv_MJkt`VT16RGkfDgvo)7v8~vD!J27v-67l1I5IKfgP~+?){p z6$O{`VT{!lMCjb8(U#lc!CojxoA20NG_HDk)szrl5(Gm>AW33AmflGHMi`ug1&f0X zmx~4c@PTKsSWE?6u7Q_8U`cRqA0$c4na-*x?`<>#>J!s%gvF=VqGEDXe2hhID38Z; zD?L5E^f~MyUMqqmiTSNR_=orI66*=$MH`ZeM|#9(y=rZx)9HjIxVROPB<7EybBgy? zH)MkwaMS-WaT`g+4?0jS4{6Xe4c4mL0Q1*qv*NvSJ!JM8EUkAvD2y*|sYkUZ2Z^gt zLx``+tD%`bcM&DT4kEv=Njy=%7t~<4m^~FhEuEzi^w{AbQV78gmrXX2MQkB96B&dG p>0<J{E~@Q9&PR6w&cBKUe*ylI4i{(C(9Hk<002ovPDHLkV1n!xCnW#? diff --git a/interface/web/themes/default-304/icons/x16/auction_hammer__plus.png b/interface/web/themes/default-304/icons/x16/auction_hammer__plus.png deleted file mode 100644 index 587f55686d5ac21629007189937719ae23b040f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmV-^0)hRBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006-Nkl<ZILnQb zUr19?9LK-aypheNn_A9lPR*4rBl`mlGA+zgFj~R_3kzbctZf9fEGa0Zh%hNd;%GsF zga$!A=VMS0M|z1~d<c424?-{Zsi)KLcim-MGidPP+<Q3ZbHBgeIYYGr=x_qjO*zh0 z0;zgnpc&%sZm0))Aqfn%0T1^VQm`>!kgSKe(FFBrIHI!>@!x`84@7(`)W`c_J>A!; z=PtIHS&5=eqCgNXEhgfGnooxGljC0fVW3OD>kny8vXDMzvV@b^pu40PVL-BE^n~Ah z9<I}z<m<COonH?3gjrRPl?ax+jqlU%6NfAbC&??vYAh~q18z41j}HRlM^<8;uLcr+ z5*bkArvfHRI0=`-J+YJAYh6V!(E;2H0HYzuH)k6%EV0Tt={LD2oP<w@_K3lje+aHO zLQbCEk)e6n<;a!8jpfrxH9+v5BEeWY1WDA02xQJwKynfm*p1zuDqA*QdzLU)B{55v z<&`@pcys`QBx)gj)a3CR^?>RGrYfw3?mI4Erc%Xzr8SS3_T&V&c3F|s=i$h29tVTg z6-Ik(!;0XgThe01M3>{*ezxW>)k2U&eH*)=dF=N=^!flF{Xft|`6tR5)%mkW{|(P0 zS`M}JBBpulEQ6?7kHTLgNv>{`7;z~k_~Wp)pYhZs`6F>Ys(=GATE2$}5<7V-QAgAg zbTi<_kn@Z8dyA%Vk>1x4Yxo=9EH%UyVlz=iP?tdYLEQrvREmT#g)1eCNE(y$zLo`l Y0Eejsn%8W=ssI2007*qoM6N<$g0#yZhyVZp diff --git a/interface/web/themes/default-304/icons/x16/auction_hammer_gavel.png b/interface/web/themes/default-304/icons/x16/auction_hammer_gavel.png deleted file mode 100644 index ee46a7e905379263ed3b08137c3ad815296424b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NB%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006HNkl<ZILn=q zPe@cz7{$+Gav&xwDkJ;nXw8t7q*IX(EGwM8grNyCu`)q&N*XOF(_{k6{$V1iM7(xE z2^B#Rtu)*OMO|nUZQ9S$%>yA2Zuh)5lQWD1(c<uN|9n5rckV@*4`>VkEv1V(vj*s` z1p2EXsa;UFYGE7Ub{%kcPrmXRa{)b-kgFl6&%<$@fyh4t+Ezmn8=*c8#q_iG8vU}f z&dETOX_7oZY<Z#L0jPI9mL7?g>*@X`{ifT}bTZR-#36)Evcl12g_083gp3^vI^(el zO(#Ddwd>q*m<hEcAOjIXUL_*>ZL;2l&`HiXZm_tp2^gpb9_#}q4|=xFl>y110hK^a z9uGT&&<V$3CRrypYnA{!ZUnA{fiVmA)aj};A?`TML5G>p317$b$l#75fGb;JKRvN6 zZT9UZ-{Lq7mao%W1z}GCVB!G8K-8#&)2CL!rV|2kgFU+z!cSHJxVIN#AZn)Xu)})E zWbkmm=ZLxRbMc8UZua&^>pi)E>)TyR>dSEaH|yX|$eoDSTugrfT^k?<qJB<vXx8p6 zkfGh~VQ9PoDWexgvqoPtmFpDGT|mo9s9#UcYt}<6AnW}=MZg_vdUhZ>_kE;w{@eYN z3m<Pp_3K1r;lt&I`S(d{j_16GkPity6{}fBva<Y`YW71FlR1BG?wLe@^8eI2qtZVZ WkpktrW#PpD0000<MNUMnLSTZLG6}T+ diff --git a/interface/web/themes/default-304/icons/x16/balloon.png b/interface/web/themes/default-304/icons/x16/balloon.png deleted file mode 100644 index c3f88a0809ea7a4a91d43b982c253d1ef755e751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmV-10?z%3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005_Nkl<ZILocm zO-K}B7zgm#XA!~<nW1SP6yZSwCAxLoQ;-A^L=YQArG%>;iam(BeW<4nt74eJ62Y>H zMo{D)biEWFWOLCC)WFZ3b$1*YH)CemUDK!Mk?~cR?2-dN=H;FL|9=|^5vBhj9mv2Z z2S}gmKpLonJpUuGk^96+>P=4b&c+$eawmJ>e4wGYerD*IKe;j{Z>Az?%)}5gOSqX@ zOefW#JTvI>bB42f20l9AWZ>z!W?dPLU}_#w|3Rj+&|PvC_2}0~z;(8nJ7VBN4cu13 zz7QG|`t|+a^eI$Ao)CA$K>tH<t*=cQm<Zvv-`W?{m0r~3c3fU)!T4O`7Cvi{Zi72w zpr;z1uO}u9T>Z9HTwC&>y4XtL7k{P9wi?_K1KtNvC6B%dXS4wRjCSIx?A})*+J@7^ z)nV?4fp_=d%=;&&I+iE9;)dcyJ?7b0Y`i7j_qd>gJ7VDNU64F?;G(xS-yQ6+kE~3+ zQj_uCOj_;7wAv>GeK$wEj-zhQaz_kYyI_%=mqB`MhhtrKxK5f#C+Xg{q4|;DoZ)O~ zk!5FK_fuJ6+2cw%K#k3M>E#WpkChZ!M0WQ8-{z29l1B>3X;MPUNQJEwZZ%!C4)EFh zmYY3bHAfDS!{i9bCk3R46q6I=xcM#TK>o%*u+3UHL_$so00000NkvXXu0mjfb!iOf diff --git a/interface/web/themes/default-304/icons/x16/balloon__arrow.png b/interface/web/themes/default-304/icons/x16/balloon__arrow.png deleted file mode 100644 index a3e2a7febc8404b0657f6fc82739113d60182d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007HNkl<ZILoEc zT}YEr7zgmzGwdQ8Sz&H{P*fKh>4jZLP#1$D2&9ZYFtx;$)l4s1UP!gnDFt0<64_gg z7_4P#!NhG+D=3MuZLjMM%E*=bbS~yHwy}@$={av|AyyY2_;C)0=l{QX7yw`vf?04u zZ#5D0)ey#5Lo!XZM26(34%JVqoBos089GZda|<?G&P(e@o-~+ZU+kW#xH|z!KS0t4 zQ*l=!7PNXs9;-}rhR)6w81R8sTP|%-M*@Rxh<^r%d_co<;9txM5$}N8qFS$}8KK~j zf>7lFUe7@khrYf2x5#@4a2k$ggo5r<gi@s@-$fzJ!Hn;r7Z3?_LdbIs#z&iB?9&AS zeTUp^lxBp2`&EQ$OoiV>VZtT^Cw&?Sx>|6!X<h+mOO$4W0^M;!o$w6a;*%i@eDz+3 z2~X=^g}rSs{IrUv8KFR1NvL%_$~En3GZ&Zle1u-B86tkoy!?*lv97aO?KC44<X`5Q zq6RI~q$n)d)%t3j^#PP<`IO<cWhxQuhD5MymQ{cFrLKBetL7LfxLYy3#=I5>izPNn zT+!($edvTXH^BDB{^04_@@E}ogr$CjOhE6OWn@L&Zo=e9(tZ`}(7F6qMgb~uLx+Zb zJBJ(HSU+IflSha`CfauOph!<`TA9Yo9HBsZ#>`3-Mw>*@XU{nLfGgBGp%^!rebT^Z z?o=vqE*Is?a>$X3MIs}8qqS(UP=H}3V`~Ym6^Tpr_ASo=#HII!#0NU$__rKoAqkSA zRVW)RMd^PQFrwVO%%b8uZ2G?2HoVK0?7zYM@6dvuyi-(SLP=X!00000NkvXXu0mjf DD$p|{ diff --git a/interface/web/themes/default-304/icons/x16/balloon__exclamation.png b/interface/web/themes/default-304/icons/x16/balloon__exclamation.png deleted file mode 100644 index 102e2cc1ce67533a821798646250715f80ae2cd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmV;b0#*HqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007UNkl<ZILoEd zT}V@57zglk-qlUe7h!21B-Mp@5m8+v-L!Qf1l|NA5Qox-iJ}+5E+ku;t|%|;3v$r3 zWNqfaK5)CR^=VE`TF#}L=1g~{+p*1I?8v6Jr}ufCUZ{2B3qRhM=RD8<J#Y>O0Ni?T z>kfEbLYTHv!dXhmHftG?Qx_;TRi30y*5ufOy*RTnAk%g=t$gH7rFHh#S0NGe#bIs| zU~U2uvGMrqRIf17uCZbd_AUp!q6cb^?fQZ0Xt2izv7Z3ZA<DA?t<8EN>hJK`H0jki z!vb212~q|7jSi4#({I=RMcoi|=p8u20?b7OY364JC5Sj+$wK%OM1#!`7Vd#KRs(_2 z3I@+%pH9LV7GNqQsA@jqltP|L@Y>}d^cTR?xRy5GSX0oem2idy7%mcY$=ChBHTvZY zNYf24WIsV~sfB5wZk34tE_mJ+_Tvl-czT|o{gzu>UXJ&v;tP@){NM8-FjxlBN&PC5 zeKmoWD=GJJh6Q{!^Jv3I19=e<ZpM^KCCp4{!PB8g#Kh+ipK4jwYdqI!DA``8&nHJ4 z3zDDly@}^OH1nsO?~ZiM_$z3IgMg<9I?d_gGc{>@lt*;vPuL2$*XNNP>TJSgr1Faa z?M*yyGw}6egQ}3*l?|3QHMpFoz}a&$g!QV+L{==9Wz{NWMs#Q=&n+z$U~S;DI$Be@ z#)cH&9XQ6`0C(@eacDPg{+6TQb7}3cJcHz3%aK{|OzopKE&ho*{_$|nK~emX3F2@D zNa1p}Be#8TsPPVOqRpvP8nv6+MQx=vvVf*q?%|W$oc&+$`Ppo4&4mGf0f&!g2}B=K Q&j0`b07*qoM6N<$g1rhxWdHyG diff --git a/interface/web/themes/default-304/icons/x16/balloon__minus.png b/interface/web/themes/default-304/icons/x16/balloon__minus.png deleted file mode 100644 index 2aa4cd9dcc0457fef169e91c5cfbc79f31ff3149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006cNkl<ZILocm zPe_w-7zglYzad2)Dnrx$kc0;d^58A#vQtrXj3Aate<U<J6gx;dE$6AjN(x;tN?5N$ zBPeo*T9?9uOqVX02Ci~{Ung@J@4L2HK0VK`&BMqp_QHqv$M1c<-}ilac>xh&GhovN zFWZFls$IZXyV&8mE==SSv5<}eOJUE%Gd#<g(t^X@TQwc?Z+bkLrK!kTHk`wJ95Elm zwd_JJlk`RAUt2vq!?WuJFK9vbdb<zyYU)H7vtJOkPh_qH?PWr!Mc;?L*4kdq$b#ps zf}K|biXU|v`u_3Xv{_XBPCsX4!RS@Ntg9<Q9n*d+`k8u%n(D?><UTHbwPE6Or^M@2 z*r9Vq77Vutc6&8FqvP_V46ekSm|W<i;X8k&hWd2Q$O6}8!LCFm9tH9#FMf+Yz~zX2 zL+R)}oO|06;EXI7x+vIzXE*otF9rt^y6QqL?%Ys(+Ljo(QQ6O#Kd%4)?rH-(IUyQd z*DCD3Ve|OX?89Ux;m+rhqnJyMtn(>n$6akZ?am9L@o{tEGb#WMDw&i7Oe<R;q?AK! zsMZi1FbhY~uapP*JZKiXEXM`Z(@kZ;AO(LkHDM{<Kh<D>lShPTH5rfIJ!4c@U6lcf zhb*ws6ZFt<H^3C}TLC_F0n9W5Jf)dBa)>mT>czRP)5bAgll^3yETAwP1K?UCDI;4+ rIoVDsNF}KzHDnLjUAR{EU;f75@rPIj4VIXl00000NkvXXu0mjf<f;|; diff --git a/interface/web/themes/default-304/icons/x16/balloon__pencil.png b/interface/web/themes/default-304/icons/x16/balloon__pencil.png deleted file mode 100644 index d835dc087a10de621ce597ed28f9b87eab0773e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmV;H0%`q;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ANkl<ZILoEd zT}YEr7zglk&IqC|>;p~vpom?VkU>{<Qw##d2qDNI49!wgu?xqD<(w<co1&#z(_%zr z=9ZO4u5hzYybx=d!7}h8x4BJYE@R)OPv<#oi@XTJ7k<2l^F04Q@5M_1fGh`DcEQsM zCOoTTq^FXtF`Z#D?j)z+lrf6foeXzy7c)x>GAz|;%2Bh%6#V|du^6^TAnF2$PQhY$ zG7_8_bd2_@O}K-*iGpr^;5J!mx7YbS19k{c0QkRhBTMkR;28Lw@9Y-!wmQs+g2&|y z9rp~kTOq)get!Np{}=FB^;XP?f`_LWQqRxX0^qYk+%NB2@OwJI>u7}OZ}s3FR|$Cb z+FJvd5d{xQ7&<@i`xJoL_aZnqr3ZI+8BAtpz@(vwhc5iZGj=h68Bx%7ilJi1z|G;P z*8)GB%`oz@0bX1_0ie;q>pfDKb!ZcO&Z{ueS2BzlQE;b-p{<?r%}vubo!ezo!K3@< zAQTG0E%{*>?~sGvrB84T)w_*V$xWCM1-A>Cpf6y%JJm^s=lV2X$fblU4aEyX{f!Wr zF(wSQAMJ0eSgXZd%!mR*Eg|N6l=R-E`=8vPW(;3f(g|%L>(b@3*0=?)3Gm&L&(<rl z7)ej1e+n?%rK3F}tfntZ^T>gmU6dTmq$Fo2W92f*-b+U$?MRwJN&JZyNaNvaD*7fb zo8<CY3b%!mayz(8Svosbb4b#I=h$qOC}^o7O8m>3Yv?OgDaqo4mE3ABiCf1dbE#Y! ww~^Zro2?K9_$6hz)Ofal?yD{#|Mg(OZ``mh#(2HIzyJUM07*qoM6N<$g6irzC;$Ke diff --git a/interface/web/themes/default-304/icons/x16/balloon__plus.png b/interface/web/themes/default-304/icons/x16/balloon__plus.png deleted file mode 100644 index d171b9bd7097605197bc4e33ca11b875027d642b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006<Nkl<ZILoEc zT}YE*6bJBU&oU$HZJStXL?vFVOfP~i47%7w1by5D5`<Bhtx^^g>_VzlegvhVeON9U zA=nayAjw_Sx-q;Ex0Ms7fy>-?8{0D8jct~vb6%%`WCT9&<9Rsm`TuWT1^{d|*s2Q# z>bc~Nj<Z1>S6D7_4LXbTs3A+AooQ%?b}6&GV7K*ZQNz@`o0eq6?wwD0(vS%NWc)Cn znn@?aqu!~v1`F-b?oz>Pe4wq?8zoI*Xv71lX#nvvnp_5FNjHeT4<4&wM-yeFf>(8% zoC-P34oKkAkMVyKCm`f7IVd9)^k3k_FgNQ;K->X~eny8t4D~|Pdmp}iZHC~NYZ7`# zJ;nrOq=J`PPHxS`#}W{;Nx@ma3BofixZL<xA$LoHGEzZLEhp!^BTt=~s1?5Z9zo38 zzM{CV118^Vos^LZx@$PuzW<?WylkL6Q!{iF#DHl<fltlBzAFU}C?gdxlZvT31h%d_ z-&GsaLy38(7@6n{CxgA2bhsbV;l3rK<`cs`^~!eBX}<UQne1<5&s0V%v5~5X7V^53 zZslWzf8Xtmt|!&pxae2Z0(5s(^L+gw&eVmnY(b~OrU@R0<!FASLdFi4b6%&BSGHEk z&7^d*j4hspf_s9IwFx%XD%kgU4gk9=d}McoF?K%h1%53>yHJHj%}-uGCLg3X+J@FI z6toG99n6)n#tru3=`z6Efzv#+38_#4Dnv!77;VXZ%lT7qIhQfrS|hudW0UU6HSB*5 a75oO>Xf-F@16+0h0000<MNUMnLSTY@^&<uV diff --git a/interface/web/themes/default-304/icons/x16/balloon_left.png b/interface/web/themes/default-304/icons/x16/balloon_left.png deleted file mode 100644 index da8c32b1490ed0031992288358f624cf198e0927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005^Nkl<ZILocf zUr1A77zXff?}9)OEKSmaBqAj$q`U6il~4o`L>DcRQW2M36uXde<-e;gW+Iruh+xdn zD3V;D^G5MPR-+b~foAT^?KnFw<(#q2^6h=)csfdUV;}tZK0co35r`;uLj0G30SAcJ z4Il;^AkTjjY~(s|l180V|Fdz1v)tJ_a4c}AsBwDuzCX42PFhPxGMJ4aX6JD&J(o!( zg3|Pm%g-6kZW?&yfCGVhhg(&7B7*5zMD+`q+JgR4GpI(#A^}%PD|d{67xi#O4*No= zQE27kzp0;54tYY{F$VhUz_q$OsbMmN8-6OIsLIb!ksjj0w>FG_y}ORzN~A~Qjxo?% z3(c#^4;n7LT`w-rdoVHAPT`inl4sgA?id5!YN(MW9*46^0DnZga7l7+D;e#;sgc?+ zcZ`9j*Wl3e+Xp)rCcERB>_s)^*;ed*TfFbqzE18K15c_zc&@@J?~T3gV6S~V^Zg}e z68*Y9OvQcK#ZMiHpzqSS*RjXVS?(AE=gTd^Sqb8i9rC;F(DO@qgM6EGktTA1Gn_5k zZ}~H@agG#P#Dj}gAFH=nPoFsfaQ37{n3<1xz)JGT(WZ0O!HQD2Oz(1XoRpFhQmkik y$!-GX0U$YgpjcN#3P}OU(~CKJdDo_ao%juLY+5)~EVg|B0000<MNUMnLSTYUZwGJy diff --git a/interface/web/themes/default-304/icons/x16/balloon_small.png b/interface/web/themes/default-304/icons/x16/balloon_small.png deleted file mode 100644 index f92545e84acf62972c86d42057a1fb3f2e31df73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*tjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003aNkl<ZILl-B z|NlP&C75Aw8L&BriD6qFlMWCk193SJS3+qJUk4;l$N=2~ty<lmpB{Pe@8_dG|9?IC z528OmIrQK_t7bPy9<KrGvzRhJJwEv0|L1G}|9`rIz@M-F|MXz@1CTsk16F4+HU9m0 z<>$Y5C;xwYvF`udM-%?PxZn8y`MuizuOChP36jTaz_L`Pf_JyqKmPc1*8ew;x{z@9 z|3~Ml9)slZ8n7sd$z*+{{OsqKdY^uIzVPqY7YqM?dA{KP(+kZ{*Og1p2Fc?!U||vy z!`yf#vpI20l|VcRh^PK}v++NO28n~@2^s)Y%rGk!f~Q6^yG@Q_o(ICyqL~?H#4?j+ u08k@Ca{#k{qd)T|AZ7sJL7tQc!~g(Vo4di<T$gSD0000<MNUMnLSTX~grb4~ diff --git a/interface/web/themes/default-304/icons/x16/balloon_small_left.png b/interface/web/themes/default-304/icons/x16/balloon_small_left.png deleted file mode 100644 index 34a1c02ad4bb2ebd0fde3384ce14b6893ab4993b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmV-k0iphhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003cNkl<ZILl-B z|NlP&C75Aw8L&BriD6qFlMWCk193SJS3+qJUk4;l$N=2~ty<lmpB{Pe@8_dG|9?IC z528OmIrQK_t7bPy9<KrGvzRhJJwEv0|L1G}|9`rIz@M-F|MXz@1CTsk16F4+HU9m0 z<>$Y5C;xwYvF`udM-%?PxZn8y`MuizuOChP36jTaz_L`Pf_JyqKmPc1*8ew;x{z@9 z|3~Ml9)slZ8n7sd$z*+{{OsqKdY^uMx#a)X7YqM?emeK>(+kZ{*Og1p2Fc?!U||vy z!`yf#vpI20Q~$i({2xRE@gyLw1c`&>@ft8AmYHE%G&95GDCT(}JT;oxZB{H30|)~R wVIXKgqdzkYZ)y%;_6HimK#~E&ATN-E0ez6W#O7@t6aWAK07*qoM6N<$f*~-VtN;K2 diff --git a/interface/web/themes/default-304/icons/x16/balloons.png b/interface/web/themes/default-304/icons/x16/balloons.png deleted file mode 100644 index 4508686488e37c7f0cc74b007469f685d7777810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006JNkl<ZILnoh zUr19?9LJAmCH8k25d=L&P$5*Wy$0fgP>@A|xFyEOY6Ve5Wi5jWA0jGJC^N&YCKXw> zhW%kN#FvDufl^p&=FBZ`w$!`j4Zi(;W8R&q5FYs4d(J)I`+4~O1OV~ODRb~S<>Kdu zWihdzIH|zrV!r1b|C@faACg&|(&|69<VgQZmoGIMio+NJCI<l{iqy~d@&1l8KECIi zDQG(=Rm#G_%K`lP3XJywW4#J=PJTu>a52C+Q}D1_s+=~)`X=zJ2Zr_riD)C@kxTgg zr3S;{bI=B^K#z4yaLyDwJ|KnHVd64IKj`}K1B?vR;YZ}c3=-emI_FG5ra1AGI&fFX z@?QUmuJM=$iNSi}MlR6?gxV^*I5%C8Zl3l>TdNCRcYAh+QzMU%jC+auNXG6#`*dA< z>)9D>aV)59u9St@DNJjA^7lt{Hrer4^CM7Sraw8mF><$Re&;Qlth-qucQx9j^|oCZ z<7~~pxV9rrEYzCQeA8YjNFZ_qvo(L`R1x02vdw6IYFh4nieN6yE7Qsf=F&XDc~MiU z2)NM}$HLlfuPyk$<_WQ3Ri5Bw3bt>~6UR%Wl^Sl~=J~B~o}1@;&Z)~3(6SKAukNul zGZkAbrF33NtRM=BrNknlfXFB25mFWK$F;6)miDddWjXCP5k<s0Vhyo6BV3jd<xdIz Y0YmsKMO9SFLjV8(07*qoM6N<$f?I$VJpcdz diff --git a/interface/web/themes/default-304/icons/x16/balloons_arrow.png b/interface/web/themes/default-304/icons/x16/balloons_arrow.png deleted file mode 100644 index 15a3210547e70ac21150aff47e650e4467909463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007$Nkl<ZILnQZ zZAep57{^a%8kO2GqBr_vL4jp`35%j2vY;R_vw}^h38PIdEGyL1{9q;&R+f^@Qgk{~ z%UWyM3riFG(Dfw;is80gPTg{usdKsL={eV?n?iKq$GzvC|MTbG-yr}%o+VK)G)dI| z`Dq%4oI+APVCyip@6HldpiZQ-BvGL@CE!f&t1OLkL~jGv0Kil~fXf2TZy#;F4H+7? z&vGo!7t|+EPa;iC*LCpoGr)K^z*v_DxSlkCNq0rZaxBjm)XJzQ>8`Qv3HaUtF8f;; zwJ5;WmkWc&OE6@*40dxqIIIm5EXVSE!DBfkD(MVau8~fMW2gp(&3W*(FJ~U3Un(3d z$MVE25yg<F_)it_RMe%t*fMTa!f1aXa>pA>5$NmVT38P8D&WoI^Vw?IqBorKxXC$O z2a`4xQU#ONO0a(_uzye<Z7P>8&Mu9kfym!em}7qGM-MdLm%uN(7IcM?jwhKReP!{! z&G%wxUU4*yQb?$<L_!I}eG2o;zr1yX$EvUPGM|`vf$S+6A_-~9M0!p>a|-j!KS&FP z_SZ39=Hss^I2`77D+a~eZ<|O+Zs&Bt|C$fWe?M^70)WF@Xn|2YQ}8eI>9sE)s<;IX z<~NS7j4d&W>I`th41mMj=9~^OU%-r(OP6GGs+gv^<|7^%e_us4C-nfw+Gk1W0a%y% zj^hi$w=N*(4^SZ*E@I}{-OWB}YHN_J%CJVRZugTs<U-2~5YYy(O0MBnCu*m^051Wu z?B)qUDI<D^;1I4?Aj^?JWGUhoAX2t%Y6J)nSGM}?&xrQlCL->Fg~<A>!vgi*jTGOK yEl4o30SQ9ZvO=F-DW$&Q#ce)2lVfpB+29}5BSUt@5f=LZ0000<MNUMnLSTZ_cS@H4 diff --git a/interface/web/themes/default-304/icons/x16/balloons_exclamation.png b/interface/web/themes/default-304/icons/x16/balloons_exclamation.png deleted file mode 100644 index 3dbec2e2cd42374b1cdfb30977fa0c604e689734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmV<P0u23$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008INkl<ZILm#J zT}YEr7{||hW?_*?1zmM#7n0Bi)rHhW7~+LgkV%24h&8lQBb2Z#75qplLQ74XUvtZe znxAv{QPUxAx>efLIh#$_mfLdqxoOUPI_J&Rmf#CN&T}|_{+#!B5CEXI1nhx00q<!~ z#KD9(LaG~dA570(Swst3Z{dF=U|&hHPm-=HUA#J{wu18;z?u=jX@b=s!&Y6#12H|P zIhtn+nr>ou!t}DIQusLqu&e=C8gql}S0+I(&5_a^&9epd@z|aF&Lxc<=7+#(>wyIm z53JL<F!Lo1%=!$l8J>Z|(qX4Lnr90dZ(t<i{w3Wx_sQWf*TJkI557-lZ(-r9z(I2~ zk6aRo7}P@kNf3)8#w2(9mn}kAFcuLCJuwx7x+$ig<_I1Ita&ousg3u3s}f$(ug*5W zid96YffdVZuuVL-DTSA1)!bc~l`(iPVe=LKGrzW|g}(A=Shq<)S`_AJet2ZMHQP%k z<1^zO1vsA<jeX0aF`~F$VT<|Bf=etGbuDbz$6%!ExOvf9GWWi1N0qXL@g^XO>lL<` zuecWgAG@Pi^9J>GFphFJ*6nqmQw9$znwazQMg~#Xf^E%DWx+`ADOfZ=f$;Efm^Wt3 z_c!3OzB<N>@TXuq^Tv@xm{5e0ISmkr&y2@`O5!K)5i#eaHJb(0Xf=0trb-kg^E5An zp{_G)22JcQjXDIxZ7HB0J`2MGr)Rqb%*#$b!>|Pxk1;4E1pAgo;$mu^t`z=l{N|l- zziCPv1e2pD*c;Gwa`Yth*89lY%b7s7fP5UnzWl44N=jrPCzR|D)E6>UT7{q0^7$}W zCj7x}OJ!GzR({aZT*B~N1v?3c(l2mYgZyy>nU4|zlCL2_X%_nMDjTVIIY?QSiw4Vc l(Llu`q^Qh8a{goV;y2UyU2tOj!mj`T002ovPDHLkV1gOHU;zLC diff --git a/interface/web/themes/default-304/icons/x16/balloons_minus.png b/interface/web/themes/default-304/icons/x16/balloons_minus.png deleted file mode 100644 index 2af8dd3ffb1ee9797ca26f4790808bae4b368167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006+Nkl<ZILnpM zT}V@57zglo&nnjET0|FRT|`hIRJTDF5lBH$kVS#HCBn#R1yMwwo6!fmh^R>WFmueg zsfCu!VI_+(ylG%HPzrO+T)E}R*5=uA!PE1ecI+G{M1vnY?>W!==bZn`5RpB#fQr`w z^E!_}2{}McDe!d(e=g559?)?Z{<47HcYOZQf#+6lb}XF0+-JmzVZ>Yvv)|q%2D;99 z`Ex$U=cR!5L!eX|30(E#&yR@de#BIt0<AM2Fyg=L=W~2s3V2urN@sGZ{&D>N8gs%+ zOvdUk5xs(62G8P1#D>DqH5B7r<9v?KO95>MfqBf6thuqbqBzouqeFK58og8?`KeLl zb9|o3B~mf$34K#zC6x8~PWGhZE=&&BkXvf8S`4>W^zb>N3Xqzo>toGTy6%u`Pb53~ z2r~%}abqUlgu?rq!YkLVfYUs?x}gFLB!3E1nxFXb4ukb3{3ZC%UsEbRKEF2VsGJ$R zX9WA*a@bvG0{wjxFit*&g65yy*eQvJn^n!%?*~Q!%&`@ibG>Hr6bhPuaJm?KUl^xt zzIB;~wJ^rqL<;zy=3AEj*{llqSM$Mr8?kMLA??<&LE03OH8FNa3gC@8&2y?l9%Ep- z<{d@)RK{q;scut<6tIKJII#uv)Nn0tp8qRcurJqi+JN=iXoJ#4`3>l&C5x`_)i!YD z8?@VKy@V_#2C{(6B|0*T%pkBy?jV12m36zeWAhp)qw95~n5-r%Nl`v<VLph@1K;=? XO;8sW6Nr=K00000NkvXXu0mjfhdMC) diff --git a/interface/web/themes/default-304/icons/x16/balloons_pencil.png b/interface/web/themes/default-304/icons/x16/balloons_pencil.png deleted file mode 100644 index 8f6db51fbcbeca996205f919058e063bb8c17e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007oNkl<ZILnQZ zUr19?9LLW&tGNARxrc;34j%$x`DhP;iGOIKfi4Qng&C6N5=If4^G{H*2a^mHQk$Wx zNyaqOVgIH}29c08Q8aV8sk!A`rtU6R{5t2h*`^P5;KM!Vp6~fy?&lx?Ku^^qie5F@ z(|3`iQqECIBVg-Pwja(SR?t&S{-P#g^QFBdQ_m}V13tS4g7X0DvjD+42rRw#O!aGf z**?p$yim|}fkcwyu+~`M$7g`mae$Sv2<V#s1P;p$3(K**P|#UKBDoq|8DE2MBM|fs z!17!(cxG<Gm+5j?a8!ZUSqpx5{~F7&yii~|Pmr;2gUX=qgWtdK2o{|>_&Rfa3(Kx{ zKg+Q^3QMG7&=dMk?FA%v%zVYR>NddgYy+h}nz=@>cjenyjuKTMn5T11M-lgO*l@xT zSbPk;$4Geyy!!!oC+~RQ8kE+y!kyJ!M@h^Zj6=7u$^82F2^hL}8h(1sU}?zlcUQ<~ z?iXwyYElv1-8^#KB#%v>#@J-TI4OJ!Tg*SJ%NB6kJEF`hmCCr1#6&GrRY5n#gW+4) zVqRYs5AR;6qRe-flO}~iQOxr^q)DZ>^a!O11^;8-HCpz|REsD1`BIR{WLk+tB5y|M zkAr`ica3VGUoZ8s!}S&TRc11GL@XAgje^#E64O?=t9sa|vTio-9MSORme?iXuol18 zX;4Z=5{EdBLs{X1V+j~tPA6h&xRIG>Pe#jGV(6^FA47+&>~KmViXN<h4iQCi`=qFq zk#|UxLD&0hi_tY$oq)P>Ja{To_#j8wLD@zjkp=8!TxFK1C;0%$rSpT7c(#2;f%^_8 k;A~b%*+<zO$_oX*0fF%(l=F(dP5=M^07*qoM6N<$f_a2YtpET3 diff --git a/interface/web/themes/default-304/icons/x16/balloons_plus.png b/interface/web/themes/default-304/icons/x16/balloons_plus.png deleted file mode 100644 index e14e8c27afef17b5d55097c014b66305ba248d97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmV;Z0$2TsP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007SNkl<ZILnQZ zT}YEr7{{N^SRa0DIjxH*2nz}p<*gT86lfPkmL>(_mKZ}T3nGcWT-q0c5`CyFx7u*4 zjfyN&(Tc?oZ+g>8PzrO+{MvMyZBBE+({o;%ZZ4<;Kh8Ov|M~O2zXON}FN#<MjYTZ3 z=>$t73W&2|@O>IT4`qQDG#qCO6ft@8>G+eqFSU&`6I~t*4k6ACAO;6<X8ePvx8-6Z zKj%4~7Ypi-v2e1Sj!HZJ{EF!BLG*QpLHp@1=(Jz6^Bm8M1&<3^IOl`Do+<qP9)sRD zI60_CkLx-P_g%md=Oy&^-@t&oWs2u`UMzTelz~+<k2W~*F%TGegk$~XIO@6@#pE}0 zfaiD~LJ~;~Jg0v$=d+yd<}>Ynw*@B$s)?#d25YdZKChkUh=>BwJgraJ3YWhYEC-!4 zV^46}V<jHqwEF>iKi~GgwH$ENX;zdP^H>7$=M@&2pZ)O(+wQ6Hm$w=1)medOC0kvl zd}&*)ik08ZW!ZW)lN;0wIH6aFGT(YDQ^eh6i!i_EavXqd6=YnAg^ZGz`B#WCfB&2k zJ71|H%%|Rw3v`*I18Wk1K`~eGzvdGSilHOp#R%pk0ZfSt1^+UCxHTO&nAZE_bqRgh zqZ*`(f{0$B6AQS}I!#QeU{yK(W<FWB&bMPY6Bh$jD+RG2BV`E`?_zQ?T*J-tIgGND zl9(n|A?t(+nXsjQJMvkiQa1MmG$e%L<{^oZlbb5pP5adZnSumDM#Mr{T*n%x5@~)% zdj{#tAXKoF*r?qrY1p}$<<NQ?p(HjD$;4W*aG%r&1=0@KFRc{|X#56n$0VFxzt-6R O0000<MNUMnLSTYr+c2j9 diff --git a/interface/web/themes/default-304/icons/x16/bandaid.png b/interface/web/themes/default-304/icons/x16/bandaid.png deleted file mode 100644 index 05e02f66674af6352bf75f4627bbd30de072526f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 zcmV;&0yzDNP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007xNkl<ZILn2S zT}YEr7{||^m!JYOY<s5=X1R+lawwXKlsUCcvn;=`g1VBRZoDWZ2)ikeHYYC8P1EJa zbnZ*%M`a}yB`v2x7)TcpxzxT9f}ESu={aw`GR^FPALpF+od1vKftQewx}3|AvvELN z8X!H{K-@@Q4v>CiAP05~9)?m}&*Qle?|AlRxr$;X#C8aXL%pUTX82U3HaKpZUmUZ} zPg^QHcZwq_@eNP9vOvI!;eQC?9-NHSExzobi_g30(x{dG9Jf<nNBO8j110|xD2GnS z^??@-8hB=*K~LwhB<QvJZECo%o<MoGL|(HnW~1{@+o*q}eT5`2Zu4WVY)yev1IpVa zeC^z0Gks&LqI1JdD<o{3-Xgitk_C#t1a>vV4;1r;uNZpWd6h0r4hrkH`zArc#&H(P z8{0EMfdaBx5Z_lMtNV1%NGEPpQa?TpPPhdLJF{`@1^i8O1|*tQKp3Hdgx*3~{oJD# z>NS?r?@wCk51f}t*!c@~)Sb_pn^lk`h6Mq(LM)jO>nxBOS=%25Z_sxx9UU>02@<w` z9BQCl$7QWe>9DssBrFOP_IzpMXKZ_>zn0Dp7zD{%$94KpcaF~Bz9UcCZaN6bC?KNX z*iOmsKd?0eF3$GXEckl$^u4=gg@ldMc2s6*NaOaQfG|Ox7!<2T1(iORc44Zgnubc) zI4!x-Zo_^qr9O=#M`Bh5#cE84Qm^*Rt0@eN5;l%0N9wFj<x;bwfvj5xq9idUb-2+} zb$W8jr43BG^?^Fgw!U5Al4QJ=ArZ({Bn;V%Y(zF793t4m5_yQPNZ>AAOX2FSByqJF t+aU$N??HAW3M3kdLZrwRWYZrB`~m<$o2)@2I57YK002ovPDHLkV1jN#Kkfhk diff --git a/interface/web/themes/default-304/icons/x16/bandaid_arrow.png b/interface/web/themes/default-304/icons/x16/bandaid_arrow.png deleted file mode 100644 index 1fab58928156b669ef6728ec2b616fda9299a0e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008%Nkl<ZILm#L zX-HI26vwak=_e7x#!(?kbUqZQD2j^N;x=YM<(8R~kqD6n7A_QJ1&vs4j7>F;HIwU% zv$>mA(xQ^vb3wrp($w7AFoM)k>2&X-Ov}9R=e%?8`Tsco4-cVV=kzWHUH4>=#Fs&a zV2mmcU{p<16M|7KQC$e$QGXD}lbS&KaPr2dGpk4J#UM=(Mmizh2w>lQ!ZvG()yyw< ztLG=n(%K(ITBVa2J_>g*L8?HE)WrNBfb-L6+wA53N?7ht!AhqZez01YC{69u1>-2r zya~Xi>9|d<u}25SS7or&UcL%h>QXOgggALKfJ<YPP2OU+2IgCfVWF*L9mL3L7Kkrt zLx4UQyEH`cC37#7@K%!vbIpb8AT&-@gpI5$5DWeRXoc9dE|Q=BnV8;`-++~&daizX zQouoI9DTTryd(e%2mt*JaIJ~3mVS6FgMo+Xut0{F2C6v-?P(ls82`S~AG<64Frr!u zaH|TpzB~6^0bR0G_|{Sc-$`Byq5UVaQAH?UnGx;lk(88*5)&_=Gw}%skyTJx0Cv=e z@nm%Enflu>X2^!N{3H%S>ul3KP#v`{iW2Ku_9<rBy$@zY-gn+1m&^eUAkc>L<R8h} zQ?(M9uFK~jqq<x0Ec+}>k?+#Oypn5SUY^9n%BKKm^^%T?I6#p<PMNOFTb!uMh4<BY z>mW3a=yKthySU>u8D`B-Y1tUV2uLOXXz!fSFG31GoIYX5S{$#;fwd4CM{$T(;a5ET z_2w8r+#tZQzCTJC25`L8$|CuG9N(1{J2+0vzacbEK?qNu<HPvaookfaCN!{AbOW#A z5eV%CpgnmLp*?mc_60&qS$pQmp>ac&ak4tsC=K3P<6vpxN&YcwA}gXTL>3k?<-JZX z0W4xvJ?24IV#yu%J6gE&v1^(eb5ZQgNUwS@68~-3o7_7Q?IaQqZ6~rb-JM)wc0}H1 g>T^Dh^kx+B6YsO_2YAn(5&!@I07*qoM6N<$g0E_JoB#j- diff --git a/interface/web/themes/default-304/icons/x16/bandaid_exclamation.png b/interface/web/themes/default-304/icons/x16/bandaid_exclamation.png deleted file mode 100644 index 5fc2d8b51b7a6873841dc73009f9132ea8de3bbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmV-D1H$}?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00097Nkl<ZILm#L zdq`7Z7{<TzO{hN-q2@FY67`RYl8I7w1245@5m7p<z#x#Y{*g*WAtT7NX3ErLv)U}1 z&AI!<X(qFac;+@E74I2p(=e22pmQp{eP@(tnIAkneCNE+kN1Id5c++t>|vq12UtjS zl!Y{WjI<{)(i0hyFftOElJG9`DV$FHI=Ls4cN}JB^%NXrA>|2-R6M*9AhhLDuyDz# zTv&D}7F_Zi+9KGVPi8nMIgCQDj$@=C;r{^kzquG(y!=TE%eGgr(xHH#&UzSsncbn{ z<5XXG6F_9sg`g5|rwY97a#*5kS0PJwg-6N5w>ASrHl_xZE;^L3@Zkk`+G^H8yiTQu z<T5t|sQEauA(bO?zm>sfWf8bro~(l~b#y5~V)=0#@eiP$hq)#Jr)-*p25RrYN}t*1 zGtCkogsG!W4yvk2#1RC5{swRjDS;JJuf@<^oev%|ywt7tK|U$Y!qA&ou;gyB$`Ww2 zEFL39YXMQZ<iJXIs}$_wZ20m1In0y348$(E34NBsFgGFg*pz-IhmqP!gcu>R3X&({ zaP@h%m|6Rqxg16{#n4uk>4PvnY`h8s)}-l`c@=zioUq&U)EQbwAw~=!qW&Da>N{C` z!YG1CQ<)F)MfDJ@#n-@P7J>Egwh{Mu;i5nwfLYhw*>(+<wy7vTB7~kN;H*hw>EgJq z1itD^*Fl&%+Dx|fqlMc)=eiB#gN1Jc8Q^RTr{C65iLD9(kjCTuagA_sO#2AdLYO+z z)9kv2a@;i9mp0ws!-ocQHuQAGL089-=@vO9X|ACtR27HQ?ZV4FV<h|s!qkx@vDMWX ztQ#M+f%NEL0*v%V`!-;Fq&EiMsr_k-j5>sl?W95_yZ|v>l-4(<5qe$v5^n{6haoJ0 zI-stkY6flL-=~K6!qm`in4ih>Iio>3WXe!QJ!5`E|7Z^8=0ve_3u0LncVbwggb*A{ zp6|;_N3~B1(8s6uQRlNl<dha7hqMTF$cm7y`T?TzGEn6&LnjHG+dQ=T00000NkvXX Hu0mjfSJ;W6 diff --git a/interface/web/themes/default-304/icons/x16/bandaid_minus.png b/interface/web/themes/default-304/icons/x16/bandaid_minus.png deleted file mode 100644 index 1a7842360c9bbd04a622060acfccaca140694d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!E`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00082Nkl<ZILm#L zZAep57{||jE<pw6OWU17l$jq2N+z0#82HwfMUhUif`q^?^~DdR^u-Vor0K?%)HZ8V z=iJ<z&bP9Xij+)U5C+nRh%~i#gdpdpbb8KBMVEQt$GPX+=lR|9hjR&89v2Vrq&kf! zx=fyUl|VX<1MwkU`9Qjno_yHTdjiUEzKm-Xz7tr@>Zm!w6X!7?ZUt;4h#xo~s}A{{ z^NVAS`Dt6_@crVLDy$KRDuE;RJRlBi{*U0$<8!ffi?2KA;!8VS8gbCyeixl;tr&4D zp+s!nM3B^fR;CHQa?{`o8x0M&tx7_pj(}4ES2hzQJt&cB7si})ez1iGhOFx(LBBJA zedQYpJW5FFD-m>a&n)zvvzE>cG_I4dIGsf@gDnpd{}H$pAnz#_^xv`RZQBjHG|?;0 zKOPxH35(-V$xPN<NJIe%7s$Jcqzzvl8t8aa6%Al<Xxt}C*qX(06$*DPIgnz>2Ete? zNbXcgZ_hn7(@{eO{rS9^{=&RW!q(sLMC}EF<z6<Vvc{HVAgy~jLhvZWmJ9nlg%Sfh z_NU%k^n<sK4(ZE937bFn-=X$1(&ol2INXGdj%bd!@a{O+1!7rT1rpO&JoZetj?VVz zMag^jP5Pwn5}m>4*3%NJSq^FTsK1RXh=S%ExH{XdU6|_B(2qXtIth!@a!P8mMstH$ z><`CIh>4i9p=!#jUYP8tr)woFj`^gdU7yLP8?iW0T1vxV`^1z5WuxlSH<Q@BB4Kfi z`4Ufk2A`pb<VX#EsTzyJVf*B092aj?L>h)`FHB5&)xl|>CfK0d*_9B<rC~xT5`#n` z5y*CAE3yUQ5%G77ND)9@nap3SN#`4`r}Da-U679Z2a)|qBC;EaLnO!!WZSX?{s4!q Vx(+pPMWO%z002ovPDHLkV1f+aTr>ax diff --git a/interface/web/themes/default-304/icons/x16/bandaid_pencil.png b/interface/web/themes/default-304/icons/x16/bandaid_pencil.png deleted file mode 100644 index 9d7f08ceed93e321298d956a9c2a940fc20e2a80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmV+k1NQuhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008eNkl<ZILm#L zdq|T}7{<>zAHgbWuy#=ilI0&owUojJ6?j=&n_20US&>lqM@b-FDP$rf$YzeI*k<K@ zZtmtbr)DKqCYqNZ45T0=P3?{l<=m7`=le35X1?%n&f$BX-+3SS4gkw_X)gteqbZ<2 zMggY`fwq$fxQRS+1lozba<r>MfilRNNzO|0jZgQiRLKzvSWh5em!kCm;XUU=w1H9U z{NjjZe%e$p*p<prlO8@$3L!8{5U>#Qe*gy_oeL>jeA$K<pPTX0kOlu5wc)Ae{2{vx zsTlJH08w|Epxpn$j{O5B92jg_fdqyvKC2YvZUhkBR|#|rBUU{BtP%VAn^r;mqgEgB zWvvTv$dIU0#n;b0sl#urrFgFA&MF8U$CV;5m?S9TAAn7YBE6~nim$}<y5%Nb8t-7% zZx4+OgpT7-3Tpa<C}Idguoe*MN#Rv}dSJj~^=j-R&4DpD1EJ4!99uH~u6N(o%n1lx z0}#dp1EO3?UiIALT0CsX$KU%J@K2JLhS29PWTMt2eqEt_k19(nR^#Gg?1AtpXo^R` z6pwa0lDP(Y><=B4_?@#1_g7>w5PJRCeH)w4@*3=UC|jXWT=V&SSQ-|ls|P?z10rlm z+?vm1?3s2wp7mBRkO{j6_m*A7Gi2X<n%iW{MLBK*?DWmvz(S!=&EarF_vk;cAr9ru zw(AzAT;=$^Tek{A$7xLDnXEzP>LS>i7{`ibv)O<F)W#z9lvBGf*>(#DL+CiQ3EWn5 zHkB7_*5m+5LJSMASgb#9pe6=o3~SS0O%n582pz{L=Q@mOD1EJ2A_lALcqj}vO4)|N z(u?DhPOX31UGA@v?eGZMFj{j3YVeOYxUvxTT{s2KkoGM^^wpb)C?e)LZac(Bkp)rI z^%5~vRdkrr$L&P)J^P99Wd-aydJv|NeJBx^Xgks7WeEBW2j9#4*cu~400000NkvXX Hu0mjfh$Lv; diff --git a/interface/web/themes/default-304/icons/x16/bandaid_plus.png b/interface/web/themes/default-304/icons/x16/bandaid_plus.png deleted file mode 100644 index 3da2d463e34487009185d611fd5799e11a1a2ad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmV+j1NZ!iP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008dNkl<ZILm#L zdq~q!6vvPEhXv&e-9sZvY=0z~D2j<F<fAQ%@-fAV3IZwWAEBD`kI_Sr)XA3ET(zZh zI=4BUkIG6aR5Eo|7)XCa<?>Nk2|><H>2~g~6gBh0mvhd&=X^NdKQ6%Eb0VCBOK}{i z5;?HR2sG~{U`Ms46KF%Vr<1K6`$#^<Gg!;<O~iT@Pw_4e%zFq}rDQcgXxEY8Qjfzt zGdF0O88a64-OCLu!X6RG!@Qs&jerS<{{z_h=x}h^+^c3f_q>75_nYW1hlM)p6#Z5i z$>WFD07P~k5-Z(9R_cCcq@KR|MTlp><T6XixwQb1_w&RRvx8<j(^E@by@q8Fx5Mnh zxq?*zO)?UBH&3LReyXQ$%_VfY>*g{Dv(u6z))>=><R5@VN}}3xMe46O^rrqQogeAo z<F|*^JcQY4l8d#5R3bqDtOP{0<_If4KhV(OJ4Mum&7NU94`DU4W62iX(x;FZeKG;2 zrGV%bxv*;biH;6v6!b@T4gHCJ8HCkSxKU%4NUu1$J~pG!2Qm~JA){ae0ImYYRI;rp zTcBZUPj+0VA8ci`S6#qESp3v^gEnLeYr-o6y1^`TptR5^0MG^U0Es0_p#6etkGHAl zM7x@Yyt7`TkIPQeam?!u3JhoS*2RHQ;K={3pe#ad&>uie3OPT~Rx#^rQPPk0ie(UH zr}lu*xV_k~2b&#Cxl<?ULJqeBwV+ETMNV7k>}Yd2T?%1#bo&L3>O?LcssbFzli75o z*ga@>ll+0w<F7|?cmcxfRHqA?$`iN*NsKpu(oYNJeh#JxXA)h=`TL|0uh43#zoxI` z*vP1@)IDZbx+`TttzrINarnoCC^QNIC||hj^J3Hc9Tcwk3}MZo`0wZ&BO+0S(cFdN zc&_qdET>A@OycoA0<|3_L2W^WK&H0=PI<q?sKeTu0e%C4e#vANbi7vp0000<MNUMn GLSTY&GjFN@ diff --git a/interface/web/themes/default-304/icons/x16/bandaid_small.png b/interface/web/themes/default-304/icons/x16/bandaid_small.png deleted file mode 100644 index 30ad6aee130f7ef7d312648fca33cb59abb9aca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmV-k0iphhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003cNkl<ZILl-B z|NlP&C75Aw8L--oiD8`w6T?PNCWg&kOblDSnB;&sAIL7)<jEAZ!GlSV6a#dCn(BU^ zU;F<r5I>w>aAd7JQ!G&iZ17~#UGKrv_+<0M|KE=+`v2?rQm`Q_T$ySJ8nD)bNe^gK z%iDc({{OnN>Hp&mePBaCE?MNv)PUE3Rc=g*E8Unnt}bf$|M}RG|KHE70viHy$$TfK z$#Wf<RPY+G%$2G3)sAWZp8+*oUQh=%<mIjz|7SZeO`mDcWID%@34bgsbYf}(X$CnP zM1x#1)sA`26kBHV8TL#J1PuV%lzpN#@;pfMtDV#T_gXVA?Y3gJnq<SwK$HPMn?!+{ wN;)l>XS7-{&uKDa)&jB_h&Est<OOmt0LVw9Fnts{g#Z8m07*qoM6N<$f{o9cO#lD@ diff --git a/interface/web/themes/default-304/icons/x16/bank.png b/interface/web/themes/default-304/icons/x16/bank.png deleted file mode 100644 index 7f7d646299c95fceb6c4e99add2ead28ffc3bbd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006CNkl<ZILnoi zIjdSx6oroic?eo5C|Zf|P{E-RL@WetR7AldSfof3UXw<JB%}#~NO(q{b|Q$K*a!-u z*eF31CvX-K9R5Pe6gzjFB2|LPh0UJ6wcws}n9Jp29*>9ld_EQk1Xw5(Vv$IMMWfM2 zA>JXQ#~gcb;GrWT#{OXN5DtfZ$z(D$9*-Bu=rO-*;P?Br!C>%Bxm>OvkH??2T8)s= zV~+jb48&fq*BOh&KK6RO?PxTjY&J`oOonIlm}3tP{BHxN)5+X!_v=I=QJPMtKbp-Z z6$%AvwOU+=j2?6B!GVX48#o+}r+hyDeJ~hMqtT#BrNTwsZkIZp4$tT@#~vJb=(vH! zV)@YT_h~pB(rh-P&1OTV(}}LvE8T84x?C<e2U@S!d=CyhblgC#R=-uLRH<}2P5&C; zq2mT}xtvL*(hQtSr4k7TMfYm(&~XEaM1uG{pU<gUtx`N5r+YPc=(vGat7T%bII-L9 zs9vvADwU#pHF)T_f!%J8iA19J=kuALb}pBrdo_6IxPi%J`XoGA!mGnowcG8xHF)T_ zfkvbGg27}mp~YfBtJR9O+btaq2Oj(Vp7+b;lJCKRhmIS_WU?oPLXlA_m0xu_-Lt`9 z$eGRN7pv7;wApM$;l7JTqwz(r*MAfK`xzW~=(vIKy%It#g!Vr|Bg6v?egReM4R_E8 RH{AdL002ovPDHLkV1g4!4yFJA diff --git a/interface/web/themes/default-304/icons/x16/bank_arrow.png b/interface/web/themes/default-304/icons/x16/bank_arrow.png deleted file mode 100644 index ad30c35502908fe06f67cdcdb08ef840d2a10569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007&Nkl<ZILnPv zTS${(7=E26jE!9=Y)&X-5Grkopkv5_fs1luxEdi-g1jiCD99~ZL<fdCBHNrDhbW_q zWEi57X}ic_L({oxbE3n;Ty(havWutx{VzH|Vm~~*@AJOT^YH)Q_fu0-6B&(0GMP+d zHk-+6wUW(dBfH&xSipI%%z4gx*0G*_I-QQ_9|6U!t*s`P%jH>ITug9f&hvc(T3T9E z7K`P~(9lpglga!T9UTQ%<~-;9UICKk=4QRa;c!PHk@UjC0{Z*=;q`jO%ADuCXC3Q* z1?cs9G8hbPPNy@tyuAE<a&i)ZKmb!yQ=*Y8bDr~_b*yKf7|__**yZ>8=cCam#>dAo zGBP5XW@l$HGczMr<~-*;>sZe|0Yn;&=Gxrc9AdE;;_*0ES68vQxryD~UF32(WV2a5 z2c%LdanCx|vrhn#LZRp^D=YK#_V(g`!Fu+oR4O8=R7wQ}1zt`L27?d|3j6h}XP;ay zC(6&yXWUp>SwSciLU(sJ_Uhde+c-I#!6EbIv4fT?RBpOJ#IGTdNSteHYY2zK@OV7f zt8WW!;pu0fzUSR1-QaeIwl7IkS6AoA%gej8v$G?fw$JCopZ(Rb4V>`DVf4O5gZm}g zUu?mj1GKke+nSya9aLRieO>rv!G9fJ)%5iAU;XjtTkvLq&J=L^{ckuo0JVEQPD-Wn z4hJkPEg_LeAel@eolawYeO<)az#AOB6@lUAYt*|Ypc6jBmH?DzpM5F6_^N|SN=mw9 zGMTruwDfL8Ma4a}TJ5W;sTt5}wS%>_wS&T44^~xG4OCWE-j~}SeLE5bWTzf}J)pHc zkT$dvKScr*0#y5<$ohD=(E8+K;jzAR0xxFsPYUw-C?On*EdT%j07*qoM6N<$g5qOa Awg3PC diff --git a/interface/web/themes/default-304/icons/x16/bank_exclamation.png b/interface/web/themes/default-304/icons/x16/bank_exclamation.png deleted file mode 100644 index 10bf86ce4d0ecf66f2be6ba643bf313f6973f379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV<T0to$yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008MNkl<ZILn1n zYe<t}7=6BN6vAwfgUKW!49U?%C>%ouc^Q?8s5qz*5&f|I6NDRN7!=DfQrXh5nxnBL zF}6aQIb4fS%bar?w2Q8#?NSh8K^N>#!PEDAKO#q$ABXc?&N;li?+dlHwNO`A2Wqt% znwy)UwY3%6+uNbDv$KN58Di>bPJ7ako_q?00^kn;+uPdO)Ox+%5DW&R#MIOLzX456 zP12T@mXkJ{&7DrCzq?#6B&MF`wEtTGud%UFsnu$G1A#ztVPOG>hKA5&GI2~j&1p|M z(*FujDwUv8sgCJ%I_uKX(pRt7i^IdiI5|1V8HuT<IqgYDdh&4rH8nNe7K`QC?CdN~ zOiZBNZs$yXzaOWkr#Ysc=Cmgr>B+|eKrWYGn3<Wu`T2Pahr^giBye?g6?3^9=JR>X zX0vn;7>~!fJ?ThKJ{ABHiR83cEH)U8M*J5XH#ImlF6Wr^<daIJ079V<1OkDHlC4%N zvKNJgwQXz^og;hk(}oitdsHaeAs8f|NF)N_^ZA6nNF;&|hXZ?hda$s5aPK?@pB%>@ zn;wk4IE5WY_~YW8d>{ZFgU93PmY0{&?RKNVV8E?)0t5FOa3eo}8jS`&<ofYeKQHv$ z!w6UaR99DP8HPER$z-_OHk-}(d!3HEF#NOwKfmik0KoUDv*;V&lj%CK`;t<zAE2_b z@*?|Xk$xRLmCxtfQhV<<;G0AjuEY=H)FVB{Umn6(_$ZEE6)rw@G7OZKmR_NNP$-1a zXcS|y7$%cROr=s7kGOHsUys>W^|+Qiz@312EqM?<R?%DE9YzU7MMd4k#l@zQl9Fp> zWo3iq<>h9XOm@Ahs%pe?S-cXPtN6D5T88WCeYp9tmt#U~Zr7KGw;3B73fovnSV#*o p)(=(|;X>Gq5Vo5j=p29>KLJ?#2;yIg2$=u?002ovPDHLkV1f=jVzvMP diff --git a/interface/web/themes/default-304/icons/x16/bank_minus.png b/interface/web/themes/default-304/icons/x16/bank_minus.png deleted file mode 100644 index 0edcebce1527f6a985aeb50dd8e392b664cc2d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006{Nkl<ZILnoi z&uh|g7{?#KN<(mXaG)rIjg3&j>1iTkkf1QOA#O;72M=9hmo6$))FF%^F{jf*C8M<t zWp)r842KsbWMgw4bUGQ5n}_~^4jno?ecs=oLo2Kgym@}T-Va|s-w(~r&5_&fCa>2^ zOG``S^Z96HWrYHPz)hihh^W!W92|J~oK7dv9~O-G{eEvW8jT$t9W@Y9qd#=P;^Lxl zd3iasy}g~kxVZS9%jFmmHTszUZGq(RcwE6?@L{=JZXX^Vaw3u7cswpg)aYXl4*ahL zE|-hu=jZQ4B9ZLL$;sDZvB>Fkn)mkhWFsPK^f3nq9zJ=&?Ck7XDwX<FtyZ~EDDckC zj%+$OIN(yLBuCWfV-5~Hd_qJvo9#iRQsG*y#`Sug&(6-c*X!}s)fEp01HQbx#657U z)spAnz{4j*q}S{3j*X4Q*4NkhUj-gMqtQsD(P&7eQpK@3o6WMgC?1xBhfk~35-F8R z=<(_4Devy?ayT63VL5pCZc7poK0}hENT<``d_K>ySd53|;GYQddlJXta0C?!#r=N2 zFW+`DndIN|j|&U@c6^+RHXDDKp5_-sgV!q6=XXS}$YQZP5>J-#>hP=f_xG>m*@+4M z77AU{OQJd%42GvzaD05sjYfl;%_g_oZSHovvd+)X`OWGor>s^^LKX{en#~+hD!)9# z7pT?hwb9YhxK5{gZZerRrlzI@XWg2anaSAg_Kf(~8ME2EH90xCDeh|n9C-L{(a&>3 iNH1jk4;h3;VEzFH7~N@VdY}sc0000<MNUMnLSTaZuRWUp diff --git a/interface/web/themes/default-304/icons/x16/bank_pencil.png b/interface/web/themes/default-304/icons/x16/bank_pencil.png deleted file mode 100644 index 1e98dfc10870576573dddef28bc5622eea44c2de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007tNkl<ZILnPv z-%FEW6h7aa4Z&UH2AiLEN`Z=VSF<6a1LuW~q2Yz>qKgW`n|`nf84Z+yEOYIL7&KNx zh>{6PPGq*54KZ!HT{tHug43XXpkNnWJiX_;2okM6csS=g=XuWia=w>3J3Gl{vyt6y zr-6Y1ayp$fG&DrR!^77F?s4RrdG520_3Z2D=pedafM#%T&^|Uc=G)%hE^y?U`F{@R z@9&o#4#%xnES5MrI{LY=umFx+Gtd3Y2B>;_d#x^)YdoD!m$tUH5C{a|_xqK|HS^qO z9qWG&uv)Fu)zvlP@pz&;J3HT3R#p&+M377-6(dKkndd(1SkFFXfW=}N4TVA**=!ce z%gczz<BDm0eI2P(N{L)E&wbXho_zvDZEbCjGnouFH#f1nyNmt(eH<Sj<Mi|tXJ=<9 zm&?2d6pKZr&pOt#&s$$lWH1<R>-Boy)YKII7fzk-O{TiK@JW(-sJ6D2)M~Y#Cr6`E zh(+OVc{m(~v$1gl6BGC#Nm;6@s$x9N=ku7KpNHG+#%1~Ejo0vcy{J?w=#%9aaiTtw zWtmhemFM8#0Et8bKA#U4<)P_2NGG~c`8E!t(U_{Mt24z&d}g!RB}vl#lamu=+reNE z=kwJiKi<u?D(2X86I!pSBJ68#ZzpPQZhj)3Ecn&&uUcDM`y*d^KZ(VtSuwwQ){2** zM_@hs1c=0SCYi|PawrrE*xTDfsZ_$@;US9ow77PUVtzYo!N=7(MaO#f2@uuP)QoDi zTE9-Gn{H@mm}zQi3bwSggiR*X?1K?~4nMxY_fYe-`^MEpv9B4{v7UVzjfS^CR|E_K p@&&+Mhm^e8BRS6T;%HLbzW`sC@=npSEw}&x002ovPDHLkV1hepS;PPU diff --git a/interface/web/themes/default-304/icons/x16/bank_plus.png b/interface/web/themes/default-304/icons/x16/bank_plus.png deleted file mode 100644 index 17a55d1d5208288618e20ac9d83d0a3c2b09089f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmV;o0!aOdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007hNkl<ZILnPv zPiT^H7=Hb<jWIXJ6dX#B48m#tiE3ivLC}cJ#My%IP!O?LhYn4nB8U(~BBxUZ+lMuF z8R8+qflRz8A&$)nn{$&favHQC=+d#n+xLEl4lS_{9-jBl^E`a~em}5SEMT+Qz~OMf z<m4o{TrQZJnu6)+>5Cj55mQfd+LMm-<TIH}0RIT+b-UdTzuzC&+}x}ZQ&01*0TUAw z3a8U~FOf*3j*gCgC6h@crk>`s?-an;?RK-*>wS^W=j-Ki8N=Z)hC(5psi!&ZNk{rW z0cNuqtXAt?pU=l`Z*Tw1WHK0w#c+Lnoi`FwPjlLnj`ZZ?1IEY4XQR>Rr(&^)>2w-b zR#tdZE|<fNjSZfur#bCOM|$#c0MO}l&kKbDmP#e8R4TZ?zmLbq$JlDMu-$Is$;k<w z1J-Iaeos2mlaB*{TrPhglgR?XU=aToq$i(3p#Ttz#UK)iLX^z1EOG~h-D=X4Pa=^3 z2!%qztDT)4TwPtoxw$#)RNv0sM^*AN3Z6<T%&mT4-2DLb8w|tv4h{}5l}ceC5Wr5g z_TzPY_`{D7AO6CyQh@iv07j$HD-Z~tG@DKSv?GxS{$1Z(^Wb?_i@KBr?|h#@m>+73 z7G<9yF}w_8V`DG5CyVsz=&G{W?3wz)k`8UBo-=^Op$d$QjJ%<Mt*tGrR;#$Tw}<t5 z9UF}XkHf=5^sISN!(Kzp@>RUlwxW9J3JPCKzCw6#8T$JAW(NiaLQ<*ptx~CcH##~R z(P%Uadc8hwFc{+8UB}gG^@2*JnioAA{HADXk@1U9$p<%jfxaFNat?~FnC<xhGv{{U dF~<PB`!~9f;=_Gqn$Z9N002ovPDHLkV1j}AP4oZ& diff --git a/interface/web/themes/default-304/icons/x16/bell.png b/interface/web/themes/default-304/icons/x16/bell.png deleted file mode 100644 index 3be57e07a5366b7f9e1f10f1de713adfe1908420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007iNkl<ZILm#K zO^Xy~6osF+s`^vAx~sdorzVpbM;Q<lOhgP5f{<j95FOA(0wM|`e*FeFZbfjLfc^jz z2<8VkS-TMzfj~AvMTqt|FxqWRSJnG*UD#^10S}zbecyZTxreJngqxQ=%4pRUVN>yB z)BQ1;5Lqi<cXukfEj9D+ryG{p&NuLY6OAfY25s+!2!RN9fYZ~r83X`cN!STLwBn^R zhmK!3?7Vt%aO<h>iplu?pLbebzA>x>-2HGG*3R&&&%Ql*C{WGC@#bb_<MBV<4%uk0 ze)HX4WBEcGc*}PVjG1u|59XH#dYrzm*@FIHF4mf!xc~1<HBfKq8%t2F*6JVbTJ@z~ z7^#SpK%5{>-V2m$C5=|EqJ(KGQnIF1tr^ygB{mj}EjchoFh<Z?7UKEkj#!Ix7Hcg6 zSO->Tbb5m*EBGWYATLS+;@(gjR^nu_Z;JwJE!JuPj1_dA(T=)vdCs14h*JTDIOS(K z`&RaUzG$?@T7xzk5zrR$LbJ4cVRxFbFW30FE(vHWq?vpfCA&WD#r=7$HO6Rkks&~# zg{*LdVQrxub(hkKtZGvVG0REPi8^-T+{N$xT1{2LkVdCNJL=Gn`?NX{)tw=JwW5yx zc;wi2rq;5Y<lP-Sf5F+4m(H(M8|~!b!)J^~Dd{+6d$fhq6Dk$Qj;5j=dc;vPIeL6` z?YG<aUINzwfYB=%{(SxB->r6c%L^KFPQ(NF<<`}e_4Rdr|MlL#3h+Fv)9LWl=;eRD z&k#U~2=k!|o{i}NF;E9sjyQN=j#B`C4Y~bjiwDz-D1hfli_NDaF-k;GN_jwY%7Bl< e0x7U9BJMRl7CwkXGvez20000<MNUMnLSTaKs7L$& diff --git a/interface/web/themes/default-304/icons/x16/bell__arrow.png b/interface/web/themes/default-304/icons/x16/bell__arrow.png deleted file mode 100644 index 82ff8a91e8869d709afa28edcec3255c81becca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmV-01JC@4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008_Nkl<ZILm#K zO=uit7{`C_%<OD-ll@9|H?vKXrrT&CQmw2)r3giet!-$FcnGC}h+lXL)RPyFilVF+ zr4__Oq!q;86d{LH#EQ02A{85z77I3MQnuaAY-Z=3cODPBw9UmoJh$indp?zjaQZci z`<3ZaWYdc4Yw@|}1_fhe-#-t$!S7=yPbsBpB2o{7V7A?AvDw*`1sqGcyjjj!w?%M7 z_-gl!_fLdD@YwN#!?iF7W<=x!fCFHud+u0xCQ}@HzIOEG$78F{`}vm#6Mr=NO>;fi z|JTLy%imRErjJx>pML(^jKpylV9X}K-bbFAt~n|_dTZ?_mlFrsdt}mHYLO{MWHj)@ zEqMCbUA1$ceLv#>MA0Tdv0NE1>y{5d;mS9ByLb`Hab@XxV|B~E1LZBds?2`)^(AFl zbqBz8?#^JZ2jaMHvQN_myuM?e(UMKMvXzPVcH)m$nfu`EC1qLl^uWNZ1EBA9;H5G{ z2_^K1a$jp&Rh?_iAM2-<4Ng7T-#>eIiBZ%|6k%kfI-VC}h+~5>1_4YAMhBeSG5_oQ z73=Lkqn!(m?czqsE<oaL5p9?#dZQ&1h8SZoMgtHTL3aXjg~8!%@>8|yE-e7i>E0ZP z6%s2u=rB3)(C*PlYmAA|kwyfxfljCy+di`0518y|?2d+x?g6wB{6L;4c-yuP6-yPZ zHBqF|VSoUk7J@J)n@x`73WH<*hV0Ripd;x5f)1X)p$;E=@s$I1GN}^TEUA2+Tp>@X zSR#`z;0|Q5-Gn;y+>?jfftm_Bc<rFK#MRrpF#YOFQ*J8fUA?+YtLfvneA>+hvECq& zi0Mx&a#@RFA?+PHx@YQ(GZ*gI7VkI!&2?G%=-tzoGr7Tr<)nsV5ewksPu`lCo15dy zvlsqWfMsD~?XRpi@BC}qtXK+^h)~HYXSu}?Pz3q_#tS_9@G!>#7FRfPt-(U?BSK)+ u%dqBUh?Iz+l(K+yFC6|~2JnG45dR0(@>B+h+ve8*0000<MNUMnLSTaX>5TON diff --git a/interface/web/themes/default-304/icons/x16/bell__exclamation.png b/interface/web/themes/default-304/icons/x16/bell__exclamation.png deleted file mode 100644 index 2eddd3d11ed7f06b1a1d183a2d27756f5486229f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008%Nkl<ZI8Sww z&x;#n7{@>FJ2Tm2noN>SHals$b=9qC1#2n7)>3Q*6}t=FgF-C`>u>)74|?$=h#m!n zD&j>}U7>>Zw)YBxMM3RFs}#E%H*LB}CYj`&cODPPs(bJYpWE|%AHH86B_dpSRr6mJ zvWmc0TyLcpI|Itr%BjcCt5skLxCDH%JG*ytEDfyWGQ3eM>f0i?%HgZH=R9}s!ylbg z$~`SYRs=-A1<>l>?NoTOP(AqUv9m8dl<I7Fw7u!X{hwpylV-C)zBqg8zSf@`kBRX0 z?lr94!-*r0o;&6$f3DkVd4K)!i%y1D{R4+i=bu^qf@=N5J*ibIHo>*Y#2`ubP_5PH zYm%k_Sal1pu%9&9VSRm_L2s*=@$WpGSROIE1{qiF;v^O~lbOnn0|`bp@n`PlM*BN1 zee)Wv;Z?lp@KBQQv@s|RV3L0bbA^hh1O+fMP28M=c-P737E8<T;=5h)`C-M&=8q%^ zi<1aKk_g5~qgtOYiM6DurFrWLwT4GdZ;|&RqMNUi_agFMkFZg^%NSm80c0E(V_B$% zb2D}{!dlB<pt<sG6VFk&uBP9AuR9p_HkHFo0Ii891`5E5hjMt~{s-q0W3V=%Q9I5) zXFrudQz<w^vEEtx_~NI2nYVKDsrB4RiN*?1EXT{?9S17anYuBCBr%v#i~u7e#G{lT zm}(Tu(+4{(S#1BHh&I*OARZD%1GTjB{L4=`Q&Y+d0&=Ai#d3+6>I{WanM^*w$$09_ zQzw`Dv09FYgxkMOK5_dttLI*MaXFJKhS#ob(d|S;-H3jtO=<>sUdldSQ4BQIvLBu~ zySV)M+T|Tb^R^4n=}GhbcP{)?C{DMvo10BVG{6TRzPYfmvB8(0UH(;#OS7qon!V1> z4acFW6(|v*9w>LKO9iL`S%CR6M<1BwJiw1l)_!mEJ!6f4?XW;AERZM>K`EsHe}X$1 g{6ASB0{TGuH_U@Z+@No_kN^Mx07*qoM6N<$g7RB`>i_@% diff --git a/interface/web/themes/default-304/icons/x16/bell__minus.png b/interface/web/themes/default-304/icons/x16/bell__minus.png deleted file mode 100644 index 7b50d7261bd7da38b707b35fb789aef0aa4b5c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007`Nkl<ZI1vTG zPiR|p007|c_wt%FaY>st?NYnVPIsCxH-<1#K|~O{L3i*lMM1=WN4<K`>+r6FdC^^_ zBJQY%-gl6B5Cu`kgy~$nmCm$jll<O$Kff=elw5u<0|4#mpwkL&-><F>_I1lLJvVnC znEM6S6MzyK001(aZ`OUdIFmg{NuHAL@ES4zfE=;_K$X1I?j3pk^xE4`R@rp_)b_u% zn-{+?w$^`tq1=rhVE~Z0kwaMmP$f@4@%)9;d1xKpy1!}j@84|wai_kv`br&b0QmCC z6*&|I09DdkTv}O-J3|2Bv5qf({2^`qvw5!=xDAkVBZqn(0BXCVl-KKx>1YVxnfFgx zTsq{+r<cB|Hhu8twW@$7GKdASAQt+~_WV>x0+0ZxVraBFjYeN@Wi11cK~W?{k;Ism zdrK>`sVr4hsVqwgWknfBX6F~Xqlt&}9?Pql_NgF)RFNuT;aIPKc%ht3lx3+bBPhxw zjz?y?a|g#`kH&(0f#!)IgH#2n3boPL@neslJY2-6EDN!SQX-a&C()6k%SVSJ$H!4^ z92rM4h-ESyrKh_6M-I*R7M5a+iXw`Wk%UQ1Mw3dX(^#JA&K()<r!%ogVv%Gp8tV`D z!`bt1zVl+O(FjwWj^^yFneMEG-h%dQSN%Xotv(f2Uw-!N-YA?KjrI3N<Z$nSH!i&U z*139frhn_!T|0xJ;m*+BU|SXUO-)rEY6UZ$Ot0JOudbar_x085|J5=Va~SNVjn6*0 z{A+t=Zad4H2dk7axb*qQ$JW=^ef!n*n*mv-tm1HEckthxTFpil2q`5?osi$%F^?Xm zVWsQTiGyB+pEq3nYuitN3GVgV?)Te@kWvyt$k0LyIRF3vpu`Y+sQw4IvNFt6T%0BV O0000<MNUMnLSTZ5)MLs3 diff --git a/interface/web/themes/default-304/icons/x16/bell__pencil.png b/interface/web/themes/default-304/icons/x16/bell__pencil.png deleted file mode 100644 index 71e06cf20abe86115d86ae02bd926f1f1da9964f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmV-81IPS{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00092Nkl<ZILm#K zO=w(Y6o#Mgo4?F7bLS_M<i=@YVnU@IY#XZ3BE?#SrcIy$l{TXIgMZMyiVK6TQa2)s zN-h2^tb(n$ks^^nuoR>yMjTvdV-cH76P<J>Gjr$O``zOrGtq2(;aMHtbIyA>N<=vG ztmeN;b}6ic;*Ztf^J<ffF>)x|t;p|CeDvM@Oq5Co?k$y`TZY%SIya<&>3EbE`%-#M zgs=z~fQJDsB4Z25<b5Nvv(qc^au`6Xf8Bv_G?^QEWZ&_p?h165JziM~1#Yu;<?9Q{ zfbvkI(WuT9i?19R9er&^<e~;JW(#-kIec<oSS1E)tE-V4*M8C4<VI@m!SQhul}FE? z-SbAFP<ZKz<9uM?D-GcLTgded4EIS8Y;IL;EU~gy${c<0g&ps`GgmAOU;ow^v(U*) zG^{#=d_y=IjdgX*e(*O-m0!8@o*DiAn{$6Q*5z~%Q0&yh0G_`&%#J5}B1%vIPP0O- zb(KStk8|<-heVyk58ch?k0*AzoY?6Cnsx-i_XW?Bd~RSkEyfT8hQ+HtF){NEUwnL) zJ4Sb7XY-EZa!bpF4jMp$4LqN*oITiUTo+>u6Q?e5`uW3b&)!bIWs%Bc`&%t;^Zbpi zJ-;160tFCqTC!`buy@e+JdE)veR+ztzpl|^X<Dww&`5sdQjuM;C?UXX9?>&G-H`(s z`_}C}x!wWK^YDES&vg*M^#sQau&h`<mB|j(o3h{Y1<#j_22KmR-c*y*Pdt4j6pN{d zWf4!ONoCUX=6Xq{Geo;BLeYpi_Q1i(hNGsO7IwpFM_5_ov6Ig{ITekk?8U`pYSlXR zTAfC<Lf|!tL;|)Y6e&xS%Ovb$$M;WtdhYVgkY+9nP+gbuTd$t^Iho2<bU5B0h-iSf z-<=(spP%QmPcHwa0Ie~BS1+$uZ(a|DC~E~uL>RDCc)3OokOR5^hBJ)s?&l$Zg)--U zukd~QS6pDlPO@qz@s)_6l+r+=O_=|e0qQ^l2>t>2f?dxmyRN(d0000<MNUMnLSTYv CH;b+S diff --git a/interface/web/themes/default-304/icons/x16/bell__plus.png b/interface/web/themes/default-304/icons/x16/bell__plus.png deleted file mode 100644 index 655a29e97a738a0e390b53cccd23e863b7e4c643..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmV+f1N;1mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008ZNkl<ZI1vTG z-)og+007|U{m!?u?btcn(QTeFwP^#vq?8#LQCJj_N_x?SNP&c9e?d?;T^4p<WH;Se z5eD6KBS{E((?&(VkVGNL%}wVv&vwrF&ilPRPe>`b@J<E*>O(=J7W}(he!I4*8Dlzf zb^jLM&(uD{Eas$iPP>!=03gH3;i~s1MzRMf$y0La#I23jLy-=hed)}sBF*Y1kV6&# zD3e#}W4qp%J@M94Wj540xN@iR-kl%&S66PnIJ_AbR^uw&5`LD<<q#tPW%A6EFPxgq zLv821<-6|Q{@Y)@#p>QypR1z2++X(m(Ic~P<<bvw==T9Ald*}(>4{>!4Pd{TKfjw# zw^!~hwN4+H`2Fi&=Rh!*Lp2Wom4}^_SF3|Vg*JeXr}mnd++p(47w*UVY?cg!L-HVp zq7R@oT;Dbjk^m$C$|CGrA6Wb8{PhKSn3D&l2IbK2Cy<h<sXf!9DMn=(#TX^Tl2~-S z+no62%F2xoug5Si29|nqNF`82Gh?lt<FVHhV-#Zn`Y|cG9V5-H+oyZ~?0GDvd0n)l z3{n}SGE_QU`(_?Lu(MwjV(csWg_I~F-CkkW?y24Fj(y!irCZP~$e@TxyOW-7wjSNF zZESq9C<^_4q3Cra^opd@D>WK}QzOl-yV{%SaM4eSev(0_tJU5N$4<Wa_RE#Q!7$Kh z7#<xp(i}BDHm*L}RDGnOQXL3KUwii0MkgHabhS1*<goO>nN#P^9<L6Mv~J#9u)fyT zUT@o2TTvF91_nx7YQab&GuEuNj-EJt{Hu%CRx6p0a#(wq7C$+E;g9;r)|D(D-d?7Z z!Ka^pFmw6xW#4>x?M6VBiDl7Ve7LsyU!`I(3xt%C$wtT*)@{QWhG4qs;1k=OhTj%l zytQH;(8E%zZn;(04=E)fgbX#*kOKe!03zDhK>0twq)rB|Am38}0000<MNUMnLSTXi C(0L31 diff --git a/interface/web/themes/default-304/icons/x16/bell_disable.png b/interface/web/themes/default-304/icons/x16/bell_disable.png deleted file mode 100644 index acff16b14486b1248a10a7cd1dd53f28487ad097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV<N0S^9&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005FNkl<ZILnQa zu}cDB7{*VdS{!N-A#8{X@dz_GNCkr^oXQAE<%;Ys&PCiDL{}G4Cnp_rQN%%9^iObg za}?bC3!DV)eZ=qMIxgsgAH4TG&-;kqov__*g-)mQi*C0o^m;v^-|wdZW@zRdb_I(9 z8--;;A<}y=%kV4<TCEnR-ERAa!=budE??K{bp&9B2G5w~1<hvDNNhfz$4Hlnn>{i# zc*ZO*sMqU8wAE_$Ncy!AXz+|#UQjNV8TLx0lHP1KVbZURK!b-2%kzR#sl+&~R;wCm zLBeYySgX}EWLTaT6bgkM#bQyU|MpIrpSU#PhldQy^MYJ1$G97fMsK8fhzk=Qc*w9k zFUVvvz@E)!KW4Mp18L`0z(WRE?C=6rRRvwwrF=gBNtcCNKeGZJGRR_w7o<|DlP@~c z=@h^2CR~5uMh02z@B&3qqK!r)x>zj2lgZ?MJRV2r%X=CO1}^|JG<e9+Wj<qv7sTW7 z0HG$6$?rrWq0^iO<lW*8uxEIb(P#z%Uf^^(Z4QUyNEAhvmyRS!zECI>i0uz%Xz-As n>@jwD0UaB0Kpg%PWOoHWB&Q<_5XM%U00000NkvXXu0mjfi_X|M diff --git a/interface/web/themes/default-304/icons/x16/bin.png b/interface/web/themes/default-304/icons/x16/bin.png deleted file mode 100644 index 7fe988052a9582081778d449ef46247b2241ba11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00072Nkl<ZILnQb zJ!qOi7{@P>Wa#M7H5nbcWDH~xp$?@|2f-x{1*N4*Ek$sURH(Hj2zC>Z+DV900-aij zS|i37t9hxZN&JpABt~EBCyfqI?~y(swo49v!*Rd=pS$<&Wg3l!Au5&Xp-d(-%+1Xi z7-NW;^Ll=MeqAb+zFk~gv@b0!S><xMnY)kFYBfVxFc>5Z)yshpK5T@u)y{6Sca_i9 zI@{k$?NIEf84hI|kx=#`QaJAm=u(aa0s-RI1?W<a`Tc(4zk;KB_v`UlZ+|b}+PPVP zF6EfV;~}OB+JkYq)*1?icOrxjx|N;WWsC~Yr5tm+-Nbc4rqIhfK8j<#vjH#OUydI; z8o-Z|q5^a&$DB?lF)2voTXFYBvzt5peg2d0VD(iUwlkfn9iU4&wzjrLObYf3Vj`01 z)Z6`0`LsDq7ti~dWI>F5+HF<%x7fo1bScLy77KBGgdeqTGL`GK)h~~sd@&G0nO4s6 zq1K6?G~-x+F6EffXe6!+PR@G51Jid{wdF=Ca~4eN`C&9G9@7!fr5w}i^~BT;l82r4 z{U>QC@g1Z}V*KVcqDwiZ)9Hw*YZUvVQn@im9#nos|9wd4QjRGU3Z~U+kz2n+bTNb3 z$yixgVM?V^&)+uqd_M4cy}<7nY&IKMtyZwx?cj2`CTr+$_v!NTGNW;ab9Z53;aRm> z1wjxXkw`!+7KhEvFR-!k8Md~f5DFbYI$eQcu?_ssG-2j%mPtAHBofK<+1Xjg%*>2~ o&yhC>pHJXx6S(I<7c-ds16Sf+7ol=9hX4Qo07*qoM6N<$f?=#Nt^fc4 diff --git a/interface/web/themes/default-304/icons/x16/bin__arrow.png b/interface/web/themes/default-304/icons/x16/bin__arrow.png deleted file mode 100644 index 1191c51775b8c457bc438991351d999eefad97da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV<G0u}v<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00089Nkl<ZILnoi zOK4L;6o&tqJ9#y?>CLMzs%eWL_$bsz4N?#)xKInC=|%*lpeQcvO6W>)qnk<*D)>O8 zB7zHbVRfffgKjKT1s{<%eb{PRQ)BbEnS1BnabqMJUHHS#z;M2E{^1Pi>FEIgaL&6E ziA2N1!~{&!1b`|4L8sH{QdQOR`Fz~(_ZKxyD^^!mPbrFW4**y!7Q;_9M7wq$pIpc< zg;kfkKHv_0$rNX}X%pSBh#_nONURKb{bNr?hDs0<Lg0T@&M?mTKMNTp%;9EL!m^8o zfK|FLXDH_!C6`N~lzH7u8yGe>74nW14u!Dt1|_p%u~;$LG-+t)cD8ByvtVi!5jXCO z$npJ-uipzs4gks-rtA7|u*a#mMql!}ecRP^wbxGdU-;H`XpcHw;KnbioT*5l5JKBm zvuu5U8rh<4ojz7Gp3WKh)FN%F4bjw}38=2?C>a29T<EnSGB+{HwG(G&+bJP5mzBX+ zZwr1)N~@Hh<ccQ%08@zT)Ws<+P{Yg<XOnG_Mwi~RGdO$eoza{&bWLcRqn2e|7M%Zm z3&N88)X|lh)K}dx*x&N{U@SN;AU;nmadq3)kZ0bzrt6b`%Ymf2;qU*zwxzWy;`w&z z%<7K=kH16`3)~|iF_TQ<sZSubcWva_%{P70w!!A+<`52tE1O7Z<+;dCDsHW-yVaS< z0{+f5FabPI13UJv-+1?WypI4tXJ;q8Uhm=F-rmd0%geBB8-+pv>2w;;axGYrK2S=* z4FfeD9cWzNiWgTOj1fu)8Gx#IJg!C}5oa_SMJAJhuImuO#^PcQ>$rs5?Saqd!^x2u z<eOXZ=-icAbK(7PVf6eR0w4gOQBjobQp&KD5>iS4AOJuJLFuHMj_e|VmO7an9T6WM c4g#3}0TCZ)ohX+7vH$=807*qoM6N<$g8WHZ(EtDd diff --git a/interface/web/themes/default-304/icons/x16/bin__exclamation.png b/interface/web/themes/default-304/icons/x16/bin__exclamation.png deleted file mode 100644 index d87347ec6a3286122686af03d1a880bc8e6d8aa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmV<K0ulX*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008DNkl<ZILnoh zO-K}B7{~wb%saE=?(C<l>qokkR!Ag81$z*Lgy>Kfq(PlbC=w4r5Y(yY;wgy0pe{lk z0zFiqhoVE7hscCNLK8N>GBtMHb=}?Bciwkqy0o%l9{R)oIXpbS=YxlIc6I^)7-MH< zW@f76@i;i=0N@5tuBxg_*LBP1^RZwsSO^3H1+UjTC(H6n0H7Tm9r&y2*oo7<KYr)d zDs-1t71F{h>B0izHZe?#n8GH2gZi*1IPrd@zX(ww1pZg03}uY%SV$#86^*)uWfx2V ztC%lkB*qwuE|n}v)T7bB{ipm`KBv?vGNGjnil&7^VcTTRrEve?#;*BgL3K9~&xS>` z_mYxW&zo5QC}pT&7+c^nRd&7m%p&L8^rY8guik!`YVJCx&*z!BNtH6&HjoLCjvSyH zRUygTDA?BB9{-nQ*36l!&l`Q_D+TgdUdl*@VW4OL$TDG6hRITVkp-^zEgq2wk@6cx zd1_@ew7>bX*GP?O7EdchX4?q>KxN{(^Jp#*@>71jZ?^gP?hpJzYpvtfT&mAsqg4mK zHZA;a*!c^>a@d_~_371wp**-%H+i!8O*&GwN50rK2!F6vt*e+m+#VaC?XiJ>H?VET zYK)ep9^X4Ko?3lPG*!`vm5_&qhG1l7Ngx=m5f)mx0Hmd*C77lO(=@l7VLOhMV?3K% z9t`=)LuJ2G;}{vfi3FR59tl<oflkgr2mrLSw7}!>T<Pxaev-*#VB0qG`8;@j5>3%h zICQ)cmRLu_!3o5_9R)z}bL#uYTqb*i0&tIwjp@;7RE@=ANT<^<3<E;gSetu`eT^#0 zq!mE1kxSl2Hu(Yo5UKSyOeL~c34joQ8d;Xx9LK3}90!i$008N^gj0L#5CH&?%>Y>j gcWci2>>|eh00$9fLk9CjegFUf07*qoM6N<$f+W9PApigX diff --git a/interface/web/themes/default-304/icons/x16/bin__minus.png b/interface/web/themes/default-304/icons/x16/bin__minus.png deleted file mode 100644 index 8c70f25b5cd66a5958d0836f6bb199801fdee43f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007jNkl<ZILnoj zPiPZC7{%Z0O#U^SWRoVfEwy`4=&evFq7X0UCJKTLh$ks1mVyOuics~^lNYt3-mE7* zd9bG<Xs@-!_TZrso3<nxV{Do~yF0tHJ05IGZ0f-e9s@J;d*2&AhGer@008Iw{QCNO zUoMw}<2V4&1)$sS_Xku}b)(TJkH_PdrfF6r63J6a-v9s`8ymx3^_@I(Zu0Ao=C70* z2=*p|$?sKbi#r}MZI{@>BY?zUG8|w2FhARZm=FU0TkQ<vod5G8QwZ|~S(k7<%NB53 z`|XUvIY&$FMHPjGgG_rc=ZqRn-%%eWtlgj`W?5E8XU9>Jv#;v|o8JUeyNG!CR_K$L zeLr^%y8!_03^PshFF53<f%hNzk&79%5(#^yTMu`JuUt?!4Q}sK?Mz1kN{BKt#Ol2X z#jabPdv_xCsnW2UrLr>6lT=Cv6DX!>q9p)maAEc&Ng=n*wW*oy5rq(?QJ3ATpN+UH zrQ1r-QpXbjfKd{dev;P`G3HFoYz*uD0W*8Hd)u-d8$h_l=u1n7k5RaiPhTIb-g%VM zp57Z;`_<&lnj!4=DU8m~BU&sTZs2*+J+6m#p4}h%vTHb2@#e%azPb_tfO^2k(wiH% z{ib<M0?VvWC?J(eb(%=&Ho2&~o+OpEmB^*jry~1@Cq{Ju`ir?a5CBN0(+G#dSI5W4 zpVw+Nc%BEtFi@#fAcR0@VF6011cg#iN>MKqwtSqI8L&+Dex0i8dUkPf@o}|Ug=v}) z!b7>-0Ou0HU<lD@6q=?X7K<U18M%?q=U)M65C91P{gl#-lrklygp?A%pLB!}99SiQ fvg^9<02F@%f3a60o-qv@00000NkvXXu0mjf{_#BP diff --git a/interface/web/themes/default-304/icons/x16/bin__pencil.png b/interface/web/themes/default-304/icons/x16/bin__pencil.png deleted file mode 100644 index 0f7a531e94e9e3ce5dea4c9ec10464b75b51e032..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008WNkl<ZILnQb zUr19?9LLX9^r6Q+^dNzPKKKxl1fzk0BKU`BG)NFZiD0W}k|9Qcn&ey}<U)`+mh;7F zldQxZbMw!f+th8BrgLuYk87fHf7(A+`ta+V)saR$bm8-Gx!=$Co^#LdqNb)MMBwxJ zH_OY*MFj-~B7_j31JhqvSUAMta9);_l=M|rRz9t%sp-JkTLOUq5s*fsp@{s)X;!xt z(%Jp-wQ%x>%N~d?Y<gl^{Z3e?wTBk9_M=7jVTvVL>LImSP5JKvlBFI}sZ^A|3U-2t zCFenM-Q<d_{8>P<)I)N)oRU)zOP_fIkrP%l7zLdz;ahPW>uCYWQV+>wGRk>@)tz)n zCZcCTX$T&_K0doE2?5^91}z|2;><QSA|#bcDcJ&}D`Jqn4JRD?-w(gy6|_DN!h$uP zvjUP`FD*qThC!&ex0jMFSa(N_i`IBBmOAzBhfgefhbgPs9o5gTMSS>Mm`H)5rDf2= zFdqyIQ;oX1x+v#c*bXGj8;)d5(CGy4QJU3SBM!-UAa2+V8&++*+fN!A=Af?+<``xP ziN#{ddBN^MlD*OX1zNiur~D2(v=6yXmhDmJ=T(huOf?zIWHL}!R5Uz+P#qEqg_N8X zn787wy89OJ;1z6mqJ{;-jBS4ES|oGu47gnG9G=dKH+WQ0TU#3?=NO}@Q;#>4HrssP zmX}QLtn*X6tgIg8rtaOj{tB0%?urV8YHMpzb8|D{pOd(@Icxbe{p-!+vMVu@`MsZH zi9_7%RaI4m>g(%;c(y^QRDwdG0DR8S-y?>J;W8ld$cr+Nk8}db;Oqk)kB8`W0dujq zxcH&p?+2D;!DuvsUT=WuQ4v7O3Cf|X@Ns4gEEXT^?Zp89neD{+?II55a(;gPqrAL4 z3BxcFd`}p_!0l>gtLzdpiJuJ+a85$9#3AlaLwHvf^A!?P00000NkvXXu0mjf%Q<f* diff --git a/interface/web/themes/default-304/icons/x16/bin__plus.png b/interface/web/themes/default-304/icons/x16/bin__plus.png deleted file mode 100644 index 1b1a05c8a7f34eea6d370ee15dadc3833f3905a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007@Nkl<ZILnoh zOGs2v9LB$M@0o}5az<y=5%U%X?gXL51VW%-U<FdnCR&706b3@nA}FjjuG$nvx$L!Q z5iJUWpa;2BNKGka@|D#%&N$BF-h1Yrb5Dz!m>OI3!N-Ba`F-d6^C$6m900%=JF>8_ z5KSZ!uq+DzJOJvQPN&P~^NBzpz(S#r84LzZzu&*Cs_Ih!paTN~_@!v9`|!}`jbbL^ zbGe)9+~Mz8bCp>(F-n4zxJ>|w*047;_4fH#8KRtX{I4n*${73SL#hz!a8nN#wprp3 z<@-uTVT_^dN~wxMy>1%3anIVP7ahACDxsADWmD5MtA4gDB|P>x-?H+JQ=f<M`_H&G zblkDIt(OV_P{~lkF#dpRoT}^1Bx^j@<4gO!cJk8At&WrZz7?I7ep8i9RRfg}rL&#p zo9dKO-n7Nlv$gNjg;Ft@Qd%0qO7iapieVTi8vqK78x3Kyo>*hS;nB5Dg%G8Xm-W;0 zdPqnq$_>h{8UX;PN?aqimxFb+)EXXL>d=~9M!c_nZDi@<?iK4}Q0&o9M04SB%eHo2 zBNvj5oN3KozLf~xxz;|DDY9Zt=cP~i*=TR~ftrUKk6M>&zChSw=K$N5Vy{-Sb@zJv z;<j#?SLQCX&E;qO0I)5#0cJxu#Uv!A==%CPB9TaSh?JtpcwX3&%%`XQZ3i_!0BrJ2 z#QOJZ0JPUnUV#8WS63IjUhk>F!NKudE(hDTq3b%*=`=X!cv<@nNoN|Ws=$A=9*Ym= zSDDjFfnbUP@Jvih_%uy(#$qvKvsoC10nTltQUx$35p(w;5D4JhhttT240zrm7|rzo zC=dX30Gd@*?U7POq?C|S0{GdE5Q6e)_o|0T1dT{xR=%*#1Niy_d5vjknAjQf00000 LNkvXXu0mjfo0wnc diff --git a/interface/web/themes/default-304/icons/x16/bin_full.png b/interface/web/themes/default-304/icons/x16/bin_full.png deleted file mode 100644 index 463c7d6aaa1fea3ed62c24b87e089bc5d8859b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 809 zcmV+^1J?YBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008;Nkl<ZILl3w zUr19?9LLW#l&A+qu~&WQL8uoW1z$wShsYYT2Oq)+JQN|5dYK?OWR(x5Pa<P2ix#+t za?=DAT+J=rcHP`x=bUr9>D^zqxqohR#_60}Cpz%qa_{|ozZ`z|Tp*E10HLq1545+p zgSxspAP@?{O^M_N29j%2b2DgbYXcn}9iY3rn|H-xF%S5!;4UtJxB!ak>!nv38eaGJ z_ZzP@HmaLjTBdP<92dxN!3cKm|0~dHwG_yvO0JciuxaUs+gZN2Os5OgqhziU{<LAY zE;C`1!JGJg7%#erOLIV@(NLg|O?uz2Gq%%w^@J2;ix&}0G=5fQ=kfDp+mVSB5SQkF zTCJwQ4g22yN%}lO3ex#fnh8Ywa597J2j#P9ru_5Ws?A0Uh)Z)|c6OEmy^*AMe$8q- zI4-5fRms}Wt0a<6Cu)xrN%YmS=c79yF3o|dsVNFSgH?Nonf$;N!?9|yP`Qjh80XMu zBg^S60V|yWacK@rOiWOqH=OW&F}YkOXEw+9gC~XZWo*+G^ar`j(Z{tAXY_JAq=2|I z2S!InDRAB94v-n73m4qBCsPtX51?445Os$NsW+NvWx-%~?uKGM;?f+DN~IL&!8>@n zvSq`QkKY;gpocH^f887LqG!{gnx8G69^>+rZD)YEGzTDr6n+L;qi0KR+Vwd0^X1!* z9Vl0-#S^*8G1-}N+02j~z(0%6fx*E+3Ur5}zB#>-Ipj`Rv(tB+JFju6e3gx6%i%fw zCZn?i&143|r8&^k(*p(u1_*G;XbaGDz@@TD&8o>tPNGu(jnQof&Gah}mt;tmUtL{Y zptrYo2p>(PQmK$qsYEj~GiYpV49R3NB$vw({$%_+;$ZhlXJ;p%>ni4YYisLMmSvI4 z<w6#V1)0rTXmN2JEi9}doo*8u3{K>5L{KP{Mfk@WCYirk(1f`q5{aZjp->?Z2o(69 n@RES<dGI?P>?w##G9>#O4y-;FmW#3U00000NkvXXu0mjf+&XyP diff --git a/interface/web/themes/default-304/icons/x16/binocular.png b/interface/web/themes/default-304/icons/x16/binocular.png deleted file mode 100644 index 8279f4584ae1847e328f5ae0dc35ae1015d844d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmV;80doF{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00040Nkl<ZILnn$ zv1)@*6!i--bP1G>qN0OnL69y5K@=o$QJe&E6<vapU(zMN(jiNhLMWvW0$Ga0IYYPH z-up1tiWGC<z<Kw)d!FaYaliE<%W`d5R&5wYP3MVPS8vPZ5>~4fBuN5vo~U*8i~vPZ z=mNCoDcYaf1wlX;b~kF=n&<gORn^9IU63TH!QQ(limXSRblbK;*Y&2=*L{Nz&-0)x zOO`W=BKEmq7($k1jFX<{IaF1}beicKd^(N;MNvSSrr`TNeFZEQ3y9;Gangy?1EkYT z-(Wv95Cow!AU<NS?;9M32AH{vKzzjD&^I^^cYwWbTq58S86Vlfv2XB7uh3=OGRsW8 z8+2A**UZF6e)Yfl6XK+48knX@7fx+&s?ME9c5oi*gB^7G17d?2FPO2$j5TJwU~h|f rY_T2DH|;DpL);<ei2I3{w==UJ<P8PPzRhd000000NkvXXu0mjf%-64) diff --git a/interface/web/themes/default-304/icons/x16/binocular_arrow.png b/interface/web/themes/default-304/icons/x16/binocular_arrow.png deleted file mode 100644 index dead761828fcd908fd62956740f75485a69623d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmV-30?hr1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005{Nkl<ZILnn# zQAkr^7`-prlRhM&lp(aSjjbG8bYp}POvZ-uZU%P@9D}(KgmL#W2Em{p)O-;ULFa=O z^q5aR>O)Zkf~?kxP!ucb;+}mFggk!V&)vL@A?t$!-+#{ko&W!iBwf^s)9KXxe!niu zvd-rgwR)8zkqC0R98#$i_}rpauZIM<TrR!<<J^k&PnA_w<qPHi)TA}5)mnAC-PKSi z1c$>>C9Yz(+Xcrx>w!Q3Uaz-m=xb(!Z{ctl`FvjN8IQ-scVn>_GMS9%S=TfTg+f8- zJYzQa9t;MN&1R8KrxA@t`4><W1<7Pm^sIBw53tTNW`n&(1DnlOH{iaB!JgS*ztMnp zuCKs-6N7!T!C_+t#GO!xpb$mR`pEPKhL<V`YqQK9nhoCaD}0$!7CSS?LeJ2o)M1f@ zE<f8s@egqC=_YO}`LC>*>vwHu?wN2sFG+W%J{S9EzU<hvH>W*`WsI#KVEz}t9BGN# z@B_k;$K!#|=VOB-=58bwrGeK!^%p;Y@d^<8bb;J1V0rR>r)F^6B!lBCz5P<x=xnh| zUHE(J@k{iLuj2lz1B{jc=13Di=p}rh9nUBOoiflVgEQi`33m-_vwlroIKBOjh9AwL z-7@&mn3XySR|(yO>zAQjSz2vVmdkB{nF(X2^Bh1NJzn^*zg7SM002ovPDHLkV1g<9 B4G91M diff --git a/interface/web/themes/default-304/icons/x16/binocular_exclamation.png b/interface/web/themes/default-304/icons/x16/binocular_exclamation.png deleted file mode 100644 index 1c7550cca6442b5df5329b4610a5fc691c6b5d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006nNkl<ZILl*T zK!90VT3XMXot>YVnVCHU@rjg!gLD4={{Kr#O8zG%CjJNUiIjr_2O$2ht*s4G@E^)2 zMh*pB3=IthDY!_Y9K(DS6_uCz`uZ<DJw5+xXlT3yid|M$R|kuM*dTc~H@E*rMn*58 z^7D}mxa#BM^S`XD4D8Q{hzPKA!@|P;=j7yo*&zA6yuAN4H8o&)kRD_Mu6uZR{LjzN z|DT+k{68Qd0OX4Qetv%c<Kp7LY>+&N4YB|v57L8dz%6tG)YR1A27uU=`MUpCOjr0n zq0Jd)z%670?w}h0^fTNGnwrZ0=k&<^fBtah|J8GJ|Az$of(*EWY`}f=FaU~u2L|GQ zU?BdtGiUt0e{;b9KVMh>Ke;#je|dp5Nd7*u0S7=ff)oQo8SH0}7)WArBO^;!1=FkN z_uBu1qVd_C`v2Y4!vC3>A@a!J3CzzRHb`Lqaz=&&D;S+G?lU<4@ktFh5k0?=@qft_ z`JW(hkUR`n1Mv$(L&N`;mX;ueFF<0u7BMpJS;9Eu!L`^o*Dt&O-@2vr|K*Dg{}1oA z_`6{y<4TY`%z)2W!r=3^d5o5a*NGl~aMS7k-K)l67l7!yS55xU?BxCnk_Ty)0pcUT zF!%=ygJ-}ncm@oEe?YO5)0-JLTsx}t?&WQ*|1WQ8{Qvs45=?{e*}XD97j!c&2N}Qz z#6mzU4#ZN(cy=qpEFeCEj_0&7oSxgpaB5x$!*l@tV^~CvNMCsX0000<MNUMnLSTX` CYb|;J diff --git a/interface/web/themes/default-304/icons/x16/binocular_minus.png b/interface/web/themes/default-304/icons/x16/binocular_minus.png deleted file mode 100644 index 63cd02434be2e168cf7d76b7a4de8894b531e988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004;Nkl<ZILnn$ zv1-Cl6un;{qC>EB6l2XGNkNb<1wj<VI8<>GtV0*kMM8%_=Z;-U?c!3}-{{~XNI^<z z5y7PdGdl<^_4eLJOw$lb`rw4~&UyE|cW(fG)@>$}u?mHPmCNNU-iP$u^`z@M4h92k zx7*13ke<7a38*LvA3$dx#{0Eq^?IET%>L=YD49&!*=*J>m&=$=r)|=nWmy&)bM}kH zB5ImuJO0QU@KUK%&@c?qXS3N9&uugs*zI-&XTR6$p=p}J=NfOoYpGPie!q{MP6unX z8ovUo)hf1HEy3Am&KI!HHQs=^KOmJ#xdF@r0_NU;g+G9Lc3WT`5U}tDEd4VeZ9_vu z8lvC<Ggx{99{CnNOj8y;v-X#-kaptxmG8TrnX_;}xFg&H3@-sbuA@;L#^cER0bt7d zuK0+sQdJf6`8)@#Sd-~<L%0HX+fc9{<V|-0>wp=o+1MxO0G|fkZb}kfBocTYi{Tl- z*QxUYJ~O5sx74FWJzCV`mb3}s(7`0YA3L=WA;bt0VJ{>krzY|ZrxO<bMkp+g00000 LNkvXXu0mjfT+Pzs diff --git a/interface/web/themes/default-304/icons/x16/binocular_pencil.png b/interface/web/themes/default-304/icons/x16/binocular_pencil.png deleted file mode 100644 index a9c8ac1eb7f403494467679ed921a20d15225c40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005?Nkl<ZI8TjI zL8uZ@6n%H$GJ`0hC<qZ1U6>MrwMY?6VHhP)gg_8~xJVol8IYuYZGskUqX>i|qFoVf zYV(87hc>|{B8s3*3}0G({4l$JyXWy|nuZ7;TsZHZd(NAC7^VK4N9lChsZ=UXp-^ye zUy<|A$3~;UlgWg8y&mJfBIloy6lXFS44`mdh5PGlw^}U>Y=;T;e@@Ng@%SQ}%`WQo zI;T>ph4elplS$nJ24AgKIiJrj4)}S{;Im;EY}>Zpv(xG5&uzEcJRA-+20t2&cs849 z9-5%Rms+jHmSu6j-{)qtiLYSOG`ZXDY78D24}gc}Dv@vSEo_iTBzyzlpn+8`^PFgJ zi>Txod=DGQ&i)F(p22uL=7AXS`Z~WNdhZ$h2xlNYS3+b7QDg8kyUByWfL+(+v(f0T zq*(O~Ht-6DC1t%cdL9XE)?$2bdYD~js#l6cA{&nb12{juoq^HFoKfoCQ&MlA(8b#p zxe(vAPjKus{UQm_42UmC?c{PfE*6V0*g@~bEv3cJ?$Z{;H?AGxOXZl)2lQ(Bj|`U2 zZ>q%02lNKwJJ*l$#A*cpgQX`vCABFT>`MlYWZ*~!`_lU`y+RLp?<?DDw0r*Cu`s`R wpjA<+BT~nuPKJut40?UJL`JBOS!kla0rvYXzG@2F_y7O^07*qoM6N<$f+o@eo&W#< diff --git a/interface/web/themes/default-304/icons/x16/binocular_plus.png b/interface/web/themes/default-304/icons/x16/binocular_plus.png deleted file mode 100644 index ac0184daeead7b84b23f5c31f2be195367bed7f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005mNkl<ZILnn$ zO-lk%6unRe7L-kk$}$K<2Q5SkK_VywQ4p0taV3Zm6ru>`%0;wjRqa~zDgBccZGs3S zqKH6<n3AAPi=e36y|2lpLBcK^=Dc&>JMY~)06(?ka5xmd->-PRUWL~!dW|}ZMx$6P z7BQVpBd=TZ8Z|>er_;$BP+hm;{i<p_9_J0!e|k`{TCH`L%T*7BLMY2}owRei-7Yld z><0n?^msgV)vss+F2dn3mP#ejXEK=-&rKu}n9XJdXFr$AVYyruKA+JBTn2+d%;)o% z$z(7Vi}5Qk5{Y0cl@gqN=6nJBd`25^tq-u-Y>fcsO#-g90XO;p>bcPZ^Ckf|+JKsV z2Bf{v5Rrx`IQ#O(Bn}=raCB{)wVF2Ih;QM|G-c5<YkI$P!;JG!%V=C5K#&bb5H<e# zm3QAgGZ%{80I=H&uqSQ9O3$lla|Gj$3&<SyrBk7+HAQ%EyWQyX`8eP~Xts8MEfc_I z&(-Yx9O^;d>36_$lNme<$I=FnFus{qhOmEa6vu9-QChVi6uRDFsY|?Im~c!ze$WgQ znt?(y_#o|sFrngv{mx?FtGVVxV?p8zj@7f!O^^uv1oNL*>^Oi0Llu_j`*o)K6HT}r Ug{6dwSO5S307*qoM6N<$f{RJ)UH||9 diff --git a/interface/web/themes/default-304/icons/x16/blog.png b/interface/web/themes/default-304/icons/x16/blog.png deleted file mode 100644 index 09267a222cbef0bad211947d3c501b4ae8320fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005VNkl<ZILnQb zKdahM7>A#j&}%dx37Bv@IaPvC2oBO!5H3RJQYSlgDfDynBb4IU;MSo_2R}e{?B=NW z2Sve@+-uaFq(d<zy|?0--t)fi@8NgebB@&S_W_V3={0c6b!!>N@pk}42ysr{b~>HU z*Qj0BeSeOXFbtDI9LMzDDijJgXqt+uJ_96z;K==bz{5kpyRRqG8s&64WdOOHM6sx1 zSq6ro0TQ0)vs&#q9FD|sOj@HHkH=&aMG*k6K78Z%<R^u~4JYjd{P>vZNo$@23_jgq znmVOYk=@Qm*R}rx4u?ag_~wiE<lyX7Pg<h{L68CTdOhm(I*Y~P?|m(obh}+fqY=8U zW7{@qO~!!`f_A$NfMr<#IF3UYhEyt*r01f8*=$BWpGQ?y_WM1$t|Np<^5t?l>)>C2 zZQGB|A4L(SX(sVSfa|)6{nctktJT6V47S@XK@ebBRu(XwPBZjovzZiYwHiVQgb>LL z(hk<^HOgQxpwVbhDwT+$i1~c}Xa?u^aRzKQ8$8crI2@t?h2e0hRjXBGS;ldkiyujr zWhRpe<MG%8d<igs=bEOy%;j?0HNP>6BH#D@U%=uIb-W5k=u6W<00000NkvXXu0mjf D9B}Tm diff --git a/interface/web/themes/default-304/icons/x16/blog__arrow.png b/interface/web/themes/default-304/icons/x16/blog__arrow.png deleted file mode 100644 index 500ec141287ab8582f9b7cf53993c50b552e08cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006(Nkl<ZILnQa zQAkr!9ET5uMK&aiLVGRo#iU+Z1c48-hsYoUhifk`I1j@_MkMYb7-YJab%!tzS2SXz zgGp8^Y78^S7In#C3|2!KhGWf5+;EIB=CAv|bjqm210VO?%lG{`2QHhMnqtKC^mLa3 z-y>b3V_vUUz_G_guIQM@;}P)f?QKlz_rcqD2(vdE@#c1uLNlHX9L19xhw-3yKgc0h zbj<B`3wW(oQ>CZ<jd*|e6u!F7D4fN|(H6WIJcdWcI*>!I=$Omp67XuZst)*`m`C!p z9cv2`Qj0JD7(foWqGOUI33#PaQ3uc!f<q_p;a-b+g`ES)Ay;(FZnq0~xm?E9*4D0& zL$2tU&1MtuQmF)|(}{3644==ZLhpq_0l{DpvMhrfaz)3iR;z#)i$x@p$-l_w^S}1w zkSjW7u~-Crb8{1Ob90DBqlm>~>NAl@Ae+sq--l;cV4BIIcg+8=XT-<4?>uJAY&Hw{ z#>NIRnan?l$K%j@mNBsgT$JJ|?f8nZeRPR2lgT9Dxm*qohlBn!71|GamvC(&j?3eV zXt&JZx_=qcDxk#j>5-U`b#`_#gTX*>Iw~D~Cs+L6FqQ&LpMjpm-`x5FoE%<|87-|= z%XB&&r=tb}0fa&!L?RLO**E?c9k!6lx#0k`$~CTj0-DSLxw-$9k@|Xt<E^c&e0_Z# z>2&(PoF96Qwt3))elk_xVHx<@vPOkAjYeZ=XlUTOaqz;xyShvFQwQ3*ozzhK0~hFj Uzh|592><{907*qoM6N<$g0S>1PXGV_ diff --git a/interface/web/themes/default-304/icons/x16/blog__exclamation.png b/interface/web/themes/default-304/icons/x16/blog__exclamation.png deleted file mode 100644 index b7a4007c0119fcfc0167047b3073aa6fe244a5fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00076Nkl<ZILnQa zJ!lhQ7{`Bixl3}%(e#pVp|zHViY0>|Ar#a_w@PXk1*M%*2VDebXI;ceaS;u;7>gY` zh|(c`Y+4*FBIpu=G;K{yB-P|{N$$g;G$dM~@ASUU^ZbAOpXYgng@pwG1VNYqhS=ZP zbY1s3fMnbDZg6OBZtlT;)VW;l>h4{#EUTMvU6<^vL?GZpRTUJ)3kaBIn?}RLFihs3 zbm-Mcold6@Ac_LPph7GbCLC4)f$i-&<#LTytBvcr^lGGbyWM>_jsw8SYfJq4_MSk% zM@Kyj%h&sAdNq3j^0&{T>l&d@kXo&drm6o2v|6pc<fVt(dk!wqQ`4)FOw;TGWV2aP zsT3O<8$0{j+$599u=?&6LFpsI@r(3o`W)D{O*)+hAQp=OkW41&bQ);EB4dep%Ee_| zTbJ9GZ*K>sQVGA`kD@3vn@u!Lqh5W3?2i&qy!h29vCwLwR5`RaAdyJ)H}Bf~D7@t0 z_$0HLXFR$)$w>I=@gt+JCBXUzkjv$|_RHlmXHE^E$RdJWVR3Phdp9Et3`T~nR{6B+ z^2!s5MDY21SeBKVnwpx4Mx*Guj;`y(<6|_o9upnX_}TbOdip$a@Dm=d&udiIY}@9A zn9t`a6be)-6&%N5eSMv3wTfXFd|!KuC~V;hU-60+rqA6WApK@AWCmrwdd#voApwDv zl@)bjVgirHLo%7{wp6U$C#E-1#5%|hjp_~R)uo*+9SDtosno9sKo}TSRrRPSifZrt sE?+Qa<0H=K-=9hpuw~gXiferM13ml~_ai0fMF0Q*07*qoM6N<$f{?g51ONa4 diff --git a/interface/web/themes/default-304/icons/x16/blog__minus.png b/interface/web/themes/default-304/icons/x16/blog__minus.png deleted file mode 100644 index e02d945f26b2d2c7448f18c21e701145dda06993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00063Nkl<ZILnQa zO^A|F6owB)43@YsifXorn}(^?z^ujHtRs<u4DLcI!bO2?5{AN!D3LUbK`zXn2r4ot z5sO5l!~_u}H*OO14;4j3^zELH?odq(UU>L^c%H-g;G<Y9Moc^&-;#(W*-{-vA`yka zl80T@Q8*k{h{a-oy~{@sxvImf8%DgpeMWK?uWz12^x6qLxpEZju&X)>g+dB3pU*Yv z<#i)I@0`c?;6=$Le0^ZTn_H*w)P4-?u&X)>27?MQo6WQVKdT>6d*{WEPkz+Dz5Qzd zJM5~C{C>YeOs7+A0DnU2&N+O!Z_+;D&jIYPt2**}y$UgzOfVXa4uu_dRYx9=M<K@J zF#>@Ave_&WiG&6}4+aCIQYjP)1+c@e>d5VOE5vX(M6FgkK)2i7zh{SC)sf5PQiy)P zk4z?md_Ip-sia-2)hb%8*8Y2T*yYBzxk==7Iu)YV>!I0f{+CLnqQMTkd#kGyC3zeU zheC8Z9r%1c{?j!0zFaQjgWZl7W;33fOh~S;BdpWaWn6ehv`ZF?g={t(BY0I_{a>PM zYnW_rAK<YZ!b{M`#s*ofR>7+#lS!o0Y2<P_?OH4r5wqFwP!3@p$qnwVtkmzxc!xKT z=eXpw*=!c=b{maG<51XPmz&=$86_9=dcDnHFo<Pfmm6+>0SF3iC#p07DF6Tf07*qo IM6N<$f>Ja9$^ZZW diff --git a/interface/web/themes/default-304/icons/x16/blog__pencil.png b/interface/web/themes/default-304/icons/x16/blog__pencil.png deleted file mode 100644 index ec5a3b2c3a7860c1e29213dc72b5539d8dd5ba35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006`Nkl<ZILnQa zT}YEr7{{MC3HlH(7Daijc@t$<vq%yegI#zXj=X5Xxfm58(T5k|AgU3Kd9xx{X*Ap> zt0pb7HO6SnoC`;Gu^dP@4VxdRY>XlL?|n|4m=xiGAA8@!@Aq&H@5t}>6B7soI(5W0 z=~Ny0d_IN1HW$09qv7FUh1lHO#NgQ-@SWd{@I?dOT|KCC2xFJ_VWej-9(UD&9d=bm zUawanHa0e-^y-2EA8$2b*3+tU98-6i@%r+944vBvcGy)Nc|0D4SYKb41AgQZ$d5bm z{ev6drr&HCzz(~rBe&bF5Y=i`4&W<9uQeilyIEeLb^tr<auc#xh@4KRLR2ahluD)l z!VbGrO-(eZX+#c(Lm|rLG6n_)kW3~K3<f3qzPh@KXf%pUCIfc7-Q9QRH0@<d(>kcH zuTLS?*4B{E=l^19X=%&*b&Dm8{(gitEkV7#y$Z3ivVwR#j){p0WV2cMo6F@;EEa$5 zCkExI_!{QMM%Pm!GuiESg;-u*#{B&JKbf9<hG_6KDuo+pYikP|42GlnM<lY@Yzncs zxCoca#s4%3KhMm}VD`%kM4q3J@#v#=*n2we>qF>fYb%k-WFo88$_PFxAH9}z@(JRh zGcxu+IEl}h5ZL90Te*xzBbm)+!AFfmB8bIeNTpJEJ2r%If4huF^f;aL$?LGojaqwj z4z#qih=qj(6bgkuyboRhN?#FpcnaC{sN7?RU2cB2WY9TMUte!+XlM|%==<n0)qOg4 hc-Ot!eRjFw_9sL4Y<sF!0ZIS>002ovPDHLkV1fm<DyaYf diff --git a/interface/web/themes/default-304/icons/x16/blog__plus.png b/interface/web/themes/default-304/icons/x16/blog__plus.png deleted file mode 100644 index 4efa66df5028d7d1a1120be9ecf7a0f63c9c2275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006fNkl<ZILnQb zL2DC17>1usw{13E2pe=`i?lsim!c4QsP&=*0wo~gNi03olNZ6Ge?WwSH}Rm7gP?0q ziiqMN=+#yWidvBtp&?C-t<r?F-OcXIcqk1Csikw8neTfa-g#$6o12>hK-07fKtG2Y zWu??h09^>Nx7j~6HFf_mYS(qI?alQt44Va|6uB!pu~;vrX<!&VfQIKa*xK^g-uAfq zB%oEJ2SLyVh(t8{`V5lE1c`(RXjH3pDwR!qzkyPUR*l|hG@1)3B>)rGpHo|XPb}6; zV4i?CH`;nyHTwecvy<4iMLgce=4KtsGXD?oeZQ@E`C)b6;GCA8R*mj?UK=2n%P}@K zMyXWVy{~eanVA_D78bB93&(M2)wDSfLXgd70Z1m30HjhW!Z2ibc(~bfpo3zuNHiM7 zFbsBfcCai9Aq2%@k$a6ttgNiEHCUS-s2_b0h@cbTI8Mj;rIgsV&G#S6Oq@T9`|Ii8 z&u9T5L?^&?-KPCYr9vi?VYYmi59^<hQc@LFlrIq7;v<Shy-+A%+jbL>PN$o|(a}+a z5PV+$%0T)!02|>3XD&_*0YmSey+zOG^Nf#=6OYG{QnI$T){(&}<0M~RFYUh8OgGDq zmsb6rU;~Xs9f-}(&zmD7BXo6jkxHdHGPrZ>766kkF7ZeFMbrbhUCRP>4M+e3rfHsz uL?Y%vzi|7UKP``_L4K=m@>OsXDE$M@c_Hu6tM%#t0000<MNUMnLSTY{?-A4h diff --git a/interface/web/themes/default-304/icons/x16/blog_blue.png b/interface/web/themes/default-304/icons/x16/blog_blue.png deleted file mode 100644 index 3a7b216be6f639093543dc2046a265227f70ecee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ZNkl<ZILnQb zJ<Hlq6vuxi8GH$Z1Waltr%JFC#KB#7o<S&-j!r^{eumPqpP=13I2D3Zm#%(+I22ks z)KT$;h=PJIiF%U`#gIHtE8gkebI$+ApL5U2^m;u2GMUUvpu}xw9!1eN07VFK36|RJ z_UBvFj^n(&+?DhB94DeE;@SJJ<nwt{RVA0p0pR;SyWNice$Vd@uSjZ?)9I7~NRmXM zP{6V*48s6mv)SNz9zhTgMG;Ajay%a6M;L|xe0u$yUyD73yi7?s@bL$!nxy8RfHz-U zOw&ZuG}h}ix~~5p5ClOg`TgDfgO*)B=1E+W)F{61rvTk<mwLU<Y&QG*U-LPgPKUu@ zfUfJ<woOu#av+4D)oKA?Sr!1bT8;DhOu1Z+Ypyz&OeSQrS#r4?hr<C~*AYU*@nW%< zcJL5j+xDZu3BwT6G~@eKfa5r^eb4i_ySu|M3|6ZZzVBmMRvIuKk5lw!vl%C=)ha>= zgb;BLk`5M&1xml)r_pGjX&PY|GM!Ez_24oe7r=74WV6}ex-JTkcU@PlR4T}_Os!VC zx=6AtGa8K;4u>YN%>V}QR8`d%k|e3OY-1RP+wFGy6PW!0Zbk|_&W$Vp00000NkvXX Hu0mjf66o$n diff --git a/interface/web/themes/default-304/icons/x16/blogs.png b/interface/web/themes/default-304/icons/x16/blogs.png deleted file mode 100644 index 6539158e527133665b5ede174b7a2719c0cfde52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005=Nkl<ZILnRF zL5LDj9LMoLQHKt}<R$8|uoQIZl+f8c${vMkPhQ?3Z;^Wl@~{vtk%^bQlm)Ax!bTS* zR!v+o*%CoKr4a~%n4pLt2;#5z8yazjh3&zY(V6%Deo!To$w)Svm0T_-eEskJj!vD^ z4)@CD0A5q66jL~7aS!*}23U$@GO1Rp6>dE{!rg-+Ja0~MKk*&+UR7}W`6uuh_vqwI z@}XYcZWp_+kMQM38|g|D?<#HhKD2RXKab^di9{lybn@TiC+V;20gJ@~u~<y$gxodx z?Sl)*sVn&W^cs%$uH)ll1Mhb)ndDZhh1qOoHlNQCiA0o6gbZ@XN<O-XKR-|KyYv#j zjt_7W-a<NX*(5g_4HSz-^U5LNa9HU?$RLL-4xr%M{x(iu+*}XfvwFRbPN!owolX%7 zg_KT&406b_h|c(|TCJj7E~8efVLToq7z`?%2pQyXqy8Dq;_)~plZlO7DwWLdfsIBZ z1Ofr26Cr~fvMeIwrcH98P%s7gd>+H$5PrX3=|spNhb)WOY&J0%3~Xc`<UPjWZns+* zh9N=*IlS5L_ib&Gy<YF3%jHs5`tU;$*%pt-Bjk`3jYgsWgl4^7&qnt7e0%!94M$gX uVvxg6v53wrvUR|@w#eD!oz<G`SbqU(--AS>7s2}g0000<MNUMnLSTa5kObHO diff --git a/interface/web/themes/default-304/icons/x16/blogs_arrow.png b/interface/web/themes/default-304/icons/x16/blogs_arrow.png deleted file mode 100644 index 6d7b0ff3f26f1015834a9c97dde117a26e6bce30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007DNkl<ZILnRF zUuaTc7{~F4*n)zE2sOHh!6@jW(M5w@bma&lV$ler(*9WR1`Q&{3>svx7)oTDH<Q|C zg>$Lk7*P^a6IUiHF~y6RYc-c4COF1G7z}^C&mmXFXdU=+JiL#OA2^cR?Iw@MLtd|! z`17yl4w=}b4xXhy7w~;-Y>X4w<l-5gtyxf2I2;a9sZ_A9*M~!v05n50Xt%#d+x;;1 z-<|}Y@r;Z%Bs=9bH#Y~}10P<0NW&FQU^JY@@h54t^u5H|+8XS3yO7a;le=AS*B7j= zu3}(dK*)%>>*SF$Ti_K9c-7O0shhhoaZQECx_X72N~N%}vZ7Qjmti)Wg^Y+9%wd+} zTpfPQPUB1P9zIW5Fl}mr%dkx$$K!DX0s-aDOH3w{kP$J1In3e(EO^(~jG6wu>kIfS z7K<U1$tW!^FT-dw3K<bIn8U0p@$dL75{V!b3LzSeqEsrOtE)@Mh?v0~9+a<9$!4=* zX=$m391I3=>-ksc-8oDoi!c}rLPo?4<}j;D<ch^&4cYJa<J9OZ9)1UO<BK?IeB?NC zV~B_u%wblQm`Eg$&*zor>&_&!!=G?$FpjofKXkr%3@!o(@4Q)P=}+p38O-5d%;j=5 z@vA%G`v%Jba5)W}{`k9|S)kb%N|Q#TA+1&`3WWl!Rx9M6P$`?uDgv$f1={b1u}64v z+s}`u+Mdp%GXXSSolNbz<h(-iQnj|WDgtJ26rb@-gU*#a5CIzW&*D2Sc=S6jI{Ew5 zq*AHQs?}=ouXv{JaJReu<Zygz=ZIb|AzttkRW7FL2N}dU00000NkvXXu0mjfdVe)z diff --git a/interface/web/themes/default-304/icons/x16/blogs_exclamation.png b/interface/web/themes/default-304/icons/x16/blogs_exclamation.png deleted file mode 100644 index 7983deb8971ec29380125738854501297cb16afe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007oNkl<ZILm#~ zK}b|V9LMqRjBhn9pS$&1T-aREWG_)$S%*OBZq})TD`?Q6t`QMIm(EewScooVXhIPw z9z1M^0!b-4)FCje4Y#nAt+%uLd~fD;SXMNvISn(+hadmni1G1pgb)ZJFvb8Ngct-8 z{C^e0FnnfhJ`qCT`#wNocz8JXzt>}9V;2Cn0hVQ<lp+j6($}A0+cvgsBZQz_E>kL% zcz@$G>+9=m1_r}0Ow^G`B+|FIxX5t_&iA!bbbYEsc>Jjur4+^(JkP5EK@j{i@`FqJ zH};nwz69C;&{|WiR%<{#N*IRR%Uam>PHejcDJ8C3p;Rg}df#L8Kr3Bcoj~VSpdQ5- zgOrk!m#1+Ha~NY-esPCN#lskb@B7Tn%@K>mNT<_ODwP^gm$cRZJij$SGP#$A2DuSm zYmIiF5|7MdaS~&C{tleYt!=C8FcA1<Lhm&lnIS&BeMI1oqLiuubxCW@%*;&fhZKv9 zjEu0bus|#pBeDA<(LMWU-PM8<PodVHZwHJqWHK25GMNlP5RgixAk>t;O_AuxFm&z_ zx!Xrr{ya^!Qjvj{NTn1?DYVuU3I$eHR&ZUHAP6WF3aoz1)6f7iTxD`{60iITLPd1P zoAm7LELJ^=)|zxWy=8EY<KQmmXpTE9ugx<(b%pQVJXO}qhk6PJ@49}swY0Q^<2V>& zn3$L#9*+ai-``L1bDn1N1tY%GC`$~Sy2;|ZqqM}t&hD-q(W@7O{Z>AokM{QVBBdmo z&2DL+)p|vHJfK;Ag@~d2;~MUdCjfMGwk41Kbk7PP6^%wuNGV(YtZ?+quc6MQ?f{Si k-PB}$HClM}dntMS8*0WtJCusMmjD0&07*qoM6N<$f^lj>3jhEB diff --git a/interface/web/themes/default-304/icons/x16/blogs_minus.png b/interface/web/themes/default-304/icons/x16/blogs_minus.png deleted file mode 100644 index 3493ff6075ff5297e7de9365392d3a7c7e018bff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0<QguP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006QNkl<ZILnRF zL1>a;9LMoLk+2TIo0sS`7zSNrgM`j@jU9z@W8mdE<SnvbFkypmL?#j>LAoFv`of|^ zN=!|ZOjaU@r!*o#5EB#;3_<+${GX=i7;O)HeSLZU@8buRqR}YDVlmQno%sFn{i;ly z(JIf<>;ZfYhr^t}8H;ClcJ6?QA`}XV@pz2un+LeLn}qe{5pD;*;?}baZfv~=@9~U` zP9?vUt5&OF?fC&deXAgnDIu7t;Le*0%sX+6Mk53Q0U@JvlOIGrPY)Olhw%A)LPpG; zl3(Aw09{<h$A?#O_~;tm-Pf?UW>DmExr~0luNn*n@OV5zM#K!}Fe_xgh~M9H_?dc& zABVfhxfc;}TvFs>v4~_csjhs8+wB%IB4#j$S$qHszU(aF=!t210PhtF1yrk5Rj=2B z%jFU>B4#j$Srg*PcrTmHBArenpU<Py>A>l93K<bIn8SneXH@z9essItIdUqMQr`pD zZnxoZIE0Ld8O&kUgvjyGEIE-#C_y|PN2}F>&1MtZW-}2pn8U0Iu~aId*=$bla~m7b zO(uL;URK3dRuD88e(e*zB4#j$Ke5qh%rzm$<U@btAt!r5R3WR?O3Y!F*XxD+6RPU< z`jo7%uVZszp|M3&o^6{bNOEZwi$w{TeOkQ7GjjHdUA{a%&Q1T;qNZv0j7FpQUpymc fm-qqu%mIG^Gi8o63yzFp00000NkvXXu0mjf$W{-X diff --git a/interface/web/themes/default-304/icons/x16/blogs_pencil.png b/interface/web/themes/default-304/icons/x16/blogs_pencil.png deleted file mode 100644 index d06dd1c8a73bebfc597a2d0e4f79241667b5d6a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00071Nkl<ZILnQa zT}abW7>D1LU1S7Hgs6)IDNvz{XnkB%v_W1J-Y7!p)d<c-UKN@oG-MzfD;v9M4QdKH za05fdn7Eltn#0-_Yd1Ni5JsYcV=OiX!(Zq9)BbEDuooWAIlLd|fpchTYKpvGFZp~v z;{D%qheRAg2iH>N0A432CmDf5f@`?8YCze-?RJZUg9BU`n#N^o0Q%Q!FgQQs+RJ6M zJf8vQxJE+%RGyHrv9W>PSJU|TB?-@R9PgHsxHq1}Me_%gN+md*P9dTHR(|67qz)(+ zi?G}6LPD&oD!;vd1U_*R3;n0D`1B0kKhk2X_n4xbNF<QU<rMPyJS-NAkPxv3>#&x) zrw+U8EBFz#VRO-n6;l&D#^Z`|G#W)95KvYgVltV8N3SPh4c1{T9>4~x=4PyooL2{M zE)t0#l}ah>27`z-Hhx{zXl@g0unudL6>H&KC=|ld(h~fBKl}~{Fg%P|jV44=g%MmR zpHaaf3o@BZm2yzt8V!%Z<#M4=D4?^gEjUKhP6Go2jL2rQsv@(ux2Nto=byD<e&RX` zzn;NrwZdR9m<L;1iTe8b7_q;<uPBDYVZ`HcY;SL?=bx#0%#L4Gn!Rss;9G1CI-O2v zwOS&h(Z~qCF`Z6V!B5B9p_z82dF1iY@3*eh+Z!4hxcLDQHIrUGMR#|%*xA{^=;$cq zCsf$l+QP!zxO%f~@WkfBF6xv`XDc`*Aua2$0c%$h^z{S3*Wq*BMAzMO_HsjQG_ekA n)gp7~xl<Rr)KdRKRj!FYg%5tZa1b>@00000NkvXXu0mjfjOHq_ diff --git a/interface/web/themes/default-304/icons/x16/blogs_plus.png b/interface/web/themes/default-304/icons/x16/blogs_plus.png deleted file mode 100644 index c48266531c9bc63a4fe110743247ff2044966bb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006=Nkl<ZILnRF zUuaTc7{~F4$o{|#ks|755G$e@i;{KGM%ZnPAQGxYB#al9b<xN!ii8$J8<`1_3^t2W zQps3>Qd5(SY^+2QuX0f>1TjGoK@eoW-sg~#HChM091ri~;|Gr9^ZCf{_fsGcApZR8 zc|aysX@F<x_XT|Scs!iIDi_c2Y}<mS!tHj8<>h7UycWbkTLk(C3pna}k3)Cj*nMLf ze8w{}T9N!jUW<#17`z+An-3Xy<0(wVGdT7rgYMA~8jS{AE|-wef0IYNZ(9rM^*S65 zhma9-Tja@8YY-4>yt=X#Ggr6a`2`Ig4yqJ#I-N$fT2-pmYOq?ZLPo?4<}k~BW-Wev zn!}gqI6lwVFlXt6*SJw3CzDA;A`#`zODq<PkP$J1In3e(EO<A%0}Eqatp$8GKR=Ib zHmg*rRA4rng^Y+9%wblO_-A}JJ3EV5EQUlPfl{dilgT7xM9g3g56ai5<a9bwE|=TL z(P$JWUmLOK#bKOJT!hhR6fz=aFo#)9B3CRH+sNT?7`yzv7%G|3^YRD`27~Cn-b=&` z<}j;COr=uD=ku-SbJ1aRJwAY*XMHdf1@;H~p}N228%=5_h#Ab`U(DrlZSkw)dY<+{ zpFi<ebWf8Zy<ShuDHIB@+wG8lLZzjpB}EVlg>ZIy2ph&W=jgUNz3+QJ_^vd*X^P~f z(dl%GfY~d>XFNkUJ3emzx)*e-BS|(j$p!p<>eOg7r?pzG_*Xnb$5lQWRwe1ux(T|x bURm%HkE@T!fxhN>00000NkvXXu0mjf-f<v> diff --git a/interface/web/themes/default-304/icons/x16/blogs_stack.png b/interface/web/themes/default-304/icons/x16/blogs_stack.png deleted file mode 100644 index e568c075960498a04a959ab861b4a3e0d6771675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmV++0^a?JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005#Nkl<ZILnof zO^8xa7=}Nh7A=Ai7g3vmp<OFCfh#vgi?BtjoR~!+XHg3wVqheK${++G7ZO5F;3)Vr z6=+6`xtWC+>Ox!v(n1jN4^a>Vk+<_+LhcNgrapMM=UmQtpYuvOot8`{Bd5L|jXDDl z&z`<$kW3~O&KRE2h^0A|N*%P@Z6x+?BKzVt3Zc6Ohp#+HJh_3@YK3?_t~B!B=G3!W zST2`{Mx#n2mgep7As$A*;PHOh!1wMe?u0%X=ER;Gi^T%ra9C-C)_*eZy!~vL8;u6$ z^EraSpwfu22m3Jn{k?O@s!RCx^fHciui(?84ScwN!7%exG#3g5%w{tL0s*BFVGs6U z`u_HL41ONt*Y^<GM{jWad=se$7f+b;`8+0*3H*M)(ulAJ`!JmWd_m>q7Jj_Gwhl0x zbGaNwqY->QpVEl12m3I6I-Oc#HpgNy3<d*uy<VjeVGs6UdN!Lih(sb7kH;vLN~qWC zC(L}wa5#k1=~OnGO@uwzhw0U770qVTpx^JW_hz%p<vOt2?Yyk@vL)=nK1{FGY6h)V z3*Byay*Ha34#%#(c=Zo9al75ZK1?qbizt`Ns8lNGbUMbG|18a>*<c^0_j)}`Oy=ur jvuQS&%JjcsW#;?_1qp(ZW!VRa00000NkvXXu0mjf-G=)T diff --git a/interface/web/themes/default-304/icons/x16/book.png b/interface/web/themes/default-304/icons/x16/book.png deleted file mode 100644 index 6d4bf1823bae23399ce0050eee452b8a9dd50bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmV;20eJq2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003_Nkl<ZILoDz zKS~2Z6o<c=%xoqxw)Un8Aw>$WpoK@s1=I^zdkTwKr3;7$2-cp#5DbXH%63<f&HS-Q zb_vNWEBIg-`0?IvzQ=nblu~Tt2I#uW`%~)U6}SUXJ7RY_o82Z_W0HinG37aGwP-h+ z7-KM6GaQYsiz4NmD-9mUV>r74av-aI{^$Gxc-SY9gTVkb9I{@oD~q+(JiRPMNw90+ zy(iCe=JR=_LBHPz@2d^)9w7w1UhklIu~@LlaWZDmaL$2qNGVCv^uRz$$tEXG(6H8m zwE)=dy&u-vdIBK?JJTtn)Sdk&fvX_^q6DSxY}7#gogm(VDhNUdQG!x0TF6$Y5CTF7 z0A1`s2w^kth=KPWY~JAelkhf00qqb%2RQcLqol+bQ@M#!N<x+<ET<<xrT_z+0PmB@ lq{Fja)qdvu>tkDEe*q*E!ej>L)Aj%W002ovPDHLkV1nevsxJTl diff --git a/interface/web/themes/default-304/icons/x16/book__arrow.png b/interface/web/themes/default-304/icons/x16/book__arrow.png deleted file mode 100644 index 6a66b4ef022ad0f20489a7280eead9b3b9c9db8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005gNkl<ZILn=q zKWNiI6vsbzxnFWk69>VeDJ>>aVu)#kPCEMsH*qWN;G~WnbarwrIyh9YXsHMyx=C>m zk>DWcpd=w82rVcMg+S7#N$!tBnjf)EDENirj>mi7_c`7ZN-6er3&_|j57Qj23UC)d z4FogKH#Y7>g8&_k64yFB<6~pQV==VW=pdjtKYz1dq^z}}!Hbm@n7aXVfad7-dlxPO zj}8*Zd_IpV7U_1oBa4F|;AQED2nhxaoO5(K9jevpNP}E12hNQ)z&V5vWV6{r#kE?E zUXGQ+3?kNAuofvLjYi{;fs~S7&TxW=F$RnQ!0g`#WsEtRKnTIWbV7x3YyOX*9-pAz zPB1YuGZhH}y6yIG0$?b?juR|gp5*tRQ|VYDx!7tp*9Q&MFoLa)rsX04Z2m0sA*Hy! zFnetE*|#O{+&=`WPvE@|3FPDnuAZOfdjqD;S-QZ-ZMbx;F!%aNX-RqS5kde2{XOvB z_vQ`Mzt(vCsnYwxUW=)7MN)+f>kr<17E<0<K-_zu0Fur*l$2<#L##8YX!w3t-eu=x zhPU@tn|`~zw)=khl>m+dDPS2WkXqavwZ<xQI?Z@8?zX;^T;=I);MZSPo7oVQ6YCrR O0000<MNUMnLSTYyZtDvG diff --git a/interface/web/themes/default-304/icons/x16/book__exclamation.png b/interface/web/themes/default-304/icons/x16/book__exclamation.png deleted file mode 100644 index 3bd34df3d1f46d16f3a1ac14e31f116e5a7af065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006RNkl<ZILn2T zO-qzf6vuz}&b`mvc^oMf9i34#O++MSAw-)H!GfrkErb?PV0{4>Eus%lw5o-Dfk<0L zfzZMhQGqTclY*isT8y+9htZk)(!!p>ml-;6xrfU+|MNSCbA?ihe|8%fb{8L?<p1^& zxCfy2Jq|xzUY?J%#zYaZF^$uf$q=X07-KM6Q=FZ>l_V+WTti@SVF4!RfEuvfy8O<} zdEm)m0y!};fhrcM*Xu2lwbnd;`$aSe_6vCLsnu$1Y;3d?7#|-8?^_GtJwgb^#>S2$ zZ*Fd~7vp3zfs}I&oI^@Uxm-RXAf;q4ra3{%S_{?!VE^5TjhYvnDZHkfx&mG_2;^Y` z=Nv)^65lxozDiE7F+FvYPTrG|RfV(Q>_Gu*ZKHDHTWiV5cMSFw=suodptp~6L+jmH zRUxY?&1V3R?1#Y7uih{+IL++!MIJqvWct)f@7)W}6kzugsAdG+sWl2+X^bebw6uh; zeq$sbw_C?l-5#8QN_q|<;GDxd$3SX@f&LDD{aNMJ%Xvz>pU9tRi>>8qy^fF}gvOG2 z@A2LfLcn`Zr(7r3ULuqJOe9NOx_qBlmFex;*4ku?)^b(?aR{L&gwXE2M@oq?hA4^{ z*2|0zR>{cUWOaqg)*Z6CLRN2+D;yiytuZHnP9P6F1WuE`_B}zmG4o+)sAnra@*kAl g>1Zqe{Q85{zf;%pn#=u?*8l(j07*qoM6N<$f{bMkq5uE@ diff --git a/interface/web/themes/default-304/icons/x16/book__minus.png b/interface/web/themes/default-304/icons/x16/book__minus.png deleted file mode 100644 index 305ca0c1d054913a99db87b080e5cd88479c4d4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004=Nkl<ZILoDz zF>4e-7>1vjoxM!XsEq`Im4R>^CtQ(2uoJYf)+Q+|qkq66RY)x<1tX$o8X@=tf}oX! zg(*_#<w78MMT&(8dVz$!nfWYkZ@EowxxyEQfsgNf=NY~kWsD)yGhp67e0ht>`U$K7 zn33ZAhn=10l{m&$Dpak_*OlpMs#8-~Yq4=mb7|@6&}6*#dBFDOCM>Q1DR5eT{Q3O{ z!0U?yy3uH0noauseyKT*V?KU8R5`(DKnQ^}O=-8=r2+MN9YQD%AOw_B)M~X$=1!-> zpvUWR0g?9}yhm$Iuh+X2ptWYuGoB!F&Vh3PxNN^D=iFohr4%F6$(7f=`%eNtAb8yU zJe~j;OOV&S(`!H8QTuaL2ry*?x3^z#y}OTy5JeFiNpg4Y?Bu(^ZXsYuAR+|<-QDNO zy*r~I*MP<MTU!_rK`8|g58r`^4CbBb_~ruZU%nwgq&0t&q<7=|_kqa>sv<H2Tn!;$ zw8mOnxcABOYT+rr*?7Ch;j2f$sR1l73mmmttr<SK?!?cWCciR|`v-0+%#Vit;^_bY N002ovPDHLkV1m14*b@K% diff --git a/interface/web/themes/default-304/icons/x16/book__pencil.png b/interface/web/themes/default-304/icons/x16/book__pencil.png deleted file mode 100644 index c045fc8b15a478c38fd8d708633085d4fae13372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006VNkl<ZILn2S z%WG3n5Qo2Wa_{X;q&}*)w1SvcjipGzM-f+9C?amExQPfYQXl;TTnBfqst8@w2UWDT zh@j{u6hRj*Rj`7!BtD2*N~<w7MdQsq=eVeex2eH_fnk{W%{R;l%d+@mXMk39a4^dM z?KO}DumZ`}(NyZJW81inL&S9}z9JkZQdfuTy12GYXCiUB++-=GDgt+ghG6F@zylU) zk1y`q4_vM$kR2TzSe>1eN~N03wrz9wX+~5Cf&yA=JkMita<ZmCdwV-*U0VRH5ke4) z#g;WsO-->_qa;Az+td<)kWvbiLP|-YP*^4)rDU;2i?J7jY|3SjK>^?Q@qHhFavbz> zeosEVc6TmwPeEK(6DXw+LQsx_E`*>sKg-I{*Y(k4vU?8BS=9stCRJOLJwfhMnEQ{1 zV+Y#WE+mXe{gVJ#Hobx8Yz>Vu)c>B1T}RW;ipA>+#)AY_ErKTNB~d*>&yhHnh99xI zc}xD|k6jZF!@rhX!75+D7*io>vL|TeHa*>O2Ck%-TXm95?sJ|sQ64O0k;a(HlWDEd zT4RhsYfZS6WwRKe_i&tnt0_KM$M|mV0N)ES{|@u!CK8AkV;YSy^;&DBl(?>o<2bDQ z`Go%78(h3L&P?P4Uj1IAl$eErW74CIKtuoyKnpMcY^UXTwzAapt*%4y4c}hPZkx&G koBw{6H=E|m_<3OZH%n9*dSuGemjD0&07*qoM6N<$g1EI0PXGV_ diff --git a/interface/web/themes/default-304/icons/x16/book__plus.png b/interface/web/themes/default-304/icons/x16/book__plus.png deleted file mode 100644 index 23260e555dfa870ac67454af67a0295bf74cb70f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmV<K0TKR*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005CNkl<ZILn=q zzl#$=7>1vjolPb&9%>=N6>@1p2)IQ`3sF?iQbEW+pcWQ3)`I_o!W~zn5kW*Ot~e~T zu@KbaKrXCA#OuTuyh}KAcYauGvLts|4t!yl;bY!+p5gn1Qi_T00(E=s@d`(48+Zty zW{UM^o0|_xVTdl3sA`?BW0eZkav7~PIt+<AojX&LvexDS&sSHWeH%!Caq;tiE?)uG z4id;#tA&ap(ljkJhhfNzcYTo)%mz5;NRotJuU8n*Y&OBU;sBgO2tlLKIAo6FnCy;~ zivj{`Em(_`lF?{%C_qX{c4sj`V2lA{05FsNpo}p`69^%g=}xY^Zq5G@d^owrUa$j~ zf^+;h1Ht}c0$?G*u>6%9S1+(Wcy)s17)a*=R1v{@{e)k#52<I@?n2_Al77VVX)a(& z;Ju$C7^E@L&9m9r47k{dmVox#mv2zsdxQ`G;dBnX_gTLuI`y~C*3&*7SiV)`^ZNG@ zOTWJ$GJ>l2z6Kn3&Y`44Yd!b(^V|nuV|<UH9m2j5JleYsj1{1P)4;cGw_D@2*(sdk k_IQQuVU?d|YvM8g02pJ_((zn&PXGV_07*qoM6N<$g1`{pGynhq diff --git a/interface/web/themes/default-304/icons/x16/book_brown.png b/interface/web/themes/default-304/icons/x16/book_brown.png deleted file mode 100644 index b7ba58f3d58b02a60fcb80fc73b2acccb571ff6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003-Nkl<ZILoz@ zu}(rU6o$Xnd!Zl<4)OpjgfOr;I{6CX;1lQz_#m!MY%VTr#CNze!k`n8#6(T5iGkam zI!K8E4KALfX?v3Y>o=ULBuQA-CD6P+wkPba47dPDel(l6!{JpaO);esRby6bzfz%E zE@O<rq$%C=^P3P-N~v(Z>-Bo4X9tfvpMRNT8E~|2pgWxo-NQOXQAEROnsWb;t?s`7 zBEn*^U^E&<0qu4hC&U3Ff>MfBtF;jxkH?5e6tL%<!#Ri6nmo@p09tFDb66JvSZlG? z0<8A+vew1{!9Xd6b8aIX`u}eLY&8h|A_7SMY+xgRVBo#qY7qLtVEPG(_nzfAr(q7f z_lU?=fQT?J;CT*%*|$N}dtU?UB7)W$V@z}swbs1nFnFZ_d?bJY8o*P(->=O|Om}^z dH_v35v0ofZ#U`f<hui=F002ovPDHLkV1noWrO5yQ diff --git a/interface/web/themes/default-304/icons/x16/book_small.png b/interface/web/themes/default-304/icons/x16/book_small.png deleted file mode 100644 index 298d6b3b2c6dc13d9e12f0dd34f4573b09f7f0ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmV+z0q6dSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002rNkl<ZILp<O zF-pWx5Qe`QU)VGrLJ9E*p25;f2v%Mo;vvKXq_*<_-a?QRTUlA8b)9+ZScF}c-Ngh_ zInBV&ypNAzo<sz5N|{-+0ck%disBYHUtc|)9hraodAWJ`698N^O>>tnuW|QXF!zto zGHL)6IcM@}Mb~xPu&!%ZXC2)^L@eALcSlvJstQ#dZ1N%Cn8Cu#zzh+g?|Vc9GlT3W zQvl@#01OW|-F@63BDR2tz;-&>CK;T%J1K&)EQg_#hzR)pN>dCz+O}QBt9%}woxbl! e^8f$BY``zlyl?dXGP4H&0000<MNUMnLSTYmoOJvE diff --git a/interface/web/themes/default-304/icons/x16/book_small_brown.png b/interface/web/themes/default-304/icons/x16/book_small_brown.png deleted file mode 100644 index 9d5acf299a0e617ecf51d0d512f0842405b157da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmV+u0qp*XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002mNkl<ZILp<O zF-pWx5Qe|^OxPe;dI1UX65CjKmPIVQKn~#vgmm7((i7|jQdr2=v67854}J@AaYN7t zshnoupP!GJA0|j*NktacVn8t!%CfuxF7DUqYR134eb(kz0C3s1?cMeHEAIXi%+uq; z-x~mBN{MkC>HGd5HcdlH85u}gxjXJojFGyoi812tSjr1=WoDQeAq0kDAcTOKVV(!5 zz5&2d|M0vM4gg6<eGV`e;+eZ6iK?o;Ohtht-uD>*NxQD=UWQY>O=l;O?Nkf@{}&bm ZJ^`MiblaIn!QlV^002ovPDHLkV1oKjbkYC- diff --git a/interface/web/themes/default-304/icons/x16/bookmark.png b/interface/web/themes/default-304/icons/x16/bookmark.png deleted file mode 100644 index 6bb98fd547de0e794569a7760eff1ab1b9698ee3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmV<Q0So?#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005INkl<ZILn2S zTPs9S7>2)15;-TKxNzY{xp2)m{RJ1wXeLI+VFsa;Qd4rJ`~g2eIfYE*f<lNWqLh^6 z2RNVmyzkmWn`XwUr?u9*_V?^>?Y4+>6gC;UGRo!Lvg86>f-7(hZY--3Omn`D<iCa= zg~td_K@<UtW^`;!IdlIb@L{nJ4nYh-6`0l0QT-ekP)fLGE}M8@C%(W1<}?)2kG?+r z?C<}PF#k{B0`odDqVGLD`qA5KB<zGa&*KSPU_pn6^|iZO-vR+6VJFPbZMnn}RD(qw z8qycPUtc>rjf9;rKg0R=6{88N!IBOR>Qh^rKDW0U2|HnaV#_6#pav`}?)lKtqK`hG zk+2iyN48vI32H!CgF(Ibc=W;RH4=8h{J@s~`p7|tpcbqs?s@BW>s@oRk+2iyyEu1# zqb}zk2th4a)s7B*VcRIAgq<+ovgPKA{=dI2$GT;$IiZA|aJ^w!b?nd=t?+wH;Lroc zK^Q)E!g)oc-W#vbF%m%*D3}u2CIOK~?DIe_$Of4p4Wxo(kQAviZ{VgFR7{HOHHfrg qT@K1XDJTI&ARpv_bdVCMOZWoh?J5vG=3l!20000<MNUMnLSTZk@8WO( diff --git a/interface/web/themes/default-304/icons/x16/bookmark__arrow.png b/interface/web/themes/default-304/icons/x16/bookmark__arrow.png deleted file mode 100644 index 5cc6e5b23ff368a706d5314757f5cf8698e7c1af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006nNkl<ZILn2T zO-NKx7>2)Fx-zLCLZMnz1W_5Z(1>xyDOyJm63w-daRzmo@rM~<!Vm<r7C}L6Mr>hN zL}ve*(ZWI^!rK^1!9ZFjR@=%-OL=?0>u4H|U3fU>yyu?hzGrbo7CdpXgPbr7Ns_l@ zgp86gGHw_S(xKy6Dqr+GU@%BtFD=kRH__Y-9d$h~@N?2n66pnnq!Ud|n2AQA5?yO9 zeSG2h@&YHhg~moq*VbYt5}B81{y%|}+(ttKepgpxx~9gKXcNtKe>s7Z+(msora~e7 z3WsfpHqkseE0=Tv7rBR643iZVm<k4Mi8j&v4fp4+xRk&}?xU^_KLP>#EHAeu+C=lA zS-GSW6p=3Qo)bPFzWe>QM4M>dvEAVc#O{de@@Lt5>7C@A8C)bNBHgH}!Z)uM6Q!lL zM4M=Cao^ecDbB+dNAq8SoAiM9{9>B;T2f+5w29_dw&uH!h1&J2R(u@LvEbr}IVW(F zN2sjCq}Jv^m1q;qi_2R2`J$y{d2d*r&S6~m0O)$x=~t%o8ph*=s6?CS{E1=gFKi$E zc=kQu8v=?4{t`_BTTb>_a-LW4l5?b6q*t5h*duZvf5UFc4LywK1iLIn8x*t+<8T7d zHTO*Y6;_fpB=@?=GbJo?l<W0m9a&3OlU3QCtBIXYfo#vUmstl-9cO0$O_^j9+0!cW z;)qBY=Xt3=dmGtIHj<nSN2D$DP|HBZz8YWZ+=@SVnSxH{E4;4&0000<MNUMnLSTYf C5*@Js diff --git a/interface/web/themes/default-304/icons/x16/bookmark__exclamation.png b/interface/web/themes/default-304/icons/x16/bookmark__exclamation.png deleted file mode 100644 index 288af864ca69948ed69b65ec36eb9d42f0de5e76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007PNkl<ZILn2T zT}YEr7{|{s2i*kS6a>+YH(?M_-9$BKBfRp?L5O2w6Q?;pa0ACe9IROoR8XMh3`0oR z)U>&@k6Bs1`)aY4)@lpGnJgA;wUyTF>3QDD7O5Th@tpIV_x$)Dcn@PaqYK%EoZy^= zkqGhzd5g>;^PC?-Y*god_5T_UY&=7zR~OJBJ6J40mDVc)HBNj;U~R!+WB|-&Sk~!) zB($bJo5T-<^#xL75KJb>HaEj^OUsIc`u`J1ks)YngKv$EkZo!bC6t8vw7;G}iVTC% z2ut<#@Kvi7C6t8v;h%E0mY@h3f!0=7)M#L-u1=It66(+3{_iWUCMZH~f?f}wtE=Hl zO^ql?oG*odg}-}h;KpD%XCdTy`M&}gG75OlbX65()M`=k-JpX&dwwiE-<f*iko5XS z_(p^gxdIvDgoXzAq*6h;vQm^#60el|qxVW8*^CV$zN23E4PGh?;kltdf?{M0@SdrP z3izm0iV{j9Nci~Fg*;bk;Y?DYP(U))o}3!Uvp%x%d_)u!BjZq83yTyR50ZqEQ2${W zHw9gLgjDP#;6DcoFE!x5RUq8&=kkf`D45{<PA(*&Bs6ywa{1jp-Z?v?OuPt{z^FqH zp`Z+co`VVM-@b<N&mk)0EaF5TC80XTnB3XJ4@?ej5oW_jAUeHIOh7d{y&oRfHwm;) zPhkVH8QIp)*keM=*fCshwO``BVRym%`0GN5zuF0z4+gOkVPSiGxQlm_K!WT*_TtJ@ z#@KP3@1~cnQ?tIyW)`?|iut=O%xASQueF1DdODc<>S-nzH0<IJ{UD=p-a`d=00000 LNkvXXu0mjfyYM-I diff --git a/interface/web/themes/default-304/icons/x16/bookmark__minus.png b/interface/web/themes/default-304/icons/x16/bookmark__minus.png deleted file mode 100644 index e36870326885ba435457d29984221fb1372d629e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005iNkl<ZILn2T z%PWLY7{=d^BqEn27A!1ml!Z0p`X^XeU?yfVF5?nvO3Bn@rEDo{<eF<_K{3fCiYO%| z`2*bVy`JZrq0eOa>eqM9bI$pl_so1p#PSS-JkV?yat6-91-JxP;My<>!6e^Tq5Q|Q zh~NmE{4U_4Dedo9zS;j4IMLVx2ayFuU|Rit{pjjaO4w&Eo0zcux4;Hw)aTRpjt>3k z?EIE6|4(28v)bFMZ*6V*-rjCXSP65E|0S@2Iqm7umzEZN^>|DPD`9>XluIN*F_>4c zSD)Q(eQ9bkC9H(`DaOB!_?w^@ENFMPKDu1`)X-o`SPApvpj;veO2CrhocDEg`rve$ z5>~?eFesN@unfld7g_`*U|CyR_0DeBdxyi6uoC9`7!P0`zm*BBBUV8vSW%qwrn*{h zYidjhD`CEY@p;R_a6u_p)y77BX4zOs2`gc~h4E2*<(Rx54s%&Ij5RBiuoAYhbJ;X@ z9>V0O+FA{VxeQ{09Srb?5m{#?e6NU<JCIeNN<Vh$!{l)M!TTrCAQ@ziiv);Aqze6X zkOopf5=a2?AQr@g)|t17oorArBC=B{Qjd0i=w|1F9FPSvKq^QCaiMilpAz#*seXk* QR{#J207*qoM6N<$f;&3&4gdfE diff --git a/interface/web/themes/default-304/icons/x16/bookmark__pencil.png b/interface/web/themes/default-304/icons/x16/bookmark__pencil.png deleted file mode 100644 index 55b42813cd13571048b76be7d4faff06477140cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006yNkl<ZI8S|& zT}V@57{{Ndh%AcLkSHN94%W?J7tw`5>1N@@qPr~$v<>TG&V88<409-m5rtia1VvCc zK_6<OSkf1*W)vEI!61T&y6UD{OiOwCKW97R1nLXF^Pcy4cz);q!lCEPo=?ofS6r?= zfk1$!u5+1>%!D3&24BEe=Dpyi?t0cbjWR!x-d;)6*7o@Q{+bm8I&@1021Iu~n}VxE zjg3`RgM~std_G_F{xz;&La-0qmi~TO?Ccbk=vnJ@nTVWDr`s@$p2D|NGBU*DmZT)8 z19zmaPZrwSWwE29EYZ3ta5x-vsG-7pG0hL{5(w(Ru%y%SH<6HqWYUyq60K{$EI8<? zptC3GfF&6_$Jy6z&PaE+%txd0Cl)g$nk2_Onk&lbKf#$KnUYH>o>575utvVO9hLb= z#FS`~_sn-cFxNw1UXh;Skp(Zo40wa)gB?6Qa=Kb1pOZ{vx6FmZqDjyjdy76Kw4A^L z#s&9$cg!b4hYdkMk*+S$`YeVaq2&Y~Fd^}{{0aso9|}pnr9~u_60N@~$~9qG5Vr}u zU{Y|;A5Bg2v$@%nXcDbYqi?$+wdtU>An<~F(%LF>_~LI2szj4$JyVpMR}9++t@Vg` z%8p7jiM~H(ZqS4$mKwCy1vG=;JeYt_ljuH4v_G`cplz)No4~dkM9-8M(Gi@tfJ(3# zIKT$59;^jxN^|BH^iU0U;ir1xCpwOIH*kTSzyRC9R^S91!Mf7is(&pUORLP=HTM7j N002ovPDHLkV1hSuBOm|( diff --git a/interface/web/themes/default-304/icons/x16/bookmark__plus.png b/interface/web/themes/default-304/icons/x16/bookmark__plus.png deleted file mode 100644 index 51978f1886356dbb3a0fc75596c18ed59f7b5ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006JNkl<ZILn2T zO-NKx7>3_lj1h>LSyWJq7C|U2igr2U)S^Y3h=LZ%Og83djz8#tAxMU}GFlZ3=|X5> z^hbYUv@ocM=w?t92vMX&iy$bqw3M&+J<bd&jvaXT&Uw#058pX(fdwN)O2`?{!zlSc zK9bL5oP6=T{p7mpcsgG+?lX8p-YqZCp&QoSZK_&l1u;%ul9AkkGIG<px@@ks)g;kc zIiB!?=PL_><d$`I+H7;P&9$^-CCdLN2$I{@(P4iZ8*R3!$w}0Sa_z4q2$DP2-flDX z_4X%`a1wQ*d~{xpT!Ij}Yi(^d9go{gU7eGt6Xox@pSj|4f)Kf9$)x?NuD0JbHBO>V zl)s&qBbT6@JTTsKvZ~6aVlgLCC(5ss=7sj1D+I1>1O|$MzM@5fax!QQ4K@*p*km;7 zB<e)D&wU<D5#QA%f-o5}-t$LAh5f9obP{!<{PM26@ZPiQfUCuR?0eEw(Z3-p2$P3a zTWiy5n+GLPC(564AH78>e(a0m-%eX*?($*Jd$bTq)QRSgJ@3HD!)t*{g?{+!QCo^~ zT;vrZq=yUw!|FtJ2sjwkD<4_|TqsDPr@$AbV`Y|^yPRV+;nQNv0PsvCfD>GAB77;V zCwu_p<9z<e)=wqI`YL_S{Y?R~o$ToaUK|5XalSkKXYV9C$TqSWM*{tb2VS%GrO&PU Y2cyhdZs36wq5uE@07*qoM6N<$f=izgRsaA1 diff --git a/interface/web/themes/default-304/icons/x16/bookmark__small.png b/interface/web/themes/default-304/icons/x16/bookmark__small.png deleted file mode 100644 index f3a92cbc8477fad5d88332e7d6ac1f061a02838c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmV+i0r>ujP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002aNkl<ZILqDB z%?bfw6vpv$?#p+%i`mU?X2WWBvvVcNiln4Qq(lk}EU>UquE0Vm^>_}=mKip(_;)&Q z@BC_}MgYh+$!`G*RavtgJFp`=sb*NyrtN8gENh`wgH7Ah06Er17~)o~!jQ+F1laOn zA{_()uAT=&Y~S<zEwEC}6X~K-!Nql9i0vDm@7{fbxoVL}55AAH<G>Kxm#T&M)m{P< z)hNyoo6{#MiGVRLj96cFXbn_LL?kf~@j_k1nl(hqL?jjP2mit+-2un?dLU9a8~p$P N002ovPDHLkV1mzpa18(e diff --git a/interface/web/themes/default-304/icons/x16/bookmark_book.png b/interface/web/themes/default-304/icons/x16/bookmark_book.png deleted file mode 100644 index cf55d2049bf20b453fd93ac9a1c567616c3c73da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005cNkl<ZILnRG z&uUXa6vy%J{JHj~MCisET-69AZ5Ba%0--K^gsuhk1%&Q=3K!`r6iPsRfFdq^0TBYh zVlhY;262&u+T1hexX4XxHMY)jIP*K7GsCzTBjtJy)YIcvce#G`fR_OA!e+gDbo655 z@Q~_YK=7Ur0>058?Cr6-vO=Ec<XJ{*clX)+P)sQ;0$#V<?A&?4(}(w<C?Lz&A4cAF zK3;DBbLSDT|EIt=n@#v`aDI-Ro#84K(7^Wg_M#}uGTyvDb_>D909D0QF%eV*FM_Gk z>-82zTU%S8`hNkg3}`eO0QCEPR24M&WdR|jgla;If>ac^7*S1(Mx$8=?@1{^S}q78 zf@!u8SSb*ZMUjYHEwH3mQJ_VE#fT+k{!-4lQXp3elu+JwfaQYpTj2i^m=c_$Ew>2H zVKx)Y6{WzF1d?15L=gcqo=i6w)arZ~ex_wVmI#)Q5K~GV<aKJb8n@Th7*;AAoSxDs zyPH`lC`T9%h-QX!4j@xiTK8K_CKFVZYPHJd=H~3}%K%jcnFc0bu}@thuxe&i;HIh) zy(iD}e||&nJvJWQ;JCXEj3bZ(>%d8;)2Z@S2G@S(>9;TC8TkeFK_GZ$&Kk%70000< KMNUMnLSTYVw&^wi diff --git a/interface/web/themes/default-304/icons/x16/bookmark_book_arrow.png b/interface/web/themes/default-304/icons/x16/bookmark_book_arrow.png deleted file mode 100644 index 7d0f980a044234e1c3ea1370328381dad4fd9d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006sNkl<ZILnQb zPe@cj9LGQN-aK8mH6&1UL(yl(>SjwsL6;yf!dq9#L$FXCI}~{9)K%)xK_Rh7f{40> zL_~y_4jLgYDE)yAyoeyXuDZRM-*j+&X_@sq4a0Xnzt8-JQCe$ibpr_P;DavyT?OC{ zfZnwkKAoPv-8nTys#wJLJbd5B%Vh9JMo8AzlSm{;1Od6Bq3b(`w6!({JR2KhAbpx^ z7rG&eAP5*=(Y%?Q-`jp`;36>oyMdR@W?|JqwTj!^L^U*k`1JMl#i1Ywcs}!4#Rj_p zB7zga8G{&uXADk+LZJ|cdV708<o^Jw2FPSG04y#pA|fEx+YjJdYZ0+X6k($Xr8Od! za=E<S!Sk@zg5BT1H^$&3hz(rLz!(#Uj4=lrI4ig)LZS$#HO>k<FQt^K8JL3%1iv<I zANClmCEHl5rfBQwY4?MGs9MGQ!@vo?QjD2qe5G)1+rU~&#VRgeI!a5}-Ieam4!0aT zzQ;ftW57A`KRPM4hJ0H2N?mgYh4p#>ir*G^pVnNxa`N!R)cj2+f>J8J&WC(HfA*ty zhSt_rnwpv@l}ePtJ_gT+ER|vX*DUEs!pq5-S?!#o1_?xj+^HOuN(B)il}fQ(_`<`v zB>*a0o3x+Hk?s$9a{tw=^1OQ*NIK_IK%<DDJ&!~p5qCO~u8Y@i7dEJLhP=KzvF=tE z9&fxGeW8FOKpGeY`biHL|MrJ<nCaqBV^Y4)%}C+VEnxX4ZBQSoiE*;_00000NkvXX Hu0mjfHFz6g diff --git a/interface/web/themes/default-304/icons/x16/bookmark_book_exclamation.png b/interface/web/themes/default-304/icons/x16/bookmark_book_exclamation.png deleted file mode 100644 index 656a504b94a8f896b2b02006715315d7db62641e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmV;L0%iS)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ENkl<ZILnQb z&r4KM6vsdBzWeme_#}Uzqcdvbm@q0aP!MfG1Y1P4Y$3FWgzO&>Y}LYL(5{89B9K5^ z^#g@kw1^4}S{RZQ6iQK~6pX{D@7{A;G!804o#o-&&-cUO9#3mcrLF@xd+ts*|E^`= zCV<}4%-vsD7|+hk5UsA_D~0d-sC*uOVuECCEnyfE1_6bUk+I!J+FDx$%uY=)oIc65 zp&p212m+>mYM$L)+8@6)d={8KXrKlL24KU%_BO6u#!DnXeER$Qt3yE$@ZiNKuWGOt zAR;&soH2+oC}VIUEH5uthx+>ZK;-`bUImcP=K)w*SwTcVtU3(fTWb-qNE~D17*A_N zEX88+Z-P=-Yr!6F;2UFb5>yRb#lRRtZ}^Z?nWq%}iy&UrKpix2R&a5Q#4#?8aaKUe zq=GjL4UW>pD-x=#u?DQ!4=|NPzp`x~a3ZACOS;-Kv@|5>Y-{IC_FYS)OGLVKh=CJ) z&tuB8;Cmh(h7SFlo~~X-uFTS%?qKNHQrrC4q@Ev}+y~Ic7;ui!oh*;qPB6NYCD-tQ zOmi)vx6a($98&&5PdZs|EQ7JxzXNTp<zATMM@Jv2REqVke%@w&)7jC;w_l4qc|6Yg z_IuJt>ypNBDUR`!bFTWyM1(@2KomuY2-$`;@|}i6?MG_VI_EFkBB_hCHE#w%7!{1+ zv;vaOxmM>~y@;TcA`C-nYHG*@3-orCNvQ8cL5b4F4Wgh#6l{{p9O>EK;hG0D0cqei zaGdnz)m^2l!>_a1){W%BTMo3@YOE`M{k+EFA9Gn6cr<m{V*mgE07*qoM6N<$f}kHa ACjbBd diff --git a/interface/web/themes/default-304/icons/x16/bookmark_book_minus.png b/interface/web/themes/default-304/icons/x16/bookmark_book_minus.png deleted file mode 100644 index 2f736089709186bab85dfbdaa68b00be48f38226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>Ax<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00069Nkl<ZILnRG zJ!@1!6o>I=?#v~3!>TEKS*_xVVUrY#q!8=^v9MK}Sl9^a7Z73<tgKQBCI(p-q97KQ zL5!7!g%*jh7zs*lkzzv>Tti;&%sCdhS+W`uryS1t&ySfi#yLm6?gHg-<<VIVUkzX! z!0p*AznGo9*E=&qF-@^igteBaQo)Xm(cRTWk|ZQ?Om%eh&Tf+nA+!TtPEIm%W{BIv z=OD`<j+t6@ysdriJbrWJGBEYGAQ~JTgf)e&Ep%f8Qz(E~1_lP&MR6SS>iv>w3-$(x z2r7blk9beyJt{(@(P$U-_xFRy{{@&lpi-#-u(-I0h=7D>zW^ITKqMepM#wUZbBF|5 zt=7&7QA7v<!u|s5y+<W(3p5va@7qP*`-24<1kExe%TVXgAnd-BF(w!Ig9L)jZ`;ED zg0LgFp3V{dBT&H_!=yifH3rok!LA|~MB@ujxVk*oA#mP%Q03NkFKMaF{OUKV`jg7@ zha5}4psHAFnP@gIo!(gcsPL&HAcR0YDN`zyIMvg`YN0@VWrfl7H8+PZ?j6RXz|gaL z9jB@oV*p|ip?aap`uaK|La|t+udk1lh4Vak_W=cL6!ELsY#rbH@zv#mZdEM;M??e{ zMI=emG5c#b?stsx^u*J7mL6XNemfumP6FR+wOWxkK0Wj^Z#S3o9{&fbejjbGiL=lE O0000<MNUMnLSTYKg#f_- diff --git a/interface/web/themes/default-304/icons/x16/bookmark_book_pencil.png b/interface/web/themes/default-304/icons/x16/bookmark_book_pencil.png deleted file mode 100644 index 20497977a0dac2f70d989b792ef739ee86d6aede..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007bNkl<ZILnQZ z%S)6|7>A#8zVEXc$+D|v5ROufN=R3t)kH-^8;dqZP;~bX2--=zRu+K^t>{8xL{QXb zkf5lR8KfY{*oDa=oYINWynN@pr-kD%T2Sxqyu9c6J?}Zn_kHqp9;mSg+GG5?27p!o zzo=Q$olIV+?&@N3I*q3_p68+CalDHcDP6RPNF+ie2xx3>J~wyCx7HQ_4>~&7TeX$5 zyK5l~AqeQq_&mGaKR<qI?>?Y&p@D8_Xn-FMrl)a}lc;DE#G}5xzAzL70S{jfse(Z< zKtymNIAaiF(8l0I7#J8R4As@ufyn;>R2~qI#{n1|97IGwtOhv!J~<EIS!)roNEl+n z5as)bSaP}CY=YKUYr%@T|F)g#(IIp(z~mF>3|#(fjKLTKfH8)h+0=^dqeG7@B=kZ9 zX9X9ANEqV65N8EzE!J9;QcV3EVTt!+RjjqODFc`MzZrP>*Y==b08kP1F*+RO@$*|7 z_t(~5X?8C8r-2hZrRXrL@RY*2S%c;DvcbDgN6San?KqNpGc|SFLQk=QZ;S!wI5ksE zy0V6MnGZC&F;>t^Ou9IJIKj1B&nREBKKuFCw!Wv)>3P54TWh%+siCs6l8W+jGSMin z#$U3BdmL{{&~`mZX6YG*M!#fP7URiy8s9mGQVJjt5gIo)GBGiMh)@yDvSsBfP8`}z z+l?fj{G-@l3z&}{6T`SvHyS8)&aHONm5B&iYa)>dB_$=SoP0sci91}q*~7QelgyOu zLTim1&y~1T_iCV20n33ZpbgkW)v<J8sjv5T989bo>mP}KOJ~>Q3jLXp6yJL;17Cjw X(hEx83q>`%00000NkvXXu0mjfY{fiE diff --git a/interface/web/themes/default-304/icons/x16/bookmark_book_plus.png b/interface/web/themes/default-304/icons/x16/bookmark_book_plus.png deleted file mode 100644 index d1eae3554b9cb70fc1b7b54227504180154b8b1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006aNkl<ZILnRG z%}bO~6vy%JeeQkm8JWa_YN$mzfs6_b<*rtS1+{1s1g?W>(V|V@F6d7PS|}|BL4t@@ zEhMA}q)oMuV!*JXSr{=orQ=Kb+<Q(7$H6JH&hm23?|!&1#yLl$ZUFgk;eI#&t}<{3 z!0lMfKb)Mr-8C^mwo<`H5!PCwLIFE6LVH^qNs^GnF~#BG>)S&vgwPClG&;)AkpZp^ z9)~oAIA*Nsm@2(%-Tvp$IbiH}LDb*h4~q&L8|eBvCX)fN^!4>Mo8ma;@${T&3U&sF z2r7blk9beyJt{)ETy8e?_V$9v{{@&vK%r0oV0LyE5djI&ZUHugfJi{nl#r$v=MV|h z>-DW2qKFUzgxv+!dyh)o6lg=>y>B*o@AnpH5HwAZG)0|5gRp&5#+Zh{?<Ejy<FqZb z2wv|WW7$^VtUbZE9N0CYKLjdRV;J=ZvBsdfB?uu<i#~Gc{Au*S*G@h45-q-J5jgKX zsB(3)i%KrfO!X5*{m!(z$6_=Gsj?K7U{fHIzCn505)eXQJjs*G<v85gNi~yUe14vV zbc*8TV*o7p1qO$U9l*egC(m)JiZKQt77>aki>$7$A|hn7S$cYUSlY-lGckt(N3Udg z|KLlVjvpT|TY`2~%>w&G1Q$glNz(H6&u|NXrz<z9g&M4R!`<bJz={JB;1KY+R4Qe8 p<|}{w!~-kclxyu&{Y+!V{{ms@C`12=bDjVI002ovPDHLkV1maZ5g-5n diff --git a/interface/web/themes/default-304/icons/x16/bookmark_document.png b/interface/web/themes/default-304/icons/x16/bookmark_document.png deleted file mode 100644 index fa8cc9b59320b9c92898e9690976798bbdb607d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006WNkl<ZILnQb zv1?O79LGPuyGv^eDQF?KW_GAb!AJWK)D$|TQ-{*gLFg<9ZlU-Gh+B%Y&<vd#I*Lvm z6p>P$q_ohc+95)dfbZpZ?_6Gz7bg#ncL%@U=RV)#ozxl)07L|UXPcWlzyn6(``bpN zHrS{tUX>6604`U!4$Qa9<?5sD?TCIK3I$H;^)J9>R`VYCk?X;D@A2NFs`p-OZ0z1y zUXF-kLazsL%uEzTPuJFVR~8m_RrLvQe;kl0c~wFN3*M7v-$a#8r$e{f<<-_!-K(zT zA+E1FSc`~|hComq%@8og&~CSRcX-Id+1dJ=y}jqaYXGPH{s;g=K&pyl@Cj>)qKGt2 zDHe--zPR`^G8h3cBKR~VWRZ+2DKJ$i0FY#L`5u=f$yfxRGYG1rAu#FO*da-h$jBfM zfT6(vplON~8A6;f^z(p!4KxI-2or?@Hj8AkpKQ`OthHkXCXQpWDF#sQu_AmsKOX^% z!H8f*a3aKUEQ7u=1AtDF@bTn?x%G8E92^XDV+>?AV|VcL^pxA>GJqHnZjyw@J3HL1 zRG3;^<ZG=qjDRr+5XZ3q{Jy-zecIn=v09~ADhWXK=!gJ>5SU+GWv)^o%^uF+(e=7r z>0DoP+-zci>EmXzbk%CPL4grLM6kwSti@W3bB=;@SYx<qwcK&DSpudVa0@8?Iy<|W lSz3C@e~h%(y8%jo{souEGquxlscHZK002ovPDHLkV1jSR51{}6 diff --git a/interface/web/themes/default-304/icons/x16/bookmark_document_arrow.png b/interface/web/themes/default-304/icons/x16/bookmark_document_arrow.png deleted file mode 100644 index 082225822377563482650fddb35b4759ed381b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007QNkl<ZILm#K z%}Z556u^Ho?>$AuLIo>dE>bcp6}n+T6qH)HPzWVNY11NT6(R*K0+IfJ3JR1m-1PBQ zEevTD2~tEKM43>8`Bmt`2lkY__s+~|bM-x2bl@;EaL(`i4vgwgr2tS$0dTRaYXCSv zHm2^SQvDkbV+__9L<E3%PGLK+E1gWX)m^&e5r&XRFgZB*0r(l!ya2xE^q{S^SZguH zR9x-s94c*W^zeOTZ4G>%ZJy^{Xl)&8+P{Cu7}E^w-3o}5tT9Lg6KiqN85lz*lVNpr zl^fmNgVva)Tu3}LX5+4uQaBOBm~4umwI-cT^Kfj8gJordx1T)e18xGuO&DeYunBO+ zpdxr)EQaTKIOixXF6Q0B!g|&q3qUJ{bq<ME(#GI`f<yv<Agasli3dTjWd)mKAjaTC z$dAXj3<-ijWesuxuxYRXFwPNEY7-LInlKmeuYnOErWARJ1hHr(9euKqkCq=Re^}11 zJ7TT78~Q%l_kE&N8Zg!pQ;ILMvsr-FXr=hNw9e7SGSaa<r<U{U&M)bGTMYm*LBROr zBs<&Nc{w^ts=kNxqd5dvn3+KmKIhIJsC@A7bFVl@d~tf3l4KG<X{Gob1RNR|U`I;} z1q}_%|Ju!o<{G|bpwg=$1YRw}nU4CyPe&$t6+lB<8^z`2y%WR3H$?;iL<A?owbT@! z=2k$2we@vebu|_BRlL4G_Fidy3!o4vuWD_*A~|856YHFW&Piac_}0qt>(8ZbTx5IC z@O<IPzRN(N0!o33qT1SHx~Qmx|3pxBx<m4JCe`AbXa3vAcYt4i0m4UdK&C%Uz5oCK M07*qoM6N<$f{q0*bpQYW diff --git a/interface/web/themes/default-304/icons/x16/bookmark_document_exclamation.png b/interface/web/themes/default-304/icons/x16/bookmark_document_exclamation.png deleted file mode 100644 index 9d34e49763105f1dbf7f0401d8a67aaa1af279e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0x<oFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007(Nkl<ZILlp= zPiRzE6vlt&&U;BS|Kb=mnm}tRf!G!-4}|Kbpb$jUb|FQxiwlcu#YI~|N|#xb?h?A` zrf3@6MR8@-O%@SB8Ep$?ifGdi;si4@#&_Sj@4D!l%%lfC?!EAx-~G<w$kn+y07L|U z^JmU{2Yf)Mp8hm9ceVXcRh%l`djNti<7dFW`tb0?M;9(cBngBe)tQ-xz(1Mi4)9l3 z55_r%a}HG<x_tWd?9Ri7BjOm}YC#-Rj-u$?i4(KO4j!CU)#JeEc0d-%sp2!3caAhW zttyR1gJ!eI_mh(|PW4zfBuG@-cM%a%@A0Y~d5<xMdcDpsw{G#_z`)Fp*RNj$egFtG zNjd=70;H-)2Jgw`h@yxzO(~U1Jb3ZqO(#JIfDyr^DLxy?sFDJGVF-ZDeBC{PwRYPG zt}B68CH0=(AmGjFHT30e+`iAT*2>nWiM3=Bfvp5>fTk(NTinJXBV%WY>-RBkqo>_x zthHnk5kb8tCqhpclFLTgtp7&7G)P}>NU^w^k^F<PAgvRmbxa(`WD*0YbL2#L^6c4v z0340go9w8(%jDFrl*@yRmL46N8l4WNMyIzY0BBgty=s-h_&9f~Rhqlj2y)<)Rp#gC zdHt$JrN6RQ9iJu&W~El^BoJZ4S`J*f!uyvlG4ky<Y`(WjUn$S>`Vu!6F0&T@L3vOA zZdJZa62vUsxWP)TMyuHrfQiLLhQ`M+A{0I@v-f0#^S{$$);KjWO+IK)DQ_0ScZ!Ep z`NRPE#|sO4{#{-U+FNNv5D}jL`7{0Hb^6Q-#jr)|<<}I$7R9j1;Bfze*z%PCJAt9X z*w|51C{(%^<=m0l7yAcV!~Cyu;<Y!IH2!|h(p#f5c~hbc`C<S7002ovPDHLkV1kIt BThagk diff --git a/interface/web/themes/default-304/icons/x16/bookmark_document_minus.png b/interface/web/themes/default-304/icons/x16/bookmark_document_minus.png deleted file mode 100644 index 548690a98fb79028e326db926ec0bc319866b117..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006yNkl<ZILnQa z&r4KM6o9|`-WyF}gc7D7;zkg%ROq4qfVmiGT)7Ze(IQZA5uwm-kp2K^Hxe!q1ZOQs zt1xJpS}=r2h=xUOgq#`iy*c-u7W14RtvYbI_rf{f`3@YDFBSnX#sKhqW@Z_9Kr_C* zEf(|F9}&TdpsD}_Es0aW-SfV_-0<97NUa8`6s1C85BQnnd;q?;)ZkfbvDP9Y_m-xo zS8t7vheQ!ttwI#h6NcflY<6{GXlPYL9s`5zfJDiPpb1Q^#U*zvLb+U~QmOEIcD7(e zCR!muP2~D*j4?P>RHS)S@jQ?7^K&+~w|UsxTX?g%`4U(G2&7hP0-ynKBA5i;;roPP zh;xo~I?d<P)2pUI6M$z7);Tm8$rHf=U8xiRagx_s6U1@cHiB(2P!XIeok7snB#vX# zG-w4t!{8bq&fy!=fCQdLtrhUEfvDmeLq{rwpN!-sOV$|#_`csTxWBVQ5Jgb~-~nPS zzA=0~IUyVztOGm`oU3;<hA4{6#Ks1<j*r_70LpR9$5M$qQ&a40Z2?ePSm4jzUSrTF zhlfjDmC93v-Qf4p5jXq#>ITMe5yw1QUgq}XBweGUe97mD_xH(-j5OD8c(@<vf49C~ z?>d^xk<MgZd|F#uQB@RB)%s4T@_v4vU)Kh}kAs8L&dbZQ0CoYofy_WQyQnQ;om1<a z)|}JWT8*sLD-pf2RtK`#MIZxo2fz&=b9Q`u(K9yoivI{#tzIMm`3sX3Tor+)Ac+6~ N002ovPDHLkV1ln58=C+C diff --git a/interface/web/themes/default-304/icons/x16/bookmark_document_pencil.png b/interface/web/themes/default-304/icons/x16/bookmark_document_pencil.png deleted file mode 100644 index 63c0709f31eded01676aceed1ee74e1aca5591a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007>Nkl<ZILl>{ zT}YEr9LCRkYjm@VF2tK6#UO<c5lm%%Fz47t;!Q+@9Bgx%^Mh%riBr5#0&nsnK^IC$ zS}|%(MS`>}36fCrt8z4LNrFhaIo;RO`M>TRiw^vF_MZKpA7}3l>lhnjgl&9W#48A$ zoTmwNO5YLpMn_r8$OyYTJS@Tz1R9QUIVEKQ-Q7S(2Po;8_G4W9Pe2<nO#Vm&-tuyw zy&X}jRZNdo3(vs;-YzeLW;m(;2<Rb($rlV_ix;A;tq3<Xi1|&W!WXX>6Z7++MRT0g zxWH<+OH}zoA^gy25NU2ksJ2$juVrOe-Pyromn%-TPS?O;1gjqykT4%{fm^LcxUmr@ zX0w<i_`bU<O6Vl?b7+=2Ls~6kHU0e(=HqZ!JaWil!I8lr<~kQ_@9)PYB%s;3v^4fn z5EwJ`^+{Bp@Rvx1V0ATom6c+yDwWthJd8`W`R5*k;l5iC93KQh&TjSeNYn(mV5PJa zCq^R<bUHDY6bkJ5d~wO*<|gX2S|@Bayby$0cB89H;&vz+#Ud|+O(q=c^<sW5DZ#$q zFG}3*DLipF5C{aINKWp1#F&Crw6#gpMz~<1xEQFaisz@IBK+Y6k7pXQP9*}rT5zSH zz$KH(G6xx7nx-ZR3khcO^D&c`hxOiGyx~dw+<J|7&N8w5%r3{xI?aQO!a`=v&1EdR zqJk+b7NU+W%FCP_Y)?%g$o~<~<RqNeE@AGK>a;v4$Hw|JXqGzE6<4NO&93V8^(2V$ zQ_xAm{DtoQUc-CWY5Dn(9BV5Rpvy+H)R9&a=iCLQ(u#ydlKBZ6;M;)1UWCn!Y0y16 z=3<(qPOQshoXcm@(~W1dvhF0p_i<g7w3JbB{$b)i%~FTDe*xY$PnVCZQ@Q{E002ov JPDHLkV1kGvR__1+ diff --git a/interface/web/themes/default-304/icons/x16/bookmark_document_plus.png b/interface/web/themes/default-304/icons/x16/bookmark_document_plus.png deleted file mode 100644 index 479c7445ffb7827108fccb649d86cb11fb0e4d32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00078Nkl<ZILm#K z&r4KM6vsdJ&6`ST1huAga1*#NL+GVJ5E16Wg|^6r*set&twf4~h(Y=Tq(z`a%OW>z z0+&`G6rnbmMn#yCg@z6Iqx8Kw_nsC$ov}p+4)<R8p3nIn?lIYs5de%a09@_v9srJ0 zj1Lb+MzT8(5y6U}ssQ*U!cL$jpUHHb=<N+C6d;*oW@u;%_#SJ<fG;IAc-C61wTMXV zjjpcYs+N|3Fhqa<hA^Ze2!bo^?Zd4N4Z|XG0jS>#h%H$WG={0QxcH1jSYKafV`GE6 zJv~EKq_q^{7esdM#u$TBMMa9KisyOc^LZYPj?!3NJ#_EMlYU?jz?VXy2!LIH6T!sr zeTf7?5a666l}a(OxVTkxPz2x^gLMv#NAg5)Kv^;gKosjrYy2pR_KaXl9H<CRmHocI zr%4n=rs$v)0J{!$0OA}8V|F3F=TRsH{OdqeNf^VvWRgTYk{2)8?T=Ze*Jj8c{&V@z zX3c$(2rmpn;xry0){-!W*@cB7!1M5o;oYzIG`F1MXW~a)?%+7nsaJa)0IWw5FK1>r z+S$pAXU_oWdvlYw`DqNws$GT9;e0!RGU+eP%~6@j02t30)}n}$0|OjsYon~GiCi{I zZYf9QxkCV~$O>mJo~{Gxo<AMi?%LGRK`Nc@8-Mt4P*qVtRkwFSm1|@DOfBcOzwkVK ze*9@M^0$^TOahbx>0|Bf*R>?9b84N_f^!;KtD&_TJUFYhUmMlGQ}qo<1LZz&07x&- u&#zT9H{aqvv01-x$-VxQ;isF80rD5;u5lA}z!R+i0000<MNUMnLSTZaDlKgQ diff --git a/interface/web/themes/default-304/icons/x16/bookmark_folder.png b/interface/web/themes/default-304/icons/x16/bookmark_folder.png deleted file mode 100644 index bd24879d63194be0b3aca530ffb8ba125ad9bdd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 601 zcmV-f0;c_mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006YNkl<ZILnQY zJ!q6c5Qd-K@6MQjDDj6FF+>oNkV*o95VY4yOGPk2L~I0$G*Ltpt<#90rIJcg1ueAD z&L#no6d`(`paHS)K<{Vgowd00?hGj$cp2W^nP+DwtS>|WLI8k)>-i2aMmN@eFNE7{ ziJV)x)N^(L7||il9lm;ZoRpwk=F6j7AAtIn{?EWOfKu)fM~_`zy7&Fn186kJwHl$n zpPeTr#}8kcyWeRo3f7;Tz4_Oc+&fnhOGr+ZaEU0je6!Ih3gt5H#125Y3vda!$YveM zTd)owMwEL2JriUz%rn^xHzTyYn{|sqK)yYoa2cl71TrI9%exXi1mqMQfT;&yU4Xa0 zU=nIi5Q~Clt&WMpGkrPJi005%;WCo^A3&1hmLO+RGqJhxkv(G<PkQER2BHLQ6*(nL zP7wk-%4LcWFgczQxbtn}6MKh;7&-l9N@7HU-U&)>Mv_s4!27kg6d{mg$P#XbBuYi3 zTB~7B$$aY$WK<i*>vu2Nf9g1|-@F9CWw;EpR{mLU?ExUJR=@-%N?D0&N(|3VbMX8m z!?V*=Q^GBgm5@YM;!0&7rq<(e?y0j<3Dhn0xtyuTGYn3Q;u3=sqf9-X!6jTyv)RPu z{P^*kx`n=#N+1FQ^NTw0^B22f2$W0ZZ52bHTCEa8;KuUq=Py=SnqSmF00x2K>t~8< nM~67Vf5gTnm4#(J1it<OOY(fqAlVVa00000NkvXXu0mjfFLw(8 diff --git a/interface/web/themes/default-304/icons/x16/bookmark_folder_arrow.png b/interface/web/themes/default-304/icons/x16/bookmark_folder_arrow.png deleted file mode 100644 index ca8fcc7fd111164413287251e6c7e96023929981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007@Nkl<ZILnQV zT}V@57{_1FE`lz)=pu@`2<jrjj0#k+3?V5I1TT!jS*SQa@?(Cma5ikVIWaXqmbFsU z3kgxHK_z4mA?4TD(wU~yWu_^k%&(cc>A&;5dCI_x4*bsVea`d$zlV)f2#j!4{$|R@ zM=R321+BCTu9-HSt(~!mmIoR?F+W2;V_PnW7RjAB;A4kQ2ju62Of!8a!i-&$rYRuQ zXmtiuIpzF<VX?eP9^7WQA_4)81{*m!+__34F4gpMPHUPG-8zQy2|z4cj_Kda+0Y$9 zLWB7hOo#hpL#>84Gm|^A&W@sSAkGe4wEZP#7&w&MVPOMhf<*rMY!fEKPGMc8f+sDF zJ0+$7p|{MOpu8poG>jqA3hYgJZrPXGCTD#mf`r!VYQ*^YlkjF`VKq6Ko94Btdd`{a zjqrUV{yEn8b=Q?9xp)a<)?z_Iw>I5?(R0V)Nl(XeLIO9<D-#bnirY2tPp?6iGR&No z9mTTMa>jZLf`nn^OD#Tz_+l+31xvB9+%&tL_c%X4KfsdH1j=?53OhRW0%PyQ*Cxfw z<0jaHk78A!z(Pz6H_eM9m2i($W5ID3qc2q$F<*Tv<};|rItm1dQn$khThI}B6BDr# z7spNW{D)G|Zn!NQKL*OM;_-m;)MKx23KA8IL*?iRJPafy{o~obBG7K|nUdSJumH+a zkF{$A3FG`g30|Ez$mvsF_;dbd)q!^XPgA)aE*B_IJyt9iSeu%2f3DAf$G-b9SS5$6 zC!d>UI@8Y9n#>*2y#dNok3ag$GWJ9ztDCjzG1GZtTWHt)D4yHz#S$n_J$iPE?5V#d zYnihZ;(M=lTWHsAisGiMB2*T!*=4&$d^5sj)m8Dbw*P^$)S>P#l=)6WyYfn300000 LNkvXXu0mjf`CwJ^ diff --git a/interface/web/themes/default-304/icons/x16/bookmark_folder_exclamation.png b/interface/web/themes/default-304/icons/x16/bookmark_folder_exclamation.png deleted file mode 100644 index 4c87cd3ea355dbcf5da0ef85f6d8ab5319de501c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcmV<O0uB9%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008HNkl<ZILnQY zTSydP6vw}r^-1U@uor#Es8ErjtWbi;EG#5@$%jZOHLs<qndN2MHoTOnWiF+pUCgpr ztz=Ch1&cCqO>JE-yRM?7X}hGk-te;eZ_eb1fe(G~o8Nclod01M)|<~W!gTL1KR8Y) zpk9NL-hb6_X9d(`s-+xTv*5Hq@^>drkMwjvp#YicUKKC@R%zEdZGJFC7V0yr3yi{J zg;dN`!Q$@;$mLj0OcYJ^_&_Q~4B@cNs0E)xM+yI|r+{Y!>$$^A$YHI(sNX&;r=-9Z zA1`|J_+FSAeK2LtML<9RtRtDwzTjIwt2sLX#yazO3B}U*D-0j=z*15Y7Gq*W_l9go zzxD*I!)aiQVbl<bHjVSphnJjBL%Fa(m%~daZI<U4^xX|xLIUQaq6EjI<(dPA3}NWe z`{G^oW$1MWp=<J*tuNyW-<NV6Ys=;((icXbqVModEXKxSHY^O5D<{!h=!8MzA@p~7 zh+jbN@7jZp6&spr9&uhwo5f3H%?*{n;O&lu=x9s_2ctF96@3lcU^cnI-0Omwv1HMN zvB}9?Rm2suFB!Z<_UvF0^atE9A0Cd$pdd6RyFz`{9-4>F&=hYGsZ=>aUEnZTc8d*^ z-exNH=>{*6J7ZFzeZLEA5fPXR2@y@TwJR6YGuB?h@6J5TEiQuQt1^V2*l?Yf$e-%D z3$5o?ATshFkLzxNdfnA=qAin?pn1x%Iyo<)vUcX6e%EFZUEI;t`>(ciP_N_d1<@vp z1vF1NmL15m+7yw(30)RmyE~%0AP^R<LNwKMr(SzylxXkfWzan3#FKGK#@-~!9*?(W z;Ad0Xx=^pVJXG|KnrYBH<>=T8Y<hBDRx#0@iLn;tx=^pKC_psLh98mnuVmRq0r!i3 kvik+0vfBTFW+_A2KmSNX-WGx{bN~PV07*qoM6N<$f_k}YL;wH) diff --git a/interface/web/themes/default-304/icons/x16/bookmark_folder_minus.png b/interface/web/themes/default-304/icons/x16/bookmark_folder_minus.png deleted file mode 100644 index 2ec8edb67d925b4aeed37387a4b0b8ac587d0c16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00074Nkl<ZILnQY zL5R(J6vscm|NnmtQ=)l@E7MgkNu*v%O%ryCouwB=LKeirMlZd*SkDH<#za=K62&aA zvX~i9C|s_nG4&E|xOeXFe9zC~UhXx$g;U>tozw4p&i9<~d?W)P1OVtilKuwP(2b{G zN5V;F#pGc}K+#kC6ByKTcC0vfYArEBsl?m!e?118v-;lvR{)CCsiZ_@)xPWh{CDRJ z%*>D)4Z^&6%>85I+UbW2PJfuF^4;p^T6IcrG{Jb`{)3uf5y?psE|Ez{&YSTUY+paz zoxg6V43sa8j#4Of0WKjI$?S*ZqHleLOaI>Q7zliP{c5W5k#_}*7wU14%rH+RGu({O z$+w=_-ThQ5@nm$@#j$hgWc_8L7m&LQQ`>>e$gG{aV%L5akdtpY5O{VQ3R4fjx&ZI2 zU=lKG_vSgRMiUdcC;BQ|!c1lk9px?~%6|exIc^bBBDNya)t4+>vul$l4kjRzprbs+ zh{?%AU{0w-9s(xEV+42JRbTO2c`1Y2E)GcyO3>?|a5JKeJOmy+y+<AbQHCtyW=NvQ zGwO{7<`m|$Zy=*SV~jnx#p2DY8M}K60GHu1%-Zj#X8R5R*<=k&V4_Hh)MKQ)cbH{6 zH&Wg^Og%>2B1sWRBt`bu7GY`+&yHVqCTfAEg+7-vbYTwz8!EWOz=jG#7xv&1E~nLM z;d0);|4P$B-$X5t0sSYgYRRWB%+ErgRFwW#SqRkYb+QmRc4NV{o0D8WaaH{R7y!yg qw&#a_U&=~;A*$2VMsDaVF!c>1v5<Hkc*zz30000<MNUMnLSTXkA1_4! diff --git a/interface/web/themes/default-304/icons/x16/bookmark_folder_pencil.png b/interface/web/themes/default-304/icons/x16/bookmark_folder_pencil.png deleted file mode 100644 index d45d29cada2234d2bcf578a3a527b6696cb21c39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007>Nkl<ZILnQY zUr1A77{<SIb`f?X3@WfLBBDga(m;$L5=s-vyDlO{RQ#V#O$KUXE~bV|%QRC-w2P2P zr=!r&Btq1*P^RXZGqb<O(xpqCy6Mw-KRsdKMIZdmbKdhlzwhF($x4wCw!2$=69k>a zlO5>f9bvBUVh#TOr>6y>tzQt%u^ks&mB{~mNEm}&4`{WZq?x|U^yv2)>MtEJp{NKZ zL3qWilDthJmQAonhXNW6HuLg$^4V$RI6ju(X=^cDE*HXmd@33l3ul(wqKpQMEtri8 z!Dc}LJUKZ$`8?N*`AIDX+JoWxo{zYQ13gNmGVlSD&Ul3=qup>k#@EPG*iftC&dlUV z^G}Ng{p~?qZmSPKhfZwDiS}a8BLv3G22n=mu|L90L@+$LxmZg}<7tUKhJNEoE*oq8 zF#Wa=)RjFpTqers*JmGM>ih|~v$C*~l!SRzEPAxwTk?Hh*!pro9qP&+8!8oLN>{%$ z;C)yC*3;9m6d#Yij1XYSiq@Lru=c9p`c#jl={ivNb&0rVpjf(~UwUj)wlY(Pv9o?y zOHPI}HWtz^f+5lyqg~lp{!jy_?H;DO)R;8I^+|mdd93%QC{w;{tH#I~UwBedu$qv- zljg;D<)EFl^E!TwS76oc2KC8fFN;K(%HNhd7z#ZKq^ACp4)ZP0ZsJ)sPrK6z>XXO1 zHKI)Q;<y1Xf(~=c*%$x5&kgHAyV3S*JZ*M6s81d%ixF980jGAsTnb~rK}=M|z&@nq zNi)6EZlpDhXV~B-s81e0#a9%pO|58j3>V|az>Qs@-C%Pf&%ll)P@g<HdnNWaWhhz} zMoKXMMz<@p>#n=Zle)<l6w%u*Q%VG=q7*e%iHgqufx6_7`v<OVKDXqw;k^I=002ov JPDHLkV1k$FTU`JE diff --git a/interface/web/themes/default-304/icons/x16/bookmark_folder_plus.png b/interface/web/themes/default-304/icons/x16/bookmark_folder_plus.png deleted file mode 100644 index 45dc2e8921f90a9841b84dc486d4d02cb3036691..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007wNkl<ZILnQY zPl%Oe6vlt=_kDN9nf~ca<#@GW0*w@HF%B4mR3x})a?>IrX`zKqZ3bMp5s63)+6_?@ zMw<dDNNF)Ni&SbCbVrGpg^b-Oa1?c5E{${V_nzmxE$+p+MvD$S91fiGJI^`c>U0J` z2msJOmEHq(uom-or^CAd+cpk<2J8lEq;!-Or|4=t2n=g8uRJmN{!U_qN`=2ZJ^35Z z1lZWp#DSOJ+<b24i-9F?4;861of0EYy><T7tsg#sR*ST{O6coj-RPd3r=Hn#y0-KO zTYzOP)6-HfA^U|yt#H5RAj2Y(lO$XslaQR+;x!(AVJiT)?KaydUaW41>ZNlRDU{X# zE+H4m?4IOe^noqZX0HNJ?%TkvZ?0UwNmwLME7av6nPHwtX1E!lQ-8esRREs-?n9Qe zL}+^GDYCJ$2y_E-mtkr<kQte^YgYtdv@*opmwz(&cX@MHUt;CKg2L1Vur+{pPB00X z0r1iO*N_tPU%x%;iQZI}t;`%c%3Vg3-v@|t+#;kzEF(7-uCac{8_#)SG69(c9px!T zOimsGJ(UW12$&p?5!_i^_?^M(5W_EhJ}xmVLAQg#&4@Dc5cqZeC-M-8GGq}qLlQ-v z(O6x@oWh)c{Xj;eWnB1qmdBodnhQV90^l-ShFLo=H=CHq0kX?=FoB68Dbk3M>fya? zdVLSo!+UAOh+8BnB8jBPk@};U+RL-!UpaI2K+{66%Naj&h=H*YTw-8sgz+<na0!=F zmL)Fd&Yin7E%eUS0~yeN;;bHDUg4oE1S&=4Kb3_*qtPG>fnzg|eEa=n&Yw7|{s0UB s)v1a6ovlMW$^VFj8`P&~^a*hNA3&p|3c<a%9{>OV07*qoM6N<$f@)z!ng9R* diff --git a/interface/web/themes/default-304/icons/x16/books.png b/interface/web/themes/default-304/icons/x16/books.png deleted file mode 100644 index d7d6eac82d857fb8d0291973006c0efd02281f08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV<O0S*3%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005GNkl<ZILn2T zJ!=#}7=WMI%;auQCD9aifgIj#afQahXpv3?@efFTfZ8d7g_Zw6Y=pz=v{I1t0SgPk zSP2%1$06b+7N&6p<+3+l7I!=B?Iz@fDQ1}Wd7qhgMo1|+BJKfAd-M4U$HxxvWG36K zJs|q@450aXYwJ;cex61gbEeS<<8&Mo*XyiqY}^Hy0r+z*?3MfQ@oDo-w+ol=0EfWu zYWc(KH-Hzis0^&I)P`#hukOUlh+i4rIRMTtEwH|N0RW{GZ$At~(V(QfUQxdFxXbRY z1|Ufiuyz8l)&iWUyq_(z)^0Nx3^2xkvr*9?>U28DOBc~vSCW-deE$BPG);-3XaX>1 z1~6x>#bz1(e!l`pk_2Z=fNQP6mH<;KLI_%|R!Gj3oiUTjFg4IK0GR`#C?ZYM0LYb{ z(X$4nBS@_^6gLz?YaI-{_qoB`kp@Ar5Yt;nDFuKK0zdkv7;XlDI?3SYw;z9AZf}1L zi{pbKfA^XJkQ)TW{CS7D`@;UK+ocALr1yRiIAyIx3PG(_tF%!FfzQSc7?od{1Qvi{ ouh(1To!dM1^NtUOz}Yh3Kky>;^V=TrQ~&?~07*qoM6N<$f}VxnR{#J2 diff --git a/interface/web/themes/default-304/icons/x16/books__arrow.png b/interface/web/themes/default-304/icons/x16/books__arrow.png deleted file mode 100644 index 219ae0bf37a37d4a27737c6edf893a51d0968192..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006bNkl<ZILn2T z%}Z2K7>A#8=id2n)G{eS{K#R(Tgh0q$O>jBfrzwfBN4Qzc0~};sy`qQ34$St7PT;l zprsHI(U%JeTsZ1PK}Kd|O=vmSbIv_2^j>D1q!-@BS^S>&d0#lfwr&1V7l4!=yw%0_ zH3M9)O8fnnuqMX<QsWa7SK`qqb%_KGb#-CaClVy$ar#C^&I42d%&rXj$VGTFntGVe z!{Kv48TeT{zC3UOxNTP|16?$C!?DXpXA&KVB@g5K0JJpkAlH`$z;PTNy)24KgDuLr z8s(vDc?tyyfa|)T^#(v|4e(#(&t3=p-Q5(6MU+zDYpc@0>gnmhK6DT%Wlh*|9Nv9= zPN`JFvaAh&QdNM6)*9`3%+1Z!09@C_S1N={DM4=mY*G<IkjZ4iaG>lfwJ{ks4P+I- z4gi*AQ7V-}K%nd^$=65|USkWwFNZ5w0YFMwrMUI&E5+)%;nYwki{%J=(&@GqcVDeR zsJK~Qbdpa?ibglf`$B;iZ*5Kvr}?t5*cokTJRJZWDJ4`MDL77hJA=nNm|uZa1rm6@ z48v!0^^fm7yBY!l17l2;L1}uHdsDM4|M<1~N2w3lf&SjsY>NA%Po|Bxa?>)#>@>zC zwblqBh{a+!juUpawVqtMiSLuIrXs#EzxSqiIyyeJw&vY1hPwjj1oA*HZD$s?{k-en q=IzXZsMx(fErb}0C6f>05yf9h`VBSPe^$2u0000<MNUMnLSTZRIS=mu diff --git a/interface/web/themes/default-304/icons/x16/books__exclamation.png b/interface/web/themes/default-304/icons/x16/books__exclamation.png deleted file mode 100644 index f78c16ee2c778feadba797518665180ada31c10c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006>Nkl<ZILn2R z%S%*Y6u^J?^WK@clRDO**(jr<GY&Xp*-N9WMG=&3TjW9_qTCgMgsc95Ald{&EnD<3 zXj6oX%pj169<*?>y9hLb%E#m*=XSquZVQ|1jAL}*z}cMN`JHn#UDw$l27nfI{AP@Q z#{_V-q&wer3GwO%K+C<6k->n^N6<8>3I@HbG)>GvfX=?Y3jiemcS{1b?;?y}Z@HgN z!>;o{4wx?=pF4UCxTO~>12MvFu>W%Rgc(KqX5;4b0BjA1=;@3DU>F7uUs_tR!8+xh zGUeW(G?|P8Kr)#GrB(q-DS-bff3c%<wY6bc7E(&cD^YA9QmGXB&K)?8Q`T%42Jb$P zk<DfiLaYL$ECEy~rBJrb<m6--Ael^Zs9}`DmACmMck{#P2el6Hmx`uoBoYa)*|IG1 za+y>(!@&dRSQ)#^_utDPof3dv00<$-X0skZ2*GCgoc4GtwV?p9hDN?jje9GI0>E(` zZ~sE=I1WO~Q_nLxk||D~c|bhcOhk;LyS9#W)&Nq<)#Ct#T1rX8|DO69ol0Y#;o)Jh zr>LuP*b~Xrx|4T2fU%K*bR3#|FKCE__&WcZCyxi2u|HB>y(mw#zX=+-=~fR=nCQB$ zH@$`r)K|}8`Yn87hTfCc2<nS$tNo>SZ~wV)Wk8GTuIttSo0L-Mnug!+_YN4VcuFF= zf+^;}$g?~<#M0~|0HV#I#=Q$mr!=4mNCO=-_D>i8|Ll?RSaaQM5WuLAxp39OluyTA c`w(yc0NWA+@c7tPn*aa+07*qoM6N<$g1e6{pa1{> diff --git a/interface/web/themes/default-304/icons/x16/books__minus.png b/interface/web/themes/default-304/icons/x16/books__minus.png deleted file mode 100644 index 6da011f424f8429e30086d7316c949d6c92fc30b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005rNkl<ZILn2T zv1=4T7)Rf1c5}C9G>Iuh#Dg5(EqH~-!bBlpA%cj7V0B=t7D7ZwArkx#L<`}RD~^Do zVrvnwun4HA2o@KP1C=O=5%jjOxOHZBEbeyMy*2uSX@>dUy!mEE*tX4Iav3P;(|4!Y zJ}uy8sydv#iuL+7K<UxS%3^+Wl!EKBvrve~nCs%^^UTz0mjF@#v%8Ewx&SY4l^)mY zaO5J;1G?GmdnZo;_wA%IFwIm2j$NB;xkbcQfC)nY_Dqd4KXU*8$8mVN+7U^EA?5ju z@|o*(*488dp67wqeSp>);J?aWgCet)3Y|^|r4)qPN*Y+zY8CtNA*7U<V#jfK|LFz3 z?_*h3AD~nUFru|a2LbJNI|J}Mk5H)?E~NxL1Q<{eLQpQ3<Kjp;RI0x-3=CunU`GJU zvhaOB21LrCl4*mXBiK?(NG?c3N*Nm%V<Ll*^P8(#gIF<<Vq=Mg4{zA@ssMlxf`i|- z=Jp0Z??nLTUj}?`apmlZ;ogolmY0vmfXE<LjGnhKZ0xJB_~hBI$=;8TNrDY;ZDY&? zutRH&Ed;q-E_03kg&Q>d2k&UzIah=3{=vK$G;thQZ#J6~JP*HY`+0wVUk4^1LbnD) ZkUy(3@eT_)bmjm6002ovPDHLkV1o1-@5}%I diff --git a/interface/web/themes/default-304/icons/x16/books__pencil.png b/interface/web/themes/default-304/icons/x16/books__pencil.png deleted file mode 100644 index f1a57ed572464c740de1f1965a2abbe0b1d51733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006xNkl<ZILnQY zT}YEr9LCRy(N!0DQD7eyvm0GrB~kW)jWj_dNLDGdMz6XB(_U~32aRT}tZC9xXBj3K zmDI9r3=DEMG5avPC}<d6G^#}mg2Z5u7f<ILI4_%2c;E-``SU){|HmOZosRqk8^cFy zZanx8?F^C=T(Qd`zkR`24AH46Ow7*Wbs~YeWD==#8uJSa_`SFYgUQsy$SvTFw5*j- zN`oeo38s!G|AhS;%r?kXE^Ga2F#EApjl$3p5g6MiaW;|?c*oM9)q#f$vTWrFM-L8P z9v8SnUqGvRMj3?bE=#$nIgB%pKI4cl23PPCXyw%qLn|2dcsxQ)YG%XdTbk~}KJ*TC zT~Fa0`3P$4iZtpEXa!-n+bz_jW;T4TKXDh<fj6SyqURn)@(RB{r?gxaL|rbIP~(bR zRU(x)n}?wUUZKt#g2Q$WV8&reCuPB7r_(9a_y(>jk;(=2gK+lsp;qliCX+#F;ojsB zA(gUVTvb)5w-X}3RVDn+=SG_Y{k=Pp`R2m@V{KSj((vM7{%-9J;&!`T+sIWV{O%sS zg$v#i5$-s@4b9yHAjPNRWYtEkVA^W6Y8%b|XBw*CkDJ%`h_LhIn)#yb#yPUV{F1D# z8YYD3Wx<T1C}QK$&I#0Ci3=J#?;y~-LxfMa<o{G^$srb6mqi|ftY*BoSS)DhpTY5K z(;96a1^D#=m%ODYF0Xkj153{)#uy_d)UqK2)%(`}C@@qcH034d55*hfl?Vn*ZU6uP M07*qoM6N<$g0wIn<NyEw diff --git a/interface/web/themes/default-304/icons/x16/books__plus.png b/interface/web/themes/default-304/icons/x16/books__plus.png deleted file mode 100644 index 82e1063df938547fea473410a5ffd576e9828a25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006CNkl<ZILn2T z&r4KM7>1v7yw^K-RMcFA2!=y5m$353BDK&}1Tm{xncJY+6-A3yE!#x|k+pJF3H}2{ zWKdv1W<+SyM1e)94LU{(ujib5TIgKnI!P~li?ev2@8N?Z9LM1wxddd)>3d!5odw`# zq8$xfLB6>Ika;paeLYoQPullsN~hy#^nLtPioUV2ivS6L-Iv82y9~3pGn3=v(0>8g z1lDWUZ=O5_Janp+fiBu|Fm!cr!S6(@gxDwoV1HXP!+i$<a9x+FS4B~6uuFNkMmc|D zoW(^2KoA6A%r?Ln1MpwvA7Lj0xg5n}5v?^uMphfh?(S}!-X4@vHD%Xzng8~Ja=DC@ zavPv^0#Ij+!Gs}&LZJo_1ObuOF<dDHW*1<GiV%WqHXD~K%8}OFn_<U5B>+wZAf=>S zF2{h1a-<b6(|0K~eW6_*0)0RN$O=Fyl~COMj<lv^i=54mu%bVKR(15ht~H1itMW9w z#p=*JO*+kn*#Kp+qmKq@{r#W<aFtR}eWa@V+A45jGzUOQmpGE|06H3HCZ8XV0Tlyl zZNk7>OKaH0%>CIvG^~F;e6IKC$H(tK03gI$X{~Ls);1Vp5JKR29<J-g<9Qw<scSHG zW{yp3*UTDhS%swsIPU<>z|zFTL<`TN?|XjUt<@#oh08yeKWiK@ha;ff<1fwI3sfQ- RBz*t?002ovPDHLkV1grH{xbjo diff --git a/interface/web/themes/default-304/icons/x16/books_brown.png b/interface/web/themes/default-304/icons/x16/books_brown.png deleted file mode 100644 index 4fb21ae301fa956332994c0cd6f44348dc8b5d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmV<Y0R#StP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005QNkl<ZILn2T zziSg=9EYFxa@YLOlBUpqASE6WR0Qo*96A&y7t^J?=;G+Ae?xEyP8k(k72>FL3<wS} zNvYsqkqCDxO`E*m*Vo~^OD>n-2acEb-uLs|17A+LuFH}<0;<hj*<*FOz{6Dg@ioKq zPdR|<%TDJ>VQr04vB-L<lsuP<MT&(2HxCbA0H}F`=B_aOsc3%Wb)(U^e^5DD`T5bH z+XZg9^UA<pt!#O=!*=E3h{<S*wHAQ#<`&!6Zv)_Y9-Yr!0AfH&d1s08(+B%Zdp!Vr z-$zVTbd50p)mN<+2bB}Xz>g)$SA#EHxpSA{aEOSYg_MC)uh+S;wT{+0Q}#TM_iv90 z!w|=D5RsX|zdJc&43o)(e!rgq_`Z*bP2gJVj6qIB5D}D8)M~Y)JX5xaL@g0vs?z{B z1~`sG7={U8rkpmIE*Q94>(qt$M9PtYwb7aZ#0IhAd_)9e96ZkhKq<wqGk6!w0N(!$ zPQU*iAGJR8;&*{%@NGgh0mKHeVw`yY2aexdaBpEi=dQJO1Gr?2K`BK(pU;d@DaF|s y4V(kP{Fw`sfv@d$dt+4Kbk)xjSO!345%3oUto-CT&mr*u0000<MNUMnLSTZkC+gV% diff --git a/interface/web/themes/default-304/icons/x16/books_stack.png b/interface/web/themes/default-304/icons/x16/books_stack.png deleted file mode 100644 index fb525bd0d478bb2b55d022d8c564eb691014fb26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004nNkl<ZILnoj zJxjwt9EYEa*OC-pDuRnIU<w`V;LG55aMz`?sGB%A`yCX)!J%#nb#Uz9CL%biSc#~$ z4lYF;8qKBWkhD!3EBc2FxgU9+-(3<RrR0ZM2W)?FZ;IY?18mD4p?y>;ZJEg=Da&FY zm1<r6mW5@S%;ocI0HUiwU|!hBkB_FuNXH8drjkrg3{$*#I02UAf6Xg9r(~yRD4yR7 z0NHKc+`Zs8^W~k(r0s&Qj40sG=F7VhN-0nw!1sLs`*?pJ=2rn1sKpwz%|4#z#Tpp7 zTn;%q6NFupNF-Wj-2^DF10a=BDA%Q2F2?}bY_@G~{0!&|_l02?WHOo7!;a&0n6**? z!1MZ|fJC^65Q18*eFj2^4zp-9g5a|*c`UZK&;$UnbBLO&&eQwB)zvLuZ!dg2+pz|{ z04=lnyry!v97gpRKx^FrXx>N64qyTg08(q67D8A`DI{Q;X6zM4%&Xx?Qg7xG7}8o- o3x&c6XS&k!=MBtt;5EAZ4MQ*Zp4B+^K>z>%07*qoM6N<$g3zJHdH?_b diff --git a/interface/web/themes/default-304/icons/x16/box.png b/interface/web/themes/default-304/icons/x16/box.png deleted file mode 100644 index b1adc112204c49811fa193701028d80806a91f87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004&Nkl<ZILoEe zPbh<N9LMqBv*)=xI4B1f<>*3gZjzKjl7{?AtI6blDETvTKuU%&HtmmLYN46@O;$(< z`LC3W%MQ}cU(e@P&w9AnvU=_L^*o>Vb6AZL5&I9eS1p0GUoGinLke@AW?4=B3|lm4 z*>05t$!9&O&hU|mz5-+1^?W@&Ew*tuEBCR%77bdqRUxtMN-5`Yy6_N#&x29!)U4wn z;H=!o23s^}*{1v@GlX{fUc$!{q&OHYqm#)R4rlc<Y|)@)zH$*v4+|}P>@((*y&;qK zN3?V?Tg%~W(PxmSBb%SEYz9JumaUbFFcsPxrVsxBz59$5T<amTF71c6)ou!|_tN`D zKZSOO2n|~1)rv6l>g}R?S98Sg7pR|Miv}(8l!#z`S?Q!(M`Hvc^;Hd9G-#Q-SOoj? zQhVfA{|mNg&@xAn23(KsR=Tv-MFm?lXql}*1Iu^LCOWt1qk=6Ov@9iFVB@)hA8);} zH$(+nG-&Zj(xnS?gIPi#7HH7o1#z+jSz?S5c>CYK^EcFkLIS`gpSu76002ovPDHLk FV1hos)zJU| diff --git a/interface/web/themes/default-304/icons/x16/box__arrow.png b/interface/web/themes/default-304/icons/x16/box__arrow.png deleted file mode 100644 index fda5bd79f5bae6d4bdb5d671ce14a1ec5ff77013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006VNkl<ZILoEb zUr1A79LDi?+o_w1f-ZtC>Ou;N>Y}2qB7%wtVq3(JxseSUY^Afbkws{k6s%fCrpvi$ z)45VXQr4pUlVz9;T^ZG~!6?*%Mnro3be=<7EBgl>`0Rao-{1Fem;fODhv>6NB=uV) zo6MEw*`sdDmVL)rHf%-j0f}-(D%Q2k4AtPv;1$L5rXsw#=~Qr^KIaT)*{~J&_DkY^ zzO-xn`rbzz_&nfNL_Jm|B<|DaoZ&1Rw&Je*BP&exoJr0+xrVd>w+X|w1q$x7?>Nhb ztq7YnRP(yER2dFe>JTX2g8qv}#2V}h?!C56XfNBT?8h1l!G^8q%F|F?s_z2cN2)Lt zuEb<l1w7UbKbW{(j>+!Rn7VTosa_Y@uoay~4b{KvJcW3$B;)57WZ!X?4O`Kkt08}~ z;{;wdAIV^py=LPq8@3{3&`=<8>v-m0|DBWm2+Y11f~_~ehOKDcr>5X|=op^)5C4&& zb_kvcAlEYtrz8Kdy~r*^qh3vIuUd{`)N7l?;SNFT>QSse)PTH>1TMb?ww8B)T3Zz} ziIt00;_7ZygkSI?P&|t^6vz1_U>O4pqu-Urft<33Q6WFetQ%FnbK6yezp~9-@?mvB z-83!FyEMJIDFOWmu;QTa<Dwl-2VbyIwnVn{Zx$E>PuDyExX#yCTfepc_GngV#azAD kGe=h+l~>a|UA1!l6_;Qv_a@wBi2wiq07*qoM6N<$g8Hf=r~m)} diff --git a/interface/web/themes/default-304/icons/x16/box__exclamation.png b/interface/web/themes/default-304/icons/x16/box__exclamation.png deleted file mode 100644 index 80aea4361631655592ac194eb9243ccd2d3d4b82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006~Nkl<ZILoDy zT}V@57{}kU?J@}JB8cclsED!)CAtYpLMuq7wI!OA5~G!heOMVqntiVlN~`5;vu(Dv zwIp>;DwWZOW#m3ubFRfga|(_!*<JAOJO?(`%&QLk&hzj-|KG#Q;V=N~e_(@^5<)Um zDN*vMlBoBHEa{}rC`%5xY@k9yWPNPNHYSE!G4Hx7@TsE)U!I*7pgws{8OoAFE_-!Q z!d@Se><m9DeoKKlXS2WuwL%aH>XYY`p)5J%vVQ)>QyqVEDVlh9A4#0e2k`#EVFBvX zXOty}TxKs96RqP<PYGdrlN9>etr)sp3Qzk{0qQl%&9K(z3%y@g4RXk3-DP6pVSMlw zrX5!hvo~R?y8&uN&R=|gc@a}RjfnMKMtnd8a>!*}rDCFOqU!=eohMUdE(ln5!TVyZ zP$^3exy)K3CbZG#=MXd;PeD?u8f)OSZN#rwn^2>+Ga!dtW|E5ueZ+h=_0==+7z^>$ zU4q{U3nFegLbm-Nhg@dZCn7q-raJhvRsY}^Mob&<bMhu+G8uk+Ys9E^6O3|^iCm^D z5)qa$;|YvvlnWTq7Q*Mq!`$R~{=a32jU9o<z6Itgk+WkjzhKRBj<xLO9CU-v`q~A! z_1TE}D-iS-ptq+Ee(yH;hPT6Zm76Fp;y8XOTdm0D9$(wRxiYy|#`*d+%jTn@JVXLH z!VRcK0=ejGUotJt=cKe?DbEU?m6>R+bLOBsYj!5Q9y8<Xkcig{l?b|4%^L1-dbZe8 lT)@~96>HJmVD81B`5$V&LBtC3qG134002ovPDHLkV1jV>E%pEa diff --git a/interface/web/themes/default-304/icons/x16/box__minus.png b/interface/web/themes/default-304/icons/x16/box__minus.png deleted file mode 100644 index a8fae8526f8158e96620e31ca233e9a368dd5b96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005aNkl<ZILoDz zL2FY%5XXOScg+it*tCgIO5;<Tkm9MJ;2{#P7IO3EQBZGw22Xy6;-yy550FdsBKjRH zRH~#siOGYugy%cFnf36@BT<V;|1di{Gs}NwXLbYcJ?BC2{-FbK0Xzb(PXqfSy*hia zbJ+}M%^0Gaz$K(r9uxYN1!<bjF+&^S1tTrLBUrYTXY1%R=Z{oSqC$A^3GfG<WA z)YGo6v?3K@DruU|$!x5;(u&m676qe#c-l*A8>_}STo~fQkR(awWa>B0v9z|aDxS6i zPSgXe$KOw*<IhKo$7A9+rrB&#DwP08l7u(g+tg|`8jS|^dOZ^L>*NFg*!uD^mlhXk zMiE|w!C)}g?S8*cU<`q^l){jqVsnDLi8eVoAxV-m$2FNuihZS0L3~bNGKEZWB7&+G z0?_OA3OySW5i-SPO1=P2Bo9o{?RF87LeD}($&~y7WqA{=suY?31yvzaZ|$DPWjXl; z5&0w26yIKbARUeh+Zclx>878s<(_}^JiSfTT1yy)e<g^IV(#DF{M}u9xwCUK0Ioc~ z6+F9EqjOft^2xX4l#BD%AU*uS+W=Sq%8-xcKOjIFocBBb1ZB7Rr9OW4bpQYW07*qo IM6N<$g6<UWRsaA1 diff --git a/interface/web/themes/default-304/icons/x16/box__pencil.png b/interface/web/themes/default-304/icons/x16/box__pencil.png deleted file mode 100644 index 9652a2c048814b5728c19fbfeb8b6ddfa7a62aea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006bNkl<ZILoEb zT}V@59LMqJ*$#9W5g|lHFVIDhH$`_v7bOu`Hiv~3%NItACd*zIMYCBJDg()KQ`=;2 zSu<D}Q?s0ziww0W%gmxdG`m?8CA<8!-=U4Qw3`lm&i<U||2>Q&0Eqt~!leo+1Eq>7 zsW!!#uL)$zJmW4KwxYj8p;cqHT;I&oM*N60sK(nW@c!lr73b7*?r@h4ThV7w#DfFM zwkelxhzs8b9jXzhQ4NW6>N$6~%Z9D!P2Q5s@rUQ5Gs9PrGU(WcXV=PAoHNh3%Z9B8 z?blM{yBo*U<&eDqUdu)d)EDDL>me2A7SjfFTJzNTmB$P=Y(>{zEj7i%b@<YA0n;Hn zVqG>kjqCpK`R+Ny?p0yByBhKSTCfS{YJ><DYpMBD@GK_%N7J%jka_m;atX#4$><X) zH;c|aT5?BkpT<P{ku*k`zbO%?89_@CV6)+ll#fJ5k(Rt4Zk<Yh^|_3;>ESwKKq8Sq z#o7fEZXxnSyIw>7sgC1#={`KC5w{NaT`Q1?Sy5%oNA=cu-JUg42+uAJ1>X89@w~+} ztKrrH^g5TTvG?K<JZ{<zHf+V}g;HGEE_?V7-gqs48TIJV*Su1VeKkul<kW+^Y}oQz zW?V0?*KCoIY;`;2nBOkHGH$4p-!AFo>(m(=wtT_-q@1M1+3aPq9zQ4Hu*yhTq0nWW q=lpK}dEwwr88~T>o5~AkU-$+5=^pD6ztp?{0000<MNUMnLSTY~gC&vx diff --git a/interface/web/themes/default-304/icons/x16/box__plus.png b/interface/web/themes/default-304/icons/x16/box__plus.png deleted file mode 100644 index f8c4f9a0099d2538bfdc2b1a40cc40a88f14d2f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmV-B0>u4^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00064Nkl<ZILoEd zT}V@59LMqhc1}SlWCaOcbThPa(nW9Jg+ve$L13B@T2vy7MGLKr45Fn;7Z!rF^3>Lh zxoOQnGL})PNJ7Qvo!%^xB4^Z!D6fB=-$NUx(h558+4Jl?|L@^2CIIArNPneH`aq@b zHZ`RfYwb}h>ltU+u$8`TIyvro7ly}g`S5k9MR|N~7hay<r*NOT&l%3LVJp|R=yH9l zzIym{$xRM?8EjVKhD(LSed<1EILn5uTs1#Tp5%@Ck@4Fnkuuo433pCaDcoDnILn5u z#5QZ>d(p914aXXa5vnf2!0~e25A0C5_q&&&t8SIrKWg)U4O{7{(5N-pe+*;2jYz~A zFxumV;adEYcb5)f^zvaOt{g$KuL*3}N_V+NXWn)n#Pi6Wv|k@!J>x7Jw$imxqu|KJ z19;kAlg7xpT5*;QTj|`OQRvl${pnwQGG&oM<af+NMRYmXu$A`pc8Uyl*5YAs=O5*V z@=*1u76sw?U{hK*U8HTDoubdeyK&F&o=|CEDHa4AO4$b&oWWdVw`6@5|13lDX4~Y% z8e1>l;7O=@Le5qPRwPP(BfhM-nAcp_65H9MD{VuQSyVIa{Ty%RH!65j1g<mdGe64q zj4&TC!<22x`73Y6gPhk+aQ)G+{l}}&{M&k_8seT3S1Z4p*LQEb6d}4U|GWSI002ov JPDHLkV1i^h7Z3md diff --git a/interface/web/themes/default-304/icons/x16/box_label.png b/interface/web/themes/default-304/icons/x16/box_label.png deleted file mode 100644 index c6da8f8b3bb2bfe605dcfc0e352dc0a99170ff3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005tNkl<ZI8UY1 zT}V@L9LDkgcFw&QUIbovBY0OgnRi|#B0=;*NSNjeI+<ixR%8(QN{ERlzRi4PzUB(a zT)s{b2bIfNNoG?N-!B{(GVnrpI?o@@*w~H3!Dsw-&hLBJIb#BVI1e$Ct&%#Mt(rB} zI?HwAP@uqb+-1X7II>iVSuDBK>-*A(V`sgz-2D)1gU=++`f=`XmknDnnW2iQOf}il zdV8J=|K@5Xm&GJQ;;bL%4tLqG7312QrocO0w(0xY1l?S18oo8>NSp)DahDBSVNX}6 z@o)bVxoj`L32R{jW@}Qh)SfSKZZpTjR-7c~UtI-Y!&Z#kQ>eu|^9BcFmDsnJV{fDc z7SrV*yB}X+?^7xEKUcu(s0JIhVmMWyx7))nvD#PUr-xS;fCT3$u1ufc;^;AAKOAAh zRtz?5h3&3Foty7pV5R4gpMHTIpD)C3Ya!UM6$2>>S=Zk^_dj*reBFI`4i7OnF#(6$ zjY*eFe*WH?2R3X)&mAN6c?O>1XXk?;Q&lPWv9%S#S)TzmY(>{CBMtrOeGGS-IS7Bg z(XtyM7Fu$_hOLN=G>C?4hB1Bv-rHGlmknFKqD^szj@O9>XE@lf<pm-%7c@~}ViOVa b_YBv6l6*@zzM)he00000NkvXXu0mjfOtJFj diff --git a/interface/web/themes/default-304/icons/x16/briefcase.png b/interface/web/themes/default-304/icons/x16/briefcase.png deleted file mode 100644 index 7d3ffca1afdcd28003edc59a2027a7171cd13289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004&Nkl<ZILnoh z-7CXk6vxjMxmuKjazP1c#V|9QmxOl3%~IY<k@pZ8+KoxpG=`PAB5o#mi^4*#xOk+* zg}>%_zDHYYndVoYp7T5Be9rUqJhan56m0w<P*1dOCfcYY)3%*dJjkJjo@hT@iXWgG z$y+6efM$RgIn>aTbO2a05xGl9Vf`zYI3T1^z+)s83WXT!UpY83V9PG3uiyZGZ1!?w zshtl7D`mw$xLa(K9M*S#H-85D7!F+WTLp!}v!^2^UcF9+1DAZYf_n3H@sryT<3aCs zGuy-$6Low#YUY#SY5_6waNyEvwV+;BI{9|4S-6_A@%gxg&&Fzh<#N)>aNyE%g`lu2 z#8kMRwlf^K<TeU2;89;3j()$;%E$VsyFH~sc%&wFx+rkqlB-Nm^DUVi&yXpDBasN> z`4A`8;lQPtVnH4Dm-C*pD2CUO&n{b*fH=N}UN~@RqEJv_{m%RPxT%0%IB+R9ov1gP z6fP&(ttWzBIB@Y5SkmaokxuGAz=4Ya22GA8@1MXid;`>#n7%Lzu~Yy6002ovPDHLk FV1lRa*98Co diff --git a/interface/web/themes/default-304/icons/x16/briefcase_arrow.png b/interface/web/themes/default-304/icons/x16/briefcase_arrow.png deleted file mode 100644 index 0b4927f6468c9bf80a3a0d803febaed8ae41720c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NB%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006HNkl<ZILnoh z&r4KM6vxjhi55~IVL^+8vX}<)WivWC_KUPxWsyYl#CS2{q!ay69E;gxrDB+-W4(T0 zQX8f02Svq@AuVcgQL{EK%m||X0XJ>F-tP^k!G53*KAd~*J)iRq_eyW6NOI>dx_5|N z@rhh57ON*HDiiJnZ+~}7@BC0Y+Wy`d@wQHiWH!)+(!R}L1U5Y8L^X95_q3$kZvdmO z=d=As1JY)RB=SWuGT(A(!qtT;&@?=|qIyV$A5Np|E5JQ{X3sZpHHx%&MY*mEM&@Px zAAYud0i2IO<@j$JrhvTWw@R+*u{CNc>EKgW6;kKRF%T&*k+~D^hCkL1D|!pw$aVMz zrcp5lc$~i3-1--`bOwZ|$<8p|wH){_1;>-{i~?4q5BB~&Glvd_MLPTjHQsRqqlr+O zk#l8u*{};wV#OFf;lqR4LX;mpi;ag{5wCSXhpt>MG^qC%EAXmux8d2T5<IRi!lOF> zUwL{m06KK#!d8RgUnwqz=cj|9Lst@BgK6+aUmQn&-MkM&dh8qaCc|KKdwRNg=+Kq; zW`k<lyAqkySj&-0rNAfUdf_=8x^iZNLEWqN;AUlBn)c9I#7kBgxXwIdEgiZNTW?T< z`t9%PaTfz?>ClzjERm`lQM{ag-TFdUONTDMbw$hMeke=SQlLYZ4YD<>HEWg#o$NVH W6u!;hWNlsm0000<MNUMnLSTZL#}BCh diff --git a/interface/web/themes/default-304/icons/x16/briefcase_exclamation.png b/interface/web/themes/default-304/icons/x16/briefcase_exclamation.png deleted file mode 100644 index 19e31d79d34fc5604a15357a5ae7cb7923f36163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006*Nkl<ZILnpM zUr1AN6bJD0lgfff3NlhCFc6avYAapKKaI>71of~8Y#4#jUx>hR<to}J<<|P6Gw-Ny zW)Evbb8U%@G6_oZXKUF=O{oW=r0pTto)S*K^NWp@FM8p_@BZ#R-*eBs7uqTToK=6_ z+6Hi~6yU~I(6m+n&lI#Xg+FCp;h+F1kl8>KLW@@7)Px$6$7h(nS6L8G#P9tW4lHyJ z`PpIt$UhB8vj)Ig1f15?wLu@-{oZd#&Lq7!F;xAI_H>=HsRpXRiLC^<s;WpU?b{77 z?6YOX;#1erWHMoFqG=}BoE39!2bXMcyF%h)&O`X=rWr%$ccHs}lU!;4;Z8M%{d)X0 z)r6uPzmFclaE}%{&1}3?OaTtP#6LP}@vUvoECcNY_%%|8pGRsi7-+zeNEJrjRHF9+ z`}w?!F;L2Y@UXHU2du`lm*;A*@1ho8x!2;iF#}FUHF5%4C!<>I?O2+4cAx3s%4Q&Z z(7qS@8Vpk4R5|)i=+JjH7e`+g;`EndoE|U2WZWWG67A3b-J`O*aCsvTPEVy^CeNij z?6xnP<)PrRK%z^5Hn5fekq!FAhojM7Sa#y0W2M+}V7=ryx+Ohb3S}I%;-wmkC4P3t za?EsCvjjt-5YjKD^Z)NthO%(FP~s2jHlS<Yy0jK!J~o!Gkmx+~9@SEYvT(9M;vVtu zJH@zjLA8{jEUeB3Fs}qoAMMHUvN@qz%21Y$HM&L6ZOjHfAC#diHOLWG33>BGnVdh( W*u8JdXV7#20000<MNUMnLSTa2jW0C- diff --git a/interface/web/themes/default-304/icons/x16/briefcase_minus.png b/interface/web/themes/default-304/icons/x16/briefcase_minus.png deleted file mode 100644 index f84335b9aa5738c94f983f5c734d14df9cef5b2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005YNkl<ZILnoh z&r4KM6vw}-rd&9bh>SK97=(rl)YJSuR)or|Y9m37LXfCAQBgD{vuOr(P)tj~mk1LR zg(CKYg5sglN*6Z-Y11Dvv^?GKjW<08rSZXsd*8X|bME0>%y$6`7ymNX0Zcao&)Z<V zj6iu|Z0RJhihsP*z*|5kBGYIv0t=F*AS}jm<^L%_CM_UY2gTKmy#?&74|y#pFO0hd zY>gtRFqCcE!qtt<A4UFmf4>y7sEgo*Zd;>%E!>iyvoUeTdgb-)^Je8gS#CTf6P0B$ z9q`L+utMfS6_P4LKFtnh+CkLb%njL2T`h?pnLeR25!5r7YB8wYsq6AR87;8+v`4-^ zyd)pvZL&VnENeqe2JRWBLl@&s2DOvECf^=iHhjL<DIZ2#<^7$Oefe~^UFguovvUT; zTPc>pm-`W+Ll?=g!4%ligJbI(Pr7AQx4L+<-mo%!q0pTR9lA)IHK@l|j*FK;>zFu> zBYaZsi_huM#e*{jl^bY~SAC}oWTG{a=saQI-h0MeI&=}QHK-N+_F3I-DKM7~T?BkU ztP+aDIcVy|FqaNpexcSQcoX$O9R@mdS-`KU(o`Q3I{rVn;hafQ9!dxR0000<MNUMn GLSTY)?&jwJ diff --git a/interface/web/themes/default-304/icons/x16/briefcase_pencil.png b/interface/web/themes/default-304/icons/x16/briefcase_pencil.png deleted file mode 100644 index 67e66ca2e51024f2fafd66fea1454074c674a705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006VNkl<ZILnoh zT}YEr7{{OYChMk^F|rjA6@6&g$4a->rbVoHuL`yim<2&WI_-n3tr*G{)mm6qf>R>r zR%AhDlv$%hi0a}*5Z!pwrT0Ow%YX0x#KyFX@`WGgd7tzAp7U^y+-nf&ZTv&eZjqby zBDZ#l^R7=+In3qS3<(B<a=)g={lhRuJ{m@&lsB*nCAmYR1vVs%nHvfl5(os=o_4un z=<33#VNA|wK(0GQVjDzpot=9-WHgwj87>qG@H-sc4@CUM25AdL61Aez=`^^O=Q0Bw zco;K&7N(;JZCx^bbo2bjeXB&|j!&bedXMA#?PlaJA3)~BcD?eSj3?^wG`R?rbMY!n zT=RntUFr5{)VJ;?d`cYriw`%v80)Fha;DRc*PR}GNrpg&uB2QV^)+=ElQFZz`%C*V zcEN?wRHc^tBMXsjU5{ri^%y_D2XyGl)twsk`N|=@>Da4zdB%(9VK)ZDD}Y~97>L^N zsJ$8^tuD=rb`R*#mH0M|;;9tNv9=L!vLoBFWk&whSs&=ol~}DtH<++4j-$Ve`tigX zweQGA&G4zZ(sV`W(3MEFMqS*u80DOFE<iq?2cMMj?0q_P<=i@r${yQ<{?M8dNpm?O z-bxMQ@;%nlp(|~xHEP&;`$22m|ADo1=*qGRk!HInUQY3r{{?I5(B-$%Jx_9Gg{Zke khb|k~ES6e0<_I0zZ%Oc^y;>20x&QzG07*qoM6N<$f{|w=1ONa4 diff --git a/interface/web/themes/default-304/icons/x16/briefcase_plus.png b/interface/web/themes/default-304/icons/x16/briefcase_plus.png deleted file mode 100644 index 24e67f9f328d6b8bf703bb0aaf2c8d39d4cd82ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005<Nkl<ZILnoh zO-Phc6o%hbB2;6OQ+x`8B$cKJHJN{nWmL*6qJknY3Hp&V&5A@ThM*b3!L;9jz9>j? z(M0q|K`~Ucs>OvM+O!JVv<TYG`t80qW*DX)^n-_UzjM!X?%`hC*aW0E|K{pO;8F{4 zxgC+~oiN2HhfK(~7#HtX0(XKyaRXb3)Ov>#)KK&cl}D7rY^6E;bCimhS^8%KF%bdc zbufzg9Bv2wP%4nKg4y$<pNbBf&o}TbMkJbGeBY;HKDR8nDA)CUH%mdf!r+=6+hV?? z5AySsK4#DLaOTK57xgc8Osr;2GQ^cBkB#4=Y?unuJHIf8sl`5~J0Q%b>0Z81?EEiv z36E7@8(5#Lrkw6WWx!;s!+f0F$9M5qfj4Kn`SNrZpANV4(O?T79&P5fL65Zq0meqc zlp_}xn;qsuau;8XZgD(65#^JiHa<Sq`d6ME@1PvHxUkk?bgIO;@Zw}A<;X?6$>AEj zwHK$+U!U2|2X^e6`|BN<fenS}^2m{k@ih)Jwsi@M>5r5%o6S;Bs&(nU9Jx5P%3<yu zXymQEwFOeKYK}*P4y}v#R4Yd=hF3UD#=iYsJMLUitsJ@V>{IrIV01bEy7f|2D@U%r taN7dR#>!ykgB-bP5U?z_RLv7PfnW0tpWSN|f~Eif002ovPDHLkV1l4~3F!a; diff --git a/interface/web/themes/default-304/icons/x16/broom.png b/interface/web/themes/default-304/icons/x16/broom.png deleted file mode 100644 index 97daf85a9d9a7e3760d81c17e12aa267ecd2ab3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007uNkl<ZILoDz z`%6<{7{{NtlA`ElrD#DZQbHDsRbH@pp<-cXSkqB?%ey$!uyRIYwU&z<Hk+EaA}v=c zl_}=sho<EHG_o`(_2>SGf^W~xq<%>XeBg85!}Id}@VqbQ5CB>ZRFf&l&OEp%s5-;5 zx^eg1by6v)E?ZD-mZw)4K~$|GbyXxucSA}2KZ5YuY|&JcC7QUWx))Ar%VClx%!x4U zC+S~;ASQP~vS4AV0=9JV%BUcz_i_|U_mET^wDbg<7#)Z6=jRt-x7+chrx<hZjj&!2 zZ!-N!(t4A+D3Ihk@M6JM4g|9xhPm2MxVdAXF>Y?QU;oo)vtefDE38&4T%CEC=_^Hr zR`i&YMD%S9Psu@3qt3gprEJ%5r&;;Y*`obE-Cz1c>MX)|a}K_ZnP9P4Fgf`dCX)%H zPt!5s$i%HP;@Qna7Vx=LRjHzD;$;Cwp68&iIvKBxad6h9;8XuKSu#6N4uin}r_%+! zUXMYG28IOTxN(XF_tOMv_L7>B>hqN7t~`ygj(m(d^3ZLJhpVduA6^u})mjLhPKWyX zb_gNb%Hu>V^IJf7l0}qRBYK@r($K1phNCPNBW*btZqC3^O)92)u3+k6wmaOxMCv&# z3r;8mMF+4T>CYtH)&z|6g>@R$=&s=R_5ykAq8J(~P|;Bq(D^VyM|OL@6}bX@JfiFI zB8KgQk4hrYbSVt)9;czB>=-gbX*B&19ghzoatoHMom*s)Jjq-8Sv2Gx#5n~`#s-qw zcm3ZpD;W3Ib|#oPz$g{|l%?HAQc?&>3O`EW-VVlx*~qMARx$D@?#F6o1GA0sWBeCa q-^HHy;{G~j4dcbEl(WnIoqqu|#f%HngfBP%0000<MNUMnLSTX(HdH|X diff --git a/interface/web/themes/default-304/icons/x16/broom_arrow.png b/interface/web/themes/default-304/icons/x16/broom_arrow.png deleted file mode 100644 index 574f7b14f520e5b4cd72f3c963f6bd95ba0cc061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmV+j1NZ!iP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008dNkl<ZILoDy zTS${(7{}kYur5MLJD7S=mXT44A$TG@-Lx?C)YMSt`Lvv=SURJznrjOko~E+YK+Ubx zO50c-x|o*7KIb{`u#6zO2)e1ef`9L(C<IZ^13#XR=jH$7`CeWEfcy`nF_RKCqalNm z`t;3i#X7UrC0|OKvngrH+MHDf5mFyacs1t<ci*4z{zVYjlucV3vuG=u1y=<Up3;wS zQ}S3yyb1R=fd?bk!YN^St3X{EeJ=GOoUtSXrKbp2<niYX_A^8*oWH(qfm*G`J3|rH z-bkTJrY|yG376<Zc!kG_?GEgi;2;ZlGC>&Q=7R#qo}reAwdFza&$_xgEG?}-rBcD% zn}?-=QYaFsK^{*-EBS0o7L>J!oCZ3|kB#=qedkOaiJ#{OOMh^^g_vy1!RmwzN~IFh z(~FSFWEg*xhACYp?#9usJF!f_{wugfK>Mej2{HCK2Lts9=#xgk)SQBa!7`g<d8h&s zi3BE-8Dg;*!%99RQB-&PG85FMQo=t&cnnUH=L>yxG$wlTF|NylUK$B=e=%mB6vEtD z0Fg)pjiwuvQf);94QFf%$h`y_BIi@1sXY~);!x<y!!f4K!Dw4LMj8c}H{3v3iynT8 z$*(5`Rh3tZiU~hoNXSJWN<!V4Abw{Py($Wm?817bJm?kdyIW{mJ52HFo8}V`px)s8 z8{Q{-D;CIhxgXvX-HN1P;s`qYus8^<*8?DI(BeX+5&ji@-yH?*t4U8SsQn1AFy|$o zOD4b9(E~P-ZIhSkE8ul3Liqv6SOnr{cPL!}PKaM~*32%3J;ROR$vDUG^>HOxiC%>B zi7WZymZjZr&h1~=C(zCNw_6Zn295{~GcMPRDOQ2?&F*D5Fb*+X7_M90d28lmJ-1Kl znms!L*e7Xc98$C?TiJiB-KV3-o|smRU33e_dNPyQ=Dz@qyQQvBqD7Vf0000<MNUMn GLSTXwgk^C6 diff --git a/interface/web/themes/default-304/icons/x16/broom_exclamation.png b/interface/web/themes/default-304/icons/x16/broom_exclamation.png deleted file mode 100644 index 0c355f8ac25b870deb3761fa1207280b46232651..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmV+s1Md8ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008mNkl<ZILoDy zYe<t}6vxjaMHCceC1gPtg(M-2Mdb>eMl@L$u~yQ}%1c^V8FtaiR?D2&Fl~9sEpk~C zot8~ar_i$6T)jr7OQ#MZ12M`d>QlkL=bd!<A_X1zao{|hAOH7x9|A!C16_@0q~l!K z%cyYAXcrM@Vy%-fDo$inlrTEGBqb^gBYFNR5^|T5{9gp2MTty*HG%2*EG#dS<eFt9 zIJ0ArwU~sz2?9C$Jc0(EXE`X?&F-i|NN7A7j`W2j90?pd!BkEvUrreq@Ia^2;Z^++ z^gmWXyMx_}_a`CNm*j^QkoOM8bHNP05X1!$oa5IHPOG+-Df(T_8Q%*E3eer{hE}V^ zb8|Afo6?aJ%j&bYFxdqqPstb6WvRYR#*_2f%-NC`He>8iXLI^D!F&kqh9vYk)X-=& zc>1&pYPA~nirsLU;&FZxyLB#x3;1`1<?mv3&f5KWQkjIN!mYTgQovTc6EB-jcqJ}t zCiGXL(cZKMCHd>nqERAiBQu@Zzy+7%7%78E&JjwJC9qtIhNC(Kc2hDes`YqYmxhk2 z1L&w(gyF$5SgRs2X(Fr4RIo_SF9BWL%EGgitkG5;hnpEPm`+CG$?YVx8TQ~|NjN;h zc6|R@jn-P($mvv;R(^(&2t|c3lFjFWEx(gkv>VaRFU+ix!;-TBj+$V69MnLmRAS`K z+0XVGAH(BnHjYETYQEp7=+t@^k)dEM*VClXA6|h+CIz0=N%86JY5r~rL%qom?guz* zm2C9`(;tGLHFvsK<V|v4w;8p0esFhe`_|L777g{s(A6nJr*q}|)(Tc)H8QWkhclTo zn-j!Y!jXjdQ^MgW)^n%W_seT{Bs?yOH-XqauBEV<C$~2km{b&qmI<6GoSB?i9DlJJ za#>}sBjEjTKmP-LLHPP1!`nsNjydn@N|~O<s+hGz#yry9$R+z&i03~5=&ih=@HNxM P00000NkvXXu0mjfpOAO4 diff --git a/interface/web/themes/default-304/icons/x16/broom_minus.png b/interface/web/themes/default-304/icons/x16/broom_minus.png deleted file mode 100644 index 430cf6492651286aa5a92245dbed54f6d58cebdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmV;>0x$iEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007)Nkl<ZILoDz z>q}E%9LIl8B`Hyq-N=G6q=ZTqMyZH5da*Dwtf?=`OWw^b4J&83R&%+?WwUwLA}wb+ zDw~*>7fs2$9aowLd3oJGQ1qhU+i!DS5Td{bK0Jrt;rroxo^uWXpyfbSX@bnmy>o&p zQx|t9&Y5!^4-{0BA*eciaaJBeR2fF{icpen9U=Mu2!g9KL}OLDXyjSg?O>7{4wE#h zkAo(Fq<;zgn5+fKfQ9igm{P<ut&F7Zi{U8TOH#hy-y5uFlpM~PpI?C4Y{rMKe9XPp z!gxl!Nb?~n(VOI|-Q+q04;F0VfIkZ&nalNg8#?+LqUUCM)!$7f6Q-v>!e}(YVa>*L zPa(<@MVCHaM3gGHB?om4O7EWLqFsYlec(HLbK<AT-okH^RfUnJOw11JU@#akHufGm zoepmvrC`*Oh8w5E<LhxO;O7dfND`f+PjfNUmWiIq1U%P9!(MY1Q@vMQl9|3@Xfztw z?GC8bYV;cv(8LN$$q5$RO%|lsM{-80%MOIC{3M1ua`48I4VyLwj?My1JW;{Xk_V+y ziMqOW2q9XFqeT?+OF%ahM7Uldy6q2>(V~ukr6>wRt(h2XO2t4`5+=JYVZ1iO8SY?0 z^+AG6dsuKxCMd#}1@XU|*o?6l;RCa3<*=3Ub$hO>wknbaiUa7VRtRe67hs`3mhYBD z(bX6csg4%?_X|SMcp(U{9wehpwgZh`^tojf&2mWkNh?tuEnPb|x<sxfFU_Y>pLGa# zJn75Vq$Dh*mL<;23T7>{o$+T5GJ!H5N>4mMQv80B&U;aB3DFcYsUdoMjmW`Fl)4)@ zzuDEyI%YGojq!2sTir8n_x&}DC*#4abY++OJO2Rnz^HL8YjS`90000<MNUMnLSTYI CDo4Hm diff --git a/interface/web/themes/default-304/icons/x16/broom_pencil.png b/interface/web/themes/default-304/icons/x16/broom_pencil.png deleted file mode 100644 index 97c90cf67f7404f3d929f95d84082596d10e31d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008!Nkl<ZILoDy ze@x7A7{{N-k7*3sAzbFitzip0E4muj5400u>C%Lv@}u>OF<o?yq%$r~R~!+JLQ%QU z%BV(^ujWT=P5IORHd}x3_IyucGd7!NdwoCOeLm0g+WYg}mpYjvKQh-}3<?S}o6Xef zVIP<GGpV&YnCWZ=Q$;$HD~;)7I8m9A$SIsKNJArYJ8U-O8VrRA2?>G!A~<6t)2St- z91kTERT0I+Xtkw-gM)~Tjm>Jg$`QW_!YVSjvOJwDMPNJ;Mkf1WQo4%cVO>B9RZ5da zqgkNS=?VuwS<rBn@2Qd@L7=c>K(S-sMG2g#TyN8pa(_<*_Rb+CFHjPcORV@XKZ=X? ziz>JBBUMsg!7ZMHTq?u6`uhjqa=GxnDGwi>*x=a2chj__Bx%T$qmvF1jFe~-%eL{{ z(kwpYD&T%q;&uCfdD)o!)#-Gix3>=thXXxzJJH*`7bQvDRGi3>N6nH_28%9aYnrd- z&+Mox4u0i5x9qdWG5wn=dElObHxKh*x7*R({T4+<Md-YiimsY899hrT566o@?qxi+ zg&Vu>Wa8<K?Pxx;0o8?}s5&|Y_|k{l$3pO~r2tl|6>V)juvjc;wVPpG%Qb~-L~uHV z$s9x`L2>U4hWF$;JgeP>24@@&rvyN5iI+EX(BsKMc6K)0?pt8y>Vj1qE&LSFu?-wi zZ07rIS5n}yM4~1?8c(aYqvPUMw3lze>!y8paV|q0t`(M8WY{NIsb`9uC4$6XNxY7= zcrG8T&SrwQMBZ;@`eNrqQG2G5mWzOr4NOaC|M*vYHOv2p=s+AtiM{pG?r>D*8t}L( z1-1DrkQPdvsf#EkZXS^;_-oCW;1l_hJa8r8{EiT8)Khn~j!cus{&{AYpdJMXbA^RM zuwF~)N%KiboJWd&Ds7g%X@b8nUKlNm5PVV8$0%W(FiDsyXouFxLwlN`^D%;-Fj5%q dn+5P+d<Re8c|S-HE=vFa002ovPDHLkV1mNYc$5GD diff --git a/interface/web/themes/default-304/icons/x16/broom_plus.png b/interface/web/themes/default-304/icons/x16/broom_plus.png deleted file mode 100644 index 402e0e8376d40b5442b2c5772b864ff1c110497b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmV<P0u23$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008INkl<ZILoDy zTS!!46ovQS#h~&wT9G}J5hZA0*iFeR1QT|(M(3fl@-B{PSUE<+=rlQzlZ}nZm=>vN z=}?(snh#Bq*N#(~26-Xq#fQL`>ZxG0=O_k2B(&gTpMM|LVx6Bu0O)_9iey1n=GGZO z<)>$-3)jx210jMcQw7~lncbC!5tT=fvTQF&*LIU~ApxPcQ$=+}im2vY#Pv{8ns$*i zV2p!q8%h5P*u<nyNhVCaDS_pbc%ly`sr_6e^0$zbyXo%@yci9eGbbmfV6|HDp)D5^ zuk|pW5YLkRNKz|EnX{4PJ6OsAzHA8KfN17IRknBYi#xFsW1ZTc7K;U=qaR^5o8h!) zV6-D2C2G-Tj2BT?RNRt{hC3QXM{U7|Zo4t$ougJgJ=~f9L$c?fza|aieFm6JCJYX~ zhrwV#Z~Z9@G$y0?n0QbW#{v9Z5oL*@W#DlZdLE{sqdWmm^|5eNp2SG!MLA^bMIm%L z9UKlPv|25?Oe*LOi^j``IN)ZIAXOkK8OfFrg4WU_=xfeIZ({~p^#|c>$-~g2960N; zq0wkyvo%2o(NGvGVwm{=x|$#&jVjUZxSxbNZ4?>{V$jo&hVGivcvX>z;kNTQTDucu zQOt+}PkVUb3JT9(PP9K*P?SFh#Q$#6YCep9zA(F9iPjQ+ZpxBtE3DpMQ)bSC>U|}; z??Y6hpn3VPo(;NmP(*8EMc3WDFjSx2gO~S`u<yoZc$+=Hxm9|PtG=Xxjgm~Y!bX2; zy^kCuH+gP7j;iz>@HD!AkDiXhpHPLD<nk<H+?jPu0JEJ53HGBD^;VMNgGf?jE$^gj z9wW?f(C2W_bq^;qL}m}Uf$N`L#&|HRn6-@G+*~uaQ^@a&R=)N76bLF_ImGA1bKV6i lbP18h%|@9^C3(8etX~8ahkY!)r{Mqq002ovPDHLkV1n~$UpN2& diff --git a/interface/web/themes/default-304/icons/x16/calculator.png b/interface/web/themes/default-304/icons/x16/calculator.png deleted file mode 100644 index d1782c97f6ac5b7ab0eba7f9ee5e95c3a9c3ab26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmV;s0Yv_ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004kNkl<ZILn2T zzlz&H5Qo2AWQ@+`5fWePw~#9%u1x2Lh>AQ;aPkZWHEB~=m9IAh4B`qw$Uz8Vo7)4; z?56O^*cbm<7`|cH`R#88*39Q~0E{sofic(5?-=8EfaP*Y5@Q4)#(1|_EWUPKceZmd z7*G_&r^8xOmSvykNs?TBzAVce__h}?#`O71_BkWQNC<%t0;;;tx7#g~$po`BFGmgz z1fIv^F{+A)AR=^Kx94ayB280_G0*1&{KJ=rv({5mo_;=IjPXYTv)QcAAB&>Edw*Ue zP1$TVkB2p@s=S6(Ro3e@m)PG^)tv(o*^7w?)9DoN{Yk#=#vVE77bYS`Ravc8T%w4W zzURLYLI`A8#wETT;n0CqRjR7u5=F!wIdIM$jgVy-r`Sh7f^%*sP}enW+v2@XLI_k< z#VPjTy-(V<rLOCp0C3YZ&3otE&{|8L=M0C#leE_2oEtVx^8vU4Fu*Nvm!|2xwf5b$ l&lE!V<Gud@{E9LD{RdZKc@L(tTV4PF002ovPDHLkV1gnA%=Z8Q diff --git a/interface/web/themes/default-304/icons/x16/calculator_arrow.png b/interface/web/themes/default-304/icons/x16/calculator_arrow.png deleted file mode 100644 index 184f01693af878a46c845ee5c1e9ddbb5e2a74e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006UNkl<ZILnRB z-)mA~90u^OKPa4a)kSsVP2yFXEQ!-33<QH9FG8Kr#EXhz(oeB$b+tg8vZkVp9D`LG z3}nTES`lRq=P!2DX)-LcVnYJ|i6`IDv2)>CFMN0|-sd^zC9Bm+jLl{<cU=7sW?{pS z#bOa$Yq#5IwOYGk_pB${5J@BwLBejgV=t^H+7L;lQo-}cS_I*A7*nfLnEW(}z=r_* z@BQ$-^T8Q$V*K?uSWmPelF4L(Cy8bPi(eNpzd4V&>KtZ@Gng(+gMD~(b`-&nL9m`^ zLnN2W1tGWFjlHm*XhUQ&nFKc)jRvaK>aN&5>xni*Mx#-1t6r}o9*?73F854!&w8Q_ zk-=aP+^N-SVAj{ydnUtrXKu#mv@1;9<p7ahuNSy0l?r0981ngi&%D3fgdw`QZJ7P# zI2HRr1O6%z$8iD=dupjvLN=T2nZr-NA>INyW1fqCckFyXr_%}U@jQ=ED1>x6-A!9y z1?Qt>7$??n;_fSqyl5i41$4%Izi-1qYPFiQS}o%(6bfKcsZ=-3OIw)u30(RN4441% zd;yM)rFmjUrBabbqj{Li<q!-8kxVALdDgptp$97%xV?ly&oa1YO<X7eM_h0Cqu1X$ z*uJmhaOXT?e=Qb^$Ye4-Q|Eq(<Ey~Iiwl)LqxZ^zlOsD1IMmUvP$=9=rPBW|`-fZ` j`_4VymJK?`{_N;CcO3rIviaSd00000NkvXXu0mjfi#!%a diff --git a/interface/web/themes/default-304/icons/x16/calculator_exclamation.png b/interface/web/themes/default-304/icons/x16/calculator_exclamation.png deleted file mode 100644 index 2468be504c46ba27467ed62e2e535d05f5e224dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006mNkl<ZILn2S zL2DC17>1vj?l##pShU(UEta-v1@)j8Y26+qEcK#-NIeK16ffqGqX&P3;7zI*e}I8p zRPfk%Nl_4_B39c9MYM%V+}30pcV^a06E@Y*fsf~%559Na4@S(*%>f{UxB_H2`22{X z=y~&EMNtGm6h%Yx^Yf3xFzh&K+cx=p{%*Wyl}e?i_AJXf@cB}y<N;4w211CY-gOHu zQ50c}!5D+qx}}$wm&s<ch@#kSOAs@tXEGVI)+nV=N)d)(i#<I(IF5r5qTb0MSbVhD zF}j1p#>WkW5J8(kE|+WSwR}EL5Cok~9EYW)rL}lZYOUETskNq3sqjC3e*ci#w*t9y ztLOWAcW9QSlxmqNrI?wSAqawf^qCmhX8iO`POcUvXQ#g=f!)^7UJ0!=3kwVU!+Hg} z4v}&a93PwN*M?c8LFs)f7-Mi<mv&BL>aQ8ip5?}^XN-(b^&2g&YK5g$djhGord%!) z=ex>NQmG_DZ&553(T&YycWUgE(p(4?NZ<F{R&ZUHI8Tgh(tGqU->YwV`Qjd1jZfG| z1}Bx`dKe<)%E}7WYLy@eEMpAia+xMo@PS%w6=8j$TW)db@&i)V4(W8G&rYV#D8;k{ zQtRvM1HSJkq?CA`M<S8H^E|@sS4?Cr9JxW-u2K7WpR`>gZU1I)xHlVy+z~(@FyuJS ztd#Ot{FB_i*0?x2YzE@Jt}c|5G`}p1Kiw8@{sQ*SQWN5IGKK&E002ovPDHLkV1i)Q B9U}k$ diff --git a/interface/web/themes/default-304/icons/x16/calculator_minus.png b/interface/web/themes/default-304/icons/x16/calculator_minus.png deleted file mode 100644 index e3c8b40714b4a3150c83d3e513b35952de8e3cff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005rNkl<ZILnQW zy=z)w6vmHwGZ-NmGPFY?8N?(*<KQ4TND<tUEGlk}Eg4GbC8R@_CNxMc!5cwBw1Jcg z6<i7-Ln*DbSikTKMT%6i#l?T1<J0%Fec?)Pum^rT!}&e$dngi#5EG3?w*`;>gKgPi zC>#z;9#19{jK||U;XQkX4w1!TkrZOF7-qqqp+jV~S|x8&-%>a&pCb7+iIXoUIR12u z#K#1VJ{%#QisRt=0PGn$L^hjEa$dM8Apawe-1i(V`<KYJvp8#<fgj$z*oF341AB%J zk)kLPT~$@gf;~frC=?1wo{UB#^!xog;XQkX4pA@|lsp{{hsb0y=ytoN$$Rz;9il)W zAbB<z48Sy-P19u9lbyZQRU*INFHw8F9@6PF>h-#5@}52R^~FWXlNg`RC)wjuJDm=y z)v9Uop1tJ40u@B}_XA$9SF+z~wV>-d%H{G@UhV84x3Yrw8yk2%H+L(FE#@6jhFmTe zc|0EGd85$)Q!16F^3B>Be#Ybfa4sI<BgpA=lH2WmQLELUX&Q>f;#6k0ws5$-jO6+{ z_7!FPQWTk2e1VvG!96jD{9C)-Mx|0QP2RI7{QKN{NPlKY@W5`js}6@FF$?yDzxlUE ZzW`(X+-SgikO=?)002ovPDHLkV1k`=^Rxf} diff --git a/interface/web/themes/default-304/icons/x16/calculator_pencil.png b/interface/web/themes/default-304/icons/x16/calculator_pencil.png deleted file mode 100644 index b3665e9af67399dc079db38c25adcffa8421ec5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006xNkl<ZILnQX zT}YE*7>3`^327b(Yfu<0m}5|qJ6JFk9JwFqWD&TrGfx7;gOG+45rPIX9I~I9;>Jvx znPfy17G`D}bARlQ4T;sNgTM}U9PIG!dp>+)(Zn9OxZ!=T`}y9F*=#mO*zI<!$k=~i z<sE{JjErz@)M_;x92^`8-ILeQVN4JN&W6L`z;Te*&|$2lrG*pm@A=`2`{0RrF#mBL zb31czZM!hLHH%UIC}uWiKwd+KF_}!pS=#uvf%PxzSpBq$mGTNg`4AQ}i=f5h;c>V> zxIrH8jM0MD)>e+!>2%^a$Rq!mSkBNdSS%LK&1$uZa=CmYbWh$wcQ^YXmZb$oqmeUF zsZ<aQ22m^)n<m|px7^dy|6LGXCI#U#GZ+k<Tl@R_AhOwP(<DqL)9gfF-xQ{&@k$V4 zY+zu3<1Cd*2m}I1r_)U{v$qVh+5DnjuVc8Y%d^7RFw^VxoJo3Wp-@0FnfxcSiAQ+1 zK8X6yyHKfAQ*ybyH_XJ*>2#dixm*rjuNU!n{I86@58&xSk5qO|wtcl4+lD$jJDIdV ztyVLwR!iK;WHKP4(deH{#zJ`Wq+cpW{FiX;%DM2M{wz}{6znQH9HmmpG#bslR4N6x z+l}4bT`9LWBUpQQUMfGBQDf_M0OXP1I44C;i*uj8n$PEvNF=0u9=s0x`i#du9d_O> zNv|SL^v@jjq&X#WvAw<B+0oJAYD7GTeMnZhpgOU}&&U(cdk=f;Hxg~&$(<{0MF0Q* M07*qoM6N<$g25FlTL1t6 diff --git a/interface/web/themes/default-304/icons/x16/calculator_plus.png b/interface/web/themes/default-304/icons/x16/calculator_plus.png deleted file mode 100644 index c833693ce0631a6ba123241f35b93ed196a788dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005`Nkl<ZILn2T zJ!q3b7{`AX-e9hYQ<ab+5ow$q42a2MC<+z)7&6x4A~cGNi<9VBa1@E@=HR064sq9p z2+7cZ8b1gPC5qJgg%mVz()T_b+BY`Vv<DBr|2^FEzvu2ak<aG=5JH>-66`%bTWg;N z6USN$fVFm_SS&v9eSc(SI2@)>D9mloIj-vlddhK}J-2sVcM2#C41^GY?q#lLu-0OX z!5D+qdZ1ga7L${ch$o^q)WJ4`ZX%IDYmHJ0r4+vJ4;YO`ky0Xr=#Db*>i6p-TbD@I z-mM{o@P-U>xm=)E3WWlm=Z!Xzl4i5HvOO2lTC)`)tu?h;jolcm3&K%K4a}5MWV2a3 z&-*X8?k4o{#CNd3hTSaM3Zb=TadDARy#47e^~=jQI_YnvPWmgIV_$}kV2mM?$uNrV ze=jq8apn-dJx<^LZ98a9YfYt6;a|?L-s8g3CG3V~U9UsmfU-+iN+Oj?5sgLxZZ0e= z%ma9yhm>-_*|%4jm_EGYRi3-g8cw_2CYekUi9{S@4Ap9tbUIC?QW@}Q{0J`}HHpPy zIA_Or^Y~R`^9Rxpz!<PU9*<uum&>;t$D!Bj5s5^0aOTAo*3b7@efZ%ucYdAZ%)YJw z#(@bb<>^o;ba1zi)IX)B%>g@Ze%d-^e-8NZ2Tqn$W#R8!H~;_u07*qoM6N<$g0F1? AmH+?% diff --git a/interface/web/themes/default-304/icons/x16/calendar.png b/interface/web/themes/default-304/icons/x16/calendar.png deleted file mode 100644 index 7f38cfea75b5fc0031a63543213ad558fe35121e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU`+FLaSXBWpE_y3w^N|V@$-L$ zW2Blme(kk1G1+O=wV8u=*DHY*$Akp}dcC~cELnu~wwZ?M1+MnH8qk*1*=bv8clPqn zd(jIY6zu)5^LgC4@5MW8<o0U0mM&B|aZ9i)u(1AjY8XFX%-)l#%2WJ0<+8R)Eq-Ko zvM0`szhaW_jwd<ORyQ(CKb;zDId@*tD)mT<f|Xjc3%<_v`ndJ}dCU3!*AtB_kEZYg z#b3@dF^^L^=v?{8ec^$-NfT#J<+A?x!+vhYl-CO<tUGb2(R+KFwYk{i=Lr*}A8ufK ze%>QR4I~=fW;@Mv8w)pI%q^2Q{l}8OxhZQ;Xl0&m#>2kOWX{0@TqzF^{FN^F@wD<z zp$t%FG5Z?nKC5-7&*ohRNi8*Xezy1i^XX-`!MxDJh0gQ7-N=e;)REb-MWg<5SCG2y zPm8Z{=Rwj}ji*hu+I`}ArQCx9M;qR<E-mu*ntPsEW`})TQSy&X^LESv20VkOtDnm{ Hr-UW|6py?6 diff --git a/interface/web/themes/default-304/icons/x16/calendar__arrow.png b/interface/web/themes/default-304/icons/x16/calendar__arrow.png deleted file mode 100644 index f98abd5996fd701bfea83b11f382202c374fbf23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005;Nkl<ZILnRF zUr1AN6bJD0d+RBXAX1Q^m4!5Xi1f*aD18ykdgwtXf*Ke!AEH`e8cZg833};a^$-Ii z3u{aS|2(;rAd>zNE{ZKew;Z#zhF+O-?b|uOE48tq`@!d)dpYNOxLhu+C`A!A&iFL2 zE~)Yy-BGG18OhSl0w)`PK(rVP1|e0R^Ofj1^@1>8*aU`$vDDZIzu&JbhK33h^mtY> zlBFfSu$ey&2Lg3<a9335y4~MjAipQGl94RECGAzlZpSvi;!m#^sj)G{78YRi_WqN! z*$`=M)m3ICBUzd^y-D}<;9GMuR@>S%x&PhXUXsj8MzVCmbParRWs)Nq$<lGtjchK5 zOg38<nU#!Wsm63G%?)E~t1L1rnVP%>0~?tPl7_J>SKt@AeQTKfYRG~Cz2KPXZZe%l zES1_-$I}&fqCn@fD6CC=FKf?TAv#K$b8T}I%ZWsho4yb(KKiWH-<d|oi!kml16IfE z53B2gjV!!?jjZx3hT`!e=Y3JQzXRQ$fJ^WHyZ!~R+@4>gD*l^}D0MH+A1AWDUc^57 z5ocTht$uI@4c;&=yaOsbAIB=MPTAx$R2^38;d74%d$IP7;$#529;$7bldLQ_bx<jH swNg*^vj6nu(7vXT!~x6M*OHO!Uvk@Ct_u7BcK`qY07*qoM6N<$f`DcJ&Hw-a diff --git a/interface/web/themes/default-304/icons/x16/calendar__exclamation.png b/interface/web/themes/default-304/icons/x16/calendar__exclamation.png deleted file mode 100644 index 103e9cddbc1564b0775c1657e74b34918aa2cad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006kNkl<ZILnQa zT}YEr7{|}K=&l=Yx{xC1!>pTK7(|f}UFbz1UNndyDb0%rlo+iQhS3C(q@Z9I>q0Pz zEJw7cps46W7`9MiZEnt$w#|Lm+@`*6&b5E%Ij_Vv-=G7(^M4P|^Lse&%ge%?vxvYU z5bKDbos!PcO|)v{kjpj)SOpFnV_$qeA1LWujz-NY2ZY2Xc!s_{cpDqxbUJ0Cx3_|d zn&>5mT;>&<;MH%71s`-e4Aj)f-01GEpu9%C<dDnUO!BeN)rAdl#b3k2$c~O8K0Xem zv-2<Mwl+jsT4Yi$IpnfWDie955#O7d5NmCf&~wIM(1d!)A(z#wm>^c^KcPhqx$J<7 zxmYTpP%QqF#QYF~?$a`<mmG3goywKGXj0bKHCfFqV|KCwO8TM9TtNXjb!7v3Rtp8B z6-ATqoC9IM8AWAGqzUn;lLqw20sB?1r}KHlv)Qd=mf&%<V>xjbdc7W*g`4oX&*9)U zc7t5DPsO^pwuYan)D{B4r<iu1MK*E`q7^a!d3arV7>@A~F@&+bD*Z8W)!AgSiUcO! zcVIqn0n?slym)Sg=j#c4n>vL%m-*!D`{GZk73|^sR#JSd$jV9ufgf-1`CT*S0w)pj zHpm-LhP;R2ux(#>ImD0BTh#96{N7``9o0OsABW$iLn3$xiJ5vRsjD)Hskb|GV>UiQ z0~&U4KCp}P2i06W!)FFBu|+LzTUgX&WRLy;=xAGo2(mtI00000NkvXXu0mjf#%Cjw diff --git a/interface/web/themes/default-304/icons/x16/calendar__minus.png b/interface/web/themes/default-304/icons/x16/calendar__minus.png deleted file mode 100644 index c9a9885e4e790384449f0c7bb5d47e4d64acab45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004xNkl<ZILnoi zze_?<6vxl~6IvRA2>M}dW(`fQjo~a}f<jXcQ4|CQ8sXBGkZlfzgo{N(Q&cXIYfjZr zmSTyCS!(9#eBTpMdc*6$=bm>t=W{qbE<GtlIUy-X%n6IgxIcF=s=<LvodH2186nDK zvsp&Qy%&R8P#bVBhj7fH5Z~JEoJys%%z;23eKqNY1D9^)5YB$q*ZIO~<?z6OmcRY} zK6-2Dg#(vvNaM1(yv*OS;#(}nl|+II=``1TzAj~#i*pMLT1GD%xOAm+UH5wVVSb+T z4u=N5-<?iF&<h7HP3f$#MB5|?IB;oFXRXz4bF<Yl1$yDYC5z5RT?(~E!xZR+W9b>N z`O$20xmGg;df{jTCUmyS^*R?S6;q%W&JqTU>jYmvKl!m#GUVLj;gjj<E~hgyyifFU zNED?p86fQBWwpCv(U7=2o-eoi4>BY}L-LwNmD(-J&&gG*h9u=7?b&QyBC^3MQDGY! yNDPfAb#N4o@_&E>7XxMol?o3l75@)#;Qj)nTU55s$0{`d0000<MNUMnLSTYU)5stI diff --git a/interface/web/themes/default-304/icons/x16/calendar__pencil.png b/interface/web/themes/default-304/icons/x16/calendar__pencil.png deleted file mode 100644 index 946554db6fbe3340a6d52c3cc1fe14539921d610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmV-10?z%3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005_Nkl<ZI8Tj{ zUr3Wt7{<@J@qRa52oe4F&WnO>97WLTCh@8Z5eoEHp&(2GlZ`@%U^fLDQAmU<CiIOc zO3W-1!zhAnDCMZHm9mmG+}xaNkMDE73ct0=1Hbd`?0J9hzMW5f(psg3s37ZraFUhh z&p)Y`(V=TLIrxR>Ri$1flS#1hypcMY-wc?SO^6{7K*H;VWm%@8zu$!`lU_P>RYEr5 z(U0C<Of)xR(Bm<6t*6Ju#*Dpm=&BiIcvkN2#+p3hx1k~AA`vW3PNLA&^_y%*2hy#r zrm~j~UG?1IWvR0hDW4AuZEXgA{@&hR7xvPjtC}3nKvs2=aM9`GU)ZY*XDihz%9YBd z$WKq>iPrHctq-X^GC(+2lAy4<`d?DEjj>P&7#M)1^~A3M=kw(<vW3Dwu|Gb>oskg~ zi$xsvcwXF8%BObA0O3NmRKj8|_gCgq5Aig16vZ!nxEu^(dqcyuQ@q4o4*stzE3lWA z>N5N8KE^Gdkt1O*-X=ythpyV`aA`pv@qH%q2l3e$#_k<4@^GjHQ!`PpmkwRkD6e9N z)>kreLFwgX7jqw8V?1`u`Q_^e@h1Mje9vAwbj^%yT8Hn-&DL@wa2&|bA$+k3w}Pi# z86CPDuy2djgIl$}U5jKm(W34Bje4{;qeFKc3FBN9$u#_H00000NkvXXu0mjf;290$ diff --git a/interface/web/themes/default-304/icons/x16/calendar__plus.png b/interface/web/themes/default-304/icons/x16/calendar__plus.png deleted file mode 100644 index 84dddb8df4932ad74c9a577f8f75236fd142d290..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005kNkl<ZILnQa zPe{{Y7{{L%=Anqtf)0ZStW3!I2^~7r!aVF~5_DNo!A6Hj13?T11`|{Wj~*6X78DXj ztO)YZq4LllukK_8w%VAjHEc5H+PCNX{v<Z~p?l%;et$2|^LcoA`N>yfB(2OTx=t%s znLK~n!mCDyu51m6DRVO-i>Xu!OrGoUsKxAnPr513Fg}i@Kmf^P(k8~n8fd6#FCDtF zq?<DTXLJ;=9S2iwZ8kTDh8n1^v6l{A`6!k*mBB%5>J@(^5-85jBD=7FQY7+^!oUF1 zeSJ3BONXw!b$MS7hw(WWM5e#r!tY<9kSFY=LsvRohM}w0BwTdp$}yLbYORJ!wb~Ty zr9)RbTyB@OP}<mN3ii_Js2dRdU8$f@Ds9WPcel{}vKQeG!yFK`1CF}fDU{2|7K_{B zJnuo|=LouA^n%X*3%f*)h$XhVzK)fA-jmC(Zs5d|bCyf1*Wo<vf$whXce%eWE{Ao1 zGLg|MF6VNdbUiwY^O=kPAv3Lu;@7{a-I(c|K2CaV&66whH*qp?#?rMCfb$>#Uvy7a zruWAA4E{sL+<P34V<*}tJK_Iw+$J5m9B}G@F;fSPdAJk1gDuOxP)nXkhwfjivr97w S<tan}0000<MNUMnLSTZfboy!l diff --git a/interface/web/themes/default-304/icons/x16/calendar_day.png b/interface/web/themes/default-304/icons/x16/calendar_day.png deleted file mode 100644 index ea7f247d49513509dbce68f18dce65c23128005c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmV<F0T%v=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00057Nkl<ZI8T+5 zy-Pw-7>CdK6I>dC2>RX}8k$-gqoqZJ0>v%CFbblA8(2$jg|-Pv5)IiP1TK9nQPdDg zgB6saSYc9%U-|a_&h3hVf*yFzIq!LY&*5;n;#EqKU=A4`W6TUz)NlVZ>%oDmCN4DQ za9fD$SS&_ZQP<O?r>P4bd18)feVy*d$0-~RtCdz)8))cp77ko-&l7X<ySPZFW;1P? zOlmDVoek9Ykc9(RTnWWlX>N|n{KStyfU=<wr7kWgXSdhLSgn+poK!2aaNvq_oy&sF zMo$wHl$@GUVE<*YGzD2WaK(tuJn^Wu2?iXvVpwOPQms;{QlUNmP#ZoU?F56WHqJbJ zX4J^Sfh&e|mI~a+6^k`iyxx{IvT)!U7cBpjN|edv==R}(T$)Bl(Wt5oaAxe0g`+MQ z)LF|E3Y5xbYuMcGmNl|);EDkq?LD8Tm(Ned-Saa|I~=tddjr(S!htLLbv#La+D$x8 zvo4o<?tUaf@pQT=$ijguy7_PFlX5G~A1Cqs-4@8gfvfK5m2&sM@25_H0~Z&Jc1gL} fBW17?;K2O@ntn?oCK=os00000NkvXXu0mjfQ%~Jf diff --git a/interface/web/themes/default-304/icons/x16/calendar_month.png b/interface/web/themes/default-304/icons/x16/calendar_month.png deleted file mode 100644 index 1f3d9444a4b76788829d93b374fde550afc256dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507 zcmV<X0R;YuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005PNkl<ZI8T+5 zyGw#m7{<@}6IvRA2)b_#4Na|%(i}lUtu_Qv5EK|hOJjpkgwVyjgbI;eC`yS$qmWXH zY{@7pC@J%rZ|8Zx{77)n1HW_OJiq5V!zUi36bXe>p+=8l5G&4)e^k1I1D7XtFe{u3 zLWHByC}G9<KNarGTo6~2!b>wVbluxa9*>7tnwl!3>`rCjz!leOQtbYWkJE8i7tPhx z@tPkQDdYbgvT)#vkYG-7CKKh=6W^>>O4@An90*Wqcv$CsV1N=vBd^H9fh+tP!OYMQ z-5U(_)Yr#g|Iy!H5oF=O6`dNRq(-qyFyO!y9U5bWVv+3o`?R^YM;ksLt?%s6>h?BS zy<S>zyJ>lAi<Vq2T68!FSvYV-yT(MOP~d`aJWipzJ1#hl#mIkk#RZ2K7j$rb&IQQA zfm<q={L1B6PUrK?+0Bi<KaNE7JxY*;!v$>`)9;y#{`KJPEf<ttfP$mTOZ^qd!htJV zHO#Ny-&~MPrx_HK_9!UrQGhHQxS~a4_9>OB`US|sfh!u+-_$JS{7W`ViO<ifKo$;M x?r4&7(QdI&Ex>_`g6?`L=NhG4s|7f4e*rRZOy)J%x%L16002ovPDHLkV1fht=}-Uw diff --git a/interface/web/themes/default-304/icons/x16/camera.png b/interface/web/themes/default-304/icons/x16/camera.png deleted file mode 100644 index a828599892892978cfdb8cfbb866d4a96d2cd368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006jNkl<ZILoDz z-)mA~9LA5gg15Vf!ss9HLc0)5MG-+S6i)_jdErGyM2v{Q3%4fGSYB*n48_V|!feXM zZ2n3;n)rh$ohc?LvJG$4f8*(W-w=v|8awbg=ga#&&+~qt_i#7>+;!lbPUjpi$8lc0 zUjOUbKcTlfgvC;+1PZAi|0j!7%Q+m5r9Qc4vl*t-=^soclfTmKcKcLIrshPYQVELN z?Z#j*KqL}j&t9*GTCIlpbhM^xv^O4)VYAtua1x2+kP1B>4>Rd>I=HyFM7!NaHk+k8 zVKf>sXie8>Z#W#nYPCM42A}PAJ6tXoGiWxOjASy2LZJx%$}5PMz|C8?;q$E^l}clG zH;hK31+&@wj2h%E77KWuX9k5r0f|HstE&Oz^95)OJe=ML<DT(8DwQVd6^jiRjmBka zP&OD0bR1?7i|rHQSX)~sxvN-u^couxk@3*`2KBm#Kwtxc(1up4eNGRtq0wkyGMSh` zJbs9SgA_J5LuA}9i0<X!f180nn8DtD8JSE4J3AlABxg{o)i0<)Tc^{}ahSo;Q4Yt) zMG_;2t*!Uu(7xjI^gCLuK8aMr_Vx#yoYYV*pFyQkz5MMn^85p&(^Vp>lb4%hf+|9x zID)}<jBxl9>DNg#kwg%oP$+zyTrOXZ#S-U&&|<j+;Tv%m*$#6A;U`o$CmKzjQ!OWz yO7F^KG9O|6iukCOMvxK~2sf_C0@Ggicm4qj(>q`7WQ73$0000<MNUMnLSTZDr4;%A diff --git a/interface/web/themes/default-304/icons/x16/camera__arrow.png b/interface/web/themes/default-304/icons/x16/camera__arrow.png deleted file mode 100644 index 61c488d0b43991ff372c2177ba7ed26084ff2052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmV;o0!aOdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007hNkl<ZILoDw z-Aj{k6vuxOburtG7fO*B-37reG|ZSUY=|(UP3HusBNns@2?;B9q01SW3BDwvJ^4CK z#Zh2$X4B1bFX&)yt%0_37_sR^7ySv}e&;bM=uPOr=Q-y&hx7fNa~J^jKQNt6w~vW2 zW-2Ku`8oGb=yQsrUs_rM!Q-n3L{Gh}va+%^#%*V32dPx*7m~^3Z;3=AG3w=0vruks zE(n9cfQ^j}2!bH`Xfz71*Ngq>D5f0Mwzs#TR;#bGw6wHm)MzvsMUikgjIFH%g25o> z=jZ7q#N%-hiYZ66&CN}emzUR*zzdB=gPNKeQ6LZqh}i9RxLk{9YQBq50yvR<5@vHV zW@qQn*Eayae+^}2Wj9D*L8VebtJR7EE|&{4Gj>=kRxB*IAXjLiGYKMv$|@``2gKUq zq9017vVjCV3Wb8k5e3G_CplASX=&qozd`MlduSIzB6X(w@cBZpTHE1v2T@d1bd!$g zm&@fSEiJ|Q#xZC|x6u03hpw)EKJF_F+g_sSp%YCVPS_?ra5|UK+dIN1Sw}%ZK_dwS zi;IhC9OPR)5K@3fcn{0y3c9-o`O#iub@d(A)?$1mFM4{0;Ba{1@vI{+FYh+Xu4?@v zyW;?H%pjolc>+D30o9|ou#EW7-#>+pjwd1m1JjtB^YPU}e1#BXGMSkbj(zyr{t37o z1F9oGxD^K!4+7##ZucJ4xX<vg{bNo}P6NxhV4cn~P9(D~*>=;bAMfVd5~v6R^q+A~ z?~qERZGXTlkx0(c4J4dQ&T*-JB6?;8Ab(Wdd5v;^A@h6ho*g=^W=AT9gu|M_5chTI d7dzQO>>KMrDG2aXjiCSl002ovPDHLkV1o7+J9hv8 diff --git a/interface/web/themes/default-304/icons/x16/camera__exclamation.png b/interface/web/themes/default-304/icons/x16/camera__exclamation.png deleted file mode 100644 index 1ba77c5f01347457684f63980acedb46cb43514a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmV;@0xkWCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007+Nkl<ZILoDy zUr5tY6vywLf`Pr|Lm9Jzh#vA`D;TUXw};6FO*RLqNr<(~kP#s)n8p%CEl_MJznG=c zANpmcZqw#Ai@7;}FtxSZT)M27E5V{3d<(w)?k|KOrJxI+dk*JtzW1DaF9AUQ2Vypx zx3CaGEGm`i_t;;d+d-ZRzuylE?_c;wDrhY+8jY0+e&upGtgWs6K{lJ+mW73d1g+(} zCNZg03QAQ~6_Uv$7={sSJRV0V6v9?_)Tc3;TU}j+!C<&ZL?Y1;Ev&At7DVRf=drSq z0mpIhdcE`{q|<2u>eCp_rBW&A_4-RxV6?Qf6y@dRf<Pn^5nx#sKHntljn@#%00sLC zVY4-2WW)`pvlrp;EVNo}Jr$VH>2xreOsGFsh#9XE<3n|5YI0y=!Uu)g1ha(^IH@Va z)Ko;sO-_cP(P*qxAgETWVK`L+XG=c5e!hp`Qx&c|9Q@obQF*=@ZA?tyjHLzB(=j+4 zZ3qN7D3!{~^b*4gg#vXo$KZda$B)e?coVIG>$Zh&_c{6o#$j*wz~14(z=I$>o+)&9 z-{m`*gIq4ZLIt?uVkNqp_aT>QrT+jMA6wyLwdm|*_)B|%X!JE^XA}HLA#`=QFg6xK zFgOR9Ox7Sg<7wkzj1Hc__pF`&n*^VhYQgz*a1Y%?PtQYiblef>?R^Bddzv3D#*Yv~ zQBjeN94M4nJ@-}L-YwQ5mC(ZLX+R>b!Yi%>f#EXYq(I;ov~Y{QK6Y6mkyweoc-Prs z*PajW(`sZEr9ubPW)@{&ncZ2HTs)AMm)E)tHnCWIoIJiI>R*Z;+E`yciuJcgu=(Yx zU@6H+!G^0%#PXthw;`WLOa^ZdXMa1H*$J9AYRQi4C!t3|eI8F#ivR!s07*qoM6N<$ Ef@nfZ@&Et; diff --git a/interface/web/themes/default-304/icons/x16/camera__minus.png b/interface/web/themes/default-304/icons/x16/camera__minus.png deleted file mode 100644 index ed506c6c3f01809a785059cad557434fb7d8aa63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmV-*0*d{KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006!Nkl<ZILoDz zO-mbL6osGnop(AaO^l5;pwN#fi3AIUY%DZXs-<)*x+>jHyLHuODQ@adX#PMe(opE4 zt3p8pA<%_H#J1E9O-rH)8WWRoW|HZ`4}^YT@vQFVK5*|jNBF+ac_gN%r;lfIadDBc zv9U~FU*DMl3Wx%urfI$~O_NL}BhI*616IW3<mAKI+1Y2|aCqcT=lt!&?d|RS+}zxA zmCa^nEXx`JNF)-Z(`lBLmPn;ixUNgJTIJy2006@<=<e=D*L6an&`7J*3MwJQw?rb5 zR7$bBx{7VvjE_%Hsgx;~%k=m66Ny9sXfzrW3I%$5dl5q5d7hMjUaQrxZ5x1Qvq`B` z#Ih`u(s`YILrujPpSaJ$LKfF;lgoXiQmLK*E;x>Z<2V4+>val+ALR4vwA(%(mh;Td zXSnqs&2ny?VDJ)KTU#_59-ik(1zfOg8zBy#Un-RWfs{H*8C)H_$&F+ZfIMY%-9Xa} zq||X;S1RB44aafNH0{t=Wgw*@7!0w$Z*%u{lFecf1l+qbO0~L2PtRqfREGdS*EEfG zyM6TOE~Hcp3|wP#^E<KF5Q$hAAp|=+J8W!xA{ve1`y2wEKy)~lJF&@oI)eaIY?$lj z43_niwYARx1OfpD2jg^fbmIFyuIp-QNGbdA)YNZ5d9{+`N+3Wy9_Khqr$c2~U%%|` z?l#3EAzns=NVP#b4Jb-keB0Ui?jKR!YqeVM1<(atJnF^&$OG!)ymkHsM#}DOB8$!s P00000NkvXXu0mjfpoSwb diff --git a/interface/web/themes/default-304/icons/x16/camera__pencil.png b/interface/web/themes/default-304/icons/x16/camera__pencil.png deleted file mode 100644 index 0611e47de4af5374a372017790f8b9444033d744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmV;L0%iS)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ENkl<ZILoDx z?@QBB6vpot-^jqXK~gBa>E$9<G+a|0GE!)=xfffFkZMc9B&3=)f2>qYq{MV%;u1v@ zXN0<mOgD?Up@Zp|f;Lh{r27kky?nao#v&-l=)&jT!?`@qJ?C5ofc+25Xf)=rGRCZx zm6gBd{t9j9IOf&WRS-P3oe(o=nO?8IvCCIBo5k_*@oyX*9sQAHGPz4yUNuXUm6d_8 zSS;Av+k?mB5oaouLL?GFzB-C2M|YV_20ERtkx7#Dj)V;j4Z>u5dm9G_hlt1HSXx@5 zmyk}U1r$?`?)LZhQCnMkp9~i2>gr%JnS?<s78Ce<J_Lg+aI|+KaR{6_TME0q9rN>k z3=g{zjc!7#)i#mAa!pMQ3<iTR2nK_go%P}MT^n}FRj|laFj_r=tD1VOt;NvM;l#>H z6dH}DnGC{JRaI1uFqoX2hRZdIPO}B*>cZIRQuKKef}7SJtgk2FboL<>ibJhdKcpc> zRVo##tE+{9Z|WJ>^&pqa;i<`j@yESzya>S2AHc+P7=geVhKAnoO17X>DqF}PUQtm& z<)HrhdA#>tMlRb5o9zMG+PeABK44>G2b-I_SYD1`aBvKZixGswTTmzzkA8k5iASCn z3$b_LB4(#X_`p8$cHW}De^lUh&%p0r=U<xOEhHe9%k8YBq@;Of!tvEVSuVumFBMpr zbBP!7ghD?cVIHs7_nEZpnzGQ~au$3daaU8pmn#<vXNro7dQX5|CX-!a1C3HQzNPW1 zRf^p<Fg<Un_=KF|$Y=(*r<3NM+>+FH4D6rRcU8a_9EjxJW&i*H07*qoM6N<$f}BD; Ay8r+H diff --git a/interface/web/themes/default-304/icons/x16/camera__plus.png b/interface/web/themes/default-304/icons/x16/camera__plus.png deleted file mode 100644 index f3ba46afa818de3db3ece6b439dc24df37668825..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007JNkl<ZI8UXJ z-AmJ96vrRMx|mGpMo1H*qAm)&*bD~qrR`#{U1(donC69I3ki`3VHdtkBC%bliA+{4 za4=s+;L_>Zo5|eJ!B58$HY8<GQ!j-6g>TP!N{EUYbl~%x^E`+1ea<-y0Q(=9*=#<; z${4dYH#h(M_D|@z!fA^{A|QDDut?gdmKlx4_C0RL$HzE2I{J-5q3}o2>GU4e@~)Yr zP$)ojbaWt_&BEn!37^Si5Rb=2X9UIcM!9@GkCv8}9#&FP@|FraJ3EEQ?(QxQ4i1q@ zrLelXN<U$Le_uc`y-_Zg%fVnUJR*U2t*x!FSS&&ynM?|NJ|9A%Fa`#PAsqsjYA(ZO z8-(A#g6ZiQBof=u>2$p$5Y+4SFquq3AQTE=anXmNp%DawA*eMbn5`~BgZ3WQ*OMX_ z4kw`1YWqkarqO7q9U<WHcsX;h+ei7_8)$#<6k{$)aNqh2o0}3wM#d10rqI~f_?VWM zP^;Cbw%>qksv4SwyI5H8V|?7n+kFrB>>3812Qc6WVAdN$Ah3?9sW-fn9jH{QCnS(+ zYHC8oiyCx)?Z;KG5=%>AKE@g*CSLKSeZbb%M{IBJ@sZ+~oP3St<v3!o9VnH`e#W}W zPi12lL6}dixaLuE>Y<;v@D4WMbk4!ycqy2fna9e?CLc}WBS@&LtFy5($AvF<PK@}K z>+aj)7a|({4i%o^cKbfn*4FYRc9+kW4p$UPhbm5PeQp4GqO41vmdoX%f59e`$?9nb zGEOD4muIT-H$k4?tBRoVM=dv18DqWYU99JvBs|@Vv~TgX6LmNK>P-Lu002ovPDHLk FV1lU9J<b3C diff --git a/interface/web/themes/default-304/icons/x16/camera_black.png b/interface/web/themes/default-304/icons/x16/camera_black.png deleted file mode 100644 index 4d7c826035481345f690692d55fd8c02015324ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmV+#0_FXQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005uNkl<ZILoDz zziS#{7{|}GQ-qR15HwP9DoDhjHcGAy!I1OJN$`#s4MwcLa8N_2g7wGPzaTXKK$mtX zbSRY4p+kq%E}gO@TT3W(%>3>9eW{_Piy_13?t9PkKA-nJj#B_AcR_JD95Y@iiZcD{ zc`kT)C^)e!3q<7Cb8^C23SQLf^{dHbg7J9#AEVLehT(81VXjmvSDY26R(?61PLMz# zfKI1_NF*ZftyT-gViB{`F|)>Azu)I+-%#*1kw`$(G%0B`8tC<U+yU8a7Ts<agTX+; z%o=;`cAJ8?6nqPXLWsp;Qcx<DB&k#ihlgcoj~-)s0W3K0V{I*od_IqOJdQ%4K*2i- z&Q(=KI2@J&+qRL(m{8TA*r|$@=oYNnsf3xe<>dejV~2wG6kK{d9{Bx!DbRHj+uJ(` z23Jt6Hev2P#q-mtgqbz=(&;P(A1V0ma=GC1`J})wa*}9N6UQv0SUyJk*-HsCYwU52 z5PYKGr`zp@*Xxx6)7+Qnx+UIq69)%1G@C~fX4cr_8X@@n&u3g(dVt;C(hZr+K9b2a zR#!JA%&g7&Lhyxx4;vfCwQbkLx2__Wdoma6>-sfkDaZ-V1V3)c*`HbEo?ubnx+RNp c_O8G4Z{UrdrKXz6vH$=807*qoM6N<$g5Hz<ZU6uP diff --git a/interface/web/themes/default-304/icons/x16/camera_small.png b/interface/web/themes/default-304/icons/x16/camera_small.png deleted file mode 100644 index af9fb75563b9ffe547b7a98bd41e19500e75742f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmV-B0mS}^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00033Nkl<ZILl-B z|NlP&C75Aw84wZ@!Vnr7$^ZmXAQ~Nm<OvyI0>tS+1JXb=7HopofPjF2%$F};{(t=V zF$RA2?Ad>iJYEBU;EbcA<Nq^f&iwD|pYZ?8-T(iUl-0oO>({UU_xASA#%lm0Bjb8w zW8?pO_U!rZ;2QQnG;Jmr+d75(-@W_5e^*!6JVFK>02#1!>5Bi+DNX-7W}X4#n6y@) zp~wH*+S(Qp^n#6z?f+G)HvOMIXXF2xuC4!Tfq4FsJ^%OZJNMtr%&Y{j0lK=n75nxb z|G#V3F`$j7fcWhHy?f7sX%Gg<<268BT-;GaM5GxP2FVZdq&y%7007N0s$o5e2Alu@ N002ovPDHLkV1f!Pn1BEP diff --git a/interface/web/themes/default-304/icons/x16/camera_small_black.png b/interface/web/themes/default-304/icons/x16/camera_small_black.png deleted file mode 100644 index a8ba67ec7d4cfc5851d9754a783b74a2b7d21ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmV+r0q_2aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002jNkl<ZILl-B z|NlP&C75Aw8NkTM2*yBQ3}d5XLI#8Z@fx53XFxO-97f21_07%A|7&Y&QE*L7&Hsjm zhW{XWyaoWlTPZ22|7mGy|2;ju|DU=0|G%i1B$%C_pARx%3n2q82nq`R4-XIjZ*1ZD zKQwJ77#o<m{|^id0vWKAkO2=t2Ke{{{P&M2``<D13>bshK0bjU1NIa2f~ct2e?Py7 z|6$Pu|MP2>gE5E=5(64=lu#g^iHJz~9}<%EKR7rM1B2uVxga0p4Lmr1kSFB<F#rJ6 WmwG}IStDKm0000<MNUMnLSTaEV``KD diff --git a/interface/web/themes/default-304/icons/x16/card.png b/interface/web/themes/default-304/icons/x16/card.png deleted file mode 100644 index 243caab12b8b0e2d888f8a83f4e7ab63d49eddbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmV-T0kZyyP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003LNkl<ZILoDz zy=nqM6h=QRQi_#D3R^*}eS(y+(!#<nkf<>U5lI9E8%wb=jg^gsg{4oBw@48JLU1wc zBD=D>>w29}5F~{#?!e*x&ACi75D|m{p%=8r<E-NTLb7O%Mh|k~p^Nw7uoUce;s=2i zbm-!BFerJd;rhN7bm*ee@0Z=}R_yg!3p#Xh*X>pu&l7XC(t-|M6g!<qOKqGlms-%F zi+ro~^yj)VGfge%(8X=N{ybMt`d%!wphFio)#}Ty<H(m`$d6?Sb4J#u{GTzWi*znm zGd3HU*|yYry=f$wY<x^6pR7+|k2Bt3O@}U`sZ=qR$-I$BB2fTv&3Npco6%K0Tq)ul fY7#%VVSnQuu{H900*AC-00000NkvXXu0mjfXbF?c diff --git a/interface/web/themes/default-304/icons/x16/card__arrow.png b/interface/web/themes/default-304/icons/x16/card__arrow.png deleted file mode 100644 index f97d856ac759eb848ad8c9a180c8d89bb0683442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004~Nkl<ZILoDy zODKe46oyY0ma<`CVXLrp%WdOUSZE~WUy=JQV?rSo6B2S6$t^5qVKmA@7UVj16QPL0 zAk0KFO*0y1jMsOjL~{G{*VFr*bH3;FEq-d7ouzi2?pvgZRf_H1qr~wWN}9MGO`bFx zMM|-nb5e|~5&d;RT>l{n$vAoqaK;RsNpB0X1ts5+KCrzR)xBe4f=YCz0{toaF9EJI z2RGH!tkss{hflF^i!KvTcmU+>zN0z@B3joksBwC_%=_{JkJtMp_1b-;c5eBIZ(Byp z%qenqfV3_HGCJm_sBUbm%q=duJf2@kXkJ3(27IYCoP%Ae&}hnC&(Cl?KK@FvW&=^m zc}%VxfgN_KsHdmG>2|~V@E{9z*d<A=uC$5mX1iS$?66C@EiKjeE*Gw>R#~vaE@i1y zHD>Xov%5Q4u){8;R8`g9IGs4LSYWc*z-LabKk|9TXLc!4p-@_$o^a)GK-t%~=oc2& zG_2Qeas3hQ@r>_q%?`U15FRcCMn^X=exafHL=?jL*86G3uIQ1!Aee_T3HG_-cmEf! X1e3ge&}R2z00000NkvXXu0mjf7f;|T diff --git a/interface/web/themes/default-304/icons/x16/card__exclamation.png b/interface/web/themes/default-304/icons/x16/card__exclamation.png deleted file mode 100644 index 7d51346b7030ff0c9eeaecf7a6e1894528b4773e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005$Nkl<ZILoDy zT}V@59LE0&hF8*+7hQPMg)zJdMe#075J|7rh8JFlmQG!T!;hkYL0*K3H?GiurG$ZB z5q@-&Q4-+?IuSRl<y4rsopc*x8`FI~zW;;5aAP<+@Z))(=l?$MdEp%D9v`O{6B8*} zo6TVA1e50~=iH^M9PsgzI(vOCYt-)=cCxaMKcHIBn2PsP^#;qTdM^@~gn3oD$Nqd) zP0z>1nvmj&#Uj{Qe*oXV0jN|ecpbg6=bXFLH8P@!#$pIZqe(e-e1*+a5AT5<L<Glg z4Yrrna5)#iU1~ELH6gJv7!D^P1oKi8>{czdw<<6{*MY6gJ20E>!Lp)(&N$ReEe1n# zFcN|9<RpQ^gGHErRAT>68Elq9`39^uOOeR$;^pAO*VNG0*WwR_;0^>5Sou~5+eQhb zzY0j!TL`$G$;#}SZsXnCo4=^Gr>E5;-sbdr6Zrn65uZm(k}~t56uqws7U{lT|L8av zgx&2<3+`~2s@mHhJH>T(kB-uUJKUvmt@g>G-w&%KVc+8cuUXm0b9u&V?oxqLsgq7m zVfXo<>+he>%+G)NW_tQ3`*=9x8Si1w9qv+&LQ#9YxVV$a%*(40pXvtdMV4yDU6Ii> kK`sx|Bv<Z=-~GQh18It-9=%9~r~m)}07*qoM6N<$f-UL@>i_@% diff --git a/interface/web/themes/default-304/icons/x16/card__minus.png b/interface/web/themes/default-304/icons/x16/card__minus.png deleted file mode 100644 index 6711e6f3423a7d0adee9ef5dd63e1a32ab8a6ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmV-(0gV2MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003xNkl<ZILoDz zze@sP7{?zR8oQeu8e9cwJGj4~u_hZD#3i`QtVpDS1Q$nfQYc%55)yKX{(<~28p065 z!#I&UIlc3IdcQ#+M#hUTe0ZN<pNDsOiJ55?XypZkW^+eiEaO(!U+xv9v&fyIJkV96 zalrqaM@?flnfygnRp05NUQY$H8T&!-Cr^gK*J8;$H-dtuwdt%@OL=0*^?fPez@>Dh za_CN{Y>&rMz=2EqrBd4QJhnz7Dd51RM6q}@5F2~Lp%if7(r!L~{OP*fwJa&%z@_b6 z?xZK4^w#f70S7K^WiqE9j>E5}$(_M~5#vTa&teZTT-uDsv*u*NUEAhtx%?c8MlY+a zRvY;|sG)}$<Z$59dMuVub^RQKB9T2J+Q9u&Th@asYP2Q@qbW)F+g<fHegUgx*|~RE RB-;Q0002ovPDHLkV1jWRsNw(s diff --git a/interface/web/themes/default-304/icons/x16/card__pencil.png b/interface/web/themes/default-304/icons/x16/card__pencil.png deleted file mode 100644 index 8a2ab2063926f4ba57339798aa718915ddae01bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmV<K0TKR*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005CNkl<ZI8UXL zPbh<N7{{O2!BI{Q4o*tpENX>v!5m~Oij(qph~&TQz(K7Qo6ADGNTZQ5QG|qpBWC_2 zC9^ecY17MQ9>4EI7~1mIr{C{+zQ51YulIdv$YLSw++0kITE<DOR?}2gR^Fu~E$&HD z0mVB&rBbE0<>n5uR?AD0w2c8}g1T5R&bI1mG@4mimbprySRYd=`>20rrk-PXysmBD zUnynT*~<olf$erX!=-Msxgq@W!l7{ZS3I{{yk~op7pDvP!m+_{;8MHE)DRSh<WT5G zTsND%Yb%M!3qn43tVQ~8;8K&(*eE|gv;Xliid*Lq?<^NbWb0G`pB%4zWN_e8txnez z2nN~v@DRn;Qa^Lxl;<b&`RH)@O9lrnRSyq0`@}@o{e2Wf#D<Y_J~&v7%HY5y)xbc@ zo%k%*UT<8$flJEH&Q_PW(xt}}7jWQGkw(+z3<UVh?dB_=kFm#!`ZM1%?BP;&MMa1E z>4~rXe(uogZ3!6}Jrh>z4(iXKhYV*>!+}dlnVHqeIXPV*AuX*^ytq`X@4de=xS~gi kf)s>t0w<BgZ~iY{0a=K%7x8pqqW}N^07*qoM6N<$f*E%1RR910 diff --git a/interface/web/themes/default-304/icons/x16/card__plus.png b/interface/web/themes/default-304/icons/x16/card__plus.png deleted file mode 100644 index 817995bee67a8a9b83da434234b8dddb1824beca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004hNkl<ZILoDy zy-R{o6o(HEK_Jm!4npFTWG*Q<WfVnIEm_du5}BHrk=O?$)L@&qWJE?`rJ#aiOJlD7 z1r22hr5K8+`0eSQ7X&HNUV7o-ch5QZIo#oeqi`6GBayDm1=j&WB7pGF1tZQStA*Dx zfWI#2za0h$h~kFqE>cq6Ua-J0c4PEr=8;`a5X%`Ow$H*VSqKh;K@;}))R8Hi{#g8h z@Lc)|`+mQ<*=k|E+58p5gAG-8lN`!7EthJ>$f-64J3gPe#x9lX^`59MCs6V-#w9uA zg2n6IC^s5ds8o8g8ZhDbiH1vZ$b~hx+fuC6Fk33|f*f)|?{aPC*!EOD&kJ(Mg(atR z>$6<OWH!qSa>#{whr^a)PkPQ|ctH-iFl)7LzZZ-6lulzJmqR*JQr*e-8J)=mrA}v0 zSF4yT6wvPR+zaILgR^KfMs+9DqZ!?ynjCUrK%vkNYBYO<Kq_4U010Kg*KI~F>p>qw iOhcZCIhXzF|Kbazs-m%at}n^}0000<MNUMnLSTZP3&y_y diff --git a/interface/web/themes/default-304/icons/x16/card_address.png b/interface/web/themes/default-304/icons/x16/card_address.png deleted file mode 100644 index 0ab99a1df71ab474db687e7a69bf554bf9578b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmV<90UZ8`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00051Nkl<ZILoDz zO(+C$7{=cm9OdNT;Hu<2r#)>>8?|K)4x5X7e{1s*<$wb%Nl0qrvIk|0vPoJcmeeNX zqkJVwHrh?QT6WDm=9$_JMX^)A-uHdp`Tb|+Fakg_K{7s|e_^4_pyr>HNw3FKi+^5p zrE7k^PSbTv?`dCHKGTuZv>%~ESK4Q1>k>vVx}{-gWE`rhn$;cD5l<$u9t<LQb%pJd z6LU^MhpseCPS(fY-{IQSVYl1UY+M4-*H@fBKBnQEf(~7&a=98}i3FC8fr`p%*laea zj%s+1fbh!;RssP8PEXC6>izrsphH(2gM*C`<3#@jFtdCBtJR7*-yv4dfQRR29Nyl3 zff=DgSJb|~=BIcZt_`4VzzvJVf}UYF+`GVCIE+QV--J)~?d+Htp+i?noz9jA<5jKB zH7JUbrgLHq*T#4M1Rc6k($v&?AB*8U6v9m;0`{z&Kl6RZo~{&^mv@BT-f$O<qGN2# zmsMEUJ>~UoasCW5?syMpI&>wcsK}A4D4is$prArT@>x^aZ#%k1CfNpgT>g<f)6Mj6 Z`~U>k!;dk;v(5kj002ovPDHLkV1lfx<Iw;B diff --git a/interface/web/themes/default-304/icons/x16/card_small.png b/interface/web/themes/default-304/icons/x16/card_small.png deleted file mode 100644 index a122163ab5d7b30c18b5b97496d1af6de1522025..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmV<803H8{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0001~Nkl<ZILl-B z|NlP&C75BD8Bn)kg>U`Jm1(#zNFJ{N<qH>P0O|k#{{6$iAOMxeZ9wj{X_-I&{{8>$ z*DnkV5(mlSH6XF8EBg~r@tZGSFfd3QB#+mCkeZs@_rHJtfBpUY|L31S|9|xE9he63 zLE<2Jyau@C<>lXf_wGHDx_SkOehRc1nGcf3Yk;b^cetRLSs74+1c;V*buB^WgXD*M cN*oXa0Nmp60u?XQ$N&HU07*qoM6N<$f~MAGf&c&j diff --git a/interface/web/themes/default-304/icons/x16/cards.png b/interface/web/themes/default-304/icons/x16/cards.png deleted file mode 100644 index eb20f4a730d2be328f13cd36f91044b1e650f45d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmV;I0cie-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004ANkl<ZI8UXI zF-QVo7=}MuYHA3AYICy5C5R9jg&bVMt-vMg3KN8c=%N~28eHAPMGkdpsI5t8)WJm% zL6D%h&{OQ>6!GhSm0v7~>*#}rpZo6p-@AvHnf?Ra<Z?4^^Z9__*a3mb#j9*qaw1xJ z{0A_|<ExXBi*y<&qw$!BqmeDhAwMa&D-`Hj(<qWkom%3hIT+Z29P;11<C%>1Qmb*X zTK$!Bqrrx0^5<~KN6F-wWAEomh2OhfHY|$|6N!jp@266Uo2?dq^!vQ8s^^ZqAIoKK zb~^kfH2kqxl;8m$c-ev6ZaDl<Z?_Fy6z+sVF@gtt;AIDLdx~<u;C5fGdcE-#kLQ5k z0UvnTft)`YRf%Xrur634c)&+`;jHWWjQPFv-VO$7Ht>KCyzpx{Uwb{4%<rYQfHr-; zX#qUogOGUKl75n(d*qj0E|Opt1#2|*vSaE!H(&pW#Y;X;;|Bl$002ovPDHLkV1hab B!1DkA diff --git a/interface/web/themes/default-304/icons/x16/cards__arrow.png b/interface/web/themes/default-304/icons/x16/cards__arrow.png deleted file mode 100644 index 10015f291074a908d1e50078a7b711af28073abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005kNkl<ZILn2P zT_~hs6vv<3aOFa&<<1pZDXFCqE|^*udqI=bD7CSMn3@_TBOf)fE|eQ1WxUbs8%o*Q z^|5Z&*Bv9dkns@{jYbUF(U_+Bd(La0*U-Gpsb8n(^nXt0$9iUFn4oudmi5ieX;L=f z8!vZWZS!8={$oYSvv&)=aK33#=J1@2Ujo#P(&i-Pm5*I6m!KKEqA~O@U7$`nQYh(N zg>n7_BVH(P!|1A{oIy*hPA6fCM572tA}TdMefWL`eBB3XcVDp{0w25oo~z#7vdr2X zj+PMr6nuJ8vAFh7Ik2vv>-mGCsS{MY0sY_xD*9#VjdzD6$y*)|)(;NiQea&`-Ws6m zTEz6mDH?}|TjP3b(K5D)+*TQm<$VM~A=KOLZE?M|pxp1B9e8hUaQ*m*8k?;>uD2GH z`{j1Sdv^z4Fo-IP#mva#UpR~aA0&curA<u>$G5iuKVMkf&|qQYK|WXa_X(lgXOn3t zDLcC}U8n0v%g;A5@*p4bN(AMq%w`*7ER&PLNnzwcKEjLovEQ!}I~U%c3<jnad5{lz z(P`8#9v&cwoeOUc%hBs!7LW(|P>4SZg`eR4obstzSxi8c%=z%&D-kc=G4%`($eKg% Suf8z=0000<MNUMnLSTZ{?D(|+ diff --git a/interface/web/themes/default-304/icons/x16/cards__exclamation.png b/interface/web/themes/default-304/icons/x16/cards__exclamation.png deleted file mode 100644 index add6f0dc8231d02fb70bddd17a034cff4d7ba138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0<QguP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006QNkl<ZILn2Q zUr1A77{<T4sjDu6pt=b!O6kG~LzWOkA!*@FxQqUPg)O(V!N5^Dv8de?t&0MoK#dwh zCxoa$e;~ukywHUVTOJ*T3{N|<KZkW>Tc<sJ?{Vj}#$qr0czECQeBbvzhxH5&GM$@4 zL+qB{Uy_-zO&2)Br235ftmuL!&gEj<{{HrNqkBIm*ZO5r>hs^4w1Zt<uTC3y<%)=l zqgWNLK~;vic4|Ep`L#9ZlFq(9!m8$S$g1jJeq|ucv?3)vg4t|_yn0XT)!$i=-^ktV z^RbTJUR#<UQZg9>G4cwFfs2qM-C&GC{AR`1X)`48Ey({*Zs)*&?~@>4G88hHczp)T zAsa%$6L>l9L~!mXf`L;APPf7G;C}mmb8Fe7Q<$4PiSG-?5T38mHXsepAHwX!addgk zdP?WcGyA?3%U?{0F78KEsDcu^p(zm#9K@4{d!|a}*7^9xhOy@+gK_U+cpo3Yi>I|1 zd1k_$+xtGSOCHaapV=%Dic%Kx9kEzOmg4b*#2+xVv^dy#x4R>ePUD9xmxX){R_oo( zm6g|b)YUn+S6827r(LeAYwPP+iN(r7zDB#<#ee2*&MwYY*6489MZVrjG6`LmB*~y~ zPD=jT=4NIT<)A#2i&i6zq*Bl+oa?zctg60#;{wV-dC0`u8a<y*@tpkIDk_)`)fUdq fe6DhA<SwW`1UiVDr}$`p00000NkvXXu0mjfqw*zv diff --git a/interface/web/themes/default-304/icons/x16/cards__minus.png b/interface/web/themes/default-304/icons/x16/cards__minus.png deleted file mode 100644 index f9188b272147972f5562b178383dc80146006e53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004qNkl<ZILoDv zKS)AR6o(HjH6;W=wK>@&q8K4G3OTrhTcL}Zg$Y7J^r9ME8r;Ha5El`(#i53vDQO9G za1lh1Bq$93VVa6~x<`BBQy-7$z{lkse)o6Z2Z#v&0Zt>4A!pI3kzxM>#{R|QP>5%j zwPJ6K7rPxFG@1!+wAuu{+Alc_1PDjB*TYV?E8v!ezs=?eE@iUUe!+Px1}EV#IQ{;; z7Q4`Bw*|zlR=iTH1zfXIPNhl+ygk8S_&J-!r%XnaR6dWDMgzY(9klv<`=Z{{pm|KE z@uOD5N~?uCUawQsdm5CxPbRTYD&c3diCY|ZAnH90%H5?>Sg2O<ooN`{ZWoXT`H+_s zl-sb`;<<9UQe=he7K<CmgM7$K3d(Id92YYR#nGZp=UGrHw}Cv!hrFbqoWbSd0APi& z%$Ni6ARpd~&RnrLWOUDaubE6R9P%I^@}gg(^Q~S-p3yz;&45+Ceo#Oj<U=9$sp0*2 r#`lz;m&<{NW|pz^>m|j&dt`n935uo{aduQ+00000NkvXXu0mjf5JJje diff --git a/interface/web/themes/default-304/icons/x16/cards__pencil.png b/interface/web/themes/default-304/icons/x16/cards__pencil.png deleted file mode 100644 index b160038b34a3084aee1d0aaa313dc3f8f97a927d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005;Nkl<ZILn2P zK}geK7{<SKsZ&A_ST|1wf|npv2v#6u(Is{e3cNI3VS_<~a%1k`K@T33VW+jgF?1kW zIuE94VG9C1EXQhDgvykan?vX37<>Aj|N6!>++O(c@x46n%li|Ku`!|O9Um7?zrP~( z(NW=UXlVYa(@h3-I=wit;I5>z5>}VX-qYUx8cruBYHHTB!5*(y(FIwBQ%LN*$D8SC zWHK3e91aW^jYHbmT=LZICZ>F$fLuQRAMw~Cf`L28#GYelco<*8VK86vw)=dddt~HM zR)*6@N5_b5E?{})wl+NB)*}*r3+9+V=56(Od>^Axe27F!EPeJO;MZ%zuUt)7SoR{B zPU9e#!^6SB#}&O(f1>y_TReNpa}&S5&tpCm!cHoMWHyTjeSO^(y@P>X;NTl3U*5ov zuXA87u(E=U-Cg`XJj6Yl?a8U$L<oTw{RXUs-f4g4W>#0RvA2h9snKS!m<2uPL$7Ku zcim{5T2CaBak;Rmqr)QTK_7ZmgSlHK)4-Yf`ezqgTC5iu8}AEx(1%{tV6M$<wn??i zl1q|vf*$lyUVPW%@e<{I<$cXy5T&9Aedxv0_-^g*Ls8yW-V$-8wY9i_9`s>Iey=J& s#mPSN=j-Z(f^}9>`_HQyMenlu3pARSKyk!v_y7O^07*qoM6N<$f;21&cmMzZ diff --git a/interface/web/themes/default-304/icons/x16/cards__plus.png b/interface/web/themes/default-304/icons/x16/cards__plus.png deleted file mode 100644 index d078c6bf1610aa92fc83a7968233b5f007a2f140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmV<G0Tup<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00058Nkl<ZILn2P zJxD@P6vr<u1w}&;RM22U3WbzXgkj+z<j@i|RRm!#3loHd$gl>N2B9H@0_jUEoeBz? z``F4g2%(aoQ2fFa74dYBb{}f*@ecer_a6TDaDT*caX}c{em~g>1VkbJ_5;cjcD!Sr z)Ge5#aALH0W$(tg4Y2>sCd&^uy<WyL&??ozJy=0~r7JTN<@mGWSa)Ck1}<6mco0*u zRDwdWSc57s4!W<Ye>A(hKX~sgpO2W`?v)&Ukjdw3SiCjE;HkDuf4I_BXJgQ_r@623 zwjCY$9$#PK?&U=g`Th`ez4gJs;VAqR3Se}(Rz<yq;LcZ}*P(>@6C)&YIhb=g&7$5y zVD9Gm8N#s`M6+3#vfI~0y@kNsbub9wWD>qI88BF_7J?q=lb{1BFsEHwx(vnRi3nXd zvanz!=z%`psgxv`n=qMn8|3nhc8$i?rc}-n^gti<k^*xEi^Wa|>7sN}nh1KJ5A(tv zibQy-=gfO}dYbTs9_WK!_%-aG=`=8^=ggZz6ncGS0eYYhhUitz{229f%(u#9gn`va g>G<=KqT*duzc*rt+=<yH1ONa407*qoM6N<$f-E29hyVZp diff --git a/interface/web/themes/default-304/icons/x16/cards_address.png b/interface/web/themes/default-304/icons/x16/cards_address.png deleted file mode 100644 index f76d171dc627580fbe609f1eff7b931a64ad2df3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmV+^0@nSBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005-Nkl<ZILoDw zK}eHf7{_0_)Tu)dR5wp{@)EQVf?WoE2M-HR73`9>$`*r+Xq6!n6iB<Yn^<hF&4W}F zN+biLwHS&{X)uPtR%|SFicRL2`}h7|eP5;oB|Y%t;d$Tx_k7>)69B~jARa^_hQ4UD zL(;tuI@E)ALm|x-xfP9nfW<uDs+Qau8Y1p`qk+%4ElkAcRj<|S$mH|LFD>C)v8ZOk z9P?_y!_iT3FB}#<fxy+OynHh?hv3KvCKGe0Y;NMm>Z*Y=VUGD--o3-a;ZK<io=?Q! z4+il<_NjClWAV6QGL=GVaS^|2HC!GXytZ%e4{||qZ4KpW6_*AEdW`q8FI%|nkE*Uc z_rlz}>1pJam+^CB1Lu9d8^-(Qlb3Khop=<8D9887B$C-IJ}xZm@_surgPi;qg-QjM z*Xt4VpwIoMAy}4$K7R;hdHJ<aFmNW!o$cy+m0ejWm*m1TE|*u(gFdh40lVFf@idg< zSS)6U&CX&xkx<^}-0sH*T3hcNZEx>A($;oS(1Sh>S3hhv8!lY$SB`&zIm_em2_a5M zj!O;+deBFEv1dyqL-V=zKHb?VOwofr^x~(ne_vmRrukfZOT<ZsV|xKT=);g4Pia5R r-gD*;x3mZi>!9S=j@RGV_HL@*d1<Dmus0P000000NkvXXu0mjfie3lp diff --git a/interface/web/themes/default-304/icons/x16/cards_stack.png b/interface/web/themes/default-304/icons/x16/cards_stack.png deleted file mode 100644 index 51972d8325f477bd55d71c53097f8507b299b6ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmV--0f_#IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003#Nkl<ZILl-B z|NlP&C77Xp<w}OS<;xNDiWR;<b{bI_s20Tl5UyIhI2~y6|9=E92!PaL*j%+_$&yod z?)*P_>lRLY_3`8XfByaZUo?Am23a;Ax_0gV_dkFBXHA}*MV8IGE?oHk@#oL~iJhI< zWZAsw<jMbUzkmN9R$rgP0P+XO)L%ded>Gm0HAj#BfARI}f1l#wJO+?IK&F2F@dGbL zwt4ZsecxXF`t{!?Ik|uV<PVUkuRnjri;->C4-4BQZfjdAVqg%%0P+XO)F<!X<Hg7} zn?^*`GcYhn0Wl{7$R8k6AAk7pA4cDO^$LuU#n5f$5E5bl1CT#Jrrv$`?md%=N-Kzd z^5x5a5Qd7ifoKeyVE|}aG{{sYb@d7$*BC^D_}IiyY(@g?Kr9J0nGoj0&`oJ}1_1oq VwIc62J^TOw002ovPDHLkV1hLFui*dy diff --git a/interface/web/themes/default-304/icons/x16/cassette.png b/interface/web/themes/default-304/icons/x16/cassette.png deleted file mode 100644 index 54cdfe3afdcc61f9814fb907715355941e2e017c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU<~ziaSX9Iy>#-%tV01JZIido z7F03mR%lx6#3IaokcGvZ`Oy--Miv>KmI;mmg3h0emg<&il)SjGP~q-d=`W`Lp6zeG zaBz{@hr)L!E${p95a4VGVOd$wpmX~6oObD(Mh^@<g?f%B=a|jzexN72i>D%P{dJGa zB7q{YEafjRq#ih(wY6#8>-38zyj_dtXiPu7z<E03`a+q*CcbaVtk0ww2eLOeE{I$2 z92&~vsF1ei4M<P4MB9t+zb$0=G^Tnj`n6Ag#nr48VXN!Yz>>d<b{;9PI8wL&_{Rzn z)6+(b`xjlz=<t5rGu0Mo{f`J8u>zUrI&FyyZsyF(*ct`0Z~naJiB@ytSV8hdvEqv_ za?JH(zndq%H;#W=>cMTfjPKjuTRi3ix_9cQ=hb%e7vIfGHk#S+{Qm>K^2%kW8<x+R qFTGIv?$eN>ck7oZ-C0!sSU+juoj=E2zeWMWnZeW5&t;ucLK6Vf&9o)} diff --git a/interface/web/themes/default-304/icons/x16/cassette_arrow.png b/interface/web/themes/default-304/icons/x16/cassette_arrow.png deleted file mode 100644 index 48c7cda85969691490b8bfc608e9c35786bb5013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005jNkl<ZILoDw z-)mA~9LA5tg4QDRP{<?@L~ziBgok-F5Y!O7SUV1PVx>Zsf`OKZG(l`ATI^<QyJ!@_ z)@?tAV~j-v6%C{)B5-uEh@k$2g55lw=Oy}aA(QsPhv$6H_x(H^js!s357NF1OeWKe z!Gr%~h6RrrjRxZJIBK<8U+^v+x-3|&R;y?>n<$k^eZjkQ=(1p~QmMe>@$|%Iv%zAq z{6>~#(4otMjdHmRpU;PSy^druDKZj?2%JtQtX3-ug@V{IIn$xbf+xjd5y4;(olXa4 zvsq*|n-w@54%qGXe|DVd&}G51d_Iq8G>Ue+jc&Iqvejw{_!TafOZ+tMn4Ia*Wx<PF zE{9kw))Q4#;dZ;BUb~0Wt(Q>rBIwX%!B!@dK_ZdZlfbQ4So#W)`t=1CY_Z^VI-Q25 zY4Ccz@caD;1Of<!LI{V$7`<{Er>55h$IdO{{KFm0eF4-PPa!K4pCsdKr&1{>iUM8N z!RNmTt!(4wXW-%oVDjA`N*{p}mzIC9;IYBCUK|Zx{Vq=~?vg`ev%90qJJ8+&oCinF zY_ed`;JCr?UL2Xa|Ni82fH|biU;gFxcMgo4l@4lmmj=e~yfN~^;qiI#{wI2G*P#Gg Rm$v`_002ovPDHLkV1jM%`)B|F diff --git a/interface/web/themes/default-304/icons/x16/cassette_exclamation.png b/interface/web/themes/default-304/icons/x16/cassette_exclamation.png deleted file mode 100644 index f2befbf31cf5d1dfea8b8421c81321a8ed9aadad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006BNkl<ZILoDy zPiT^19LJyc(xFZ&gk%Rv++u5onu2LysPKk6DTtSRUqRIHpde->IU9<$8oLx7#)47n z&>vR0ji8_?=mi@DG3L7(!Vb}p>`<`F2);eP2kH<LMtkAI_x-)k^ZoF=ye|X5_5<6u zK$4^h&g1`Nf&>e-S`Cp%1eHo<PtacKP?rQx%jGia^*RcL!k(bL)S)g37E7fP91cfc zEEWrlM&n;hCKISbT@pMm7K?DZ-KbWpP!vU^EXxAB-43(aj9e}!)+lMF4s}WJBA?I0 z=kuY}YQbPIh)k!`0-MbStJRA4Z^kh_en2G6)S)g3US+dc1cN~|n@zOaZIO*eLqMk( z85zX0dk*~U&5NX&I@Be>+e{{da5&tTq%wq;3uE}T{fOr|DA8k}4s}VOrBW%xVzFIO zmGihWJ%H}!r1*SWovVDd^Vds~KqJ9QB9TBS6oSj;g2&^5*XxDf??)gIKvEsW(*4u; z@#PBt?HIP!FJN*06v~&zNU*}6F<n(vIGs*JqfyZPAL4Npw;O}dKg6N0%2-~yh}Dm0 z@$U5*%uJo&0=7<qC!DXlF+3oBo1HT5Y<}{gvo<PDK-pPyVCMRvos+}TG6@cH4s(wD z%j`Ajp|06_-Hjo1KOe{T_sb#)T|3%)a8sIN{jRXg*xeiK*4!l1`a$cz0Z&=-G@^p1 QNB{r;07*qoM6N<$f?|6Ug8%>k diff --git a/interface/web/themes/default-304/icons/x16/cassette_minus.png b/interface/web/themes/default-304/icons/x16/cassette_minus.png deleted file mode 100644 index 60ab78a95f8bfb15c245e83d2e00c71f312422f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004hNkl<ZILoDz zKTASU7{<?CQwRSbl8YdMqk@8e20;bEDKChVItW@03L*}|O+?Y9rG$n)LsZ;`prN24 zkaqh94Sj%wmZ$TaK}aw(FZ_7Vd(ZhjT+YiC0K`6sy#q8&8%nPK$&djz<M9~9ViAME zU@Lf*4qXP^8HRz$WP)zDyA?c3hb{x|`~5y5k;q28UN0OD#|o#@2|9Ec@X+h^kVqsj z8jVn?R8-C7a*9A80FTFmcDt?iSlQE|%YesDr-O7ljrn{IyWOs8qtQ_K{eJj-zF&Ln z>Ck1sQ>)cNKA(qanpi9rs!pd<1-~K~45~}x9xHn~bQ$o{Y&N0m`bOgMI6|S&if}j# zI&>NETCdkpE|+(L4qXPk)oL{q3I)VsF(i{oq*5tlG8tsES;eWG!pvsFh1H64iv^eR zF0NcIoM_sokk5OyT17M(MX6K**Xx|gu`T5U)-i-wGT>J7@fSxzd>sq%y^ehU%zy)l iTXMJ~ZsqR#H~s+TcjK8yG(8vq0000<MNUMnLSTYhrNRjS diff --git a/interface/web/themes/default-304/icons/x16/cassette_pencil.png b/interface/web/themes/default-304/icons/x16/cassette_pencil.png deleted file mode 100644 index b226e3c22c42e8166542bbe19719d057a5801dc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005gNkl<ZILoDw zO>0^~6o&6?y9sItHnw0e5;p+}3Vwu$A0V}h;te7~^#*RyBCQe;Lj<G2kGm=^lmF0? z1iL7d(nX;GX?F!n|3ILN(oMm3_4d9)DXk<SBm)m;hI5{GhEV`0H$k~^fDmHe<i$1F zXTVXf*Fz?gLA%|)5}c(&mjNfORttl{0QGwPN^q7AT?V{tHk<JId>7(yIAFC}|6;S* zK!+{^UNssGghC;7yIm9t1zD5Hq{QuZ!)~{uTCK_+E6;T3GT?QsRzoZn!+1P~#bS}Q zR4PeaE*G3m=YPF>=8N8#!C@gjGT?2cQb8(}!e}(YWHOP}FboM_;qiFnr?J=X_o1$? z0-X+qLVRbyyK=b<RaGw}7!1Pe^&)+L8R2jk)9Dm>v#ts8i2<j@ViEa#{!;2slQ<aM z!Srkw(P$L8T#kQm%772Lt|OgJBM=D48zPYi;_)~ViG)PUtzoz~FXh&gIXuj+gAQHA zT%R>fgWvB*Hk$?a|H7LOjk{7d8n;p0ipp8`=rZ8g<m@~a=asLWs`yEHdrSOUSyH~u z%+OVCnJkzr&eGMzGyM31;jVbEZz}3cf8mdN>B8d&;`xpyHXd!BKkysMKgR3wSU)QO O0000<MNUMnLSTYm!tKle diff --git a/interface/web/themes/default-304/icons/x16/cassette_plus.png b/interface/web/themes/default-304/icons/x16/cassette_plus.png deleted file mode 100644 index 9669097a48686d4446ef7d3bac7b01dea6fe1544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmV<G0Tup<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00058Nkl<ZILoDw z%}ZiY9EOijL0=2KLx>kj5<!?2E)@J=kWoQ!r(mvB$WRhSK}^aJ3q_%Ufm#Ip4^d%@ zphZE8Kx)&*mO+aKCYWVGo45NOnt_?YQR=|Mdw%zv=jCt(0P!Bgy9;zW-G;{A8`)sN zexuPqEEYqpRvQT3r9+nmht+Bo&1Ms&QfVM~mkwPP991e6I2?|isHzHs!SEYJQ9y?- z3y#a>GCUp+>h(I3$)wCsC?v63tuPvmC=?3vjLDe}T^5`ai$(bTesnq===FM;*=$x~ zu~=X>oBufDOouKDPV@OZ!r?I5?KZmIuFO`eCE+V<Hk<ruJY#aELze~Txm*s>XtXD8 zw;Oi59m>iK#<omQR%bwmE(<O)nG6z%L|>F03l@Ja%cMh>1()e`8j(l@E|&{luNOX_ z4}m}c!C+9Lu39nqRmH@n39*L^^xvlOVS5(3g^3?RTQ{jx3QngJ@pv5E|BbR~#^>+R ze-LYvPb@glxc@KnqmQCE{!HfXKH=A1`+mlPF^wq=Q(xA{uT8ff!F+Y-4!GPyLVOw7 g6-&ccGC6DO1sV3f1<<d)qW}N^07*qoM6N<$g6~4pod5s; diff --git a/interface/web/themes/default-304/icons/x16/cassette_small.png b/interface/web/themes/default-304/icons/x16/cassette_small.png deleted file mode 100644 index 8ac8072deea91b24d65b414d6e1bebb489c9c965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`?Vc`<Ar`0aPEzDMq9Ee(kRzsX zcH$1kSphcNS40PH%?g#ZW!Mxx)2MF=XM9Lb(4^@n|9H-GVhr#P&=<~FJN;bxAtlaj zbBvRE%qyPjaqd%OnG$qh%eAC8cT^9qzs8l!Gee|j?rxPE!Co0_8$A!+*y-JLxSId@ r9o~C8{aOF6om+h9*SGmU#1FD+{8@SDRc=r-&`AuQu6{1-oD!M<lt)ZV diff --git a/interface/web/themes/default-304/icons/x16/chain.png b/interface/web/themes/default-304/icons/x16/chain.png deleted file mode 100644 index 4c93b294d3bfa760a122847b5419a9f4e5f90199..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 358 zcmV-s0h#`ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003kNkl<ZILl-B z|NlP&C759t7~t#c%MctKY#b625)Z`bNH`uOj!zDxm%+!!$22`Xz4q9#W4G_!yZ86; z<H!FWJb3W;#EBDk9UUEOKp2}GNDoLagR84+>cN8t?=&>j9~BZ3>StkL>FVg{_&;;z zOcV?f1IdBZfYgHYfb=q0Sy>fbzI^$Iyu4fkGcz*-NYSA~2mfEYcJ=?OSFirRe*OCY z?c2Bh16=_&0Hg+_7NiHHmqA}&KX22f?f2{InzsoE2owPoRF{{R|Hp<wav(JzwIDqp zy$rm(yiQtLI#cJ&S^D_Mk&Az>TzUNe<jL!Q=FMCF7$`msgmK7C1?gn~0wJKu;Xvm# zft-khn}FicAdEvU9HbXy02dI80kIT`SPZOpG%qj!0G|&@a%DF0HUIzs07*qoM6N<$ Eg2J$y_W%F@ diff --git a/interface/web/themes/default-304/icons/x16/chain_arrow.png b/interface/web/themes/default-304/icons/x16/chain_arrow.png deleted file mode 100644 index c0d7642cc9fda3e2de4a7d45883738feecb2ef05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmV+w0_y#VP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005pNkl<ZILqCR zK}eHf7{?#j^pJcp7K!fALT{psk`M+RChWFBYePXl9Aq_!>L9|fQitv^x)f5vr&Ca@ zVUVCu>-yOo6TXZwGiq*4KNQ(c-aIIe?_ZD%mIdB?;m6DS{Qtj)mzbH(0-b{eZnvAf zUT?F{=kp5!C-7r_S_YR~F4v7fAkd#oCbRi`{y^7tE))s}sZ=WGa5$cUav2=B<a9dk zsj9jj3Jorq&E^+Iqw#qp5@AJA{s1#%=%5P+F4^t&o=hgQXSH4l84LzOX>n2IwY6_t zEEc&`DseXZlf^HN7NCPJ9Jpk&*&Z(}#D5J841YA4Og*CTG#CtWIgp`)E*!WdNm6S= zL*wgc^o^cKr1w`>bzWZnzCSq`)5Uxg9A|^^B6qyq;{NHxE*!Wdj#+GO7vCGg7f&!G z=AGa;yEeSEqiiu>4=1;+o+qPlvEYKBT3{(hUH8~*Q}|07RCUGDo$qt}a+A3!ypq1^ ze|48mJC=?Sx;eA49Vsy1$uPHl{Y~!==K8+R+Fxa<MJCImPgMIbuGBpEpn)p?JFR6Z z$DS2tyhSGebAc$*<@@t=se6tjIi@wL%(yRh&C1CBdqL&x399r&m5N*Anz&`L<S07? XS6S(T$O!9E00000NkvXXu0mjfiaPYO diff --git a/interface/web/themes/default-304/icons/x16/chain_exclamation.png b/interface/web/themes/default-304/icons/x16/chain_exclamation.png deleted file mode 100644 index 74f3277acc50d597440202cb4b408d06efae233a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NB%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006HNkl<ZILl-B z|NlP&C759t7~t#c%MctKY#b625)Z`bNH`uOj!zDxm%+!!$22`Xz4q9#W4G_!yZ86; z<H!FWJb3W;#EBDk9UUEOKp2}GNDoLagR84+>cN8t?=&>j9~BZ3>StkL>FVg{_&;;z zOcV?f1IdBZfYgHYfb=q0Sy>fbzI^$Iyu4fkGcz*-NYSA~2mfEYcJ=?OSFirRe*OCY z?c2BhpE_9ke^EcvjWe4W6F_P~dO&&^^!4@gHf`E|zpk!%n}C2o5zvt8^78Wk$hfMq z<p0`v2LE3^n)Z3=ME28-4YfN!dO&&^czJo9w6t`l&Y83H@sT4J|6IB9`2We1*Z<6$ zxBM|sd>RO^Tv+h>*4dnYf4;8%fBRhazg3G0UxW03^fCZ}5YX0epwpW`&PT#cK=Ej9 zF6P*&&CKUtK4|+98XEfl`JLJyAU;q$5~LSo02dI80kIS|+)~UKd3uNbxsOk3fRWDd z|M`uK|3^0}odb%8LiJ(?`kIUkyB0Ar?peY(<H5DqH`gz_|KGZ$^#A3H4*xHnw0;8; z2gzgA+)>8JuyrmY!?t;hmWS7g9)EDt>HpoU#$XqK=(|@<{vTY!dmJQ>p&95jhK)1f zc+Rbp$}eBu*82bQmd5|DZ!5tx2;V#|^AaSFqB+Q&fniB60x#-jn6jXg;TSFqk_P}p W1_h<)_q8<u0000<MNUMnLSTZKn<TUV diff --git a/interface/web/themes/default-304/icons/x16/chain_minus.png b/interface/web/themes/default-304/icons/x16/chain_minus.png deleted file mode 100644 index 67483b8c0d0742302f31b91fd5455ff482e1f226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00041Nkl<ZILqCW zu}cDR6vrRv6bQ!+4Gp<V;1DftMs7MOI0QPyZ9y&$njO|~v@{tVh)YGZI@Elkazcw} z23ePIoBjbcD6jWzGEo~Ef`0H>-uL@?yyZvCOuvEt!Gc&UM)7!jGm%K71#OBn=F2j; z6pco=G)+5fHk*CNaVD<o@?bES*tY!|4u|t#UIqs)MIw<s%d%c{{iva;>Y3N;Jv9u2 zP1F1aX2{S%7Y<wsg+iH5r}N?Wuj?L<hfu23EbjFlc{m*MXf)z}|C!~AuLbC!3kNO* zgTei3_5Q6;IKER9B_oAgHk;*nAVUXTIB?15^KAzL8>Mpj+O5~y<8IgGR_ke8soc0S zKL-o45?qp}%I2h;SHy`^6lJ~(7Gz1dSg<0j3TunV5#3%AwWqlf@<bK-=^Y3cL=W$& s6wiYBQh7%(gcBlDm+~x_|NUS11T~2a=-&E`y#N3J07*qoM6N<$f~#z<W&i*H diff --git a/interface/web/themes/default-304/icons/x16/chain_pencil.png b/interface/web/themes/default-304/icons/x16/chain_pencil.png deleted file mode 100644 index e68278d836adaf26ac94db94d940e8dc5994320a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005cNkl<ZILl-B z|NlP&C759t7~t#c%MctKY#b625)Z`bNH`uOj!zDxm%+!!$22`Xz4q9#W4G_!yZ86; z<H!FWJb3W;#EBDk9UUEOKp2}GNDoLagR84+>cN8t?=&>j9~BZ3>StkL>FVg{_&;;z zOcV?f1IdBZfYgHYfb=q0Sy>fbzI^$Iyu4fkGcz*-NYSA~2mfEYcJ=?OSFirRe*OCY z?c2Bh16=_&fSsM4!B<3h)@^6!zq#t_QyKL2_477u+J3*Tu6dh)fItz@km~aC^8eT{ zNKQ&hs--a^>gNB3hX0G$*zPd!^71-qY3WRzGiT}JBS$X&xpL+4|C1-L|Cu*$`D38? zG!TZ#T|B+v|CA|n{(b-c{lB}S(j_le)=UN<5CWPU4s>1<$cad}2`C;7!XUP-Da-N+ zHB9%uKdbyNAtAA!gM%X<q!(lW7Z8g9u@p9}ugNG?l*|~maw6kikmmkM#-nc5%mGk6 zAidauwgLk~eF6i+u0@RY8>TaE1!<mI$GESvh{46(nwbGF0BKxV&%m&}jzJAwb9(^; z16~6PLKqlk6hZK$JjRCqUv8pkCTIW}_@Cj=xVk)^(GI2=-2ec#y~c%uo0F#i0000< KMNUMnLSTZ8bM`*~ diff --git a/interface/web/themes/default-304/icons/x16/chain_plus.png b/interface/web/themes/default-304/icons/x16/chain_plus.png deleted file mode 100644 index 99a48ac4d9852f750002ff14b1efda3c1f4146ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004@Nkl<ZILqCR zJxD@f6owCI1>qIDLxV%EVS+=nNDUU!qDvYP4K9@g6%~a;Wm1cT{SXw~2)Br!AslK9 zqr|`^><6+;x=^9e98sLUR}d`h2im&uaKG<8?{oNwndvXkKUm;$xybEyH+noCufSJ= z7x{NHxa4#?n|wasbUYqUXEK>LRaH5g&AufPi5t7!J_X9n;J_t^!_gOu#jb<FnPXX& zm$X{#d?*xRMNvM03^R1lg#(vtHrrS#m3lUr>Vg`LhEO^@jPb?AIp=aY&gb)-PG7Nj zMPUIt=)!?ZR;zV58r{DQ1m^Y(2E&*rO#1zPE(d1lpbG~sNs`oRHd|IVHa69xqtn;3 zGnG$HE?*;&Emh=epg8M3807lhW^UVYzrcY@;*-VZF7dosJh6mXk@tY&jF#oc-lqws z75N?xTr8*-)C!DWGA?b?dd(^5%=dHgOcVMD{rHXOh*k|r`$GqR2Ko1Ldlk{5o@ha@ zP*|S?mb(@%o(uV}7K8;MiD*ujG~PBa{)Id8UoRLH=b=i41}c(;Kkg!b2Q|vS4l0~} QegFUf07*qoM6N<$f?lG~b^rhX diff --git a/interface/web/themes/default-304/icons/x16/chain_small.png b/interface/web/themes/default-304/icons/x16/chain_small.png deleted file mode 100644 index b4f1b114c4562dfea7a4e964b503f70837d89de9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`b3I)gLo7}w|M>sko>_H9;uVGv z=0AV`E|rmy;VLOD)o!rpZ*6tuc4_{hP&mORj#)=nw|jfe%}+1h-L?MD&CT7<#QTEj zqJo`=j7tA?23FSAU9Ydd|HGcSr{LkQ?(+Bh{<Fg+H8ocr(~ah{vnqV_=zmK~$Odi) zlMa3%_LGlI8|KfCmt4ZxmF<|wu=HS(!q1B>CK9|142i7!nL-urTn9Ro!PC{xWt~$( F699-mP#ypP diff --git a/interface/web/themes/default-304/icons/x16/chain_unchain.png b/interface/web/themes/default-304/icons/x16/chain_unchain.png deleted file mode 100644 index 8decfb022854b09877b7a7e475d66c1a8bf75110..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmV+e0{s1nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005XNkl<ZILn2T zK}!Nr5XVPdBmzY|c<7KIA-Jq~hz@#^WCc-CPzkzp3WK0ScTEa9bm`RR@D@skGD<ID zf}L!!gW+fBu&~Wv_R02=dhlcR&CJfeH}hXA7K>D=RJN<t>H$+<!2#mP%jfgIphBUr zQ?J(>{eJ)5Fbs1xn_2Vu+=87>r{-WVct;$0D+}nle%R~vj8^OHIT#FHD~fU@z#e|Y zk;jk>rBbQW@p$|d4sW(R9uEP2nZz^vh$D|78A>D)C!NmyN3(fx8wdnWT`pIdc)?;1 zKjO$^NRY{7D4k9d@iBK*Rl8}o?`GZZlj-;SFByWx9)84;7Yc<a8jVsmn<Z{8p|MEB zk#(kJ-~9+zu<e!Y*O7;>)@ro{a)BSjVlmP*jpFh60##KhnM_itRQkUF8Y63iM_A6~ zau|78*2b~`?k8sJ)W&2oF(Z*kgCSV#;TPH<yW{eFWo<0`B5Q-h;*mM$`$HRUw|nss zSXmq7Tt1&q%vsjPu|U=a$;<2YqR>(s4-YTqaA;U>Z=cp^G_@WdUzgfI-l7G}8g9XC zFk6hqN8RT;pF95z2j?8$<Gi3Kpx8xxwlicG`wQf(e*-6114SEoNlX9$002ovPDHLk FV1j8&>=Xb1 diff --git a/interface/web/themes/default-304/icons/x16/clipboard.png b/interface/web/themes/default-304/icons/x16/clipboard.png deleted file mode 100644 index 24c1528a8790e1c583e1bbdb7a19690e3c1614f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV669aaSX9I-8*5gH<N=z`+e2+ zWf?0JXEiw#bR6n%=$V$0b>Uy5*ld+W8Xa~XPC860S+X^_bOer1`^Pk$d9mi%35$*h z9R9%U`t)txqgX$8c7B=i^Tp*db1gd^GM@Estz3QdZP{*>d3<_nO08EdUdMb+mFdUv zmmkwE&-Pt<iO1mhtXu7?`7KJbT#U9H*_dj5{IUNW51V4O&llN>*Cg`u#as=%uuxFv z__uR%>`d-5eDMV;MaM5@^ysf&XDMOxu=YNqNZV>Ft9jQtrroLWT;6-25y+c!sl#pc z(XDQWIb?RMQr;h{oOM=h`s-5Vf(NVmYJ{Z%Cz^|_4h8edj+;Dkzc)dDY7a=`txcIn z%GVydnRF4PaWU^|w<k}9?{l$&m4>;SDuu87kZqUG0(8~H?2Z%Gm)vTmot|^%DNu7a zTW+-uk5FZsXU$3es_F8nOnfmWSzo-^#D06&tU3SbZx_fh8CJSqy>lkpmRP4New2T( c$niJ#wlY5*la+BBfic41>FVdQ&MBb@06llUGXMYp diff --git a/interface/web/themes/default-304/icons/x16/clipboard__arrow.png b/interface/web/themes/default-304/icons/x16/clipboard__arrow.png deleted file mode 100644 index 2380ab60dd7d866c15b94935e752ec8406b6e299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00062Nkl<ZILm#| zPe_wt90%~<B@dpYLnZyW3<6<F6w?UIAwhH+vMDros1aBpLu64Q_GdDdi7+%l3ko9* z#IQpl>k`tz%R@6e)NE@tnk-(Gg?nW($G7J<d>`jw?*kurc%JX~c^)2m(n7?>?0fu| z>Z)8Wms9H6<>a;UjM1aA112QFLZ@lz<sIMZ%1RuJ=e%a@b5<QN+M<Zqm>09xZCG4f zMl|{z$>g6Bp7R>-afY)-kHXE0fE@kz9$;{A2;<{VF*WrXGc&Vz{$dj0@CX6}L5_g4 zMvsQiDWWJhf5hXaIKx?^M~}}cqEIX%UnrR33}=lVg=~t*@9ZGAy={s!oHcqha7Gcj zydk@_Wr{PLHF|Xalp_Ag8??<$Q=H+f(W5@AA~y1QtY)(n1wO99`*sc2E_Wu~S9_?# zeS_$Bogy^(#NX@d6}hKVm`DSyfe(7q=ub~WXql+@q#`o9j)bP|<DZM8?b){yTi-l7 z-y{%D0kSOWgG(NA9wqWwN<=!BLoAco$1#`2qhEmcE6@?$<BtKByPpK{a2zJ;I!@xR z{GgQlsB+z}zQ7(_C~54EplLFJw$H$ko9{(!_q>Pu)zYE%8WNFPt$5edTv5Z75m*<1 zTE~!HZSVE%cIlvGZ9G8J7pq8^Ibri^H5VT0$1LX~+~Mwjt-V&pN=tc=00000NkvXX Hu0mjfX0Htg diff --git a/interface/web/themes/default-304/icons/x16/clipboard__exclamation.png b/interface/web/themes/default-304/icons/x16/clipboard__exclamation.png deleted file mode 100644 index cd8b682e3555a377b2f994c83f3d0219f0b6a536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006sNkl<ZILm#J zPe@cz7{!0@b>H;H8E3{nnKqf3U`3b<Q-l_-5+VaZ41%yQC~(oPMN&lTcGf0HA#f2| zgk+RLn`#l55Qr#9nUtC`rjGM+^xbz~3!RxaCVp_ZaPN119M07qHvoX9k)CP)N#Bpa zsf$42_EqetHU7GMePT1U<GNd?$k=!S)BqGLOo-Es=ZfmvZ<PRi?&+GJ9e#0-5ORBW z6u1eXJ!(h;zBFEHuNfN~BYL$P)ASLE1OZrCNsvr#GW+a0RaI3C_w|edX8?qwG7%~} zy6L_DfNvj$2#3Su=H_A;1_{d|zPd_0+DuDFCvTtkq&>oMG5`g%wOwJaQGnNzl|U&) zX<6Cc0HyGHvJyD1i&Sb)0GgJaK&l-8@2h9l=6kVX?+6z+;q?gV*_TRT?*eeu2G;UN z4p+7^KRtx2qdRsAAhQ$f21qWw#~&!d^a;#BAq5p$XmQH@KY_Db0@oqFFi3etEtjwL z@wBU!q7z!Ax&;A9-F6_QREb_$e?H+88rX~U_xJO6^*eb-N=@m|U`x<vERfEYQYB_2 ziO&rX2nCs29^uX4ZDJdfgpZY&QqpSMX!^@pm`T9KCJ4j89|)x7u8*Uu-?-W&K0U^T zribK+HS!P0eTEsVmXdk_<P0njY>mLzyXUcOJJU(=6vxko@aqB$g|&2t#L_DO4o1Tj z6S2e%4af%$)fsf=X;gaqt83;+ew3V@zoHA0`$PPi{>jKc@kR@ap@JkH00000NkvXX Hu0mjfL3|h` diff --git a/interface/web/themes/default-304/icons/x16/clipboard__minus.png b/interface/web/themes/default-304/icons/x16/clipboard__minus.png deleted file mode 100644 index d1536eb527f0f285ac4628fe06f01908666ad136..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmV<F0T%v=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00057Nkl<ZI8Tj` zO(=vx7{{Lrii;dL$Vn-+Sym(^a*>n6uB(F-CrL!fM?Ml#8@6^GR@AQ2p5)@->@r18 zK2{>M+Gu58R%?4a|IG|hZ>D}V&HR2d^S-p!Oay!_-wd@^=6XCHx6u2A8*4uu-I<9j z1_TA>U39!P+JAq39%X<z*7QDHbHHk|L7n-!Inr0hhleM8bacvBSGQR(#~SwFz||dj zn+%F&j89DQ!om{!{p%bGZS&4fgo7KK?Dekj^voO-hO0YTZZxQjY+gj8w!nd_J6dco zsB|X7sdU;FIB<1G^K}N5`uO1F`@1c0;OdTMY7NSg8xpUtw!nd_JDRLEsAst${_<iA z9JsopF^54trBZyKNZ0}gE}E4RIbfvHpyKkx>&Hi1;J^(Q5N%6OgB1o9vn;-h$NzB9 z)y2C`XO_L18V=@>C9w(<1;|}W)L))O-6fNJ7K{BMR8_@qa>#G|atIzl9r7)`WuzYD z2i?ez`c0&#hu7q0;B&cnEQhQqiD&Tw8TmqSXCbNm;a1)oXtD(kTr^)T6$y^|916GP flKKyD(V+bVWnx6eaGZ7r00000NkvXXu0mjfv~b?- diff --git a/interface/web/themes/default-304/icons/x16/clipboard__pencil.png b/interface/web/themes/default-304/icons/x16/clipboard__pencil.png deleted file mode 100644 index efce1c43b3348caba895b23ea4ded20035ec478c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006RNkl<ZI8S|% zUr3Wt7>D0OB+*SZp<p6i1j0c2i&2tn1g*S^*t!n7u`7%IhomEkVNr}qm|;nRR!f+Q z6+sEzB*np1jM%qLZJ}c^l!cp{%<=2IUw&VUY6l)Tyytn&8Q<uhorvjn{N{YKt;+3o zyA&;}xOi6X7@fIM!ybiXyu0aR|K-+XG#UrPd!8BR?3x$cwVOz-`y_@=HDF@mGeV&V zW@ct}c+WFFV~1U%BVUt=gj!eIJ?QGX3BUh71_mA@5E#P4zDMx+?%-PIbymQx(b26& z6IoJ+v3R^9?67NebYq{1ES5?r6pIyMhh1(0wSvgoU?K}EE66S{SA-pQKWq^6UZ@K? z_n63>dLgs4R1tRkwl$GyA%gFOa8SoiGLS#i3+cthibN9$wC}2!gU5prA>LA3JsHS_ zLIKH4=D)<IUgBvmh<rW|r`3A9kH|@vY-AwQ>L(`V=l@A0Hiq#LC-TWFXs)YHS}d0B zz3NY(vvnpimCIo&o&JlkHi|dHzv4iz9T)ct&0$?f-fDG$tA?m`n~t2zW}&50fAHzc zFkS}_>G5FC0ffRYz%Do3>g(thqLx~c-_=L_raqKG<m)8HM~~?76ZP_B_&L~Nmm6cP zS8P7Mk>slj2QhZ0$)x}ERv@e4LE9!gJGVohvBNGmt1Vd+^?TRS;NdEg<)}GMG>U~| gR-u*8+2w}YpLJSF5c0!Epa1{>07*qoM6N<$f@PH(*Z=?k diff --git a/interface/web/themes/default-304/icons/x16/clipboard__plus.png b/interface/web/themes/default-304/icons/x16/clipboard__plus.png deleted file mode 100644 index 05fc5ea9df5e9fc5c54095c371768ab868ab29b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005(Nkl<ZILm#| zUr3Wt7zXg?VhR&eTcKcdRRq#kNnwPt)?dP_piQWYBBIiuL?Y=QWh5c1q)`oASYe=n z*j3#Ox-D;BFuF>c45e)Gp)A}dlR4hbJ3J?8>^ty-!#U4$&f(yB01(jw|6FTrC=Z1~ zL8X0FP}bIFbPsC|h$$rccH_&N8=Z4gQwbI_mo>dFS#!X%fI*Ydb3E43#N*>%d1B%l zCzC%4WG-v6CmG4=9wL5&SdBY(?{PT%hzAB<@bK_k9vvOySFeXS5_!t^dml)IC98Yr zZ#F2eHoqqlt|TK_-NVCu2Ica3&gOEiBqLefLtm3Y*_9Q}EHAr~jAV5Wy?YFD)D7vS zC0CM>tnQ(w(V#!-277VQm1HEVd$?^Gw2;m6TsmFS>CacVF@BhL-CAe2p7mn?1ut;D z!5~{bab|wLq#f@Ae14&uH$GYKlnwfTm&(;`2BjQ_r)|5)sgIY~dgm`_voG?7aJ8e# zgh5{n!A(HtmIC^j$?#+<Rm2);;e)?U6hX9xAmex)(7qY;TYb>1`l$b%iC^ZOLoEf? zte<^1D;+$pBJ@|qq+g-bw$*^*-G}%?m%pT~J+)k)+|Jcq6^?XPyHGy?Yi}7wj+KMl n)F1WOl_x!p_lW0{bfo(i9nL^VlISa400000NkvXXu0mjfn|l9} diff --git a/interface/web/themes/default-304/icons/x16/clipboard_empty.png b/interface/web/themes/default-304/icons/x16/clipboard_empty.png deleted file mode 100644 index c1d8414a7fc5afca4e466d49cda574b29773db8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV<I0Tcd-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ANkl<ZILnQa zziSjh6vsa^JGZP+B!{vpHs=)wBG|;jE|uv-u&}U9qm}=G|AVODk3y`hVsY4sy%wgF z9BDLghhC5vF5cbFuU(7F?al_g<iRk!nfLwjnKw^7Uj+amDC7I7tMQN1*KPyn508Gg z#@{|%nQobRO;OBtRmpe-tN@%FZmH{Qx6+&Ik1hdxdGqw=;N!+)&f*ShH-QHL;@N6x z@OACp`bw|YBfbBUB#BvGJ_Er1{$H}pu>0;Iolb{O8*ev(8vx4Z6@oE_e!tJ|le@%m zOdQ8ZDY4dKjKLT~tJNaZDDSJpdr!OFW>Glj2sJeV?>$M99B=SH0&6YS+Jy$z+B$*D z>+W*{=Nws<p|!?ZOP<dPo6RPnM!6#dS(Y)GOwd|W%s>0c6I_kJRmpTZWi%R*=Q%<M zL^xgL02PFq8iCdtAp}trEpB8;V1uLp<S}A|Ak?UxF<efn0gt3ytPcnV8L0OIxN`w6 z#+(RW2!S^6%RqMs5?JaEN%szBmyJdPr4&&Vl}k#Al(KB<-T`!nq`;B_5+L0fv;E@r iXHF7-3buh1aQ^_~@X2PY6nuLC0000<MNUMnLSTX!f8T)s diff --git a/interface/web/themes/default-304/icons/x16/clipboard_text.png b/interface/web/themes/default-304/icons/x16/clipboard_text.png deleted file mode 100644 index 31bece5efc2d713996478e1dd43fa103f9b143cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmV<20VDp2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004_Nkl<ZILnQY z&nv@W9LGNw4o-65ASb0(4kD6T<RT}B%|GBWCrL!fk4QplVTA)xDDB8W+ReCp@~ep1 zS}ioKL^f^B`gq>o_B^)BH&4C#K0VLt^*rD2m)6>efUo0^;ciE%+wFEKJb7GLD|B>6 z1qW;>7|b`)_3qffYbX>JfH~ImK3sFaYP*3SeSPBZZ<dRTTe-S=kZAPT0&}ck4-Q=2 zk=JQpQDb6qS{4?TWPN>8_Vy0s@X#+?+dJa*uE@;n929}8J6dita87MLg~PVMfvY=O zY&CE;my>ihYYQB>x}*7K1E+s}<doThBM~{fyOU%lQv@8ix}(`91E<stp+usHkMHjy z;K0=#O*I(!Q{8YB3`+3+-g*{-wZP@2z=5kf8m~9-dpa#Qv6wAz;OdS>9R^OQSM&!0 z2HdEh;Q0Jp;K0=#4b>Sqo=QnXeYYKO;OdTC)kFie7W|S-%40lk3mmv;&|0IXipWz# z{HA_T?CZ-GIB?PEQKqQuEhj!1>6D{Er!8>cqRF>Zp{Q>uq5ZB>;{N~_4ccFE&Oz%G S5;39x0000<MNUMnLSTXzz1@NU diff --git a/interface/web/themes/default-304/icons/x16/clock.png b/interface/web/themes/default-304/icons/x16/clock.png deleted file mode 100644 index 8b6c96efb3ed660de52a8df8293062368ea5e08c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006aNkl<ZILoDx z&ufx#9LFDq7scvii~fQ^mLkYR!oa48^B1U>au&~FOjcfft^=VRoOKwZF*dp`*lEX6 zW4i>+J=P@c(bVnHDYY#fyT~rzzV8S9^0<l)J@E2*_<Y{)*Y}Z!BZP4OgYpvy1h`Nr z#D&9QE)t1ci$<g4lrV+wgXeMVkU<umKMBU3@_b@xZS8HYSgaqPp7sEqF~bg-zX`^s zXJ&+LQEXJ&ZE|vcPTueAD0hGvcGHQ3fb5XK@AqGSJT*1Dy}#f1ba+U<ce_d{lgTgv zW}oS9H=l3B;_+E@n854x+Fva%Z{(^~QtqD)(&;pN2H1(U8d+Lh-9U#4+-~=ycYAwB z5U7d8V&v)!d^k8bLWc>QPUo{+rP3P&1}6rC!J#*3cRI?xD9b%`n84w1JQu4~Mew5^ zwpy(ul}Zth$3y5RBs|ZPWHL$KtgjQP+3cai1a`aq$*w5MYQeX9o!D$P<vyT7$w?B) zmr61^Oh8Y2@N#i+6JG$Yd7_eB{R;(ICa+gkHql`Mi^X!|;lzaSu~29=&(4NQYL4md zOS#-~xm*G|Okg&fIit~d&pSCekHF81i{Hu}I;+%bEuYUfk1RS&fJ>*-aR!6IVltWL zG7Ae^B}r=0(q)(Ol}fYO>=rG}A%iR~wLn7|rQFeIH21YyZCtO{3zQdq1kA9bnY)x* p=%@uF6g}l8<@P@q?Po{O{RQ{<W<3@N7?J=0002ovPDHLkV1ll89n$~+ diff --git a/interface/web/themes/default-304/icons/x16/clock__arrow.png b/interface/web/themes/default-304/icons/x16/clock__arrow.png deleted file mode 100644 index d6b7e07303ae01ca6ebfeb654f56a96be4e1e7fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007gNkl<ZILoDz zT}V@57{?DW1IK3FtgqW{gqDtlY^*Rakuh~sHVd}ntaBlnA4CMs2qakL#UukU2W=EW zu|TLK3MyrG5#&7E94+TMI=4A1HMQLgA)emnoNaA_R~`7B_vLw>|L;AA!=V6x`XBh4 zUazN`nwlu1(MXw0CTUAci;7?*Fj;V~!XD1xEM}0sg7V7@(>dyPKlg>h%c~n383gxO z!yeA;Cn#_4=&((*Y$Ce02J1UJFy-~~D}pubwRd*faJER$*w|QRX>IMAo|{VqVlnu! zz0HRl4o6;qwIJ!u`27jmYVE>ILqmfg(CKuVVW)G#$8oTjJsq*z?fE@|J$7jcMqRE6 z%n$@YU0t2|!|dz|3JRfV8ur$ZPxJFDm>~#)nwpw!Uo@J@4dhNV7z{;Eu(q|u_rvjc z1~UXfP+eW!!*U!i_?aE9s;Yv%zCO@uwLm^0Fbo5|y}j_*<AF#rnZXP}5NI@-wi%X< z7Ye>DFN0dG=GPoICu3motitG2^gCt<f`FWM{{G0wBz^&W%=H3E;VW34CBV4~pdDM- zR`oas&a~MDfl{eFbfLD^_Bj+vB{w&VLj5n7!1QQ=M|JBhSSC0ajssNO4fs#r3DCSi zp-@nAxx7MGUqAR|aWVBPoz4rIU!-6#2Ec>>F8cp*BLZ-;|D#X%A;={biz%5*rmU>2 zyzLkodiOOFNo}RmyVu48f6flP-<4l~_4}~dl~O(7pqT|YcJ;OIc=sDRClC>i5>AOk zqI0FCrB;bVVk6wkV#AvBl6yh!1(2G@gJtwnE0It+!2yDVaD;GTKMv|2x=RdW!IJt1 cSF#!EFGyBh6MsSOP5=M^07*qoM6N<$f&@!HmH+?% diff --git a/interface/web/themes/default-304/icons/x16/clock__exclamation.png b/interface/web/themes/default-304/icons/x16/clock__exclamation.png deleted file mode 100644 index 4ab75f41857700dfeab1b535913c22719ec85da3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007~Nkl<ZILoDz zT}V@57{}kmx=?0aSrFZIvr1ByqOGu4rZT4vrqIXyz(5p@E+SmeO|(L5(g$MsHAIRi z^P()F%;xN3+2)zsn0B_#HaB%Fzh)wg2%g^OoNcJkRR@0OeR-ef|9fA~2LS-`Kk&D* zvNEDptBFRVAr%!BX_b|gxfBhhE)LFfv4%a^iy366Kw4W@*Vt(^zOv2C_!pL!V+hW1 z4Qtr*FM+hap+RS2n2<LdhNbm&_-r=wBZ6yKt8Z-7Ved9UX=&-6OI1}(rm3mWbRYnc zXp|2b42Glt*BrDqVYi30)zwXyQK?jdK&e#9A9i&O**Fe7@!b)<UZ0#JSYv!X=<Mqo z!VE<a6c!d<9J5;IP_PxPRtr1V5R20}hZ%|>P$(45Hm^69Xh`f>US6J@2Ru)}ZBc`b zxd$`BU<@-9L6D!He}&;VUhp#>$jQlpmX;PME-r=(=QZ%WQwot#H<*Uc0UP3Cn4t&) zxm;c|!7#zCf**cA<mKh@qubsCKG#+FvpEP}XERJ%9?fHhA_(Yiryq254C5OJudOAI zjp3!}Dm{7){E9pV`Z2-ULK}Q|Df7$a*$SEy1TvXy@7aO^-8YwOaeifG+mjFY-U4f_ zh4uNH^t&Yx{@ws%gNNrv`gf~LFGPYMD=Uj+WMmvumXx%*J)XtYjg7b<3e#UMLy&EP zSyvIfe|H^Rjx%8YdUEyCGttwJ10s>|L(nTVHI<~Nr^_-kGjAE%+ec?vb}{H1{mqz) zAiyesb06nVfFtM52J`DQ%ZO2QA|Vh{_EV0E#o|*bDJj(wi9~n%n%LnOKeQR~9)XBQ z3Y#l8_z__(2P1E~M7;^YE{cS*k8&VE&mGcDv2CUIF0mS0$z*>Uu?*ZN9e)AM&1+ZC SyF$+Z0000<MNUMnLSTZvI7~SJ diff --git a/interface/web/themes/default-304/icons/x16/clock__minus.png b/interface/web/themes/default-304/icons/x16/clock__minus.png deleted file mode 100644 index 28af166fd8a0b0a28b0caff95109bc441538b2b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006{Nkl<ZILoDz zZ)g&67{_lSY>L$@TWiqkjVwiwiG+a-5$8Wp-;}d<FUDkLFFokZ0-;_w>ctq7F$sc! z!5~<@iW>7x(A-&*6gB5|no`@+<%?u*em&3KIn;<=bnv<R@jTD>^ZOmgQG^icf8cKp zhl6stT$J1GraT_c8L!tn2DkxQ1lMEO!x@~#4ALtYxkJ-|#aQe`GLtENJv?k7xW*dx zaOQ7<k?ENkW`kwRg<6dq93PW+o16R-!5a3a0|5qSy99Q-{p_vD$=QwV?efRHJ@T#5 z;6sr}<WzvQPtZ%GQe~gtKZ_Zg%_az}R;%G@G`f~77D-;*9SMiSr)vaz?CvgETv=Je z3?K;1X7kOrTU+}m=)~vqk=`2eerIPNGk_p4nM`++g+i-6(B9GMbatJfR<HB@49B%F z0|)}6(Rhz77J0#UaagC*kx(c^EEWraPe^E*Cc$8kJd4Lku2N}X1`q@WgW-09Ww}nl zmr{x7^?Lr<rT`>!Ig-j|Im`fp0Cv0nWMN?)zW^TdphMF83TcibOUujan7KbZEC{q( z?YSG{<IIP2x>`9p>Ixx=sVVYWqam+=m!qR6v4MfgYF}S!m7=1&K%>!6DwXQ0bz<W2 z=X}2UquJ~d#3A_0@Bf1(ib@JU1YB~toKh;4TD4mJFfu>?CY#Gu>&@m#19<N7G{Zwf zKbiji>H~=+GY3H=+&%$ZQeY6cER{;H$z(FWLZM)QM<NW?um>|&fD4x(Glxl0AORG> idEnwd7!+qQL;VKE5=3emn%k-X0000<MNUMnLSTXg-z{eV diff --git a/interface/web/themes/default-304/icons/x16/clock__pencil.png b/interface/web/themes/default-304/icons/x16/clock__pencil.png deleted file mode 100644 index 4d04f2ed5c6cbad2ccaabc67b81b5109a817c78f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007XNkl<ZILl-B z|NlP&B^XTj`S~#f1OzYy2M05RgoN;hhK8C0aWD`kK{1GJ4w3_@0jUM)0bz6lG!l}M zGN;X(x9ZHbYxkeNdGiB=L2Qs1NDib1mjN1S85tG(&z*aG`}y<#uRnhLzwh8dFb%>W zF_2tZW@ZIQEs6oYzP^0Xv9a0v&z^mJ;lYFdFF$+$YwGFgfg1o4y9ks!bpHI~n7FuX zkRBf&ABX{7US3ucX3kuD=I-79x1hFza7#-IoDIStxpVjK{hu~>?plx@Ach#==H?c) z_w?z9AOnzbOiavwbTJS<e(BOfke&_|6^H>&PEI*zZr}a^QvkEk-`^j_1<&8V2g_gG zu;JGc9-fQG7#SVF2H4rz<(|8H7i_>QsA5x7)Bok=<^MfAJpKct@PATL(*L}?y#EuY zPyfHVyZg`ohKBze85s|P4Y0DZia&Jj+#_TI?%cos-@?KIOvCVnGt2%@ojdpc_wV2T zdnhREoX^1E1~vd_n|=S3DVsqt0CMJQBtu~A`**khKd{mL|MzE=|0ANJZfa_3MrBAz zLBhbu$cW$B#iioZ<;%~WynTz}Z<ywTn;@E(OfmiG<EA<Vqz8y01{fF^FzD#$=y`d2 zcU--7>)E@{pRsCQHqGp3pr_ITkXn!)5Qbz3AmHNSVh|M-HPYADZ|v#q-F^M$&1a7v zocncXliNR#=4q{p@0@K!=7Q9K)WQMO02Uw?2V!j&78V;$PR=+U9-fM1Z`Q;Azuf%a zn8$S2%8<1YBnMQZ3&avoJ#Yh<fS3n}#ei4}3I9*=VcZ<#!03Y{CJt2#(!&4%2UkNb T=b4d;00000NkvXXu0mjf_jpZ} diff --git a/interface/web/themes/default-304/icons/x16/clock__plus.png b/interface/web/themes/default-304/icons/x16/clock__plus.png deleted file mode 100644 index 1a6934e0df8535cbb810e13edefda40109859a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007MNkl<ZILoDz zPfU_=7{`CMH%lXGHgnoB50*?A8`CkxBF7j4QoyB<+`C4S#;wVrLp8QK!0e!IY{<H_ zrJG(jvSNB^ON7*Afgy?nEBu3TVO^en&-;P{o2TCG^ZtH&p6C1dz3<+=1OUkYz}@tE zJuw&z#Aq}UlgV`6Y&LgNj1;y6?mMxEGdPPG<hY=1h-K|le*bKEeLeYOcejY(9&6ac znUe%<w&7uCC=%J($YvpTcnBXB7Pu9`8un~<yAx-t1Uj8gcyDlUB(%J|^Lc9ve&+LB z$nAC?39z<8dyCQNj>T#n!Hia`<pmmzM*iCCoeL)t5HFpMxLmHIJ%YW+<|a%{PtRe7 z!V6R?)!p|?OWP=@#A30)@fz}Rb#)sv6kecIDo4W`8^!WK`NV;NfvP9S9vpD}^;D{e z8452@C=`z)i3BJ3RT`GbWH2^125Pk$=qCi0Wx?Taz?+#Fh^5m-%uslNTrR)A7>T4R z1>ciN=<4d?)-vWG3)ceOa6343h#3kmpr`eYPfP^x3*cksDkPP!AP(Gs2m4Q;`R(;Q zX0AMH<poly^un#aKIf;kwM=?%uPTICL!%&`?}d(e1(<U-I6K*tuJK)p5?_Ot6G$Wy zA`*!@H2wXrzQp61{X(Jo<aa%AGkfPB$mGQ^|3lELzP_F`Ha1GdV)1jg#}oV-i)9W9 zg+F<Uan@339&i19=0!tBl<EQE7KS-ILT_2XP?{+148wHS)zw)A0)dnAvV;?BHBZld zYe}{Pc_vsPR~d#%NLg@-BA{HRw48{&)=wUuULhm3zEXz#1zk}_n1saodjJ3c07*qo IM6N<$f)jN)ApigX diff --git a/interface/web/themes/default-304/icons/x16/clock_fill.png b/interface/web/themes/default-304/icons/x16/clock_fill.png deleted file mode 100644 index e8bbfc23801c658600224b03e3fa64fdc2abfe4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006zNkl<ZILoDx z-D^@|9DonQ8^!9%7X1Z-EJcusgn>;F=NG6Km78^lVYJz$hoE2}WW$eEV<d}R?WQ2Q zkgmosR?)|f7FjbjooUnNG99~#7W{gD2YpdibkTw5oWps4&vV|xVE};nAB2<5W@8)< z2jg@)8JEj-!0mPq6PyIL1Ktng8qVM>I)4fbooCrg^NWiQ`1SRT27l)ll3R^^U5Z~# zOk5nF!kNDXh9-PIE}2eO3-vl|@9aSG(JVAmw*@v|M&RAbOk>jLy@s=W0jt$|@Z8wg z<zy;VeOoTWR=X_(!r?Ftd?S>f&%k>Ux!^r>1sxhNo6Xu=@%Tf&ScH7%?MN^fq=D`( zO3!Y>(meMV9U3qijb~TZ);?pP7mvpS#iyZtWS>O0(4hgnUO&kf3O~AHcL#R6y>AEG z{HzeDyom0hLjyXUZYo_Y3V}vPR;$$z2n4`nG6DI8z_Kj({eHNA?>bap#rDvl0j*Z+ zT}`Jey@5{~8=%o>glm@qfzRdOO*UIWhX%;oPQ~Wt68Hz|trq<Rl)Co_u4O6}xVx~B zK!*lYD%GLWBO~1FOs4jw+3b^g*(7Tp^7)#<VBpZ90i{yO$mQ}A=F!m*4t(F;-6yxm zvqGs<vsf%4oJEHQ@Q_F(j7%m|DHMw7a3r#v&E;xD`q?IYB++Ozx=f^LoWWT<dIKWD zAmNxuBswV;i^ru>DMz@`fx~CGMrMu^j-b;U7$8UqhY3gj!C+^00NvlY;#oX;<`iH6 O0000<MNUMnLSTZFIU;TV diff --git a/interface/web/themes/default-304/icons/x16/clock_frame.png b/interface/web/themes/default-304/icons/x16/clock_frame.png deleted file mode 100644 index f7c00ea9dff148b15e68a00d17d356776ec38ae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV<J0uud+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008CNkl<ZILlp< zPe__!9LFCPA+DorG1#G#I~JoTggFpm9;DQ2m$}0lI|SmP4*fwI+aY!z1RYH3(4h&7 zTx-qrwJcN9EP1C+Eej=A(#m1Ge)s$yENa4s_j!N6@8|bE&x5SHyPFw}MrJmfSx-+7 z>+S8m*Vosl<vi!Su0d-p^(aGGa>!*j1}Jz_J2W&j5(<S9r>CblK0X%EIv5Nl1_uX6 zC_~x*2PjM?lfmh9&XABuBuIeQ>lM(NYQ<s!4u@lgvgC*XU0q$oQ{I@(=kxISeDL`F z2+K0Q^JnSo3_q#9zAk#XTozMPQ?uld%M1p?eXG@KKRnE1dHE|=H#ZSGI6#q$d??D5 zih$mwt)R%H(`gJ04A{wKdc9sJNs{dMOITQ1LUey0$zoARlarIz1Bf&~-j{F7kR&e_ z7Z+u6S!ZXbg|_8#eS#F-76Y!ZSS+{Ri4eaF%0_vXT&C0Mtnqjp)6))YXEN78`Xaxi zTRSM7pX0~Tk;n!D0g%hITCFV_jf(TeaycQN@^D*Q8-|C6!M6$iA3%S9KWsJ|7Tj); z_45lRmuWPbSMm5R=I345+Dlvy$nl%+=;#p7E3zCpl@i&twE)Ov?d|Q)cp>HSNLX6& zLM{}<R?D>^H;?eUT7}maz{-jbPUmcjT-Ms!`oLr|Pwec-aJyF#iOV>-xVR+}mCH*c zQ(2J-hj(E#nkL9)EiEmqxw%<CKK|adx0i*-vxQJNfzq!sD%DH;ss2Uj<P4FBEPC;H z26p>97dhmz#>Ph0)YPO@tJN<?N8f%<CX0y0ve?*2a3La~HPw>I0w_aSa>%9M9nM{a zLh(?gQoYn@o_w5}bLTRdGHyaO>QRQW<kVbN$5C<AoX7R`^*W_e`KF<vVT|*k#u(M8 fM;Xqenp5`=a^Gxlj{Zod00000NkvXXu0mjf1M_CA diff --git a/interface/web/themes/default-304/icons/x16/clock_small.png b/interface/web/themes/default-304/icons/x16/clock_small.png deleted file mode 100644 index b17fe52fa6375fd33585896effc94fa95ee0cbf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmV-40n7f0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002{Nkl<ZILl-B z|NlP&C759t8W0#5$PgSHEEEzF;sL}7Q0xH`1IZCIARr(>C^kMmW961Ddv_l=@ae&e z7oR|EkQhjgpaI@Muz3CY{b%mp{hyPQ^B+W?y?5{bvW*+}gX9Pr;Ogp{e*F6NPtV`K z{~sC}`v3LEkN-jJGq-Mi0?83Hz}D6_>*S3apI!kq+S}Xz_w@AqpO~2Vf62;~pFna1 z4KOn^3tG5p)!`Q(K7efp;g>-6vbAdugX9Prpr@xNYHMd#zIy%oW6xi|{sO{lH*7d& zXK!B)k|St<rlux?l$4aXh=@om5Z6I*EJzF_HxiOEsTctNXu*h2xrK%R0000<MNUMn GLSTZvOosLV diff --git a/interface/web/themes/default-304/icons/x16/color.png b/interface/web/themes/default-304/icons/x16/color.png deleted file mode 100644 index 49b31c2a8b62c04a80c2b7f915f48da8c04749a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007<Nkl<ZI8UX| zzfTlt9LMqZv-7~r?63KOy11TMQT#<9XK5}PZN$XJ*5(pR3QG!FI|}~*{s42izu;m> zOf<wqqs5)#-2qt+VV5l8EHgXKGR(~GV<D_oHup*1<@c3*g;I+DGYRn9W5Hwr<O+mu znKXBq(LZU^Y-^+V1?Zn@W!dq?l#>fO6U#j=<5A*<y7d(pOk>s=x903$ZdsOjK@N8e z2n~{Mu@tOy$NXpBy`C@Ufk#It-vG(1JX3vG8@q4nEl;rZ5qtyMCG^DLMCGis?q793 z{J#0H*U~sbB!J2@DMpKPwbQ?vde{>5Y{=PQ<e^-G_#^})=zET+-L09ckDGHz6h8r$ zB|tjDj8?s7<tm<_Xn{Ejh2vlpp<ITj0(l#RgXR@PZc13~myH?Vfdu$yFx_*`Xxk#i zD%uo{W60tt<XtG+5RA|lWukZpzXJzVM{CfS9=x!gQrR<xL<d2Lfh`NzwnN@Lg($eh znu#BRZ-PGzpLIj5lU4>mJ%cR{01XES4s&%K%`|BP{&#f}sFN`OR#SG~cR!WPq9e-0 zIK)(d2tn=;+c|*tJ_HGDdtJ3cx-$T_c3FJdTpOFXcttv7BuM&bgn$qbY2Zm{^<gK1 z*Bi~=Ceh*mP<0mmbXV?K)d{y((uF`0Bgi8Fhy?^1><+>DeyCQP{{?-#1%Mm?ZI+Y0 zWd6m{^ZgH<u4<yOiC_cR05*X}4(d@yy?M2?pQWGYAzB6yN-2a8a2dF*&B~uI%vCSl zv3@!~EiLN`B6JD<3TP~@Wz9eS4YGgU&67NN1b?HH8UQ*l4vceFKgadjO~$9D7&<pX z=t4d9cw2wR`qDGv`UbEDtSP19BR~S~VZ;1*DbNNyrBwC>X!j1s@-g}~00000NkvXX Hu0mjfUolDD diff --git a/interface/web/themes/default-304/icons/x16/color_arrow.png b/interface/web/themes/default-304/icons/x16/color_arrow.png deleted file mode 100644 index bec3b4b7fd536b5de72eb96814a712b4cd7b06c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmV+k1NQuhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008eNkl<ZI8UX~ zO=ui-7{~GNv-97~%g*k+#JZcUx=ETATe4K7h)N4R)cAt5;He1G(o-mc2sz}Shv3CS z6>nBh5DCSbAShB$R0QiyYK11U(alTECf#&)H@lhLneBLJHqo;`_#OWrp6CBak|g|} zD1dA8!ej>20<>;2X>KyD-_@qLqZJ4;aR1<X93QwIF>+Ps*sVTCsgvCY_M$Q4O*pge zv(Gt>c|;904QLtkI(D|P&>0K9ub=M+>RsT<;K@Fqm{Fs}xzgB0Q(vzOD;p3Pu$4vc z89baHSI)(!{p#n-bNzLV0ipmBi%BWiv!zF0GxgTG(03u_f?+`}3*iVfhSBeNQaV>M z7w6Yzd+qR>9pYOGAR1;`E1q;x`MO{`U=|>A01O*)IcVp>azQ+_dPY)Zakg%(PKU&= zD}W7yslGR=-H`~#cCn3zP<8<<A95}<hPf{}+F_cY3EiTnt+F~5qaLiV6p_DYq@{__ z!oXD-T-U=g4<Z?#P%{Zy5SS1Q!M1M55>Y-L{6Qs#6}o_i2Q+r;>pGfgvIPYHYO@Cw zV)lT=h}!R+yIIrrBu9uxNFHb-q;|1d7rxV*Y#ffU8?ZoBi-8ot$|l#pUHhZIM2{*l zH57lNu?$oN)-<Ros77sGe#NIU)+9OSt;T0EyJxI$^;du4yi+{p_p`bPiV(p<_~nN+ zHdl7&cj3?5fAQmu9bUaO&L^KWpFz^^NRlMTn*vWUV>yMn6DKd3Be^Ff%NPcu-2Sr1 znd1c(Td*Com&Yvl;?tix4*(H33OujPsN+Xwi;utLJaTwSInEO-U#qdbSf|(Q(bx<q zzj%UTd7Pg={<<Tn)cXTK2PS|C#`Qy-DxGGcTqb>Jn3fNfsLsvGZ+7|g3!|4Wq^lpz zhmz9XvvST`13&@(Zin^<{cncOet0DjIYr$4Ao}W!w}JQ{9A^W}t`jh+00000NkvXX Hu0mjf=oD<I diff --git a/interface/web/themes/default-304/icons/x16/color_exclamation.png b/interface/web/themes/default-304/icons/x16/color_exclamation.png deleted file mode 100644 index 56f2715affbcac373933df82a23356addc95501d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008uNkl<ZI1vTG zONf+p008jc|NB0jncbP4$GYyiuC0$PG~APyh>R}T!62fdJP025&{1Kp9s(&3K^LJ@ zASoG$kPu>&NfC6YM8UOobD!<%zGn6{JCFVP{X&|i000000000Wfv>Ly$2&>JSbN}j z?zxf7VtmS6+-J3uo&EEzR?nTLeOEGGe%N-*k^)EoK<s>Zs5n}B_03{2_foREmSrug zv6(Ma$2JeG{<QQ_do{U)%K!<0#QEf4|HZ*W=W?0(rC|CQt67!{GL5Xgy@!+HxmPNa z*QYMF=VQ1G38Wp4hrayi;DNKb%-Vd=E)kW;cF<LzzK?3R%t|>7zB8D6a&>mJu~Gki zOY30*&2A%c|7*plcPYph$@S6MLpD!W7aP5Fln7<<QfG*ULvi`HnUT8I#|b>kI@K;8 zjORjAF<+9;?vdpC=%~<DqS|dIblIryvRY%izZ}n)In|O#V4|saCA%xs1Z%QNNvBe& ztRuHy=&Y#6IrCdzsqMb4?zCF<Y?#pOZ6Sg27Spy7E2D}kDw&Kpm$R&H-OpZp{XKuw z?wD+UU|dTJ2|Q_9c(l1#$mPqSOI=xAFE#`bHXC>C+1n#uj1>ke7P7aD*|X3>1k=ym z`C<0&_JoE>EejI=iA`Zj+t%7GeFFo|ocqSWk-c*JubWG%cV{e%ARTw*&wt0NvullX zQO3N)v|v)Oyn0V(M=D7d+_-T=+M00SP&K{w#mGNDUOOWK%N{mX8kc^#e{XBDwwca~ zO$nY#h3RkgRC4B4es}x33l_H@8yen8i-qO0&88>;pW~Rzn{Pe$>$97q{YSTp11}bm zqm5aG##7m7TRW;c{q|?ZADy5pL~Ggnk&W8=`yowJA%qNuFywINh?9eF7#beFP<r&j zhbQ9bKu=1#Bj5e5^`)C&b!olz_`&R7Ax%>ugaj2-up8jZPkf4#01yIEB#nYJiroJn XtIZn*^Jm)000000NkvXXu0mjfcT0#_ diff --git a/interface/web/themes/default-304/icons/x16/color_minus.png b/interface/web/themes/default-304/icons/x16/color_minus.png deleted file mode 100644 index b0299cd5cc92550d022fc3f1a3f8aeae656edbb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmV<30wVp1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007{Nkl<ZILoDz zy=xP37{@=q-mks8T#|dKH8oXZ+xS*nbZ`(~z{LtKf|HBl%U}h^4qZD44*mhIiinH5 z6a=LRN-2oep_UZ2FQnB=FNsMncbA?+)B3VF_`nyQ>BIB#{fan_`Ja*iPaX>f4Un@? zeb1o&jS=;`GR(5ljc33{Pce$RCPH>SP#KtMau}D?FTi#wjM{l~%sP3_H1z|rqoP4o zBd8}+<=J|#_tL%G^yEF@{vQ*xx>30=JD%&krmIC)u&@fA2Bj2gps_R4C(UaooG(wm zjyH=6TM!8lCm0mn$+6s?E4o@O3Yr$QS)e5#odSOslsi$^Y>~T|(?3048VhRv^L3&b z2@rNNqGV5-Z5daPG(qnMqYJboq|;E#K*9oHqqv4>8xm&e&EkkpbVmZLY795+eaf;3 zF_RWaZ3i;h4G9O*7L+^L5NT?DJ6;7ESzB3TaX3P5t}q{xS<~7@1wj=JOBz^~O+xQM z7!JOo<5j`a!Rvq@swU<MGtt%!3K1;O02FMX+>)cJD7sDw@P1PzfC3TQfKMSSAM4*! zdeRnYd~AF&Kn+1#3%1gL(mIp_Sa$32EaA#FVBs4RFP7$d2M!*SHW2}m4HT+?5KvRV zl~CM(l^RTaUTS`&HgSn(tv42U@XndNY-R_XW=a(TiH{(G0KmL^3v+rJqXBz<L>w)z z$u5>}Dn$8BBbAs5)`EMlCtr;pKi#hfX+=~JXf2QR%}jIq)RDhqpgnx_=!}Tt7$F24 z2F@#^^5}uF?4b+h?)}5kG>;*w4%w^MF{a+qEY~m^UZ}_Qu;s$ZEr1H-fjoU`KWB1h z$qx<D-rq^pfkNo=zVLzh$(Q(r&%oSXn7aY~7C-_{OCA46a0rwD7l?iW!V385$K0oT P00000NkvXXu0mjfy8lB~ diff --git a/interface/web/themes/default-304/icons/x16/color_pencil.png b/interface/web/themes/default-304/icons/x16/color_pencil.png deleted file mode 100644 index 56f00c931d65bc282e4f1f9b1bbe5fb17aece99c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 817 zcmV-11J3-3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008`Nkl<ZI1vTG zUrdw*008jcclQBzz<C^6AX$o_sl&<EOMi6PD)qtIYOBRVt+#yWrOhoLT4q~~HQQRc zW{+*Hr?%cm-I_LMY5LIo!vs1cIE+6YaEHKg_rcfi7sPSwrym17O@u=%-Xb|hW*!ev zPU8s`o5Z&J@~xU9gM)9rG&p#6ijNZj0O+Z2a#kuiELC4tpDGJe!=dz9^u%#|;8rH{ zLFdVnn`b!_0)V9Bx$f+Vmgis1X45;v`f`fJl<IPGrZlwN`QP+k?`<yBjrL!<wC`|N z*Nwh7J{JNA9S^s4oZ8y?e!5|*7?_x0A;nxqLp7yt=SukKz(nS&zJvST=sxn#%}V97 zw;2c_ZqyUBH=o%0<h$vH#i_tr3yBs|jcmx6Uw>#Q`KxF84jTCOvX7ej9uFo@jjxD= zP}}HOvSWWX(N+vJXGyoy^cbmT^Nsfnl`rT$`l1WpUDdnrxs}%4jdv7|RYV^qU?%0z zT5enNK@eMLZV|O_VoSTl97F2^dXK)~{11QH5q_%9D^@#l$pVL_gc2}X(>9-~3kvEL zq)dfP9<}7$oxJAR*S|OL^L0<Pe<H}ftWZy}Ar*|OwT-F?As;be6-haiP{MPseeKK_ z6L#%6rE0&K1r|`Qk{5{(!f?&>-Q|awbaO7)pdzQD4cFs`66K9bc}9nsTcK3tL2)@A zQk#wt!o;kLzfF#G?s>X5%!yQm)+H?>2v|x|44GPIdWjojlWXIaF0NY@LY#N*@7AGr zvK@O`*D?)3AXE`(6o5)VDamXdqbrN?@Z|l{y5c!jCBU3J)%j}w)hoZR{99g*Cnb#w zjA0DpC?v=)mE)V&udGD1NBu0_ArgXbu-ob7!?XUF`Q=2%uGQ?89hoqj-6Du0rD93p z+DJ4xaIX|i-|px9X$C<M$FU#?8qkey+Z(zZ*m_X+-o5I&Hd<^YUn{zmzisr&WtIFG vMlga(5XZ3~2tu@?74-lB0Dv0iP(<`USvNeV5_5^P00000NkvXXu0mjfz>JH- diff --git a/interface/web/themes/default-304/icons/x16/color_plus.png b/interface/web/themes/default-304/icons/x16/color_plus.png deleted file mode 100644 index 23b3e9c32a6e3e7b2a26f282952dd31ff52ab908..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmV<W0tNkvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008PNkl<ZI8UXL zOK2Q*9LGPuoqsYj`<Pd(yV<sE(r%@X1W`mpTF^tIQfR5CUW8%=Q|P6VL$0~?kb{>( z+nZWMEmn^b@Ii~>p@+1_Ln0g4yv!!ubT-@B&hE@+JS1sF=*bU!kG~JUmn2ET|3LwK zc~cn5fSQHo1BT3XM)il<2rF6vKLcBPSL1lkR7C$Zoue~dj!-A}Oz;$qF}G}wJ8zz} zZSy77yJ<kvpwr6c8ndlI|Cjo?uCJ~Dle;C)1d1^=P@E_Yo;UT?y0Ewgz5yFK^p3%c z`2)&6|AtrnYGI<gs<A6k07;r5DP+e>`#&)C=Bm(jAmxCO1}g_)KQ#K#AGuOGQ!?jn zE{}JD@P{YFGYTN;V^k|1w^RALkhQ@qKxPjZS+Fb!@{o2wT(o*dQo~|z{Ju0A5?@jP zYX&1-cR*W_2s`VLHC{kv3y}7}a-h-2mRJN~5B?^!i>|iB(nyTj9$`Kr|H$Z(O@t-} zj>_OTE@^WwlJN*N6Tb<*34Sj;)(x2_%E!AqsKl^H8_;lp#!ft4M>9<}0RLav>_CN> zr-HeN+Mlh5IWy~uMTkpC9taRpJF;3Eu3KYNUcQgx947eobS(x_0E_EP{kZ&Bcb*Pa zVrnS<Mq>e}3M^|-Q!vLg@11>xigk|#f~lo5w|350;o7t}d(JK%^}0D-1VxCDMgX|A z_zBfunka@ww?Vu8nB>OC7f8irNs<J)EbuyGX}d7-+VKy~e(P1qF^ItcG(Eol{%wX% zdi<B4Z~xTV{=`p#BTTm5S?9O4@5YOV+xEUgIc3}XkT^!R%KZBIJ)$7s*hd9szPaB5 zK)Aczfrt*2fieg5gPbV6MR|Cbo`ZcfJ*Y%=9#sC|{oC&rFYNDG`K%i9Md)%d9qtMg s;O(TB=W(%jlC9(fO73vAa|($60rV36wUr(yu>b%707*qoM6N<$f>t(ZCIA2c diff --git a/interface/web/themes/default-304/icons/x16/color_small.png b/interface/web/themes/default-304/icons/x16/color_small.png deleted file mode 100644 index 085a9d99156d9ba00b083626ee9ce0cd8905a049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004ENkl<ZILpn_ zze@sP90u^OrC396v_@OMoPua=Xl;$Ch(L;#BU%~~B4}ukN=!u14$K5eia5|EQIOEU zjx<ptT;ddxmIwrU)#!ZkFF1#W9G>;V!^1-W=r5t}0>alsc^k3ERlQK0V^VQsI8_{+ zl`@89;h9cYltLW=mcKBHm8%t{8FuiN&#N|VH@vbKPzwF$VjEzZKq#&g%Ebi*Z>K=g z0R;Sj^A0#Jp*;VhM0%2fCg79}QmKB(ztlGHc?%SBK<oo`*AHHI>fB|NB~8Gb(5DhD ztD1p`3S{s`4ewbX>jR>embzg~q%?tv7)jRJHa~+C5j-IM-9YRK@VbFLbB&vHG3^HA zCt)f#qgddE18I2MfHM#5ihyZ4rw|3THy}GPx*QP4<V|I%8s}RLt}fqK`M4k}G!ztx zJggHy<mzR#KPr%YO`;=fiq`ECO&$o;=V5K2+pqjDz%P?b&RFx^$94b!002ovPDHLk FV1jOVt_uJF diff --git a/interface/web/themes/default-304/icons/x16/contrast.png b/interface/web/themes/default-304/icons/x16/contrast.png deleted file mode 100644 index 4367274f82954a40c36f4735a30ba786eb91a4c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006$Nkl<ZILoEd zKWG|J9Ki82)HtXpD6wP?b|@L67D@dVwUD+-)ec6gNFmq6#U+EIqhxX@A`}+|&7x4+ zsSw+cR3${4n3z<I60w35IR)tnv9G_A`0$X@p$|TH$8qm_$Gt}&goyt!K18EYA{L7g zi9~`(CX>QcDy0NA;N@^Q39t(`zycs9W&-heT%Jy+$x5ZNHy8}+qtS>C1Om4{pRcRa z=}rX#0Ta{zEg;WiGCTc#zd0NZ5lz!$BuS1zggH}Esr17nf&-CAL<nyuyWQ?huh&Bq zMPW{-6LYy-$nADhd_F$~0T~X2!(nBiP)Kz;9n@~OSsV@r3lmZ(6c-Ti;6Nx8vNfB{ zdZW=m6V+-Jl}aVFy80NYR4TNxq8MYYjYcB{fwwpi3<kZeR*SCHYUt|fJ1P{8Q8xPp z?eBj^O68*&Yiq_^2)xGu_|sna0=is2M~8=bba3z$Q>!&I^m-E$_=p33zu#6Wo!0aD z63XR@ELyF3hFY!dL*N|_!15^L@nou4te}&V3l@{f!eTaC(bCd`It1R}fXCwzZg2a@ zT<+V=+1WLkw!Z$7MWcB#;PH5$Ah3u7u)c)dZkKOvZtdi9<z}Vw15H>guQ0v-`7b_S zScJ*XSR08M5{ZP6!_esrWGEEgJ32bAUtYFptJVG6V6YD5^5viN^Sont^aXJ@rUUnY z3_Rp=xhmN6PemfphFC0q4fn1=7VH8OSO)i*In#kTAOH(s@gHP&&(1M({{YBF5A&G> Rj8Omp002ovPDHLkV1oA=7!Uve diff --git a/interface/web/themes/default-304/icons/x16/contrast__arrow.png b/interface/web/themes/default-304/icons/x16/contrast__arrow.png deleted file mode 100644 index ad1107bb01f1023fd3da554a20d827fdc1ffdab8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007sNkl<ZILoEe zZ%7ky7{Ku}S})p`f}&OsL9jO^z0qwZrd!Tl6lu8mVw-J_z(YqMgrxN%#2}VXjj%ba zC2h3{p%50m@*nCs%-x)N{$Xx7*1#8I3WFPHPtVSFImA~TeD02e=X=Nf?g#)N{s*_S z+wFwI;UHWt7vXlh#U77Gh8mD5Cnv{+dXWwlBI2;DfYa%e3=a>J48sg1lgZHj{yy8) z)wO3fo8t<FVo@X#rDMwD0+NxDk&fNn-AF2x0+wYtBuR2Gl0GI13JOLKN4S8^W)tJx z$#^`zwX?GWi9~{@)oOWqy&en(LqaGNdT_Xi4_K{Mnb+&}Y;SKvEEdb6(P*-yLsF@9 z1&57%z+$m9L?V$;I2?wIjg1YUX&NdkuY+7Jhq5v$Cw;C`sS-Hc#|OH*yG_w(lnn-h zu(q}iUhh1Nk59tb*aXOA<ww-isP=I9D<8l&ZNevDmzI`cdU_6~re=8+6;($lm9^=> zH$Kqb-rhjdi=nwW8Ys$_rMmhiuj<ifsCq%cwWcRY9Dc_KaCu}-r`zN6F|e?(lBKq` zj#tq$3H?!k(x+po3-z6S#Wk%50i)3<Zfi4>6y@Iv1UBKY@&^tmef)z{tm_Bemms{_ z0x0SE=`VRk>$w1~FQHbeB`qzj9Tc?`VVGZ#q4>bS^DuxZ0MO|B=iwT_rOv7OgC7F7 z{QP`Ef}28dgS1$zLo+kWq1DwGd$suuTr>^-KHoI3ce?&%QZ^Wby9)rtt)ug2&ENHz zz)4huE(-(#IezoEb8~Zbd3kyF@!BRDN4=uPf%PjB0AlS&{~7(Kdl(@yffGoC3emaa ooVxS&y`awK7u<T?{C9@<1E}d5?0If1#sB~S07*qoM6N<$f|PAc1ONa4 diff --git a/interface/web/themes/default-304/icons/x16/contrast__exclamation.png b/interface/web/themes/default-304/icons/x16/contrast__exclamation.png deleted file mode 100644 index 2efc34c4a0056ef9a710e2082c10ccde45c88385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmV<I0u%j-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008BNkl<ZILoEe zPfU_=7{KxOZP7&-2bpfwp<2Ucw@SdA3MSE^T1&ksn+&&nQ?}+Ix2Ub<W*K^D%qf9s zb1*?|TBe6;sWIhGrmrFrGK7gpx`jYvgH87I<1OC7p;Pbn;o<Up`R#pQFaW^*2lb)V zYO$fAA<SSfU`C^nWipxgNDU&#aom9PAPq<Xf@RAI==FN;#KZ*Qa=Aw1@whLQN+py^ z<)K2M2#Z9bH71jpj#d3Dz@40&Y>&lafn+iXi9~`z5CjE9(lf&0aHg{(R6wKAu+Xm) z;c$368jV6E5~0=C*VCj@DKs`VM)LCVOlY}~4ye^?zTIv&?eFhHC=|+3S67!K9pdqL z8)#WZ2UIFmO&}2P`Tc&#@OV5xk|dOuSAakufRYj(CH-A27Dv!>A06oE=#U44!GzcA z1-E+>?Di#?oBIN@v-7~`ms0NCISV=!hnm&Z;zP7NMF-HGmZK9S*4Le|uwVnT*+MHT zs{~<XIrKj}0XtiL)RbJUP6uY_KwDc|4N0!~Y&H_C)|DJWp#<*AFTm$_x8N{7hUN`u zk{16$%dhAFdOUo+-e_7`al!KPMviNeo6y^N3V!&ysGGR!c?{hT*|B2`yoC<PWHMH3 ztAemvSGOIGEy&i=B!rof3W)AJLhmgGq3;BY>rNlM>Bn!+j{FUv=Zn?W)^eMhTiUJG z^?=K@3x5RR#gih~_$C9FLju$9?}KAi2+Nks2cPt~=EE>L0`-SLSAKpz#zmJ%bcIl< z)T4`wP9JHXN{;D@!0)aCuk#{xg7ow{FTwmc%Q7>Fmu3P-kwWA=gTWA>cm6t?&2H#X zGR*dmXHt8fV%Xa}2l1Z|sF~)roZNf+5+BF}jv!2=06Cta>%_FkQnrDo*w?`>%=Y>@ eW*P3rdVd4tzB0`XODIGD0000<MNUMnLSTaSMr(Bd diff --git a/interface/web/themes/default-304/icons/x16/contrast__minus.png b/interface/web/themes/default-304/icons/x16/contrast__minus.png deleted file mode 100644 index 5c5a17e5ebd096576647c7b7290ed5dfaad84478..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00076Nkl<ZILoEe zL1>b37{~FyBcV`JQf75nhlU-Z<J6Fq+H{8n4xAmFs7SE4Cd4iab{f(p86Bj;2C+jL zx{E^8b=KHY8PjcUZrSFTn6QI5L3#!4>3QGg%U&cp^uoti#NXE!UnKxQ{s;RoKR-_v z78Xc2943)SL=ufgHOPuQ0)Zfm=Fm9mMdU1AAQTFzVzC&N&*v8#jYhHEZqqX}GcB*z zTQwLAn_{t;i5dSEP{rf%>3Y3hYBrld(=>~sC>BPTb4{U8d^{Ur1HoWWf}c)RtJR~E zlM|@bY8<=W&T%*#;BvWYB9SPHV<i^|1Ol3LIvqVeK88xA!eg`9c$kn{t=_@0n+y2; zeru^zDjpslLPw!cfNVAkgM)WKtJT85fSScTH<?T|9KYrQKA+E1E|=;3{e9Tm`v&Rs z8YB{5U}@<yXf(IG3=NrDIR3x|@SFDF70|idHmt0qV0rl~N2j~n#b`7$flpjuYHG@w z&2AP`sVpRu86LfUxQkAwujBYF7r@)2356ojOePQO>pMJVvxR4Pcoh2kZxnI-$kqwC z-EPU`q?bx2H;%Tp4&bbjkq6-GyAH3Umsl?)7uzocg8Dl`Hr^BRh7I8TC1Yb_s)>om z)5&D6l+XWw4vWPJ&t-D>>2!7p60-K^4}phVE+;BH42FA@-yc|9UEMD3?pEm0QP(f( z%C**$^A}oPK~Li;A>U_l$avPd0zA$kCAujT3bpu~zb}<a$7M3vLwxN3CD0r)qg&{5 sA8uxu<!PV?iBT`Q`VY#}_c9yu8<N2FXwDg^!T<mO07*qoM6N<$g3zNaE&u=k diff --git a/interface/web/themes/default-304/icons/x16/contrast__pencil.png b/interface/web/themes/default-304/icons/x16/contrast__pencil.png deleted file mode 100644 index 69e09f7406b38a98b6dc5b7434ac39a05d98e713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 744 zcmV<E0vG*>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00087Nkl<ZILn38 zUr1VE7zXg~jFnJ2BO$}ZuEGY=U^i)ck;hVlTFJ6qSZq!PolVD(L1VHYBF2yiCTv9% z-YBRyHa2#%4ca1S650A^Ey_qrh#@8umDS$8N*$67_QLPx@IB8t=R4ma06-=tCWzDN zByP8xcsw5B^Z8g5MHT7p?j}<bN#hPh`2!TCB>yPjdA(jK>Ov+AxzPyfK~;LazV?w! zHUNWz@P?v37Ztc%F0tS5XCje^FP%<DPfkv<Hk<9(VzDG>nqH>mWgp~n`O8cu0~(QN z)Jcfue1Uj+db&TAO2u-y9AvZE0)}A<25ownv|ss^Id}>+H8sx4%F1h#1SelGK0eOF zyEBPIV(;ka2$IPp%V02o)vSiG=a(TLe(|LGxW2CJ6TXfxzbAzPhr=Nag+kuL!$XM2 z<3%1aG`t!X6~e=hg}|6vprN5*9m7Vpz;3s9#bUAO?(Qy}+1lEIg}^%)9S{`4&&-#g zU2_#=G8w4V>Li9=vjsy#L#F-x{p|MkHf(Nwhfrt%W@f&CXY4M(&rKLG^P!_v0#a#X zK}(DJ7{hPb0^Dg6K0$VMbq(g`=3#dBYe9aC46Rk5rLTiR(Zo`zH2H$}Y=PBk?OIw| zj?T|7K`<CDqEu@CqEIMP7@lGa@H0tWE{``Hj=<vLdJ&DLvxru!gWB4<D2DH|1xBNh zXEs}yVDQ`C%E}I$*VcBcNK;d5n#19I#IT4h=<V$#ctpj0eGmGB!PQtKasX#KJ8!d8 zs*X%~IWLUC8)yGUp&&m3fq;l{Xu6rP+a10@U@f|_5zp#$cYZfF>vCdo{g2X8&H^sI zNzTt{!9^rQl9G}V8JEj#=kxhJ6%`ft@Y)WVK_eu8_6ey+)u$P@-~!^JDkS<3;py6Z ahWr5?_u!66Ouf7S0000<MNUMnLSTZm<y~?B diff --git a/interface/web/themes/default-304/icons/x16/contrast__plus.png b/interface/web/themes/default-304/icons/x16/contrast__plus.png deleted file mode 100644 index 5ce1789eaf4369fa50f09d17b6f9fae879ba3f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007dNkl<ZILoEe zZ)g&67{KwLF<0bYHksv%d=VM3^>S*A)m(GESl~$Q#U?2-+O0{j7wv@=#a<N1_9Cfp zvf3L3-J1=f-p(3ZPGr;lbANEkWC;tz3Bn1kr^j0!itJSfpS$DW`QCBAI|2aYe=s|@ z+fAmYr-|3=B|e`|;P?AgNRO->4#$heQ9o)zq*7JD<MAkFXJ@HcEH;zR=MyI<C$!ye zFWPLjj7Fnb<Ma8YSm#**#oXN7XfBsa6$%BQX_`S%6ayorV^$)Oe65Ty0hh}qz`IkK zOy=PD_!zR;EUT}tk7Y8Mz-%^Wc|4vUhox-5>2#_>p^*RR=m^s3bQPn~SfvzFDwSI} zY+(ZqheMxAr4q?x63X`W_8=08KzsXbP^;C@+Nxxf&b3-?7KcBwfw8eM>*3)c9goLh zXJ;2ep)dpjKVW|TJE&B*YIJpJi#Ys+4d9!$;uFvt8=J7WxC{#mKUr;UcWQKYc9#O* z*ucohh&~coODr!(AQ)V&($R5`C3|%P1n=b_eR-{b!=KmyE|1FN@%dL*W3aNaRi(RI z#}dAi!$9U4oS(Q<3Jh^{7f%Bgi$yRzY@>p~=)wB>K2+-Ic?eft+yv2toMHU^7&vdl zIpS`JlBtGCCV=Zp3<iT@aPY}!Fu0M5#ePAVPWK4JZ{?s#Kd3=Ih{LBp1a6IujYNT) zMst^PIGi&}OPh)9?KIunYyNZj>Gk3TyQIh&735nE+JTG<!;A^xWI0fWq^Oz8<*M<U zzb_Jr`o&`L0AAZi0W?mY^LAy4W+1QmQF67e4kM%-IEVPC3CYehRR5U_a-(Fpe(K*0 Z`3u6H|FWow9n}B;002ovPDHLkV1nkuNiP5Z diff --git a/interface/web/themes/default-304/icons/x16/contrast_low.png b/interface/web/themes/default-304/icons/x16/contrast_low.png deleted file mode 100644 index 5b4c2d7e7f241ddc09018fa768d83da262f6314c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006`Nkl<ZILoEd zPiT^H7{Kw@KNtU0;Ic*FxyCGHpbZCZ8hCJM11IK6=ft7o&0u4+fug}EY>1~If^F@O z=@|3Hxz-ZH4mt!G;z2xkDI6<WhoaN4;OSBF%@>Ofz3_Q?56|=EeP4bA01*G9c{3Oc z#K_19VKf?v(b3T}CX?wpG9m|;%YBGukPe9u(ekIjWvA2Wjz*(fl}hDZtyVi-T3V`y zLZOdlv-xdTSJz`)l>aSog(S)Oa=Cm|tyTd8O^b_*P2q4Dg2CX4L?U^H%L+z7uh*Zo z*=%H~R60UXEEZ`#pO5DE`ymhroQOoCP~&sxfKI1V;;Y6Bg#sKL95Bqy%`r4W!^6W_ z4u^A-4rsMnOE#N*pUGsPC6!76MNu$5Zilh4F)*8NH8q~`KYhZ0mkww&8Zw{HpQh7k z*x!E*o10s(va$-x%g@1Lx!qxM(pAU66FQ($sqW@-xzl8F7dAFxu(tMsX0=Xqa5`Pz zG4PZQD3wZEJf5h<ViZK9aR!HDs)NNc{uu)cbU-ebtGr%+lA>P0_V!B#w|kmlYH9`) zih)Bmn{B28eSLlB1_y`kM<Uem&dwWX=kd%lSgo!v0)cQ917bQLlgS9FRC-OVzVRp$ z+4-=ymxGq+=?65s-Sbr>I=_p{YV`XcH7-7%Pl&~0Sx--|pCo5f>+6YQ4AgP)$Hc_F zZ~gs4RX$&kV6j+Q)ZA$ga8Wnv#S=Eb<MHkYg~D01fWsLSMLwj#nXBkxW2Zg9MnZG} hUHXUaU$gAS?oXaq_$TmMTI>J-002ovPDHLkV1jhsF75yT diff --git a/interface/web/themes/default-304/icons/x16/contrast_small.png b/interface/web/themes/default-304/icons/x16/contrast_small.png deleted file mode 100644 index 606c490662373013d52901484d9e7a6e3021d777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003SNkl<ZILl-B z|NlP&C759t8n9^5B8FwlmI<v`vBDjQ;~5zl7XWbu5X%BFVFTvRpD(m()vB~dj~?y$ z`Sa(e;^N{Tfq{W{xVgEP01c2MXuy;yQ`~Rey0z!cn>YVoy?XUOJUsk=OiavwcX#)D zKm+Os8qnU}9{=pwvyV4!-28v))an0LR@VQ`%*;Rr`~(`XhM)lz6&3L}Zru8K?AWRQ zM~|NTZ)@ua#!gOdzkmj8B4|KHMuz+5%{%v8xN!6T`SUk`HV6Lq@Cf{`t84rWXh0`H z1Au-ON=iyeTeoh<p39dXe)9H?_-$Zd@rsR&eJ{`eC4vU{`S~&E>FEh6Dk{1IaXbS9 m!$lyT4aBNIJR*`ZsTcq*+_FUG^_^G%0000<MNUMnLSTY=ft_Cf diff --git a/interface/web/themes/default-304/icons/x16/contrast_small_low.png b/interface/web/themes/default-304/icons/x16/contrast_small_low.png deleted file mode 100644 index fd31a180511bc57e04647c3d9fa299f471ebccf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmV-w0hRuVP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003oNkl<ZILqae zu}i~H5XQgvqD4}y;SJVB1Su*VMWt&5!9_{}7W!woJ9khh!Npy{f}2u^6@sM=SR!dj za7f;3JO`aRq(cV>Ke**Me(>FQ$A}1vh+{$hJz#0JVcRx1=YlbI1YpB)oNWMa0B!+{ zlv4QsA`+!isnKjU&nuP6p=p|$>$)$kR%<to;|l=qxfYaCHOsOZLWtua2v&XH*M$)K z^?Lmjz}Z|2Qp(M8xqJ`=ABf`^!=aDqRKYNe9U|JB3rLcLPbLw@;|N3qO)Egt3Xt-P z0a%`!LYk(dZr6R%^)>vIfnw3XVBq(EmzfVplH|VKzPjo4ULQDL`Q*HidY<QXI(Lsm zbUi!IW>2|Vts;t|bt&ZufUPhLYXF`BTr$S`S(fDk{^2it0|`8USXcn#e*gdg07*qo IM6N<$f)Xp5+yDRo diff --git a/interface/web/themes/default-304/icons/x16/cross.png b/interface/web/themes/default-304/icons/x16/cross.png deleted file mode 100644 index 45d6e0d22aa95129d1ef11f92f55d1cc2fde7cad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmV;b0agBqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004TNkl<ZI8UXG zy-Px26voeAVBFB4FDb~{1gYE{1qZ>wp+%G=aFsjgUQkO7wG<TeAtgl65)=(h(ewrl zK|yOYw6sP;r{}red(*rQq44wNoac9*E2=8}(6#t4&fkfMG{LDz1{l7a8!kZ^Z~hiA zFj}uGU(Rg>PWD-?`dLSTE1K_GO&_ya{jzQ4+-Q{$^Ik4H*=wQTWxoZ77(nI#!AGT{ zH_4>F6^qK5JmqrE?mnG%c652uQGh`95bQ#D$>;Sl9@o26O0N?M-H$}H8I3A4I&=dI zAjl4cZHO1Km>yY{!*MvQ+%comRj`U-4Qzl-NL!H4@zpaNdvM2$4qe`K6|A=ebA^K- zn9=D~z`)!>^x)iMm+2^2#sJI%1P{(D5J^zR8^0imVF99z;28p6&J);^po}+u0e)j( zdRAnq1Yu5O5%Uxn2cuweUZli~4(1u&v=@Xx7z~3EFa!p{fSXw$;^u^I$S>%JAI6%f U0Y`og^Z)<=07*qoM6N<$f})eRe*gdg diff --git a/interface/web/themes/default-304/icons/x16/cross_circle.png b/interface/web/themes/default-304/icons/x16/cross_circle.png deleted file mode 100644 index e0886b8ccec4a51c1f59c4e866378ee339907db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006hNkl<ZILoDy zPe|Kf7{*`Pf-MYds>E6l4}yYYJt)|_6p9B?8Hg+n&x*(0HxR)Nym;7QV@`$5`rl0_ zgZ;^5-57(^g|Uv&(nB)3u7_SE=_$N>-z+Pi!?D9&_$6Py_j#V=%l82y!vEl2)&bxl zks&q#Vp{-n#0HV|;PD*yGM<(_7X^&$g+l7bM8d32O<8BNv(DMfjPpZLtkc0klY6ZB zTfoTUmKLp|DE9a1X*3n(96a}Ja?(Bshc(vz84$|^gQ_txVSgPTN3JiUqvzn_UU6*9 z-e_u4+0zJEq4mA%?>F_~VHE4b(2$E*r>PXa?CUex(+Ic=@aR)2WvPh-Zg+RP!g{@q zl}ZImr4kkj1uPbecu$gWRhIFvx7T7%Bj67GX?nZ!d|&{d#pC#(wH0%@9O}A``F!3r zuaJ4oW2dvzVNWAqnI5!c(s|m`gF9_)xJ4q-Y#4?+_nZA_)L9k-mgsX{$K%#fB!Wj5 zn9JodR;yLF$LvQU){?k{G#?yUHcn`LqIs9Z44Z4Un#(JCUJr%LwD=PjXiIMU{pv|a zhkZz2!R99<eDA?yHuL>OIBchVK6OFd#(6pvH|cOJ1_D}ElI&v&(RnEX$HW^lFZ%r& zYv;v-#MMPyrN#|PzaI>m+2&^Jvm`kTk9m%Jtm%SZB?bhDcH(jjAejWXbq!$qI>1|o w$2`Y9(p({;>=6Te#3e!|V*jAs)B4!^6KS>od}!ZP4gdfE07*qoM6N<$f~f8zN&o-= diff --git a/interface/web/themes/default-304/icons/x16/cross_circle_frame.png b/interface/web/themes/default-304/icons/x16/cross_circle_frame.png deleted file mode 100644 index b67b8c90834a973435994ffe66f7098ef3f84711..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmV<H0u=p;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008ANkl<ZILmF4 zT}YE*6vrPD8Os}G=9mSF!UDk$QWS<Qn9PQ(xy_F*N>Qu}Wpv?gREAL(;%#Nr5?M|V zKbD!HNK`5-o3-}UnzD^eRAd==(T$h?p7XR|MhAYphjaeF=Y3vyS#xtUGa8M|Y&Nr& zmKN69+Ip_7txe5o=k%nZUQIj7P?j8WS;hepzEoSS)&Y;l6FNFN!r|eefcnkN%}{@T z{{Uqu`|kk~lgXraI2@BCe4ClUC#x0jH5vi+AwD}e*vG`g#3W_O5eFCy2I2}|IFrdF zHoChJ(CP4lKY#W02~u5M@HIAyT|6Fx-EMc1LoU<n^#vA-#kRYf#M{meM9pSUCED9h zK@~9=L}q7a2fe+$HgcIxr_-#ht%W~~Kf~vS24vP(tyYj(?)rMT?N70^v=k<nX|>v$ zbgh+JJ^0SwFkf0Kf+r^@NTpIpBoc_lV*KiHjOXQHxx8Ftz1}Y%muWN_i{J0Zi`rU* znwqd$QGw?&8GJq;g25mnk%*8TTy}C6ii$+m?RJA)rdF%(c)ecCR#(HLQeh!KA1)ru zl=t@b#Ef{QP>AgM`Z~yEDwV3+?+;+1vlAO-Wmx@>{P$m=-LhQ%C%fSWxvZ|P?&{o} zYx~W^$5<>WIVCT0fgt(#_*gJsScugJV{kZ}+vKvEni_@4WFGPP!k9G};VdW+@(LFN zX{aaJ$v=-WTU!AbjiwQDSyfdPtE{Zl4G-UU1%ok6HC@A4ZZ1A@DV&CSn$gbhkHTiV z=OTw(CYQ@uadEL!sZ`z=9K8E75;?%TCzF`E-holYc>(n_i$wN88OoAFF4Y;%S&2k) zK_-)Rs8p99O;5j$N25QH3C(Cn8OoBAc3Boj#!+%EWoKt=q*CeaoSd8?&S;t;n$eCj doQr8E>o<#B8vsi;q&)xt002ovPDHLkV1gMhTp9oX diff --git a/interface/web/themes/default-304/icons/x16/cross_shield.png b/interface/web/themes/default-304/icons/x16/cross_shield.png deleted file mode 100644 index ea75a6fc4bfe6278bd47944ee5d4af475140844d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007FNkl<ZILm#K zQAiVU9LIlZcnF(gJ2!hUA@?BC5@HH6)ThJV+(aAble!muw%&wHNT{Hf$UtGDEp5&P zwI!p3qKNfSTURi%%|&C4wQ7_g(+B<a`>pG^Li)pp``z#N`+Se%4iFLU0F?0&%Y>g; z1!yLoC^Y+(nNQhe*oA)sln~QhfY1j?`oeHcJ+tpW0U_cl4Nnp_s@Gn(w`YEikK>QA zF^qR~WT|(bXS~C^?5F`t0MXBG_s&Xnb!<ft;&OL)?yJXxTYY`_-sQsl@G!pV>dMnR zzDzr*-rgN{)BrEQi^9mrL1t(OKMf8dpI4If7kp9!1DNdZ$B%CJ0Xu5IJix}5)4Bi5 z;Xv)-`=fd>N!n*e4Y)<`Ecf*6ZnU-GYEx5ru~aHyKA*>QI*rL>5>u%Z&KZs9HJdTq z(y~iVKn=J7FdOacEIzi|G1A(K3!;dzSPW%Z#zZ1fmc1k|Dg+uDzLRrP4Y&?)fl{-N zY&Hzk)uEr3v~nhsDfgH)n%_1Wv*est1Fiv_oi`XZpIWULIzrCna#$!7%CmKg1!o0e zlN~kSGJs*Gq9Xd-YTeVyK@u32i^XD@h$!yO&?jU^4Vb3C>Jq?3uU@|$rYErcfW(&y zT(ivAIYHRw-D&NgI7K&;0OABdWU;n3`%n}Q-<nJ)^Xn*tjmE=;nwl){@a~j0fKMag zq{}G4(nM9&yP!_@ZHq*PYwq!kcN*dM(FRl!I>J&9aN-QW=sAG(D}s<_xTc<mXS7qV z>{e<6jwypvgq_g?IOu6X7r;HP|MZE|#Bp}m{RIzB-jY1vUG)F}002ovPDHLkV1hd9 BKsx{c diff --git a/interface/web/themes/default-304/icons/x16/cross_small.png b/interface/web/themes/default-304/icons/x16/cross_small.png deleted file mode 100644 index f55e3cf6aef8cc0d5aac7c757308ea2fff0822c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Q#@T9Lo7}w|M>sko>_H9;uQuT z<}f3J3Wkr80(+-4GPe3pVf1e3`agBbANGq5F}-KhPc>9J%znls`rpIvU%!ujN`isf zsfLvf>CA<u0`q@9c>7o0#Xm7Y<4t0Mf*#MVMm+{CyU&L%e6TmV>zgBC!Ypb(W$Iu4 zMbQmr%AY%p6vQ)v)dC7tFPwMqEvVDms3+0rDaml}^_uS*TkF|@?ql$D^>bP0l+XkK D535T# diff --git a/interface/web/themes/default-304/icons/x16/cross_small_circle.png b/interface/web/themes/default-304/icons/x16/cross_small_circle.png deleted file mode 100644 index 948ccc36c5e141c36dc0ad9e8b7ff555a17d489c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hdf;zLo7}w|M>sko>_H9qJ-3j zmd3_JRpw@K0e$92#sRmuRs5zfb~kpFTU*4`i^=`_SsQihzItNfe8-vz7J+PMSa1DE z`uFF&!?*u`pFLA}^?z^XWxM7hokj^-7jClq`u^7w5&2X9`Pte33RP>@yom?t`NEKE z6%+VTa!I9bz~|T3*Z-ftZtdSY&TF`%8tUdIrj^xpZ~pwgxT&eWyrSaIyzJ!Sy{$J4 yGT7S6^a2XiF1RV!F)wobla`d6Xrei}kFlTo(2lm5H_L&(VeoYIb6Mw<&;$Uor)(?$ diff --git a/interface/web/themes/default-304/icons/x16/crown.png b/interface/web/themes/default-304/icons/x16/crown.png deleted file mode 100644 index d48dd5d9c87304fe6d6c261722341e7324486bdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmV;00($+4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006^Nkl<ZILoEc z-%C?r7zgm@obv~G8(wq~-E`9rtSspl6a*!Nfy-9MuyHnvtgvF4tE?<6wRWTFXtvo_ z)<iQ#ZjE#k!lW(frzQ52)-SQuMUxu&?R{VMP}HdCz?T=E^E@A(mzMz0|AYcIWqMbI zQo~PwnM{-Uo4NolTjkUEa0&cmp&#<cx&SVg$}^fvWRGu`Y;bOssL>)(y(W>pNHSIA zQ?#~F(pad$ERlD+Ol^B)1MlZ^0tg>c==wpWmi=%rAZG$tQni61iGCX@3#g9)D<*)P z4y)`49Z>9ShJFJ0S`27mfQ13=i3ioV;mO16o?<W{%z$kSxG*+kL0W)^0lu$s7hd+1 zfp2iH-GJd<4Gi$79&JH-z-q;p=Vvhb)Pa#($1wV=4!rg;R*HePTqJI)_#9P5?YBTQ zD@y>0*l``;wMifzTq6KpOM8Wp{%Re#<1Z0c==J97!25{$>lH%#6$+FqHG_fO816f& z1Gif>IQGs(mt&<4ya}ztL;p^6?o&>(nQ`E(Sth3@SB<@LA$i}f1CIkc#4Gf9a&_QS zWGzy6Rj~dOO`1Fo*j7tCwK1Os-Olw0HRhwUE)U)#OT`Ax@@$;1T!t(5T!fp9;C<z* zq*E;8KxT$SrumW!@4QI8aEez*4mIFy^e_gmS@0yd3Gr@Kyh1Xj;@iMxn6f1|pA!K4 zrY@gG^#wC2Xq-(Qg;~^MT0m~|B61fmCJ)OwZ6P%m%_Hx|In-*LMOS%0pPK|SSf;RK f{zG_w1_!<a`AHgw(CG=O00000NkvXXu0mjfZx1EJ diff --git a/interface/web/themes/default-304/icons/x16/crown__arrow.png b/interface/web/themes/default-304/icons/x16/crown__arrow.png deleted file mode 100644 index 4185b7c73b4ecb6f18418ee3f2f98355b2768177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007iNkl<ZILoEc zTSyd990u_J%wP}%zJ>bGL-i7r1ZJjK5f&1KCE;SN3MRAbH9^fy)Uv!}sks_nc5}<i zE}3g<g5jEEYKcjsn^}~iW|EPJZ7(S$_;qH`wTC33fsX^<ng5S-I0S(HCuGkOc6Q|m z#q!#g!P9Cs+S4N)UxjZ?kXIJ^BOB`JK?=XCK8ZJ5Q+bsso+E>nqe_t@eKZ%76Gl== z6eqG!wT2_h1)gjdd6oRXJlCAYfbOdTJ-s57uni*v0#<-Sg=*??I<k-#P6G@$x&j2W z>Ud-4WkJto<heCKJ{AKS8K7lAi}PI(`plvD(i;l~bTc540r!{3wOALB!vO2AnOaQu zW<Wl{NQ(+{{UR99w)7zm>jOF+eoob3angwSR|Q!7SOK~FKA3{{wv%wajKmKqQtAE* zNIpIa;2gZ+0_1KLnCUpB0CKnP73Lj9E?~GVNx4G5CCmlnS#1!T9LOt<vuEB+q4eAY zqRwoA?3qIGm^}@11Nkmss9A*Z(mr$<gI$2S<^>EhKyX>#tl#a)2=D7}i0)~4GKqZQ z^5<GCyw$saQG2rT3JK*kI9=L~Gi7%8ry8JsI05}Mz=owg`L81=>jWpKWYDU`Gt*gg z8p6<C5eiH0VdVtJ%_AtB0?v;BD#u#VMu8m}&n5D5=O|`BSBqH-mOh!3S6CRY##iYY z#-3=AaH|SOG8+(--GG4fJMgQUK<E(Q5&u~7Ol*%J_H7H=PL<)_)NyVvwMO|+W6S}n z(*#mo>_IZKG>HCGAMHyPPgSXNcMq^tRX(>lFfn<HuUeibcNPy8uYYAzNY!1pkm_N# eV+ER(Ir<H$y%ahyV42AP0000<MNUMnLSTYnyf?)F diff --git a/interface/web/themes/default-304/icons/x16/crown__exclamation.png b/interface/web/themes/default-304/icons/x16/crown__exclamation.png deleted file mode 100644 index 845be0f1a5d6d5fe8d982e8d29d516b262a63783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0x<oFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007(Nkl<ZILoEd zZAep59LMqhxwp6By9$XciKt#gFp<=#$SBAlgeF!bgv?oFfhkLx<wKgGhGCjpE+24c z&1MU;l}~e|Vs6QFKBi@&mZ&XX=qSTq=MGyD3PLZw9QfaRKAgk71c3f0GONYyO(|lI zwALmG^t-jr>6uD+fUi#=tvvdxHO=X9ys)c0PN*<k6(V#O8EKS^3Kfj<&a>zgIoWcf zn1V+|F^u$=1u`ZI5z_n8zUl-HSW-o5yea1L2U-pUF9Qd%&Qgo3OO0ER)WLxx%RsP6 zC1~q!h<SXEwC@if9g72198hwg#?_mR){1aUT4TWh3kNQ7pmJ$giB$n94j6t+lw!=9 z1nC4lH4&I@SAYYxivt(1I-pYF`)D!TAGDb5%!K=60i@YCdp!D$CopCS!BB%AX6}Zq z4A^8c58$%j@dDCJ0{V={(O0((^V1sGGd7?hRm@-U3bS3=UcgZs=ea_=UXE^KAVxdG z@pImQ$?j8VxhI;M(nXS@`ec#J*TtM6a{{J2GQ7aMY6Y~{0??#A3fogZ%uQrLE|<eK zmIiBy;Cy3X>v%*ZF#_onLe|oFDHfc0USQCC#q$-~^g(bohG1@7&Hr1%=Yd$X8@Ena zs#s`qB?r`DOe)uIP@-9P8uc1EUKWHypMKDDf|~q|7;&6Kf6p<zs7*wV;}GnvLGFeM zR`j}@G4l0c6dlM)F{Q`iC!OajEDRUni!BX~=O@u&+JVu*!x-t6c}^g$BfSA=sb1e+ z_lO1Y8Epymr^3iR^y<uBGDXR#DtaH4#q6gtZ895nTK(Nq?{{NrXeZ`plRT?bf7|96 zlZF*bfDdmI&-dRRW{{R=`?umuvgvNq+wyF>{|hB^BI?D&@?Zb}002ovPDHLkV1gX> BO)LNa diff --git a/interface/web/themes/default-304/icons/x16/crown__minus.png b/interface/web/themes/default-304/icons/x16/crown__minus.png deleted file mode 100644 index ddeadb3a1d6aae93ab58c3b3249ca50939507f7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmV;H0%`q;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ANkl<ZILoEc zT}YEr7zgm@eczid3Waqc1{G1%3i`l4r4ON^i-huG%Pbcn+bpuejAgE}vM|)xjcZ$t zrfq6%`9Y&?jZB5G(UwHtVxMGLX6q)U1pl4$Hdj#tqXT~qJm)+=p2Hyk^gkiLQJUFS zCROp>TO!g}##^TrgLoF7E`#qZ^h?H7r%OemvaV2cy7!A}`!0d3dV$PZflPTqewm8G z)fz#|LKdAsu00|(9T3(0KJW7sGobyLL^qB~)$G8=fb<x!x?&r3M7xbB&!!Lq*2RGI zR)c5@9+6C}hxh#i_*e{RWPqLl&C!RIxaG{k+s*<opq&A`8PG7=t4BhBhXL+yeGa_t zECHY3ezO__U0N`}JMv^F5(5SUzP>z<;pa9C-Z_Qg7d7Cu&ygZLZpuXTb}qhzbLHA! zfpA)y3`8TR;{dOX0eyi@GQevIpD@^683*op3*{$txm0oBLr3m!Pq>=Fej#{RB7dn= z)#ES5K<H!~xa-lvc5pG;Y#ZXhyWkc)^6rE0kaVVbx<C!Y)&-qNcCA=3`o@8w2c|gi z)W28$g^)87f%Vhios|sV>|_MyDo{U>`dM?hp2$kZjRH?~#I46o`&I<4D)?%$;5xBJ zp1@wZ4Ckgy!mvj3M=T7X)FgrOmkJKNcVXm}UH*lkUJLre$I)|Lk7t1$xUyLZ^Be^% zN(HR*Cc`*^K9;fOay|iDQ`gQQbM|}+<Se9CO&T@kFQ;1FN~$ebMNXEB+7(onw}f2V w7m+7t0bS$wd0z(oSV=4?EUEvHlvp2q2W^x1ECjDjE&u=k07*qoM6N<$g17E7y8r+H diff --git a/interface/web/themes/default-304/icons/x16/crown__pencil.png b/interface/web/themes/default-304/icons/x16/crown__pencil.png deleted file mode 100644 index 4ae445f1d0087dad231027561d1ced1567d7367d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007&Nkl<ZILoEc zZAep590u_Jxr3ljfdq|3fzg-xpoNhlQi7#a3sG?Rl0vO%MHZN`M5|dQhFZ(ebhzfs z;mgcrN=<xeDr%#dz2Zw^B`Jp3`cRINd^-2ymPQ|h4m@1=-~0SH=N<w;{}Zz3$hLOr zWJTh$HA^6GRy(H$THy}9G(ddv(6X#*PW2hWw(4}D#(GXr8BZ~)NMlr{VWdCG)Verw z6{j!_50$4fvYZj9>Aav4zZZLrnH+HB%Bb_QteC$ra3FLE*i(>1-R_|r<i(Sd1N)YM z&}OY*Xul-W^N!g21Blz=Kph9tIAC+XEks{U45oWdfCCN=oaR97;&>XoKySFP5)i`y z>(8kwO!j0!+`(&`3bO+maG-Tz<RrYnh`&Hi#+CtEEq;8cglEElxo7$Cyf1|~`#P9` z;U*>APm}T8l`PGAlh@QwFlOs#EZhgUf`TN#J$T&*h%+xR)fO!Q9U&noiT3Y@PKRd3 zx>p=wZm7@)ylhREjxb<}^8u3``|;3}1dqpqNQL5ti71lVFUrWCEh`$cXJXcQ%?CVh z)WC3I7rG2l5-`>h21oTqc&4+E5V4`p&(ANQlK3*E3S`s>1&g1mF#ksH14iv<rCV^; zC^6I!3Wr%Pm2J1>&})R+*x<EP5y*dH&LJkIc+i@LC&mP{SH$6QX$&k^_ewjsm$x1F zOV&$eQ@$LXcMl``AiK#!Vo0%$k$N|)!e<K>J{qN4m>)04jOz+sG^x;O-XxW+x8!(d zkHW9vV^9Y(v)J>l%@JFuEIxqR5_eE@N)XklL&%&OM&{f^_6pxdQIx@E(hpGAk)70- z7)X!A@5P=MSjQvhQT!t~u4FB-;Y|70T)xz!-~Dp`JsmHoFaQ7m07*qoM6N<$f?YsU A*Z=?k diff --git a/interface/web/themes/default-304/icons/x16/crown__plus.png b/interface/web/themes/default-304/icons/x16/crown__plus.png deleted file mode 100644 index 66a13f86943ab7e5b856d71f9e374c4d2ec306e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007XNkl<ZILoEc zZAep590u_Jy_XDHsn~~N9~MY`=mpc(t7IWXeMks{i4{7;wy9)+DO0r4-Y|4wfiJtb zoVrVzqFF*S$xH~7W@0Z?Vp)=<EL~qxO7Q8No35awpbHNN{^veF&fyRM`k#<HPg>cL zFBS8(HAkem{Og=<SjBQoTnArS=$HJ{oa!^g)ivp&tKozg=SUOCZV{-=Bv46`keqKI zk1bI!u~3CsAmx}yO<7_b|DX37Ga1lXAkp2^l8tT142YZsb`&0_`@X(BoQtO(2JD^% zB3rDY+<r<bVIAK43GibvppF3+1~mJg7vX^`79YA&z<^E$9A&_@nL!KY1$Y?H@NLA2 z;jSF;6FhB>gSXoR2DDDUOvU_w)rzlgD>3y(#`vQPm>MbtpMCDlz>B6B_#P(Uizh*y z{Sol!^(x@&z32z{Yz`P{+phwAHt!Y2`-=QPe`~sWg>J>*2aGqvp}(~X(Q?p}w96VY zUeXY?pOna*D-{p8GvVzy?*|??njmLyM2EcB53H{b#gU0DEUO9`3vh-IIasR9A~{TA z;mms{CZCn~fmiP1>MQiPVqmCUgRoj1B9s*{c+FT^9z4p*9;ytnQ{Fy-$JX0m!9B-8 zwA&51T^bAJ>`wIrj@&H>y`n|*#{<8GN`pP54H77Mv*5&-g6Ve-^%W)uD=_LggMm91 zylykXs6-&VLWd2q4(o=a5LmGI6BP$~$QEcP_UU$oQdxW$wH*qlmP9?(C2yr_^LDCE zi6R$Et!W$8ByA#PN%kV2c4#d$R*jeUXwO34ry!Q)EZV;&HQ*|l7xb&^j~;yoOCtIm T%kOG=00000NkvXXu0mjf0J1lB diff --git a/interface/web/themes/default-304/icons/x16/crown_bronze.png b/interface/web/themes/default-304/icons/x16/crown_bronze.png deleted file mode 100644 index 9d0e752bad6eb628870b886790098e9f47bf5303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006?Nkl<ZILoEd zT}YEr7zgm@-7dP6ZroCka1?d1wc6%{5WIK=2Ysx91x1Qkfdv^6X|k{_6DDPTHFI;z z*k-b@_CYf<ou);BQbBYP?ApGx3sDopf9JexFGY=t4*WUr@SGp#@Eig_{}W1@g)LLX z<mLP0B7rjbo4N!%G${r!(gVJ;&=2`zT>_#8g*LoHnTQ(|m3Ou)DWF%<Ev=H=n-n#d za%sA?K&ZKvPvj{i8rVt{*9#TApP!R}XT?P9O1%lABFuo&G$3BxsCbUSi@2<!7Yry% z10@gi6q+!RZ?cH!Cjg^fFkqMgXBm)OjJhy$!GZ<<F)-i>18Ny?AK`<@3gBq~3>aNa z_F}fX7W@XOW-FHZD!_nYgbyP-P*;bQNGq1(?U=iH9vJHeuOWN}DW`}<&jEb(?Uic3 z1*Q!K3HaivmjPbO03TaK3E;J?Pnh%DW#EnLxb%dV4ZCFEbK9O@pD<}AnlO{+-IZ#5 za-WldS9TjbWg1MKE|Gx`Ef&0WRAS6X-f>eJi0OzTI_g-9UdPhyMj1%Cs-!8rZV+W) zp<TqczTLQ|rOt>p4R|%|lW3@Orrw6+$#RUG5HWPL6d|ilx`D5JGy3;!L+r>-jGwZA z_w^J~7ylO$pjk)c%A){=ZeW#7fKOpL)`t0@9kX54c;9gd^KP3og%!UQYoYz%{rsE+ zuvJjCp4<)<J#wlk-n2ou+ng^1*&b-jrJy610!=CwHTAP!Ip|bTg7@=t86by6&64*I d;r%%r_zuvG^ijj`2(thH002ovPDHLkV1jy}BWnNv diff --git a/interface/web/themes/default-304/icons/x16/crown_silver.png b/interface/web/themes/default-304/icons/x16/crown_silver.png deleted file mode 100644 index 917987f6f38fb77c7f60c85fc1f301ab2b596ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006sNkl<ZILoEd z&x=w~6bJB&ii!$?E({kf#2*Ag8wF95K$qe#@K5N4%_3qV9|;v`i`ltxz(HJ0Op7N( zfit}srQr<?lQSSRsU%5`h?EQnEuu|uI`_`_Xeg=Z!Iulib3WYby#xTr|Aa&$5o;om z;OH6*2FW~sQ)ht3<Kbqr8PF9&e##%~46xa3R+GuZIUEk3R;wlRPovRXS11%KMx!xo zu~-QHPP|?(@%elK+E3>gkWQybJRaxVZa0U3{e0eq$+g=bL9f@ZAaL~@xDpPBZ)1NZ znM{%k0NoY>91dQ?+&Vsf4{K`z?Cre+1Rf(0MId{6`W+SmG&szSMk5f#S3q}At2Lq3 z`Tz(#7>~cgLZH!TK)>IIUato`I}I2PCqQfM_7DW235SOR=ypG`+HZkuHp_r!vnd0# zHV3x1j~GB}3y;uhwPc`Pf60!pvGGg>4h}lM9wC)Vk!Uo^iJ}OSB+0<~`cvR}9#&VM z$bclZ5v~LFXJWC~84wDEh~MwOF&>XE>_8A+uv@5BpUVLKGfz&wKp+sfNna%cTrL-} z+wB=a5TH`2K)GCoQmF*_e4gzfm&-w+P=I2wh*%YGrABXL$?0^S0cy3Hn9b(p>2wN% z!GPUDr_+V~{Ug}id<|P$Z(w)#ExUzY?=ws$-vImX(m4j;cNw4U66O&Wb1IeU9_Efx zsa(dD$H&FvYs?x91|D-?r_(*8{d8^)7%`VH)_(}?H&WmS8&K*L`l|t*00000NkvXX Hu0mjfaAXQe diff --git a/interface/web/themes/default-304/icons/x16/database.png b/interface/web/themes/default-304/icons/x16/database.png deleted file mode 100644 index a81cfecfad0e853e89f30febc14d22633d0cbe16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW3_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00042Nkl<ZILl)Q z4Gm=gVLv}VUkwe7G*(vDGzJC+5H0}XW;QmqE+HYIb_E56217%`3P(rB0-)M}z`#HT z5N1F!AnnzwSO4$dzyJT*wQK(`UAp{#@80A8w`@83f6tzC|4*L0{r~#)m;awV`|%&B zHVdl(&z?Q|f8oLfpvJxbckbNvfAQkA|7Xu$^MCpBok0HS|7XtJ`~T?C=Rs_MaZXOo z=Gn7n|DQQ?=Kucw{{J;KHUBFrD*iV#H2m-B>G=<mD=jVE4peJ48i>>k#NgmyF!u5B zAvzF&YP0<P{TV=*!OYBz!OhK$!NI{Hl~^wT^Fz9`vonK<i3tN3sHv$j=<4cb5^I2- zo?e!!swx8vZ~?KHq@-jqv0jjpk}3x2f$C)t0%9FbPR?9*cJ@YKc5Y;0VFBSLAZ`Zo tL0P()gM*_PsHTaFi>nEw7NiHH7XW7#DB^Js)4Biv002ovPDHLkV1nU0y!QYA diff --git a/interface/web/themes/default-304/icons/x16/database_arrow.png b/interface/web/themes/default-304/icons/x16/database_arrow.png deleted file mode 100644 index ab07ed078931ced354efe6d94391dc0ad86cea94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005fNkl<ZILl)Q z4Gm=gVLv}VUkwe7G*(vDGzJC+5H0}XW;QmqE+HYIb_E56217%`3P(rB0-)M}z`#HT z5N1F!AnnzwSO4$dzyJT*wQK(`UAp{#@80A8w`@83f6tzC|4*L0{r~#)m;awV`|%&B zHVdl(&z?Q|f8oLfpvJxbckbNvfAQkA|7Xu$^MCpBok0HS|7XtJ`~T?C=Rs_MaZXOo z=Gn7n|DQQ?=Kucw{{J;KHUBFrD*iV#H2m-B>G=<mD=jVE4peJ4QUkGU{p0`ft6%?j zFP*i(wRk3jL(U}90?}vMrT;UZ{{L?|@y2!Y$@gOP+AlFM1P2F$v5$`r)<Dddd-1>b zq>KN3r(F4OQnCGi^xC`sCp`N9AE^0^ZtH~@1~W4=1~)f11_uX+RBT@GTz>z5$Aka> zlP>@NA9fyrOK$%EuUvWf3<C(Lsi`sO>gr}<Gr*^A(|?n)ZT~H*cK$ai-TL2r;obj% z=l=hf$l7{FGG}`XNIw@4i%CjK786PbW~E#H>m2<5pFecQV=jlHJg8m<At2V_<mAj{ zXJ>B&X6Hs078Ve00^(*MAC#q=IXF0)*(|cpv3hhrW7G7R4blVB3jlVuH*Su<%B=tZ N002ovPDHLkV1gB!1eyQ< diff --git a/interface/web/themes/default-304/icons/x16/database_exclamation.png b/interface/web/themes/default-304/icons/x16/database_exclamation.png deleted file mode 100644 index a10c08422bce1b9d3e33860db89575d7cace9c56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0<ZmvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006PNkl<ZILpnG zU1*X~7{|{meq_*%7lF`)S7MQb7*f!MHgL2|5|JpXyQG@YC}gi7p?Oi1VbDd&3l*8T z<+cLNP!t=q*-*;O{Aj~mGYnl_^fBrp_;+3*h#|yoq60r34(EA(oaf;jVzb!@kJ)TK zq*AHuB9X{W2;mu__{3uIHJMCyMWIl5G#U+SFc?N??qQ3?LU_m@0(-aHMYGvNwOYl( zLK)d?9*M*ZGMSf{n_EJy)<L`d12p$+UqQRwMyXVyg;}IhX@tX*;J67yqba&Cpjdp1 zm6fmmu|Vr^IN}_~AruNB5D38Sc7tVEcsw5X{eJLgPN(xJ&DH(;A?A{oP|OUW@tWJX zU@RKPOwx=ms}WRZPvVGe==_ERkH@{J6^8M1ErxfM3-GbKZl5@Ifbjfvh%VPC9&%cI zY+VP<!|Jl<dnU4J>UoS2QV6kHtvyU8Q{N$`;<xZ>`Y1lXcY{7{e5jvBZgP9`*%&jB zi&BA3rz1wAk?8gMQ~g?)x;KbM*^XLy5Kj_Ll;`y*&hGn`dB6nI_Ze!SOQ}>6wOV~< zy<j|i73tU>EWg>0Mn&7Z0UsNc-I$)(l26`Y_VV?cDO=@o`Nj1u#3Kh$f1yEVX$Lxs zDy)5S^&(F_zpeWy$lT=xGRjV=RC-P#k$CBM_6mhUp3B3>1qDCLw0?8L#Up6lbPJk6 eA1RI63HJ-Mm^xDFcpTCI0000<MNUMnLSTY-HWqXM diff --git a/interface/web/themes/default-304/icons/x16/database_minus.png b/interface/web/themes/default-304/icons/x16/database_minus.png deleted file mode 100644 index 662af8f4394cb41bd228c51547c5caca03fb1342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004xNkl<ZILl)Q z4Gm=gVLv}VUkwe7G*(vDGzJC+5H0}XW;QmqE+HYIb_E56217%`3P(rB0-)M}z`#HT z5N1F!AnnzwSO4$dzyJT*wQK(`UAp{#@80A8w`@83f6tzC|4*L0{r~#)m;awV`|%&B zHVdl(&z?Q|f8oLfpvJxbckbNvfAQkA|7Xu$^MCpBok0HS|7XtJ`~T?C=Rs_MaZXOo z=Gn7n|DQQ?=Kucw{{J;KHUBFrD*iV#H2m-B>G=<mD=jVE4peJ48i)`BYBe><3&dm_ z8?#lwWV#%P8G?g@!Pv*g2WKE|_7DHRPE+UqMjieCTl9?n&*$KH2-JLL83V&i1~W4= z1~)f11_uX+R9s$|t*H9{dt4j_o&huj<Ol{eH8loZUENGv2261B`roap`M)3Nipjc$ z|0`HoA2k3qw}4y#1YAHYCMhXdOl&%kl9DP0>4EBH5CUQyPEO8Tc6RngV0La~VPOH` yCLnGG@<Ca;nS+C)8K|a-i;JrXq!y$Hq!$3qXdx$ShTCBP0000<MNUMnLSTYdjm>EQ diff --git a/interface/web/themes/default-304/icons/x16/database_pencil.png b/interface/web/themes/default-304/icons/x16/database_pencil.png deleted file mode 100644 index 21eba868a4a6e48b9cbc34abced0e6ba1d7ea6e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7S|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00060Nkl<ZILpnG zUuaTc7{=cd{=XC!c&@xryhuSbL)hSmaIQ=e^RCM>5`)1K47_l9F(^xlK|35-rE9X- zh}g;uPt-*#X&bV@5ygaE9LU=OyL<Z1p(56Tt*btGF1~Y~-}CXl-}_N2l_E{?c>J`- z<4GHh#xxOWnq(@QOr~pgyM4y#bQb-7e?Ah4Ofv78L?S_&=(m9Ma5%(ZFhIZG$M*Jn zD9RhGt-VI4vxRQ=BX)K^Lsh?lc{2wFsH%!yug5?I?e=pt8Y__HWi*>@wtt6>ja}^R zeff_A0@-YKRhDH)l7wotibA1)d_Iq2v4~2g0_|TemuoR^C^s=dU5@+rCMsiNe+C@3 zgnT%BeV5}Nt#h1k<bci1Psogqud=%EnB!g@DPa9&6ZQHsMxzl#p1*mQNIY~C@7&7Z z;hYa6^(xrJN^ClPH8!f0OeS^3VzIwA@x`-yXe~x`cu5j)E)}Tyd_KD3b`ym{AreKA z1VOlPPzm)~87s9@I^4J&#@5>>VDI5#G#aH~Fi84xvm~$Adue~b!u%|j<^noAe<O&_ z(*^w&*y$OU%SAtzjp?|<;h5TA!s6_C;OhqlpM=tS@M{iuo}bc~A1v9KPFSth%Vx8A znmy-fgTbJw#J=OKaIEif8tz*xmNN5{Y&Kg-^J<L7eh2r8Cpdrr+jsx~002ovPDHLk FV1oNJ4Cnv= diff --git a/interface/web/themes/default-304/icons/x16/database_plus.png b/interface/web/themes/default-304/icons/x16/database_plus.png deleted file mode 100644 index cc67cc49ff289e5d530da93dabc51a13ff5e63db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV<O0S*3%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005GNkl<ZILl)Q z4Gm=gVLv}VUkwe7G*(vDGzJC+5H0}XW;QmqE+HYIb_E56217%`3P(rB0-)M}z`#HT z5N1F!AnnzwSO4$dzyJT*wQK(`UAp{#@80A8w`@83f6tzC|4*L0{r~#)m;awV`|%&B zHVdl(&z?Q|f8oLfpvJxbckbNvfAQkA|7Xu$^MCpBok0HS|7XtJ`~T?C=Rs_MaZXOo z=Gn7n|DQQ?=Kucw{{J;KHUBFrD*iV#H2m-B>G=<mD=jVE4peJ4QUft?Tgrdkt&abt zdNmH~R+=$rmK%{4i1Lf{|EIhw{m-&M{5r!zVFre|LJSPS!NFkc<Ku%f5dGIC{?}Y) z^<QVD?f=l%Y5zH<NjwB<KEp6aXeNW1nHhtdn;V0JgF`AVFDTA5`tSHW2m>=r6*$8H z0%~e%47$3ynYavanjZ9Db*jmK&6yVebspLNXKfLD#L&ZchM|{lCP+UQ5Q|AlN){7J z2Rc(M{!880{?A;&`xvALs+R#65)3+=oSeDr?Cg!e?A*x0!UDogK->)EgR*op2M0$p ovlrVr#yGZTjGnAJL3%)X0sJ!_zZ?o}*Z=?k07*qoM6N<$f~lYFr2qf` diff --git a/interface/web/themes/default-304/icons/x16/database_small.png b/interface/web/themes/default-304/icons/x16/database_small.png deleted file mode 100644 index 1919c749805f469ce48acd3ab2aaf16825814aef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmV+)0pR|LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002yNkl<ZILl-B z|NlP&C75CG8Q|sR<trc{kjB8kkPgH(92^{7($dn+#>U3wK)E1d3`l$R>ec_7H*fww zdGg%<ZQG6m>D&JwJ^Jz=D3?Q&0neU2`+wxfk^dVvZv8)Z?)v{bcb@)#@7{Z&4KR+0 ziP=13#*F{X&CUNSD=YuEx3~Y#$jI0QlryKj7d$*XaC!kKN7w)>D=U-8$jB||UPw+( z-eGNRP1p+>8XEbyyr8M6SwzqPadGh)TwVam)e$s+o0~hGm6f%Ng@px#dw}d7c6Rn2 lPEO8l9v+^IA&?hH#Q+q_!5%$0Dfs{Z002ovPDHLkV1iRRgI53m diff --git a/interface/web/themes/default-304/icons/x16/databases.png b/interface/web/themes/default-304/icons/x16/databases.png deleted file mode 100644 index 5cb5e5ff498765f03575c2df6dbba18ee3563c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004yNkl<ZILl)Q z4Gm@R@$q4hlapfrv7vllAU}<PfdPcGfVhF3oxMv`RJ2t?L!;Kl#-`ZU*EawN7#NTZ z5EB!F@zY+tdiDSA-Mjy<UcLJN;K5V>w{AW5|G<Gu|1Vv7^8e}6Z~uV?WMLQp0w6;` z20VNA?EmT0r~mKXz5D-)6&wD~nX~r)+O_-tA3b{g|HFr$FbqI(GSHCCxw*Ojb8>S2 z7Z(@*FE6k8-`w1f*8qY}PESt<8q)lK^5n_?3knK$01YrhF@TVhJ3FV~4FiG(R9Cm+ z^@4F~YU<{hGiUyvI(6#*`uh6+m6ernCwF)E0r5=ghJmN2r<u36H~C@U;NXzq<m5zt z80hNiX6x(gGcbVs0d$UWN=gdOFqkxH+W&d;)}XjRN=mAPgM)*C!OhK$!QS3Jl~5R{ zsi|#aV`FOuYHH%*;%egL<je&oIwc061cQ!_P9`BQ05ee)P=gd276c`K0ZB>85<)Hj zIT@w_9moTnlLO4IjVvrIFx<?_%G!+8$!Guo9ibZKH)9s*00000NkvXXu0mjfdq&(n diff --git a/interface/web/themes/default-304/icons/x16/databases_arrow.png b/interface/web/themes/default-304/icons/x16/databases_arrow.png deleted file mode 100644 index 23756383c60f7012415723e45346ffdd2845ae56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006CNkl<ZILl)Q z4Gm@R@$q4hlapfrv7vllAU}<PfdPcGfVhF3oxMv`RJ2t?L!;Kl#-`ZU*EawN7#NTZ z5EB!F@zY+tdiDSA-Mjy<UcLJN;K5V>w{AW5|G<Gu|1Vv7^8e}6Z~uV?WMLQp0w6;` z20VNA?EmT0r~mKXz5D-)6&wD~nX~r)+O_-tA3b{g|HFr$FbqI(GSHCCxw*Ojb8>S2 z7Z(@*FE6k8-`w1f*8qY}PESt<8q)lK^5n_?3knK$01YrhF@TVhJ3FV~4FiG(R9Cm+ z^@4F~YU<{hGiUyvI(6#*`uh6+m6ernCwF)E0r5=ghJmN2r<u36H)&x|y6(~cm=!Pn zuRi<vzk`EAhLe*MX<^_$^XC7VPyhdqT=Mw8Nn+aq!`Nm929Q61&M{6&Nx>Qhp<Ubm zJ9i%Y@7jIpzkczi|Iusj{-5yZ|9_q8{ZDjTFT^moxw$de+uNt&3Io5jPyTm2`2RoY z^8f!~=MlK%=KudnrF$<ksHv$j=;-KV;_^aF-=Y5wO$Yx=B`<r*6}#-B`NF&Z1JC{c zFP^^PqFBP>WKi-Kkd%}xAruQzQc@+n(MvDr9Q^;EH)i=6zPOb!qVbEt`A43UlQRdH zT^m_gSYWuBm6f%bjg76DgM*`qi;JrXs3w=ix@ZM!!0a<@fpcPjhA@B(001eLL3yVZ RWLy9M002ovPDHLkV1n24EH(fD diff --git a/interface/web/themes/default-304/icons/x16/databases_exclamation.png b/interface/web/themes/default-304/icons/x16/databases_exclamation.png deleted file mode 100644 index 4f4ddf2e9a6d2f39654410532e1653f7182da527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006#Nkl<ZILnoj zUucq17{-sHs24$9C<tK}!LSfUS-Tj5=7nRZ)QuNGj4pJp`ALSw_;6t%gUtS-f`*I; zVnSGrDHFWNSsG1NO%u0;Et@mus3_R3f~W5r8I75)7aq=e;qc>mUfx4YCKE9j3`8cA z5%&JOH!}SoA%xX1qbmY|;JR2W9+S)EmsKj2(`YoFVv3Nz0TPL%*$*}v4OA)>lu9Mc z%*-N@$RV9Bpirn`b#)UAV0Z_BEf&H8>h(JE`8-mo6r$0mh(uzD#hxLXEu&ifu>-Kp zG6R{i+wGtz3QngJBO{~mcy6}^bhK=>S{aB3e!m|Mha<@VdbR;NS@wDZZD-IC;Bt+% zji9txEK}id7{Oo=ZnqmWP5-g%^WDOD;50Im8qB7>|38D;$~R1e4q?3(K{DEl3l3Yd zzrVjnuh;J`Lix=EUT4nY=f)#^m_Lu@@)Kw@njx)LyBokeyiE^a{gV&OTYRlu!#o2! zdPHIG?(Qap&B54Fn$6~xGZ+t1$W0sYy*3JFNAP)J2*u|nn2h^ELZOflolZy8YPIEG zGssO3pt@i~x!8w9{1S@u8obK%Zr*kCvV0ynNV>YZh(e(_*DAu}XaFzbC-8Ami%Lnk z<$ygarDI4<?3o*-IDPE;@0CiW7h5@qKRk)0{Bf+kKa8~{IX1q~TPLf<m;2Wy!<+~U zI3N;<DCWCf<?(n;dH8(3$99IBzd>_WZqnS9J1*|>y)iO(-%D~$J@AphFIiVan%&P9 QmjD0&07*qoM6N<$f`~yMi~s-t diff --git a/interface/web/themes/default-304/icons/x16/databases_minus.png b/interface/web/themes/default-304/icons/x16/databases_minus.png deleted file mode 100644 index dfea00a5e831be7b7a506b5c1250c21478188fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV<O0S*3%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005GNkl<ZILl)Q z4Gm@R@$q4hlapfrv7vllAU}<PfdPcGfVhF3oxMv`RJ2t?L!;Kl#-`ZU*EawN7#NTZ z5EB!F@zY+tdiDSA-Mjy<UcLJN;K5V>w{AW5|G<Gu|1Vv7^8e}6Z~uV?WMLQp0w6;` z20VNA?EmT0r~mKXz5D-)6&wD~nX~r)+O_-tA3b{g|HFr$FbqI(GSHCCxw*Ojb8>S2 z7Z(@*FE6k8-`w1f*8qY}PESt<8q)lK^5n_?3knK$01YrhF@TVhJ3FV~4FiG(R9Cm+ z^@4F~YU<{hGiUyvI(6#*`uh6+m6ernCwF)E0r5=ghJmN2r<u36H~C@U;NXzq<m5zt z80hNiX6H#sF))Dq0d$UWN=gdOFj#17_kWp!^8YpJTK_j_>HXiLXZU|6GxL*W3=A_F z+}zw4?CtGS@rA((poZ^paTs_q1H)woH8nK`9UYxad|p@<5&yrOmGx;Y1H(mR+{nN% z7nJ-3Bqb$F2*rYwlvD{&tzZ<8D2L)Y1_+Sn<mAi&X4gg*78V$8W@Tk<W@BS(=HTFH o;^N|J0;<Ucs#OAMh(a;|0B{K?SQ0_RMgRZ+07*qoM6N<$f=*}e1ONa4 diff --git a/interface/web/themes/default-304/icons/x16/databases_pencil.png b/interface/web/themes/default-304/icons/x16/databases_pencil.png deleted file mode 100644 index 2820b8ba3e14453db5b853c1b8f4589331b40a1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00063Nkl<ZILl)Q z4Gm@R@$q4hlapfrv7vllAU}<PfdPcGfVhF3oxMv`RJ2t?L!;Kl#-`ZU*EawN7#NTZ z5EB!F@zY+tdiDSA-Mjy<UcLJN;K5V>w{AW5|G<Gu|1Vv7^8e}6Z~uV?WMLQp0w6;` z20VNA?EmT0r~mKXz5D-)6&wD~nX~r)+O_-tA3b{g|HFr$FbqI(GSHCCxw*Ojb8>S2 z7Z(@*FE6k8-`w1f*8qY}PESt<8q)lK^5n_?3knK$01YrhF@TVhJ3FV~4FiG(R9ClR zc%fHQ6K;TUYHI4{nKNhppE`Bw|N8p+|CN=Ma3^<n_W|)txB++9@BM#_kMF`UMn(sc z!=SUX^M6B7(1ZUC4gWVXG9Dx?40bL0KXc~d|KGoV|L>`!v}Zm8gB$S%G^hMuKhN_2 z_h%rl_54>;Q)^2W6=h%mg`}sar*TS33eGT?Gp+Fds+q=M%}XX*{Xchd_kSrVsS*wj z4xk&{+!*Zb?Nf1u!P(>M{_kJs3D#Vn!}P#Zk97$b7grM}Cuc4&(J3(iox-4_qmzlv z3#*qd{=aRh16Xrw5!>D5V1^)|CMhH=2ul6}l9G}o*j%t;TIT=%UvB<iIm7<HlNJ9= zm<Dtp4|GlrFuOLgu&}^zGb<}=Gf?h-s3Y?=EhY8^a3`Yy01G!9O(et57XSbN07*qo IM6N<$g5=u~6951J diff --git a/interface/web/themes/default-304/icons/x16/databases_plus.png b/interface/web/themes/default-304/icons/x16/databases_plus.png deleted file mode 100644 index 203dd449501f14c484ca6b6a4c7911c3fb9c13d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005&Nkl<ZILl)Q z4Gm@R@$q4hlapfrv7vllAU}<PfdPcGfVhF3oxMv`RJ2t?L!;Kl#-`ZU*EawN7#NTZ z5EB!F@zY+tdiDSA-Mjy<UcLJN;K5V>w{AW5|G<Gu|1Vv7^8e}6Z~uV?WMLQp0w6;` z20VNA?EmT0r~mKXz5D-)6&wD~nX~r)+O_-tA3b{g|HFr$FbqI(GSHCCxw*Ojb8>S2 z7Z(@*FE6k8-`w1f*8qY}PESt<8q)lK^5n_?3knK$01YrhF@TVhJ3FV~4FiG(R9Cm+ z^@4F~YU<{hGiUyvI(6#*`uh6+m6ernCwF)E0r5=ghJmN2r<u36H)&xIxGm+s)+W3E zv4;x&J2*IGI5|0y76!`8%>JjmEB&v#!QsEIu5PwehB5;K$R9xG7^kG9;0y!X*`EIu z<{JK2Uuy9`^mW>Qy)_R1nI{N6VVEN{lfli+jltgDJ{4aW=q<DR@Ay0j12aqzxXhrY zrpBP7qmzlx3lVG5|Fbp;K4s|Sy{PlZ_CJUQ<1W6rpyV$gDJfY(C>Eroq)HeXc`iuZ z*Z$AY%yWjJgO>ql06721b8>R#0JCc&3kwSjH?y*`HnXv@HFI!qG;wipH38M+GWfHu mV8~=W!;s51lcA6uYybed*(u)h^+eqO0000<MNUMnLSTZ7wht%( diff --git a/interface/web/themes/default-304/icons/x16/disc.png b/interface/web/themes/default-304/icons/x16/disc.png deleted file mode 100644 index 46397ad813dd5386831d0a9d83a16c20a88bbbff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmV<Q0t@|#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008JNkl<ZILoDx zT}V@57{?E?8^!9%j4r(?$eaiwSWFTo%%up^i%1hoNn75Chy)3JXm-<GQuJMZl%$mq zXi#c0q<x&D?(=N6&7GZ1x7_q%ZWHm}c|;BcMHjvBJ3O5C|NmXQ4+DVtAND@g)zwT* zO%0>d>6qHu+5>fUbtMuyiHrNtTtau0p)7U&BskXGbg6ad;fqnuVDUMe&J@4wPFd|% z-|*{^(dL$xR?7TMaJ;?cO855<tl)jiVPVn;lhFj$x&X(r3oD`kuh%QIx3_mw_BTOQ zRn@_!#(I5dW>#2#@(qE<M%c$C!Mq8aZ4tcJ10fVdBpQLw=NB3q8}-zY1(lVRrK7|5 z#&(23q-NeBHeyCXh+}tmcaKDJ3(;s4Yim)ghNBpKH8e&YSx`|?an5P~<c|gikz9L( zoy`CY27|M#tn5BPb26Dka3u`CCj`e5@28F|C@(M9I~=wYYcXJHaT@7#3Jnbnck=S` z7=q?>It{li0N0`)Ubm2<jx12AR9BrYPs+kt!E#n45?g3%YrCn@Xc&U#L?Qv!v;fYu z1ebj|MIBjCT3UL+!Y&5v&Smg!AJ*4n;H1;h(Q%!i*|Rx=m+|v>@9)JlI}xCcEGRB6 zRt*e1m<R|V1jR5SktkyE7&bOG5Rb?4!!1I5GmS~xWejbd#qFp13F^p#qN1WhYPGtH z=iMT`HW3Vo(*AjvSqtnRjaZdd8-D&3^K;L{GwRb_)R6^+g@sIhetv;gtL@`?KD4)Q zVFfm~17^+w?u!wDaSr_Gd`PR-^ih^NvVcxjRu+?!lT)ZvDtr3x_D`8CX3_2SY};Lq z?YYmhV(+yZQ_B2;9?DRb&aVQ6M6SdMg+g&EGc&V3J3G5m;?_Q$^pEbO%t?tO)cIAA mA(1U{SmNkE$lcFoQ1>U*6HR5Q7;mHi0000<MNUMnLSTZO<zmwS diff --git a/interface/web/themes/default-304/icons/x16/disc_arrow.png b/interface/web/themes/default-304/icons/x16/disc_arrow.png deleted file mode 100644 index 806d24f893f3f31bb24bb655e6cc5051f08910b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 811 zcmV+`1JwM9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008=Nkl<ZILoDz zTS(JU9LN8J28x#_yFJ=Nfu>@}!azY#@U|>3kxhrD<!wEPgas9JF@q?3$h1-rZ)KTO zgcgKK49U6eKX?6ay3PH!d09GrnA^nsc8*h`z^4v;{(L$A-}m!y4u=82{14k7p-{-= z<>fK?`T0yiK|y$7VWEJKPblAkW&!<2XXq^LQ2rGht0=ov)!W`Rpp?ojI=$Y<%@}=Z zt=iJ}x__Xeva*WK>?JrZsjO+7{h;8@@04IiCLx=YL7`@$n=xR{!NY7e^Ad@qk<R`l z$j!}-C=-inonzzta>ozYUQI&#o(LvnP-;}*%qH+oJC<Bauvo0TSS+rkot&JUfFLU? zD|w*r@!%%k1K-#XR{E#l;oaEU+S<nBU5Cr%!s4O}3-d1YboUO@4j~}O$jG>$*M7CS z>^<-<zQpF54N|F8pPHKbj6$>5>xF%89#)eRx@pczJA{BBEiJ89r_=Zpaw(=&qwxEE zC@Cp<5FH)OP-yo1{V-~5FsQ6B8+jk?5CVdfl$1KX!Q_)G)KDnZ@OaiyU0r=AGc%K+ z(CqPeppdap%BEq^&iH7D5D+9MCzr|<Dw|e61I}o{^70ClWYyQ#-=xrNS{uWaZ=X=~ zR)Z%alMA#%2ndprl2Te*+dkTOC+v=SEG@aP;$Fe(>MGoBH+~u&aJ(7CxvmMcJAm{y zc2yvGar>nBUO<qTm>8L!o_>wvj1GF*6uZ+w?w^CChecisi-Jci1d<_K9Gpdq4Tx)E zl_&1AqHRG!LIM*T8ylCMo!!K7oOAoW`8jBeItT}OG+TjkHBhAdLjwmKz5abF@F2(v z4Gm?YqM{Pw<Ku5NKWzRYlTSH}X4A&ycImHEH-<N2t`4n57I!!WU9&i=01nlBo;qAN zEZP+W5e^b!f`WohhlGTP!otED2zPgApnKuxI}NepKzMPtDnis(N+is#U>_ljaDZ@R pFZK(ccLtwnQw3)~E!*iZzX5(TO3;&9t^fc4002ovPDHLkV1h%PgE;^I diff --git a/interface/web/themes/default-304/icons/x16/disc_exclamation.png b/interface/web/themes/default-304/icons/x16/disc_exclamation.png deleted file mode 100644 index bd45b6d86f567966c603522f7af4be07f4269aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 zcmV-I1HJr-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0009CNkl<ZILoDz zZAep57{~8oeNe1ESrC2F4@OCfDbfTrLBm%Jm54O45`0Mrd!fK0B26ix4;7jwy{wFt zMQ>7)If*rOZgXyT^G@C7?lzrQrwMZ_#DC}PCREU;4*c$U;5`2yhjY$l05JbU=u=Qo zz!Vl1GDSs2OmT7XrjnA9WI_?)*e__EOxI`+?WGyY--4JE700Wdv^`YlRa(2*VhM7S z)}WC!+Mhn_Qk<x)tfD>t66~z2tT{jRTF2X7=rQ_X7@A=XbjDGbC&w}E=3%qh_`15f z^R)L5L4JPz=8E#tT90yoU${R6XU8zumqeh}KyNaDvrT~axG*Qo!ESf(<>lqIG?SN? zCkk?Ma%769H@jDPIfBYp@O6#A&o5$aZ7qa9umV94;Pncaoe>~^{G^*^2%;b>E9<a@ z?R5w)IRf5xtbTJsrBYea($elwXdMUy;F_L+W5NUT80VlFf+)zy$fz}&O+lSjg)u`v zzJCv*tgP%>R8$m0q4li21BTDJFnzrNo0SjJ3_%p6rly{>j86o$IwN#?BmDjqR99DD z$<EGZC^gj;jguosu`I};>pO^X6C0!%f+WJk3+gOjyPg0tGOu;7E9jQaZeixkzT zCX>^03akF-Wc#I1DjRs3A&7#cq@>ilcU#{$c@JFf8O+TI@GbhVw6ugp-#l355iGlJ zfjlP6doJUxBHErJOH3y@QIL?3uq87y^Bl)n-So66E{~hsKZhYzD@^@|@Xggg-YtWf z@hbE^k8$)o*qGPfB@qSj@$pP-Z0w%g+}tLP<2<4J=BHueSbXUzfx}z{i}3*7zdH+~ zAsza`6yGPgq_y{vL?ZqWWQ2!@Gm(*z@o{l+mzrCeKWeliZi8O&WANjCIJgW<v3o;1 zpz{=)h=CWI)IFV&ed_`#VH;t$R4Ppg3kxfah=@3I^|VxPP)7T`6T9HG?u38gLTILN z>K)$KZIX_4!3IJEVJl(#I_-_jJ;KQEbTl!V&SqxlK?|dPbe*~V6YFDFxRP;cfB*mh M07*qoM6N<$g1{z^Qvd(} diff --git a/interface/web/themes/default-304/icons/x16/disc_minus.png b/interface/web/themes/default-304/icons/x16/disc_minus.png deleted file mode 100644 index ee62517738955233bc841c910b9fd8509864ce2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 782 zcmV+p1M&QcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008jNkl<ZILoEe zUr1A77zXg83`?=PG9y7kB84nP5MhCWpx`#em|jHcu#~hl0+A4+khHR!?h?feN}VOy zAL+un(Jn^hwsX||J=@ym&Ng$)O@p~j#Ha7u)<s2h(Fec7%g*~e9CkPi0Oo%rE)5M0 zOk-msBbUpWrlzJt&CSgfgq*mPLgxy4kM7W2nxTF#DC}sz+%+}&bcWODU1p0V#ye~= zgUR4hKcAlI=<MvGJAW%EQgvSK`|_3*oG&>n&o4o{qy=kOhS_1onooe!=@e8dRUh5` zrJ%mP{&2gZMd@GsC~S^@hUf7TOs`16CoMSR3V5d-g5QfkFaVd!EhrQUCC$iWvSfio zA`#E1AI|OxlZY+8Mrc}xh!Dp9{(eFvx`SXah>eXPzODx`IWaX$GeokWwzl?y#q_}) z^iCqWF^0Wu4>TH$rK+mx5k=={Gz#z9I^1?Y%&WYcW{6}#b#=AUY&OPNy#}i*3y8;K zXl-r1Ur<oMP;`#R<FFY$u&%h_v<WeqA(91^m6g{lR(nj(8o+V}L?S!r?(V)*S69bS zbdE$KV71HOw5zb195I?9k_BS1xJ}QlcuW=tc$*8Gn;~%I^z`)HqUdbjUc|HTMZ9s} z#R5C$p&24sP+neMIXpZv=Mnty`qmK$1Q7~{u(h>?a5#)_HXnR17BFwTf~g%D2A?SB zXy$reUb3L9tn5flP0bCSxB2M5O?mx3^8R_~SUu(?=ke}D5mAWQlli;j2M>7FX=$9A zVMY@LrKP1zadGiksZ@H8=XrnPeG6+a+RV^#dQ6-uLbR>z4<ihtOMVdKWMySBIXO9{ zB_$=dhaL>Q*XngXo728)vYL0tB+~B#Il0??85#bY>FMTv5~K!yJ^?u*B9}NV5{b@b zW@ffzXJ_{k11Y`qH+qlkoFR_olT1HNrV7%DY~m<!{2y{tyEMc60A#r?gb98Pf&c&j M07*qoM6N<$g3xeoi2wiq diff --git a/interface/web/themes/default-304/icons/x16/disc_pencil.png b/interface/web/themes/default-304/icons/x16/disc_pencil.png deleted file mode 100644 index 181ac9fba09035cdf12d535adca0f4b87438f5ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmV+}1JV46P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008@Nkl<ZILoDz zUr1A79EQ(AFO*d`nc+p5NF`a0fe16EC=UNjv(yVo8<v8mb|DdVQHg}<O$C)?St0&Q z%R;+RFG`^$Id`@>-8|dc=FT?L<)+ZwCgR)qHW3TD>VxO-<9zS?!1+E71%Ub=f{%iN z0;;gEkSZ!FqKb=)_m`BEq;M2*T-kxlDP)giNS1U6e+y1lR$Q&_?dTd*$(0tJUhij2 z2ETS*Yw3H_KUi5+RZTMg5}c~9y4Lu8m}brIR8WsjLouxYtyM#3TEL=%h1qOo>+9<q zN%jvxet!Oe3RzjLb7GQRefbTx&S}iQ=LAy<sOB_a%to+IJ62pPuvo0DOeU)(9jR0r z66EIQiU#{03~jMJ@K1bzyMG2=)`RWs?I2#?23#%|mX}@lvE)KeckdACaD)UBiKJ9N zKW=r|d*EAsfvt5L<Z`(_EiLUSfy_Ri5B9|+SdC8TW*IB#w8qDW1Q{6_wL0CLpH|8- ztNDyTz>o6s^80adaTI~ffj|I;IU5!<Ru~6{H|2c3`YVr@9u$bh;yV3;(XXVnpjBFU zy&I^hscFv1$)N~j_Ikab6>5AMpTygHEn8@6!Z43F85D>_qRUEJW1H8Tz!)r8U3Ejn zt%in%+XONj*C#Mw$VE$69mwZo$HtDnrYK2Jker+>Zf}1!Vq=}KJC?Ar;)2`b#@gB% zJRT2z8XRB-9${qQ7<|rKIDaW~At525v^pjxbOu79@L*O})=h>nILK)e>`n)F{|shm zC6vP*nCLhcEO$LT5s*saACnG8NFWdhsKms?vw3-WEeyjrgZIrYV$Pt$)R#_-b%)Bm zZGyms?BlOUmUIZAAA(zvk&#qXRFohoDd|pYTkDuYIpfgKW1HiH;%!oX(sb0FnR@6s z$&l>s+7X0tM01=D3kyq)h=?fT^Z7R_rQwtK#i056K9fioewXZVnKK+mb~?L)eH?s_ s!yGYtK&6!T@nSkpy60W=PL_12-_|fMx&B3+zW@LL07*qoM6N<$g0+TxVE_OC diff --git a/interface/web/themes/default-304/icons/x16/disc_plus.png b/interface/web/themes/default-304/icons/x16/disc_plus.png deleted file mode 100644 index 7c3a1e07941988ffca8bff2230164b7b0b020ef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmV+&1LFLNP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008yNkl<ZILoEe zT}V@590u^$Sdz9Z3>EBdDMd;XVF*S_f`Xq&b3veqrR7K7h=mswVNeFvosy(d<VQ&w z1<}Wi293ylIp;pkX4~A^W_og)!Q2+&)BA3EQQ=hweuqEj{GaFIyc`06{Ez6Zs;Y`q zS636cTuy3gY7QtAiabhAUEIdzJob+5uw9m6{w_Gy*l?+Nbl~ZPPN{L2%;qq+Xbl^T z2FKX*@rlN!re?OYTfy=6rq-@+ueH4Wr4DoNXQ7%^L2H<UY0-iu4-dQD&bPO>cd^|+ z3MwlrlN#!4+q^TM__d+0a1GAFI7JJ-sGwWWgR|Sfd)-(SR^f0s`TF|$HkPTVsE8Gm zm6hdBj6Iy(<VO&mc?I9N8bRKVt*x!7U}yt^AYf%h!1rYVBhN-BS%!)gl$4a5Hyb}X z1@{O-E03|c?t)UOG#3^Y_AzV@g+g#IEyHQ^!Zgo0S%!)g6crV<nM?~|twxD?{WKzx zFzV{+?nxvP!mv3KiNLzxf<^Cy-O7hqhKdyw6ck)FTWn#C)&Q-}fM9R~EiEnGrKP2W zVRJATgjO{NooXHy<6@X)s8~UMe*OiGR_`*J7r|K_SX=W!N3V{Kj++ddZR;~A`Yc1n z+bmSPI~QOXDpnwq$qM@WAH8w$UbsEWSX~w1^ZO781mO4k@x$tY=fyNKr!vv#yN1*; zNq}XJv}VK#a&vPJ78e&^=Qyi}eQn0=_0aR@pw?=j7_WtNC=b$M85F{0?CVQ)#|<9V zk-_AFXhBX+4$02WK3QH~ewX7oZ}hzRB`jD?Q0p`}L4#+O&;En-9a6`B2zn(ZCX$qt zlpLv4daLJt&j*!8?XlWzzl;{sukt7IpJ~04_4w{&Z?@|+NN<ul>Os=LPJxI@qq0OI z(W!)lgj%s!+)3Tp*2$j5-PmtQcVvOw7VF7Tk%*R%oq|1-m`bJ6chwR<Os?$JleYN5 b?F{)1tq3zuZ(qkT00000NkvXXu0mjfl$wDn diff --git a/interface/web/themes/default-304/icons/x16/disc_small.png b/interface/web/themes/default-304/icons/x16/disc_small.png deleted file mode 100644 index 315d294b67917909a5447564af76bd7c549725b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmV;10eSw3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003^Nkl<ZILl-B z|NlP&C75Aw8Q|~l&k!6O%pMXFVhY3&K%4@lO+n%yc|r!T2L=ZE&+DBz@ABdEk8j+% z`RnS9Ymev6pFa;I4wA=ffRB%l`NFBa3qEYP@c+@SYyTfTe)Rw0)5rhcynXY3?%cTx zK=ODEaCdi)eRyZ<lb?^a{GUB-=3Y}%)81LLX6=3R>h1qqH|{+F$>TM^(a|yI`i<+q z9z3}FKRi6V&dkh=0YpE2_~QS)TaSN%<nbC{Wo4Ck;o{Y&_a8j|zi!>SP3h_B<?B|h z*|h6r%m01XRz3yE<2At8*x070r)T+_H}C$xdj0zUgU1j5-`jWj|Ff-!|JQeCE(giu zHNe2YfJ0MLGp4PrZS|FFSD)Xycjx!1gU6q@l+>*TiG$<`8NeVXC&wuyB;*Xlg+Sa0 krJX_IAo)R_ln2BB0GE}qyCTI8KL7v#07*qoM6N<$f)zE(9smFU diff --git a/interface/web/themes/default-304/icons/x16/discs.png b/interface/web/themes/default-304/icons/x16/discs.png deleted file mode 100644 index 4998c22ebd4375817edec712f8938b4d59970449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007lNkl<ZILnQa zUue=%6vyw2_~MKagoFgW89w=-<a}tWIbyOY&N1kvWfNhH2zuDl>ZPZk_D~O|EczqE zwQ}p%rmL*AmlU<F%|Ac&r$e32%|8<c{e)Cb_e#PnR~`6r?w@ndJ?C>TQmfTStJO9{ z#!ZpAPN(Y}9v<$-x`Ji+<-5sxGamgV!CAw#vGK*Hua*Pe&Amu0S`EkOJ?bsBY%mzc z$$m?Mp`jt9(P+@XzyKN?9PGS4dUYbc=wZ^<b=Y)x!ME;*P>hD1-3-JShSBTw6D00v zxs4?K{ryB2-%%##kFN_*p7#TrKZIJX2Hz_z6bc0><O@K(p`0YHB?0cQF;*&-qw(14 zekt<;s%#c47K=+NmEI@5QmH^Xu?z7?a-YPt1%}(O&CR{6+wFEJ7K<=4GICoclOf_+ zwgRCI1`^S9wWp`&Mq6NXG*YLT2z+sSU}a?m%x1IGXf#gZgjDiy9hSDI!4vqDS11%? z{{)syrNH5EKsK9&d^!i|g%7Zl*29C>H(j`@%l`$;>-B-1T7-?yUdYYjOXgkMmwGQu zN+gn##{x5%OlwVGiD(L*S)bQ^Zg27Ny+><u>G>(4P$=T@cnA>?bR=5!`|<58+W>|T z5~@_HhfQE{I$0Ns#jAWi|1Lgc<Zw8>I7W<h1`!Zj0XiQHF;FTU00D(R$sL=`_Pz<s zz4ftxtGa~`oIavcSSJtxVYSY>GMOCYalZ%UGL*5}0TYQt=no?x`uh4NgTdf7dGl0e z2fl>^ZGmB-M&G{~Umy^4$>s8?nI|)A!AQ6mOE9&g!0^7JQSLD%|2a=SV@I*bGq h)->^C-U6(R{RBRf_m#?w6^8%-002ovPDHLkV1f;CN`3$U diff --git a/interface/web/themes/default-304/icons/x16/discs_arrow.png b/interface/web/themes/default-304/icons/x16/discs_arrow.png deleted file mode 100644 index d354855dd5c0fa37fad2782522a2ddae1bc7f667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmV-21I_%2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008{Nkl<ZILnQb zT}YEr9LC?9<%PPCZWgTQ<0e@V60_!@v{b^S&aVVBwdGifL>JNM!n`q(A}uPIP9tmR zra5hX%xY*WNSSZ*W7B<)ZEk*S(}C3nZR6iL(k#KK7asoadCzm6bI$KQhak|CoSaM) z78Vlu`T1MI?c(C%q>_@7bfhvQ{;!&jzsLMr<{bhK@~>3a4!n3htkcY{7|o{eg4wX5 z7*q`N`TSbkzb&AssEFWlxkPSmE|Hg)mvptNvd%g%X>m!kFgv1wDJ==}W&<oPxxs9) zSa>{M9rpdX+|7`joE)sPZxtftk1zcY=p`ZO-GE3W0^dVH@cDe;^ZG#XMxn&MZ2@S1 zo9|g!Syfi^`0ASb6@-Hx5R1hsCX@LP*H9<~F541VjgD39+YuPrhEyi&iOS`2@caEx zT3UK1H8qvMH5d%R{ImsZCRaEkBjfsxzzim1)L=2f=ZQ%e9UX<Xwl<|eAP}NJg=0et zL-rP!)Qx%BY<BfOfjOK`7#SG>kH-UE*D|>J-@}lL2hDvqRA^P_{|lH#GX-+R08D?- zz;YLwq*rA>mw85*l9ICLufRkikvay<W^zKO<Yn|$zde%QZu@%rT5~U*PCt^6kU$U^ zgu!SElO&ow7~BMg4kw+%;XH`}vl<*x27@tv;_k#!s|SGjV9tD~tVxJ``w0wUPG|7y z=Pj_dwhkB+IwTEJsq`HNCg>Um&NFTJc*DoV_=@h?OMNzY<N`R>sGU7<`Ed<_K}aNB zDz|$XylB7cfdB-MV!$r+8KKDmz|#R-oc^twCV<1YKam6mk)53_)a&(j{Lh{4MVML8 zZ2_ykH}-9xK<1&<49>(?_K+t#ZBU>Epw$kOd+U_t_%c#yG+G*q#j5Xk-l5hT7yM?M zB{DUk@weW8s%9}y)uVnk^6gG6?<S9`0dS>O$jVU&9#7EmjgE_pOG`{l6i}(uMx+*8 wahpP+WTJis2DYo9y_Lchlc<)X5CRAM1m)#8;4oM(4gdfE07*qoM6N<$g0j$s&;S4c diff --git a/interface/web/themes/default-304/icons/x16/discs_exclamation.png b/interface/web/themes/default-304/icons/x16/discs_exclamation.png deleted file mode 100644 index 4f63b48ec74fb12d1a6e8089e3e564ef2a122387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00098Nkl<ZILnQb zUr19?9LLY_!H1k7z4$PqdMNE7kW$b=si}pc6aQfKqD{xb#Cj+sC<{s=!hFbJy8MGm zXxensZDu1Isna><pZ&Yrb^e)4-5(tZ-hrF_I%lLP7<J*x_nv!y=X-zWbI(BtU$L>V zC@(J$@p!y_k#RvmK~!O3VKUY&EWsa7CeQck_lu7RI4!tcR^HdzBR6Pg*D0GdV76J- zW&JX_Kp-e5?+*p!=jWr`++38MosDvGa-vF0iYw;(#%V`~9%dC<nAGdQWV67^suOH9 zP4oHu3Q~8l-B3toW+qYUXPHR3Gt~>eZXGc0EeHmKu<d8S<MDvU?E#rorX+QT0`U4m z_vz{BCG)mn*M_ql0?ZE(i^Zz=`1o4le!m|a_EngtmRzLnNMLvwon2iYcO?=Dc)eaI zDk`c@NJv1$8O9H$X&UTSM<697rSeE%7Av)Dp(z;CjKkpIAT%~MDuqH}6%LdwZRufP zp$^6kU)@|Tx9p$5mX?=6p-_NzrWVZKv%xH@fB^>|-h8^R!d+eeFJM~jD5(3>V9VVO z76}h#y5);k)2>v-#l@ZYD=?8rq}~HY>04lKj1R%>ZZM79+`3nGs+Ggx#6(0yAVfe| zC~H8c!(V5Z5HP$sIayg*Z$rTJ6zEkqz_s`?fB}Php_=Kc4^u`QLl<z}Nkl-*87yw2 ziH41hO(3A~CVAS~**Qdj4bI$!xzU2%pU%gCC%_tY2S%l5^feDyg?M}%5fB|6A5>1~ z8o2R#H+??vVYwY^;OPAV%CBc((OUY;Vz>tKfrnt2O@`SCu2<E;5)HMnScrhg$jGQN z8jTC&pD#OCV8(2K>2F$~+go5l%H3JArh?scG1LKZyXg|Bd)OL9Gb@oC#>nXC=%mEN z#3xP7O==@$_S)=pa8jf7%3Ch`Oe5zQ7kwUFwiwvncocFXtA^u}Hn85401i3P;o;#) zY&KgM85#KktB!bOaoF&?XDn00b2KfkK~t@-(AYt>y+-xF0j4-aK00q^8~^|S07*qo IM6N<$g7FfF&Hw-a diff --git a/interface/web/themes/default-304/icons/x16/discs_minus.png b/interface/web/themes/default-304/icons/x16/discs_minus.png deleted file mode 100644 index 196b18c8959c73b3f21a368730541d3282435693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!E`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00082Nkl<ZILnQb zUrbU_9LJ9j>Wk8h7ao{fZ#kZLz=b>{rLO4&^Uv6PFe4e8bFDXCGJWu=t$e5llx(HU zVHVO&!HQ+PqyhOSzzbY(fFKGen_HJHV870>aNulpw(tGjbI<qu&iQ@rISAoaS67ER zJ3EnFE<Y9NcXxN!^z`&JV)bIF{=`P|z2HAJpOfH{>h{2(>BZ|MmwjvB>-S~1{q#Qd zj#^TwRD)!^BtchK7wYKfK<(}ANG6lj-08nH6fmtZ5&b%BneE_McY?=H!|q-b{0ze= zmC7OFE8gx&lGfH%qHFIdt>x#p1xU|3flVAkE|-HJ85WYsBqS3_px#mz;wwpj>pOXG zZf@=m_*V`Nqcf0YW1!RNtRj)<5s8^h1|q>d2zWyW#CI+*T!vw8?p5AsG(sws0);~H zpuWByk;t+c@N6&;^hL5#sr2r-z-XU0PcvTlvbqM#%gZo1IcZU=)f$|T3LUS*;?6j% zxjrQ%63M_nfrY|hFq_Q~i^U)ji9=-JBP>Rg@c7L=E8f+O{{m*WJHSYpVB@nL;<I>> zdF#&grmGsEP{{o&Fs)W=D*y}n!thc*op-F-QxgxL+QgzO!+bvfa#d9oLIecu^<|w- zygJLC0K<oq-`3XlqyQ{Hhw=h}V1>isjNwV@^78T~>=9tqA_C&Oi%z&b3>+RF0Re>% z$%w&V_)q}0bW@gnR#CA#gV0t%daU~hO(OzAub;I>qj5;!dXLg+NMjWP)7Em2Gktw< zR$7Fdh=6EmY0<dd?j7>a!_i&X+;)`!8{}U6I#O1)If^F~YYd?Yav3>19<M<x77tH7 zpR&2V+bMsL$rS^`;}Yz<(2F0MB8{TojZbcLWo2bUb#=9xfWjIlk@QP|;nsU5!7p|S V6LK+eE?ocs002ovPDHLkV1kqwUpfE) diff --git a/interface/web/themes/default-304/icons/x16/discs_pencil.png b/interface/web/themes/default-304/icons/x16/discs_pencil.png deleted file mode 100644 index 9c965e4f0680f0614e8deba5959b852c40a732dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008lNkl<ZILnQb zZAepL6vrRu2iXS~5`@Umg1$(fMmW-a$<P^F>U4@ANM??Ki1b3f5UC%6iiklH*kqz* zF)gOua%zb+!WZV8snfgdZnDkImu)(bx`VcHdY;jwfl&wkoO{nb=YQ|>d!CCBj@;Z_ zR9RVx%FD}-MDDAqsxqppt1n{JVkv&-i=>|DKWaY4;Edv0W7F8c+wnEy%C6OJi)`5G zUFtnGu23kN$nzuvxm=E9G8rl@Ek$KzWf|A&uQofz78uWv8CLX0STvhp-A=>SwioOS z!!$HBG?TtRKR0e7kw}OxO;NoQKbJ-!^u`3N{}7_lDEtVs5C{Yy;12-xj+!8SNd|a* z@$2H^;(CYu^WMJqB}7;s^!4>k=jG)+AvqilgU7iI4y$XA^c@QfFGD*#JQCCCbPx;% zp{Ay$Qz#T7l36wk>&px{ZJtPBVPVU$z-XH_Ml)8Jn_qy*$w^SF)e}mkvJD$ju0u0? z*i^y7+KgW$5;gu4n9J=3y<QJKpAY<=9q^2Pf+<P@CP9wBJtybpe*rTZ7ePmj!SWX) ztURBFS50>gpt~D%9M0Tdf%W$G8WO;qHa83oy@(kNYPPlIwu97*va$x-5fUQ;g0|Ws zCKG-;%f^A>!^xLQr9BB?4%!uyUpZ~==}u+B+a18?^9Q(GZUyekMg+v_8tu2NGqAsZ z00b01Bwbpq_G1Fr?7WKAJmk`3Sk;j-D;A~7@bD?D69{k5<)NY1(_Zfm`0;uVLLmrY zC4f<@Vi+0V2g&fW&Xk!)w@^`uC>0%rKp;3N7K_^~7Rx5tbGLU3zHO|<fjRm|VM=qJ zCBskea=wz`2R9H(GQh#h%*-sv&(FW7>DL%6){UUu$wU|DjX`yn*aP2f@VGT~saA?A ziY_2TbT*rlWWXnXbXr<kL3(<+lE>rS$5N4u>rhw1F$mA4)Wv}v6Tbk4(inYBzh*)J O0000<MNUMnLSTZqKx{Gq diff --git a/interface/web/themes/default-304/icons/x16/discs_plus.png b/interface/web/themes/default-304/icons/x16/discs_plus.png deleted file mode 100644 index 281acb09e434b02e6597f0499fdbd7f252681020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008iNkl<ZILnQb zUrdrw7{-rn$PJ*5t+8aT?s9bF1ukMODRoV!FqGNaT1FDfS<4IOm9<tEtuimH4KZ68 zGt5FI1uK?$lLq9UK>2TgAPOj(E!YC~b`A@t%~s#`?D@`j-t(Mue&0C=;itH`7>UJV zBoqp_McVcC^#u}%qzvmUmh88ek?-01?czNG4#_SwHIF=fHEuC3tl6E8<dW02rhTIw zm&s(!q<>dHU0od#iA1QTrUup4))riBJm2CTnQ{45v#_8uf@#(ai%uJ?tOmg8a=D~Z zX$z^_x!g=hRaF(y$+udC{^yrrhz*$`9^QgfDg{3hafn1B5D7;>JF3-_x?KTyf0_4+ zii$?Jb8>wn@EnryAoTY38n|3;C-Fog0e;Uaxb5C`Qnx2Cybbl>;LEf|qk(8N3Jnbn z*Go%F5%G9D0gH1k@HqTQfk1F|Phd8OJ#BN@;nVaCOiWCGQmNF-<??nMsP%5m!q{>b z%ve5z`FwuUKY@9DKG5lO5DW$(><@u|_&tpIrSRbOH3MGN>Hh*|G@3x89f7%zMhFey zNrnu|r^-*Xmz0z+{|Zc@P)uckc^p1?rs_|N^ygBAFF4=xZx)%@Z1!OqjfM~bVY54u zW;32W9?t;7hm&1hUEQ4p=C*m$91dr4UpI5LX|oM-luReC;b0XZ0^+O17Pc<BU}Iww z2q=6=Zm8AjcUfS<(KE^1?)@uBS+F39Tms@5wK4h;0ijY27y^M1gz<hiV=;(f?F7bp zd~iz;62qTDkMhlkfT*mjY`0pi%jBQ?0xK}TWZ4Cb*;@EH=U(1Cy3a5l@gE1`8Feyx z$Yo@(Sgd0_9<QVCN#B&!z7%zOTq)DEG1_zY;S`U1v;+6^aa|s|MKd4x#sT8!4jthT zG9IzXjiyqm$LMsroWWq+#_A$Y+7t?<d>h!6+#Yn9V$OIgH52d)2ag`$ULZHX00000 LNkvXXu0mjfyU1!T diff --git a/interface/web/themes/default-304/icons/x16/disk.png b/interface/web/themes/default-304/icons/x16/disk.png deleted file mode 100644 index e3827760bdd28095ba0fd60a126fd8bfb7c42afd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmV<B0UG{^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00053Nkl<ZILoDz zt#4F86i3f|(f2liLMpncc!3tMV2Xic{|W>G0aY~!6b_3j2?j+F6(rR-f@o3*hHMZB zDA4e+tf(QO-E3#)-a+hAUIXlwFlt8JGv{~jjLA9kKg(QqcLB2u%vX=*HV;$u>B`qL zzz4|p{qX*L`qt{w&9j$}GRemPZ_{_~Tz#+t;4=zfV~iwKM0G5{SxbzOjM@<(16Wlh zsxlZ1#sWeJs4AIk>jo~RL=>Sv0g$aFr9?&@fY&SlPDF^R69F~^L<G$;0*nkqgxzlB z$ZRndu-lD8z)ypEgm-J74>kL;ENc<?6`|d3^S6g(jM?9}S}l}=5qwGs=NuPrEc`Z! z5CYHcy{D=wI-L$FB^32_11}<Y@7dYuv%c~gfD6m>`^w&X0E(g*^+1LIAprzyE#7;2 zy-2g!1fbW8!_j4T0HCS}DFC=_J~BmP`_<FUxf8R;W@gS!7kgWZwU((<9<bzW+1pae zvcx$@qtRgF$%`+~Sz9$g1sq>saq%SQm)8BmjXyQ9m9AZ?pTE(4^ODE64KNK9fcwXv bEI|JU(Yeq3_4wz}00000NkvXXu0mjf*@D-b diff --git a/interface/web/themes/default-304/icons/x16/disk__arrow.png b/interface/web/themes/default-304/icons/x16/disk__arrow.png deleted file mode 100644 index c364501e9cebb82549b737cd340056fdad57b52b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006uNkl<ZILnpI zUr1A77{~F~v)y~qMHCT)mz6grCL<%fC?lehS=Ls$G76*!gdzP~$lP38n=zYOHtpZm zWYnawwi(SWnw6DlNwZd~tj!pxVKNx@>pTag7CP#M4+q}&`96m!L`J3%nFK0_Bde0j z@z(Y2iGKbo+q%)s@->5u%`P~?JI4<l%BJMvNUZe>u&#bMQ6}xVAS|fj7w`;`o8Lj_ z=U>ixMzPEKRv<a!#~x=CrcXej@^NCddO*hZiwwj#)R9DbW(KKrI>QcE9NHM57y>F@ z{8k$Q^6EnUY@bL^nqFS{h97(|F+H8(*tG$aHUtI5r@ScYjAHw9V1@kl*peELjO`Wa zi1}IDSB$4ph)+%~sJPCJRlUHP!*?NB+2WTJSs9aY8e(~3`HV6Cj~|lB1<8#)C^+tf zTJ;pvP|J36YSI=q$M8Nnfzhd{tZ0U2siBrta`mJ=WO@gmX6T>LEH%`!ot%nv1Pl>0 zR$PTv+Bq+Jo730)5!6u2q}*w8y{GXt^p!Ud4)-A#3}v7@dUGg4Fv{$B*c1gd)UtB! z1hIP?24Rxlg5Mv&$+Biaceh7Ccl1UJEC=tP_xuQ`p_Xmql*H-RzJj^R375+!e2Lxe z63pGv0&C4ZJkY-ZHPo_2Im_7EobnBubB_8{n=Xxab$QWJ?Go5*Zo%9gEwI%Fa9=kJ znx~e|a$bHOD?Cujsvn8PV%>b`?N0@4i*>eTxxB@^rT>YV++T0KPXNkeuGRnm002ov JPDHLkV1lcWDun<5 diff --git a/interface/web/themes/default-304/icons/x16/disk__exclamation.png b/interface/web/themes/default-304/icons/x16/disk__exclamation.png deleted file mode 100644 index 3c6d4c9f2200a73ae345f14de22fee2e32496c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmV;f0#W^mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007YNkl<ZILnpJ zT}V@57zgn8oC$Ricu^2UL?A(U5s^h7S5{ypT?DeiP;)NBFuGDCloG;pn>MA1Wu+$B zmItHxm2O$)qKW1}=h97AX2UhJ+)8a^_U}9=Cyv%dFZ|8}&-4DD_pl6^mSxDwC54TR z|Ma?rOBV@LL-#4mmKU5CX~c`?A}JDTv!AtWv-&^P1gK`MQ)&NX#03iRBPw$~_zF6| zBKYEM#*`}$Kj#Ip=D;BcpbTYMx~z<7?R7I)Tv|eKaWUMFAe{Y5e4D-jxm=EbSB-u{ zDwJ!~6_jOXWTm8Hux1+bV!*$!5XLjv4%dJJ0Z#!KWAKh<!Pc6DD+kgZDb|)SmL^jZ z-9YseW`jX^1A$fiuvwItbY^43egti;xv&q$W2iR~bvd!arh1NJDSR=h>Z|$ypZMat znVA(MV;$)0O2CBk5ZsP9=?|#79lOz@+xoG+hTG3h^F^fEs++)Dw;!IlxfK?38pdsV z;TwyE&$S)%pD#(3*t=rB8*g!USTcW=+_jXC!&Gb!BdC(mpxXHty=E6Gb2s?vHB84& z@r9(WyUYpI$$FH???ptjklxDopiF*3JY#bHGP(a$<v?k21FY6w^z>N5P>*Jfc@}6> z40u`L24yJAlK6aL=)5+B^3;bgo4ZkPtWwh4{6s=Mn$d!)vybuOx(k${EIYyHktTD= zFm#G07>y>W5`)1g3H4|}?S&3JFC7JCD9hG!o7p}t>0lyv(NuW!_N*Xu;%25%qSv=c zLOoib&*?^&`VHtlW$A1Y?TBG}l!sa7tEi|bbtE)fEsh<pUCy#-(MHjx|3sPS-z#B0 UZI4eLC;$Ke07*qoM6N<$f|ZL!FaQ7m diff --git a/interface/web/themes/default-304/icons/x16/disk__minus.png b/interface/web/themes/default-304/icons/x16/disk__minus.png deleted file mode 100644 index 41993a4f4799c33967374afd07226375873cf15f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j|KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005!Nkl<ZILoEZ zUr3Wt7{~Ev?{+WMg%A;i_r)ARw-G@_7lK$AHgn}5h`I^9NMcZ?uB}a&&5W8!xwT>R z3Q^mNmWw7*7imRG_J^c025OiMhW$FfmlnmwP(1KqaL)66-U$F%4RM%#ivO5$!4-`< zmxHrx!lF)-TA+9*2EK#mR|%s|C*n5SU;1V%LbB%TfXHPzZ1$3Gyf2IV(h_p{e34jn zHGbOdMS4V@Nu$|AT`#VE!w)q)x42m3w!?u-R;wYXmiaerMXRixImdrsH@hkDy!SI^ zb2)sOpD&9uoMm%T+a=PVwNr33_z5%WYwxq!vN*$8Hf-gf)<(UVzz4jWn#1(MLRp;Q zEE~2`ubri<Y5!X!+Q*lLvuxPP0nJ5yDenY2_xGct?s`dlD;Vki2sUh`PCG+49(2Bf zr~W1~nGp;Rr~kt{zC~No@HIs6q-zRn*h;N-nj-P@WAGokg=8{?);-;Zp`m*Q-tmnK zf=BP*@x@87VJkIS3k@baULw#m2whJYzZ8k+hQb{egpS|GBhMSKVJquQ8)UnwcE?`R ziG*wSmDyM<j-F=S5Dwop6z;end@6;9?$_WvTb_-|mMYnHWT!MgwOB0fQuy{So9qky iX{AD`RMxK$n~LB3L|S{DLpZVk0000<MNUMnLSTX|Q2>|# diff --git a/interface/web/themes/default-304/icons/x16/disk__pencil.png b/interface/web/themes/default-304/icons/x16/disk__pencil.png deleted file mode 100644 index 39b929bcb5f65c3b45607429ddabdf03dbd6b4eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006*Nkl<ZILnpI zT}V@L7{~GFoO#imP!~Z&5M2u0L{Jx25-gR7Kr{?{ab*xhbx}w;WYCK*ZEc3b&~%!W z$H~gGVd_@8`JN<Ernb=aVp)cyhB-m(*LnUpX*7}!d>B0c=lhHdIx87;Ho@d{uF6<j zOO*);J42H6s7I3a(DH%Pnj6}}snuMx+l}WpXLP}2f+|S?%GM5OEWrmqz~8Tb`2IBj zkH>>>IE?hQi31KIJssCsn02sv3X4liSXf+)Y4USBx|>oFp11^~p$G@ooU6^3^+d;X zW>)gD>KlG)i!<}{e;NPiLx(3t#IC9&wB1s{4YzbuSIkNW$|o?ruz)YKvr$Gv&G5VT ziP%}O3&SHV;9YLGr7XFCmGzg6V^aIKcT-a<Mn?P5)~FY;Ql5xs&mW2%-sOf{IxJsf z<-Miv5gMDpr@6TmUiC6C7exJ?-FPwdSj>2bce&w~GUY3*vePySZ^2*`BEnTeGL*cU zs5$R)!z~?>O|05)38E<DE(+6YV&b=mKKlo7!!4!D`Rv}4q9K?w@1wW34;>wyQFz90 z&fHE|vlMidjDZ_&DNW8}O6&DkupOy~&*z6R#V)wr%>vK(jSrNaY((JZTX4fI9h7sK z%UAdsrP(g1s#p9nMNx&wj1M@@w4mMm2HbE<>!gjeLrP0ZmCkxi$raNL4XwDHqY8C( zO+sYG2kI{P@w9jtyw5Fvn>1Uu(DoC1DW@kcF0MEhe*4ol+V5CyDPFT)v*AB+6aO0- WH%4t-vkCP80000<MNUMnLSTZ|&MkTX diff --git a/interface/web/themes/default-304/icons/x16/disk__plus.png b/interface/web/themes/default-304/icons/x16/disk__plus.png deleted file mode 100644 index de62ee17d39ddd9ccad17614161fdbc20e9c26e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006UNkl<ZILnpI zUr1A77{~Ev=j?K17!gPa<y9pu5<#Sp(T#-{(O9vtno9>!1VQ12A%igI+}ebVHOr=9 zZBB$Hgt-+hCr!jI)QXHu`$KAt)G!$gdpf^^gJN^k3m*==@AG{Q8AS&fMW@Uh4CX{V zTfLGod@)ZQ`9$jr&PiIOAyY1@?wzx>-><OBSu~GEUQi<~kl3g0|6rV7S(t_|aY;xc z(|t2>v9E$vtvlxFcD|Pkq8%KQoe55@t#LAy%CJ9J!J4^a8OXhPjLwKQXdA!tm48aZ zORK9H3<KwRU)KRy@yCO_+gZ-4hQbB1Z}QS<(F(2??O%8?ndG_U<qfI5<y<hchj&@Z z7>&BJil|y>2G6MH6E8@An@J=#r1u$F-BiljMgyZkODBaUXpg&Q`Tg_~e_mP12{V{Q zgO>EdHRy;r-*LEk@}FQ94O%)On4vRjpW>F|ciE!r$_j63Bkm831}*7?M(BRr@``Qx zdmN9C@X%1~FSx^7us+6)>HrV7O*0y_q!k(<FnE1}ou_&@5{dHF!){rB|9}j4c*6ou z?E`*x<1M2>OGkxz=!;lhva6<#L!q$zg+L%AOW$FE@4_Q~YJ0<I(9#ygb}Cb7HAfT| z!{*9ci@m*re6ubj^ZOsl(sx+kzZ~T!*4K=Av^a&5y+u@d_7K%QS1Og(Z1DD{5~}j8 jx0EN@CMoz&X!3po>Bl*Hy2!!500000NkvXXu0mjfD^C|# diff --git a/interface/web/themes/default-304/icons/x16/disk_black.png b/interface/web/themes/default-304/icons/x16/disk_black.png deleted file mode 100644 index a08f6f13d4662c73a47b1b984c8b7d14cf33e69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmV;J0cZY+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004BNkl<ZILoDy zu}(rk5Jk`In@ylFT2dHd??+(eFIZXIm}qOGF?pR0v?NwmG<<+RfsLKPikij{vh40y z0O}J2jgw3>**$Y}=Zcx}pAr!PxCIVxdcDWre7Ze3IR>7A8$<*V>6c|`W@dRyo0*km zX(G}W5p)4{Ap~O1q?|WyFPtNU0N{X6K+c(vGqc%jBfxu4o-e5Yij)!|C8k>d<{T*{ zfT9A3F%oj#3UJ;NV_XHKlz1Hu**`eg2zVV1e^zkc>HO;U^?H51g27<GPr+K`1%Oto zwF1x>BSlfrZg*BL;l1bb@`7fw$!IiMdY~0RN(oiv?QP2W`56FrckK_!s`IC{T5ah; z1>l`?s4A05pwVamFqwq;>8z*#7CG<$&de~g>u$IEG9HhoAsDKPs$w?p<?JiK%y!HS z0h+)ba0Fbb>cct{V~nTYMo++*0J}hK>FOUU0n>Lfv(ODIyu7mj0000<MNUMnLSTZn Ctgm?h diff --git a/interface/web/themes/default-304/icons/x16/disk_small.png b/interface/web/themes/default-304/icons/x16/disk_small.png deleted file mode 100644 index 3444cbf0d5afb03f685b6389b057ba87445bccc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003CNkl<ZILl-B z|NlP&C75Aw8IZ(0ArpwZ8&<7KL&qR-kUU-k5}Et@ZZ7-u{~wU^_uoG_2Ju1SAbGq7 z#4~qKyg2XG|IfdE{eSoMD;$IPAaRg9UISv7JEonP`Skyz`=9>5{PqowL41%nNFJ{N zQA{nfS63YQ-x0bH1$Txm`oE^~=zowrUIW6J8WyZ5J^26FvE%;_9XbrgAa-xmvj1zV zj{OJ8<24|Jsb<;IqJ96jZ{PdB+-2hbb?df(*^}Z||6gBo;y*|puK@u}W!*r$ZtdFL zV5hHKx$QrQJw0W^|BZF0{)6Q38sN>C&*jFLF`I>jr3)DY#SVe6J7d<wL7tQc!~g)i Wqt)LWx?-*X0000<MNUMnLSTY?J(|V< diff --git a/interface/web/themes/default-304/icons/x16/disk_small_black.png b/interface/web/themes/default-304/icons/x16/disk_small_black.png deleted file mode 100644 index 3d992ad88a327fd32a5f0c0737777ec03acef919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`?>t=`Lo7}w|M>sko>_H9Vu9p= z6DMwP9LbgnTkGX~T%mA+jUw~4?OV3|`Op63&)@I-eU3E~EIj5-V4R(mmG!Uw-`Cgw zcdw6sC~<_nv-t_9<c7U__Wb#OGyD3#{eQmk!WCB^I&|otw6yf%1YzOH{~tblsKES9 z!016jLBWUr$;bQt+n2mBkZ8UkCMNb@SxL!(O-3c<z{iG$hX1#>zyG^_$&xSicX#O~ zY+Jkb?f(@kG$t?}2ihdkaejU5Zs|8)rfP5h%f4~$oH_rFA34&%W6^(|LE!=0qqRCZ pI<Y4tG`>l6h4Xz{Vxs``wm;kY>Ee?XF#&zf;OXk;vd$@?2>`a4hsFQ^ diff --git a/interface/web/themes/default-304/icons/x16/disks.png b/interface/web/themes/default-304/icons/x16/disks.png deleted file mode 100644 index 6f2a9801142554e4ad2a858e6e4080558c231931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmV<S0SW$zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005KNkl<ZILnQY z%PT}-7{<SI&in(Ejg69pHL^u+No<ChnnWg%jRgxL8KrO-%qYiYYBGkJ(O}_{TyhyB z78Z)4NE8btm&Ag3o#)7OX3kOb)o=5@&-Z*^KV}t1SgkM|g*<DN8L;{N_5XoAatO2E zk|8zri@8?{6VZ1#tO0ZEk&6_xb<eOGVepTUQ}-i%e0|Z|=cfkDu}3aaAb(3P@vv$^ z1fwTY5A-C5@1LJFV2(X<Q3asY=3!NQuXHTk(arS>-M_zUz#MzzbcHop#`pcMBl1c? zg@L?98aJ-fX8&1)1Lrka_@1e_g|(zh)K@u8{U#5I<{3H~yCpN<?T%ZRX!24hbVzo~ z964*|Dd@POO1{$@x3I2K7p<*rDVJT1E3{+3AS2)Ii(6Pn(If=|8zj{&(QNZJZHebp z#x*Z9h=35apjfca7p$iSgF!6h8iIdhape;XB6f!^6*-WkMlDSFE@R0tBr=G=E06<8 zdwcr|dctz~YNk18MgfA5)LP)6g@t8ZVL5yiOX5<Z3o^Kp3dpb(yPhBkU-$V|^@TB( sz;sS#8kcQ_6i8ANBg`#lQ)4gx004+rc(%^DJpcdz07*qoM6N<$f(l#RKL7v# diff --git a/interface/web/themes/default-304/icons/x16/disks__arrow.png b/interface/web/themes/default-304/icons/x16/disks__arrow.png deleted file mode 100644 index 9bd0a71c4f1915f0c1f0fcc247fa2c4e3d9c9404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006sNkl<ZI8Tj` zT}V@L7{>qGS>1?T*HuAXbWs;&6y-%k--M!>6Sl*KBZ^rBO~F2CBOyIDoeMhJ24iz- zTg|#qN2HZ*GmN99Ww2l-MivCa63GkO(|HeU%~r6%561I8=Q)QTGjR@9&9$yV&df5+ z)?o0=|DZedsH{-UwPa(DcmF^Nz^_y)2g>PAz0ANRTPHJex6?SLJm2thWd)1N%Q;X^ zcj{#Z<j;~ve9XWJ#GMJ(7bNBK{K7&Gl+&Ghs|JXAtB>*OTjDG66J}?=V}5BV2g>PA zy?+Y3plgo=-DB{JQHACMkI-K61cOb}8Dh>E=+q6ayoJ?n713DfMU&PCp{f&Ocjr*0 zwt4avCTRT_9eoMAt{YC{14P>rs8nC~=Pm5U2{*#wA?0DWxgRg=aa5?U1o9Sk^~gP# zz3))wOu%Xz$B^(IB`QlFBM~GdThQOo{UB$W+Ho`Xwc|6e@0zr@zgUd#Qk8Zv5;5HJ zL6Jj}vZ3r`?Q@g}(<rKoB?}Ballo8sjyYg^!}#PzzO{yt2zm?2AxR@65rwp{W4@1Q zoCQp80qyHQ)Ww0#mm?A*5i~$@NK*ZwHuU!PWrUTU8^GR+gV>~hm@F^`r9IvR$|r#J zHT}|t^I@LtR2@G>GOS14$x!I2^67!V0O-GX`Z2mJ&oaUa^<8ha4FiRIkF?GZ;N=lU zzoIRw-KN8;vr&ykBV<Ea8d;b}Q*61vrpzU+EqC+s2%~}D@tBgBnWJ>@00000NkvXX Hu0mjfx(6m% diff --git a/interface/web/themes/default-304/icons/x16/disks__exclamation.png b/interface/web/themes/default-304/icons/x16/disks__exclamation.png deleted file mode 100644 index 4606873416febe49d31c6e3eed7c506e00e3a929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00070Nkl<ZILnQY zT}V@57{}kU?KXnC?JB&GE>(hxpt2fW)Q!#2kVL`EjG#<3aj>D5n@yd4Z01rsPGK{@ z$Q=0r>D<<ggiXw5O{K!QK17X?7t?>|IiYN<U>85$_dL&^|9Sbbd}$-glQzU5%!&l+ zG<N%y|3Q1oQJDQLsgK1F=-R+GfUWKA1ZYls%Iy}EYdcu3^!^Tw{<iP<9gX7G=4Jvk zr#<C%3xsD0B|N(<)e{e<TS8bB!pm!G3DBJOl#44M$}~L7k=!#)nZ96YVI9knNCGsc zJ>~u>?1swhv|GHenkGf+PWHi^^$Mf9*<D;s3s6a_Tap%5l4?S&;u&<=JoL&Acpra; zQlf23T9~z>5O0Sw(WSnIrrd5!8iP<s)Yc@0Eu!CW9BW}7jz^hjE$+i>LjYNl3R_ab z-dLVu>O~%+k#6{h3(#M47i0SOIM3Z0WF&%w#0rW-?}v+5BK%3WrBEoaGOvwVZl|os zWd*Jb?m{yo5##mqq8ySG3(d^e%i(k6VEt<)7-I;1xC+<6!RhJ}?vn7mkC6!alR?!5 zx7&k>38x6%4XRGqYtLfQUxc|CIbIHyV#ap@KJT#~qgKv5%yS$g5mZ2C9gZ=Soi?Jk zcTl{Wi>olweiTcAQwYwci!Y!vIGcg-=X*Rut=tio#+|!JGBk3_YERFI_;j0X2z2kP z%EX*A4dIW65S~v(<mVmnBm$lT;elq(B9yZ96z*{T8Ln_rCX?x7QD>)y8gB02AdIDZ mzdfm8@7i_Dy#rsz9{vHG&zJ=S(h_$70000<MNUMnLSTZt>^C?7 diff --git a/interface/web/themes/default-304/icons/x16/disks__minus.png b/interface/web/themes/default-304/icons/x16/disks__minus.png deleted file mode 100644 index 764000c0b2e1b3f9b9d97b46f62cb08e37a0f4fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^<FNP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005xNkl<ZILnQY z&r1|x9LB#hv;TnIyGVx)ohqbD2k93PdGW`>6e}%Jc<Eq=4JBGZP{-E%0nOSjEbeZ? zZfG4ei84wz!-yauK|zTEJp_vxq6gi__nF#d)-l+D&m6wr=Y8Inj|7c=xnVpiL(N(g zz2R*3*8kw1IfmtLNuQg@(%0QL$651ez)T&dt*M@pKFhei4q62Gv$yNf?NJ03Xa zp1D$idX_3lO2Dwl(3jXc@+!QxvEhMp?wKnqAfa$luIpX)C;KP9ul~l`)|Lm(xo7TB zVRy{vY&JfRw4HP4t$mJY{VTlb`Bvh?;3`bLGgh&%yT@&GH;$mEDGAG;!u;bO@ar9k ziiKHCY0S-iM8q7$VDmHN23F9h-%nR8?7@{drlzKy!||3$yo)TMUT@1(EUf+F6O4_$ zhJEt|p0>Wlw6%z<TI+;R1ckT-9fbRHMsUIB^H~?P+qojAwYp)Ui1&TVjvPvIQxrCN z_8MYxB%c!b>ZV;JDHOq5D2I|}W@a7S!bXmsz;+<uAu94&D1rqHQc~#r0LI5B%7n$v z_|Ya+`LH_Rrc-2CPHLAMC?k9+o~I-}J(GEPxG<3_Q~g5!P$kZH>X=p&q!dbWb3j-^ fWvh9>bQSCa6OV8)3r9rW00000NkvXXu0mjfp?d)6 diff --git a/interface/web/themes/default-304/icons/x16/disks__pencil.png b/interface/web/themes/default-304/icons/x16/disks__pencil.png deleted file mode 100644 index a627c311204a6a4c4bb7c6189021be7b48efc860..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006eNkl<ZILnQY z-%C?r7{}jp&iVt2NGRwc3c88Fei6Ge%vGid=CmQL7PNwpFk-WxXHjfBwmG$&w#C>S z!X{c5qJ$Ns&R7=(MS(%1AF#ke?1vmLY~SAJ#Kz_f_QD6=^E}_@IWHe(k$mi=)KLJh zo#nL4@%ZWgL4C?mnEhMg&Brq{@DmvTe=?aOs7`&#<rdf-{md-g&f<F=`UZ7r3BMK> zi=aC7DVJNopT(C%*l|fAx?cvqVvdK?^YcYeo%)n3SU}k12x}Id{ull)_?Y^E^uj_B zRHr`WRutA^>Ya=SlZg7KG}<d3ptt@J9=qS>NOYxO5^n}d7ItB)AFhTl+{Or$#(pGw zKBG}|gi02s7^9e;eh!am0O7+<yxVSoU2GaJS=jaJAjZa?z}0*o-kOVmEF&zen=M(` z<*Ivl81uk(>=sm2#f?MfU=?bUj6{%-d_l{h{;6#TKKQPPDK*`O^0gJ8^s9`ob_%t9 zj6^*1zSrcCq<pf%5`BXR+Bc+WxT8%-ROzKU#@Kq!8rC3QjnZF84oRArnAFG$3$!>e z+OrQdeD|90)ZNM|4SI>?PQ7?3Mhm*kgPJ5;WhaJ*N3{DLODE#WE^XLlEt{ob=Xu5o z7L*GIkJbpSBeEelH#9V^Jv|m11>L*PGy%V75OVCni7iKxJieN(aCU4Kc3buf)+wD% tr{u$XFz?;?y{@eK4Hp*T-<y^X{{=^cWjQHG5&QrE002ovPDHLkV1f<T9&-Qy diff --git a/interface/web/themes/default-304/icons/x16/disks__plus.png b/interface/web/themes/default-304/icons/x16/disks__plus.png deleted file mode 100644 index 80ec32d79f10eca27ad2e4550b67a6778d2ea3da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006RNkl<ZILnQY zQAiVU9LIlmH|wD()niZ;1O@d}67<l6WkrNV*)&FE4KwyokR@6XZ4~HE&!$%A++Z}9 zw1w7#B~eD{GK>)=C>Ug6pn-5$BKctZcE5|QTUW4y5C7x$``-8de8?sF>7;Zc3w`F+ zY4pV7RsVzcoZ~S4E@?KSjCXxU3c$})$^y@M&$&!Nowt)Jq^30fk?;(DEG}YhVZj2= zdC$2_fqpH$Btpj}nQ40)oQ9@{r)Fm@@SOLY%PL@MJrO!4)~j#SFZew14O8>;7I@Bk z&izx^S!erTJT#1`nlNZAdVu!QCwS%?&G4#q0#5OIFlS-sH>zlG+<~tw0=c{s!?!0< zE_%Z`3zN&D7#eyF#o2|{iu*{ke1t>163toI)%_v#_4OMchun|wLK#P?cqx{%u*-Wo zP#kk$O|TF<+m51N9z%&x-AgQjg_s5X4exhJt`YLD{938iV3}{-+-~7?qEI*xAQthm z`GX;cC7DSJI}|(xd;MCCI##@Q%v6C-gA4f)ViEiomcx<;1_lkx!ZzI8j-u(q7U<UU zB(VrC;2=w?Ep9<iPj8m666FN!7guZ4RFK>}xdVI}C<Ou9BJ4ZDGCX@jT6gzT<La^4 zWAM9L`4D%jpZ^i&wZB{SX%pz0JxLAuq?ZssTh|NQTr9<Av&m+7mPQvArh|F+$eov@ gGfM(=ZmCi53%m|_Xa292S^xk507*qoM6N<$f`Z2seE<Le diff --git a/interface/web/themes/default-304/icons/x16/disks_black.png b/interface/web/themes/default-304/icons/x16/disks_black.png deleted file mode 100644 index 646bb4e3894dc3ed2a09b93bda59faf9e735f2f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmV;e0aE^nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004WNkl<ZILnQa zy=uZx7>1AF4WwhoWDW?4C5s)hxQaJWx>P}n5tNcaNJS8OCrTAsqzbhl78Tq>=MHr& zLa}wQ`Fh^a%4rfI2ObFD&zr-;VTnY7MR3izb-LY)L!gg2b|9eNYPHBCqHoU&fjat_ z+b^9vju>#)Xf)_+x1*2kHU#SEV{X61uO)^IY}=-HKD=75L!gd6=Kci;A)|V|PD|IN z)n*d{b@VY8DeN?#f4OS6soHG%D2hV5u2Z2<*kf510>-h0Ns>gGrujkXbed|l8UiM< zg=I1sn$H(x7>55{sZ<a!i!DsoPiQ!N@|UyOER{+n1T13<OQm$`^&ZJIP0HnRR4f*W zG3Fv*3?ZVRAiu(1lgZ=_UwRX`N5G_9F8gvINhBa_!55AL93fzazd#NoO{dR3QNr+E zLI)xcfI&!-WtsZ@L8P$1M;AP2kfEyTCnVwOoz6qFFvcVnaWu{)q(G8LK-h>Q2bX^U X(edG4e7ox800000NkvXXu0mjfm@2p> diff --git a/interface/web/themes/default-304/icons/x16/document.png b/interface/web/themes/default-304/icons/x16/document.png deleted file mode 100644 index b84a5cd0c9867e09cc88b5f0cd0f3e62a450f564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004)Nkl<ZILnQa zF-rqM5QV1}D+^m2gCJI-{)2!Z7TQ>)u}IXMibT;A5*sTkn-pmRMiA4-A7JATh!$3& zkSG$=TrQVfa=CF{xCsinI`9>{y!Y6d9m-r@5;!Ur7lrsAj2~WHP`Xf{gR`?fgo}_w z)A#w^^Z2#Z;)>(&Q=`F;w%zBtTxMv5$hQC-LK2NmhihVduGjgYR^$7Z7rv`j`L<Hw ztD74}K_^580ektpvgSy@TeJCN$a$$WU^W)p5eU#uE~l)y-7bH)?yn(u3EF{HePm^` z%6dy?U`zj|5ClN0K1!UPDjRJHaN2ES2nGwS`e^m!L`imfJ$7XdrV#uNwCbbS@v)NZ zN<drYU<!GaGqmcXl}tvl{2*XY+AxJ+PoPyFEv3`SW={g}3R8$JchIVj7E&o?E09I; zCBPJdWrJ3IG_$-+QOg3`*t9@iVG3!=8CrPY?bqb|Jk7~=aag7hEE}}&XblOYW6|g? ze<`$snfT#c@Wt2@PtMT76MAVxm>Qaxh!0Os@BasA;eq!PGvl_`j%rTc00000NkvXX Hu0mjf$v)8Z diff --git a/interface/web/themes/default-304/icons/x16/document__arrow.png b/interface/web/themes/default-304/icons/x16/document__arrow.png deleted file mode 100644 index 501197f7e40e9d75861537824bc0917bc07de833..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0<iswP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ONkl<ZILn2S zO-R#m7{{NJ!3cs5Ql}0jLRbgM#OTn$#Xvkb$cnbh4$gELHX{e>Iye*t;RvJzk!E2N z0;AU3sq!GfsBn4M!OG=SWWBie_ixWL_Ok_TJ@7gF|2*Fhzvub=$nNowaC3gXo$2}y zM~3I-$TmAmgKl>bk{>0^@mvl+(`jrclL*CP2u7n=i$sdN_4^?`Ox<4s`6ywIW-<tK zaC2t|U&3Jowzjacv4Kya5S}e9K}!0Vx?REbnHfcQj0Hd9@qbG0d%e3f8IAo63DiF| zrRYv%v-p)rRFud`WE|;LIkHSnDlR8^2N9mXnnVQBt8!#^xfDGq7Q|AisuEeO^r{@0 zoK8h=CZ9)w_fSnDw<EnOM@EN3(VJyKiuX`Wvd!Ppt8#SSZdX`xg#yw%MkUGU>+div zgwb~EiCgDfpw>|jQHRZ@xRPgqoT8G%@NgY>L%=E5O0fC%XT$NaWui8#Rnb@AhmvDK zxn$(&8ak%~ILEXMzr>|StC$D^9QGY^d^FGry`Hodi*Qw5T7gedF3~^U#Q0ah<Oe!G z{9zyf9JVd`Nb0CgM<@App;YA(>w{&qjx82x8F_`~d#mVp4;<+6`VLy28ziq`Y7c3( z11KvQM|P4c?M1Hm^w0}5yaD!Ioc^XcbFHtGrTt8UroO&wZ)4+)YV0{X_^zgXV!fv6 d!X3#-_BV8LwTr9J)jj|K002ovPDHLkV1mQ>6yX2> diff --git a/interface/web/themes/default-304/icons/x16/document__exclamation.png b/interface/web/themes/default-304/icons/x16/document__exclamation.png deleted file mode 100644 index bc9187aae6cbcfdbe80ca693aa11ed3276a8791e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006(Nkl<ZILm#L zJ!n%=6o9{b@={`xG&a)z!9TPVLCGLU2L)FxPQ|*3gE$L<PJ*k0=+r@QQd$e0Y$*sj zC=OPgN>MB=wNx5SQ_>_&-@W&}=V0E;qZKb4xNy(?_|7@^s{50Z04SwKfIj}e-gut3 zWUVC#0stJ}_rt^fyQ8Dy+Ve2JkMTUbAczuIS66wxuy6}d!1wTySZfKx_kBEL@U%wn z?$W5&snu#!t5s^X8V|<C#;vs%ffFIXvDSurr2tWiWFpa$wifIAl*?tF&(3lxpC5lb zF>xDs^cP@Elq*UhN&)PH6bc1`ARwE~@_Bu|5gC}cK@9LOh;8=ESgTrqmO)fPeC>rO zr7*_C09r=?Q3?@()?^|`qxb?{nxn061fz8X5Ti9=ga#rK^+S|G1ulB~14oCh;+Eeb z-gYv)BU)>kp_EdDeTYLE<+r3WJ*3)_q%&O{OMe-1{4$PT#?i47LIWQV01*PuP%X|d zaJay=>o0lw<SZw16Q|Gj&N_hIZ_tE<CiTttI0*>MFQ%rZ*r_a&&*giq#|2|SiYqH< z*G0Q-WYB^@X>FQRHqFnid1hYSq2zw0qdV7SEu+Su<kR#t>q|>iDivuyh6u9#`y)pG zzzY^>lM<IMKcwBM(%I2SCsUa-)^bjO_Qkom?&8KqBKD#X5!Svv<6y@Y2V{dxvQB;T z9+_mFOtMDLK<>D!xv79W(BD2dI4tROXMFxQhL^7#IkYpd_fLxoY${=@D{IXE0U`(_ UDvgj&hyVZp07*qoM6N<$f&+dbx&QzG diff --git a/interface/web/themes/default-304/icons/x16/document__minus.png b/interface/web/themes/default-304/icons/x16/document__minus.png deleted file mode 100644 index 6f900ea2e94e8fbb993d2431e04e7c3d79264cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmV<Y0R#StP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005QNkl<ZILnQa zJuE{}7>2*OOa^NgO%t(bFk6~P#Gs3*20{H4krFycJ206f;%^{P(Wp&Qc8OSQWiW|K zOQb>n|8D#F-sT>mxSZq}&dvKiIp@2Fd`CwF{Gm{vF!~2AOTi#{0|8px->*UVpySGF z8ow5c{G88oER*4AI?eZ~RE_gUgpm;}Uj*3bxYDH(C#3k8O!8eK!M9IOd=roJbu7lG zmzRu%oM8D7%<t_f#xf#!$!33)9E8IkbUK~00s)%c*-?z;%4L4b<$jgmB)AT;sz>gP z4aIm~W{{Hm8%ZEQR`tlWwx*aUh#*ra7)mf$WL1xbR#z31rAmc!G6y3G{tmLLN6wWM z#bj9o1(}19<XQH}svZsad<wT#t#VPWVI;vjK^7f<cQ;YL*Q=PShybTBlBDDtvg>9u z1xZ$~$D^38%0tmaP%pU{9_G{b_8Mn48}BwWM5TOnNVH8I4hPxYZZLzFR+UrKOOB<K z9~}I~mPl|2YVGNvE_q$7uX@SJ$OvzW1Z)Xjlj*@P<z<{emPu$f+wF7wY2iAUiKfp5 yzZmbND0^hl(Yw?nw3)2d(MFqX;XfdY4!ZC4yQgQa&OeI)0000<MNUMnLSTaNb?JQo diff --git a/interface/web/themes/default-304/icons/x16/document__pencil.png b/interface/web/themes/default-304/icons/x16/document__pencil.png deleted file mode 100644 index eddc6ce52824867cbb4200068a4389c5e7bcd036..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006cNkl<ZILn2S zUr1AN6vxkf9X;)#2VWvcg&0ASf)9gRFj=-e<ckpOCBbPfMOM@vVtcU{C6GYE(t!rz zNQUT)G6c06y{5tzwBg{cA;WUJ+ui@;IdeZ*q3gis;U3QS!|(UI2i%K`z<7K<E7AWS zt~^^<0N4CHJe`}X0^F!!&y-5|JD<k`O+!UhF_uo_ekxUEYi9>}hG_mvz#ld2=|TaM z6#R8`gwbRY!-)j$#pAfED7Y33A{WmQ&8LFLUaw$4CBb1PbEf2NAaF{%%{EE^1EbT^ zf`M$Yh<~!#b0vHdz7Efd95|+?1cMsAL5l9*NWuc1<;-h~1;9QzDR_`0ftt%Tl<>py z>~>2Fe3K-A`{Uz+p+dQgS$c;?68<~S`}!s#lH~s?Nix{R#sot}66EL|8cB8|5gf5v zSJ30ZWl7qEUbkD|C{-$$r)!)iiAF!5&+kW#dR<LTFT4O<aM$G$JS>xdPjQwcw!e;B zD`wQ<F1&6u2K0LUwKqU@$LSOdS7=d6B=}dN#6IEn>g{Uy-K>oFhAl4*vJB47PJkOd zJz#P;m=WHz3Z0@}l2A7A^J@1=ct*w_p^wP3oZ)P>uA0rzLEDA35|YD%5Pk`qgqLP+ zVrcI@^0M(PXGH0Ui<eBMM_5;Uo#2`WQ4OPi_7?sOuOshCp5#2snOYX~ghAKZ+JB*~ r?MXe<$KGz;cZ2crtNK3Aa)z_V(q5!O(<fmB00000NkvXXu0mjfxfC9d diff --git a/interface/web/themes/default-304/icons/x16/document__plus.png b/interface/web/themes/default-304/icons/x16/document__plus.png deleted file mode 100644 index b61978ae9287abc0db00d1dffc7774428d0069db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005<Nkl<ZILm$0 zOG{K?7{KxW^UeuEnnJ~?CZts@5`s}7kb(#VH?;@^=@YbS5kfACpf3<Df`PUf&SsWw z1lzh$t4V_{Br`RX<qYT?bvo~@g>yOTFb^C!aNhUF|J>whE(d^!+y>6meHN{?-;6PM z?*Ry$bIptCnaRm)WG&h`w6$38TMLWDA`5G4_W=REHa96_49&wiht(PzMMU*F`@6e@ zVMwi3BMd{HO-*HuF}HwAO&~DFG|xo<CBlhBq8)7v#yP6hDzo$R4E6P8U(C%t1fCxN zTDR6J5tInPF(i}8;JqiAOtMlg@3#tcydVa2LQLa%X=9`fv<q6d5TB!nh@iEO0a4Tf zln6>GXup|bNJ0c1MI8ZJ1znJYQpEQJQLI2j5D^q~L>_&5LSbi}%GvN<|K7Qm#zseg zMuCHlNTKqP(Xmlp|H=)PPk+Z*+o8bwW5|Q0X;v!*z_V?)@&7C?u*-N>g3XN$deiB{ z1xJu~zdz7>qaT1Rv&Gn*YlFbx+x#NIaz4+Mi3v^(45&s13JxK|XRflk@c!T%xCvk0 zeEt~)^-Y8ofF2-qaeRE*$HsZ@t#jTu=e4yyvepm3y6)2(Lq2%i`vXV;JpphMNc}C9 tc9J6_Gu{5>`sLDHx3qVGKW@DNnE!O47(Ns!zFhzS002ovPDHLkV1h~m_Lcwu diff --git a/interface/web/themes/default-304/icons/x16/document_horizontal.png b/interface/web/themes/default-304/icons/x16/document_horizontal.png deleted file mode 100644 index 7c133e878e5b28cd44dee3149194d2b4d7c7fc5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmV;10eSw3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003^Nkl<ZILoDz zy-osA5QV3<Fjf@S(hysD0!yv1gvvw_QG+2^NMb`tNks#N6g&VvfDI3T7FI@+MM5?z z`@ihZIA=qQCD)zgZ1xuC+nIA`iJ2*lC^g`2I6M@cC~D_+Frb@$pGaO#{WxYP2-p^x z%OxA4FW=|6>#}B9{BD~3W*CVcCliK8luZEgD0^YZmglh{hHuB=Pupf)j30{yzv?=_ z%x3&No$`~W@xyq`DEJz^UY2UzZh09+?8sNwf!vQqzuGI6YE<cT&H@2=(*C*-bb@i< zrQ>$H5=sWXjG+Pn0A4D#TIZ1f(1i*F!NN;N&E`ccp@afZf#7!FrGt9?5~;@0g$iUY zXLxD9TD{^`sX(wN@X~IfaLs=T;~<l8l?$#Id*X_)Y?c7AY_^=?rOjNfxRuX0{v&uv kYD1I}Z7V91c+>ukKTR|ELaL|6$^ZZW07*qoM6N<$f*fnCNB{r; diff --git a/interface/web/themes/default-304/icons/x16/document_horizontal_text.png b/interface/web/themes/default-304/icons/x16/document_horizontal_text.png deleted file mode 100644 index 6ee38d8ebee7ed8b8fe2501e56afb8c177738c2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmV<V0S5kwP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005NNkl<ZILoC| zJuib{6n$ocm^zqQ8ms;SBNHQMk&QiCQIqtRqxV6cdw2%@RBX`5DvR?)PYlD1M+ z`u*MG-X};?k*MC}ym@c(p7WgN-1`auq8W&$1s1oq`UoQpqGMrmQ_Qcg3qdcVg=!Vq zQVAJCs#rvl@Kz`wn#&=SPUA6^LNJ+>ICr_g973lQpvPFgTt+&dN0JEd*(~Cj3}Qr# zBoYY3Vz_^P#!Wa3cPNAds})?#)2^*`ika2bv0|lyES>rnkqy268{I=gGeW(xGF~Eq zV}}EFuNQ|l8}=<0nA~pc7>%&r-NAl)`@;!ehq+>Sd0Abi4E*spe6O$YzP#W*8igkk zksn?^J>h}+dM7NvTrs$`G*Kae6Q>hSzh62zvfHH-i^qdqlSw++HW+Yrd5P1D3+$QA zGFaw{0iABLN};fWFVs7Eq`p2Ao(^+G@7&xJr^*g$;qdvSldE75u0Y^Nuu<xnD|$4V zX?#|du2QBzIn)A;Hcxx;+jMwOm@B&a`)5&8d>zh&gJmHeG4Dx^z{{2<L0+~D^~@Em vO66diN~Qe|m@BAS2ns@bgHT9rvw!0UAP?pQ7e!&G00000NkvXXu0mjfM!w%K diff --git a/interface/web/themes/default-304/icons/x16/document_music.png b/interface/web/themes/default-304/icons/x16/document_music.png deleted file mode 100644 index 2b76eef909371e112a301432924caceaeffbe13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ENkl<ZILnQa zPe@c@6vgjaT1B-DBoU-GqS9Iz5W+=<w3<x|XKJQGENY^d2wa3941@~<1r^L$)j|oX zMYRyzw3wtn5K{6?hOyC^dH?3UdAEBW?+$OEs1JUN_c-V9-Sb__udNYySS*eT6aV1M zgVj~aEicpErKJ$UkBF4%`&@NhF55O6jRyay*ZF&`7V@rCVrYb(jsSc_r0UHkSH$@9 z=!kbJ75=in&)a)@{LwIYV{?;npc8u90k;<ym2^V_ewpSULsr(;+YBa?lL7&noS#?H zmgn)IW&Je-H^Dg2s*kdBbIMg)I;hF~@sROX%v(ma9fAO8)kmp9LAmBgK*Mo5LJ*L7 z-{Q~ZgD?ceLaRQyGBcxOnynUF(nCDt{DQ~hE4zIEjTMfA*MU}jl$@ScGM)rD(nCDt z#66pLt0s3pvcpcw5(=&Q=yE=<Wc?suSH_5koO{Cj?ZD>Yg&^z%djhTc=wdFXTyIGL zZh??3qsdP{I6VB!;}>6De!b&_ozx^4TJ_O|sVU_~AdBKl073?4w|VsWA@@Blb##Jd zgI0YsFg8YsY!=+arUh~fgj_1T<&)_m&%XTB(TOSJK?@JO;prP0p&{8Wj*f=tIPp%f zY|z4^r%O0>I+3`=v4e5Yi68ZXC&r$*@(nFKk(Z7OXS;fPCyw>^-}xV)g$Lf>HNc|} T)V%@Z00000NkvXXu0mjfKvfiO diff --git a/interface/web/themes/default-304/icons/x16/document_music_playlist.png b/interface/web/themes/default-304/icons/x16/document_music_playlist.png deleted file mode 100644 index 2708c7f5dfd724eea0d65f942f3783be277cfd99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006WNkl<ZILnoi zO=uHQ6oub9;zEfo?5<cSqN^YXE(90SO%N0}LZKAwuf_@~{!~!1stZFG*;HwuMT*Tz z!Rn$Q_yfg_RTGmojnyWWNTg0DGvmx;GCkfq<PFnq)CV8K4ClOe=G-Ul%*_erZYC2Y z`u@V<+q1Lc=FE(^F+J@e_(O|+!*!wBHa0B_Rl`6<*Rfu&d%VtO!5X4t#|He;qCZ!v zBfF~NQ&Gjo6%`+rx3E-T6g*#C1TWSR9sUOKbXqcCI1Us#d6Q1AX&Neuf>N!9e6@;4 z^YcE(ySuLuf)OK=laj&0R}J~KI)X_qEC4TanxEu-UIA;RPYkD0l0mE4ghv0bnx>zG zHyC>3;`5K6UJ~wuwbCapC6kh&m31A<-!uf1oJc!3J5@&fndx`JTImx#<KvRy22H_i zG+@vqWRmbL6Xjnz+7qVN2~UT$(kCt^5|YcsvVme*M=;5;6!12$;nYLdpAKuKPn;hc zlU#APx6z;;Y?{Wq4I2-ZOq_n~;Azpu!kXoE!uN!=(kG&$qmo$ZyMfgTr!Ww?pF{M? z7LMG@V)t}dD}CZjEGD_i7ll(asf%+HuW(=>gXD|Cj!tyyh_%uu_O-Q%lfAvn$d`@Z zV1h|@cfv_n%O3W6D-;fk_O7lt0*jL{4);QdY=ZBJMNihUN3Q+E(LJ4=eS0I3>;D34 l+0*ih5OI(=^q;UN^arLhZ2tEZ5wHLN002ovPDHLkV1hio7|Z|w diff --git a/interface/web/themes/default-304/icons/x16/document_shred.png b/interface/web/themes/default-304/icons/x16/document_shred.png deleted file mode 100644 index 2c0d00c261c3b0f5d5dd86c702b9a1af89f10fdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006RNkl<ZILm#I zPe>GD7{-UZ6n2wNOLWOYc{A$d#lwOS9Xdos3{hZfxfP3PEf|}ECr?7mVGs-r%smJy z?ny5}C=>+R$i_fy$*h|+yRNg2`~U5IKK2ztw}BroGvD+6c;?e$b8{Ma6OZ3u9{q=l zuV-hq=**1vYI<5hM4E<=4MK%#mE6Na+BrC&ZO@~h`}>NIo127lru~=z9~y+bQi*=^ zLdtdNdnQ9xI!)gkhZ1XRga;X>{U5>L)RfRyD3{4C6pl&WFE1Z)Ro5eo29zLTnnIsn zsZfsVpCmyO{0?%mqXc2Y5FSI2=R0U7N#*l|oa`t;XktQmQshhYip8dq)ZQK;Cp${; zaC}_oFR{Sqi)<$O#SM^?9VO7m#)SSd3mn(APm&}Z$KGKPa<ZcYw_`COT&dOQt8K3o z`7XA1cWp?1WHL4+pDb(T4^QM|M+t65qr%f#y-x2E2?I?&CzGpavc9#oiYDgLl9Ba& zLQZy+;QGLT@T|^)`=g^nXfnCDXrPI?uwbBxJ~A?tV*zrqqXfZlSm^b9KgaVqn%o^8 zeu*Y`c%liur?Xj{_sWhE;JMt>qg~VWZgYPA1J4MWV4?{onqa<-$8p|`JRT98Vp`9% zwVe-ib=|uV48HhcSr%rcTCHKOZ)~V{oFj)k_C(OaoMSFAS3qk=$Ai;>z^${Lor9Qo gmopS@<Xa&43$I6Siio%XkpKVy07*qoM6N<$f)p<iWB>pF diff --git a/interface/web/themes/default-304/icons/x16/document_small.png b/interface/web/themes/default-304/icons/x16/document_small.png deleted file mode 100644 index 4e7ce8c8622d993c2c7ac0af9849882b66ee51de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmV+;0o?wHP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002$Nkl<ZILl-B z|NlP&C75CG8Bo7sg>U`Jm1!t=#R`?G#fuq=X3r*U08nB2hu^>dKl}Ri|D(^J{~x-1 z`9Daka?v7Hq6`2k%J}&6=l>_~-~Ye$^5y?+$B+L90g!m%tXZlA4ak~2IqU1MU;keN zZ3h{$Wb0NqHjRxfBxpclXJ_{JKY#vz`1TEM2*@QM?||e88W2`rpY!YQ-~V5L-as}4 z6eb`!f(G~$7w7%`_wWA?pev9KdHdtXe~=tO18kC$3qXMeG6dujutC6B`3j_=a`+99 pc5;dkx3w+BhCy;eASu(`005zq@5Cd`l;Z#Z002ovPDHLkV1mo{h7<q* diff --git a/interface/web/themes/default-304/icons/x16/document_text.png b/interface/web/themes/default-304/icons/x16/document_text.png deleted file mode 100644 index 48cdf7551bf9c4dddcfb4ee874cb864212a9dc51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006GNkl<ZILnQa zyHC?m6vxj@m>gVPASA?zDE~nd65=3>Qx^w{QY8e8b|7V8Vq#%nApsKti;tv2Br&vv z0+yt))mCW}u~5pRsPz3lp6^XhQ$YhK`3$%He$VfF&pqT^TqH2Qv~*ACzk;^0g#~iV z&(n*!IRoK`I<{=3!oP||KFQ}fp2=`5o#r2@l))1WGBiT_Ukz}mV@sDxoD^f?{G7ih zll<-Ih`$^j^5=M*-)(L(3Ob>^(cszatTK?120ydee>QpPay7VXwGImeXn1Bu8OW8( z{C0hv-*`Oi4g`34YwJ=HTnAe9k$rkvd6btKgc1oO3?3YCV1NHo5;TBTePo-OQXUti zfy?XVjZmnO<h9$)uh!Q1gWqrd!(gFRA3dC$R0d1cDt|pb=CFM2Vv<j>82k73%<Dj_ zKC(_sD1&8bu(G{vCf=L`PpC6F$>kVY_0a>TQ?XZSHIB%AcTZ3Mn*@6Tt@`M`!=XH> zN`v=4AAgKQ8cDq2ut~DIvtyE^<f)-mAN7umC{Js$DABVsgC@y|AyX)DO1AU2#K*Eh zt3JBZ*GCq+9SmX9@Fk@1MWg241=)?}CRsT{3lF@eI(vGkTegeqRg<e!WS|&oQJ%KB z36>37c(huCo3|{MQEn<+2Q$H7(FjkBJt@i=T6pSSx*^<d>FDTh?dp1d9iW8=-aqmh VpS_B?6>9(h002ovPDHLkV1j4|4blJr diff --git a/interface/web/themes/default-304/icons/x16/document_text_image.png b/interface/web/themes/default-304/icons/x16/document_text_image.png deleted file mode 100644 index 0c697bb30faca5effa81887c4b299ccc41acd9c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmV-x0+juUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006qNkl<ZILnQa zO-R#m7{`C-(IGnYcBw-mL=;GM?lKahLn3tArGs0!3bV)^VqH9W62ike2pX6|q|!1f z!p*k1ri?b*425jEO=MW^{r&0r{@61X3iZI}@Y}xM=l{GZ`{bkoPp77?Gd=&{%#(=; zWg8z?17l+vg&!K2bJZ&SDwSxbP@s4=OR-Fbex}nJcQ{PYFl~P&z@vdVQ!Z1Ajmf<| z`jJY}_w8-^mPpV_JWg+YK0-jpv^5hv8XXlZSx&H<%N>~Hh11#OlF8J^D4_Zr4#ASI zRA_c#fo9xpa)m-Px45{k60`%Y_>^^IM7Ukx8AOsvEevmMQD}2>UnNKYt@xCAcv!eo z<OEKympqY3vyy3-i(b#q)2Coi|A)asD?W8=Xh`TS*J_mKIb@4PO7kXu=kt0dsN`!b zM!}5@y&Y)9r%Z!`LT`l=gr<*aR%TC7c;>iH(mInJenTrhb<=Jatkrs*ELSg(|K)kg zB)VxgdPP^#IuqOpwBl1YY&PL;jT1b3U?9i9Vfy^)G|fFfsoQzu@z95*C4Ee3ZV_7X zscZfH!o4~lN|oC{D<vLik=KfuM0o?U9UL39;!_v9x|Gps1^01j_)=hfo!$om^kr?0 z-ueCHTU{k@G)f<rmnp|dp@j!t9cMc`)n&deYDAq|Ij9n}gJXjh9ti_;^pw%~kXi!m zU?vzW5@E%-lM=t7g{R?FN0@Vl_V%7b9UYJV2Wa7e_Yaidl_FDz#-{)P002ovPDHLk FV1j;R9Z&!O diff --git a/interface/web/themes/default-304/icons/x16/document_zipper.png b/interface/web/themes/default-304/icons/x16/document_zipper.png deleted file mode 100644 index add627c2543f1b8897f97e437fa0fea324a9bc5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005qNkl<ZILm#K zy)T1d6vgk*NlXT-g-FCC_z#*$#K2-|B8JvS5kabhw2OtwBB@1!MA%unSuEW!7#bld zB2Cfn@9Ul?Jxv)r$;sRI$vMB?d*3UOiwl9GmzPr}KQ$MP`bES&JMQ~;&d()$dMeu| zCr*NkmI8%(T|X-o{V0_*7K>>-9(T{@Y*ugX?i3!=z%Kw^S_<T<RZZvf`u6?p!ihve zL!pq~r&4--d#gC`nFiW`t>a^AA#Z?8q2M3@B$G)8czAu)v#YDN#(chYlR&b5bVMx_ zYc>5U799kDOeW(1kMHjef=bX1yv#}P@Q_+8*$lGQKOpQMfTwi24FLdN<|J@%KrNLG zkS~`V1Y!Im0GJ6OFS(q;%bd*b?^DawMnj7>2S88(!T@owfTZj<yv&Jjcb8hO8K7)) z_zU4+0r{}@;AKu`BM~ZCZ#K1JZ2-bBXF>?}1YYK3Ivl1}8U{cW|3R`=9lXrR<i-ZI z+O$Qf8vqc7*$yFCHh7tn(U}?X27}NVHmzw@{0AvmW$+?{tUE&!6EbewrL6-9!)%8T zEE~MY@N}7a`@G&w?Ko(M5LAOtj6JCs9A0EvS?MticMT5uyGKSso$`1*dw=gBc#%Q& Y2Pra=XIL&B?*IS*07*qoM6N<$f)T*y4FCWD diff --git a/interface/web/themes/default-304/icons/x16/documents.png b/interface/web/themes/default-304/icons/x16/documents.png deleted file mode 100644 index 0aa748455e6818c34af690871c6c4c1688422f38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005WNkl<ZILn2R z&nv@m7{{MKfN*heQKGoYE^e+$=17qXGmK0TY3AnU=0s6jZM&I99F*12YVELC4F@Ts ziP`VpkLRuJ+csbM)T`~=`}=wKdY&(tY&P1o+sW*35dN2+hlJ@r=-jYcY4z}sRt^q` zste5Wi%`%d3kCknX8ARh;^#zypJFj~2Lg;t=u$5zTS%x&<Z}Ej7hj@LevCx;E*$2Q z>ubhAE_78F)F`i8ES9TKh~2>;KfJvuB^H-UK{GzSB+$Rgm$$byB``r|*xl6&^s|ir zlrN;{UY;x2b3D$|J3F%ik#TPi%p~)9{!AuoN~)FjolYf#<>dDEoInH(=%i(YuXOrX zNk#eG?^m*qOom6dw&n#QXh0_`1qlh%N}zn^^C?+O#vNH(GYCY`fKIMh<dg(zB~U)~ zdX)_O8Z;Ug1R`iar%)<!M)sgq0%h0Djgnzs1A6_UKm-lw6r~_9W2lut`Pk!OSYp(y zyxToIyxh>*N(2q)l;m?2<OQ`7DEEzx9W`k*D-{}hdZvh|gL<`Ef)2iSNt)G4pxi$( zVUi1Nb+ic73>_{Xm|z_2q+Yplq5iZ(r&>=9MY-;L13Y%H@G=!{c>n+a07*qoM6N<$ Eg2ig<w*UYD diff --git a/interface/web/themes/default-304/icons/x16/documents_arrow.png b/interface/web/themes/default-304/icons/x16/documents_arrow.png deleted file mode 100644 index 3e7a46a5a0a68809522ddea4b2578d9222b11335..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006&Nkl<ZILn2R zT}YE*7>1vN>L6HkQXO;<L_$J!5R4${An2qZ+)jjWGcj^n+0QCN3v~zK&I|$}TBU5O z&4@}_QBmNE6w&4wCawn7m?n#6bHDEA?s;UcxmLb#^L-!p_g-Aj`%;_DM(uVxb@cU- zyyw1;aq9n(o!6~ay4u@I%{@Itg@6uzO3Beh(`kf~NqmpR;EzP`H5`W1<AHRXveJN@ z1(&+W;v#<V#+mtf_<})vnw`b-p&`hUo>Nu`SfSi%u~<HMy>L!W;>+Az9%6Ag@=<EF z7df=5^5De83W%6U*VNtJ$f2dfSWWpYgFf^3a_3)IKz&!&X%3OzWRf&QQz?X^(G`$F z<-7g;`A#frjm9$^BGC|?IFIlv9{&rnto+L5%6C5#2^=>V&T@!ELv)f1h;UH~BFZnv z#`0a5$5pqqG;xSTLv$818N|3K1rg;JBO~Z^hEVq;h=HjHj_UR2I7Ff$I_Yc{2|kBX z5K(pv52MB&!0iB*o(J2^<^!$wi9|zmG7L!Z7{!ol1JkIw=f#m*E>yI?M)hMKZhiyy z8s7W&+!)u8XoyahuPe=C6hqX{W?-BK>O4S|>rXCE0Xwd|@z6e%iVih4o|pU1vPCiE zg2j!)o$s)%;Zb0{_JMnUuMg^vz*gN;_m*1oN#eC>S7qfT<d&GoIC3U(uyQ*|ewTj~ z)z<OdgMdQwaCAeBU9<UwS@zR*MS1zDjY?(n|04gasnFZjs_u-gQ=2plAp!gba6`^j T7koqi00000NkvXXu0mjfrlB+s diff --git a/interface/web/themes/default-304/icons/x16/documents_exclamation.png b/interface/web/themes/default-304/icons/x16/documents_exclamation.png deleted file mode 100644 index 20b9169a15e588c8ba4cab2faf4bf80522fdb1e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007HNkl<ZILn2R zT}V@57{?zWyHctfuYxX0&@M}%i!Le%DG2pqK^KN1eynNcBEuM|L11>Vf)Wb@jfo#! zDXp78RBFp;h>W#4o%m6kW7VA7*@w>kd!8}JG{XZw-gC~w`SE+-Ll1|BsBL(d+DAr6 z?o-d#nA-nvN;fb-_xt;)rLT`DQ_#+<44FD59)~{`!&*3u)ldk_8ylFiS|Kwge}6%$ zf`@gX%}xB`58dnQaQS@r?(yJ**$la4&g5qbb|pVB7z`$-6H|6O7QEiH#9%b0DXyq! zX6V4=Nt<n#L`r1V*xjvWD0vtMC6BXco}YJStHB^@_4->3k+!#2s8_bO;8&DglFZ~c zV`J%=R91F&Y8WEPkemo_ArOiDBiTuw{QL-x>2fU1_ux-7iW?mr4GfWFNKT9eAs*}} zSqb=H8ZU+7AH<yHCIZn7l()7vGDMOgIh)(t2=h7YCs|k=fqh1UxbhCG4lUN)qqwTo z-e!m-LvrGY1fqNndnLZ$I&9Nb@Oz#?rBWf_?t<f6H7;vvn=h)>M3Nyn+br1PZS0k- zEF0mpR3Y#~2O@&UQ4jl<>!`d_)RU8!M<f}Nli=SK=WS$4g3$<OO*L3?YGAjP!1(?i ztg{#J_0xIfWmnE*_8~e+XUfWmQ<~&|C%7V0;`up+nTab{n!5y-?QF6@R+p^^9|v<S zx`wP0en&?ON=xq|bxDbAN6y4DQH{l!bMVfehSymD<#%gx73R#xy`!(PdPQ&|x3IA0 zNO5t?UYZ(?ne=Ukmxbr;*{;`*$<p_POgp@NN-zEb4YkVFM#5NT00000NkvXXu0mjf D_xd`^ diff --git a/interface/web/themes/default-304/icons/x16/documents_minus.png b/interface/web/themes/default-304/icons/x16/documents_minus.png deleted file mode 100644 index 5c8042dcf60e8484bb15032da2cbbe2f0de1e702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005(Nkl<ZILn2R z%}Z2a7{$+01gZXlKoWC1GVa?3p)C`XKvO5PXo4}LOn2^F1VW*pFow=5gvn|VWRN0= z#9)HeB8D<C(#HAzdOF9(%N@Mw3%{9rIqyCE-si>e+#DXy&toJKfu1YxS4hu)xbSdx z7K1Z02u)7|?t&5iD<r+CV$t?;Is2JTTRfSxZ;6C0#bTz6G<X+OEEx7C^LhKl4}a|M z+t=M)`?S4nFPE21OF3z97gQ-f2#3QTwzh0(bJM=;>^LRiXw<>q(Q%jHRONRY8&xGT zQ8q9!5g<4m#%aoLS@fCjM_K&fz<S2VZxSFlIVt*5g@Wy+QdK2x<*9`QCzIv%v9W#v zNJBaq9^p?WbFAb@`OW&ell{(S?b_(*EdoeGIyn|38F-aQ`SseGlO=fEt3yKr1dxVw z@}-ic8F-aQd2w~s$uzIa!QgEINJBcsa@n$+gI9@^qbn;;rg>co1nz`dS^#NCr^JE+ zkKtAFzN^b3jg9uIx!K`aO-=kc@D$RJPMOzL<T1QTB0isGIy;Z?1c<@c)&}Y5zRR@m zDtXb}ZTD+yzdr&#y5Sv6f$QwW*4BGgSu)XaG!qS0x0B<u_HggHcK!@j7{<SKzOJe1 n#u>jqbQ0Rbz4iK_-Bs`xm?XI_aS9X900000NkvXXu0mjf$kzrD diff --git a/interface/web/themes/default-304/icons/x16/documents_pencil.png b/interface/web/themes/default-304/icons/x16/documents_pencil.png deleted file mode 100644 index ddc0b7d6b19f988aa4aef8e496e0ba58d04f802c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmV-v0+#)WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006oNkl<ZILn2R zT}YE*7>1vn1^u5WbQ1jtc@mcF#FN^|4pyP7lOlv5(w41gg|Ud5on$A82dR;z!Uk$E zP?}+h;))r9NXZhX4Q%8zBTe`JclSJF``FgP7cRc<<>tA+>wQ0Z(A!H7`})Yz-%s+M z*`HzR{=?z>HXGgT>7mB%Zlc@*3qK`f>Vt^{)}m1?heGfL0$AMGfOBRBk}+k)3o;fQ z)(2uS{Nll-^>ut(UBy?wA43xpkR>@&mRpdge9vmNx;!2@XJ@gnvZ9n&9S#L`ZS5_F zwp1Q>yYouKL^5Mrn}MP9Wo)H9%0=_M&t|^OP1LotTw{n#ot?tfU_6esU@)&FSNY}O zppuE@rRL^_XId?hXoyajkMJiP{--3X{BC+$$(Ef?d@3#d>{6*tl4yudlnVlpNYN5e z9-f*?XLDXJhTGc#iv<HJ)i|+=&=5-|5#oC&RwBx8Cnxda`v_j!?Fe&zx}svNi%3fs znwo^`iBt*^zK3EZzj;42+JTR6bO<k*@wBxSYQ6r6v9gj#Z#E0YBp1Z_7{y9_z7Y)A zs?x*uR~pQF#&D#%`u2{J5+a?+B-}{x?@I773QK&8@0Bk<y0dMeN_XJJZne5`XL<P* zB05ONYidYiFx-^?onnjJlAnGzK4gX;n|FCHpQE!pv@eIf4DAseWR{r7apX>14hs;N zgS|_GQx}gt&khu>{h}jUg>Z)Ry6s<%o;cK@C>N~15NoEXWrTBY00000NkvXXu0mjf D;5j47 diff --git a/interface/web/themes/default-304/icons/x16/documents_plus.png b/interface/web/themes/default-304/icons/x16/documents_plus.png deleted file mode 100644 index d09545372a817edc6f02cba25792e9fd03671146..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 601 zcmV-f0;c_mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006YNkl<ZILn2R zPe_w-7{|W{&5JAXQgjhQA*n+S)=gv{gO~*!I!IwPTRO{yiV^9EXmznmf-pg0gSk@) zOYIQoA$2Gk!vswvM@^Zi&HexP^gLs}Z1|Qx`0{&SzVG|t^Zb5z;c}sGYz+NwH{?10 zew}0dN2;GYo#+`IMfb=EPzdPfT}n=CB%P-HM1r=XQSyhw^fMHq8J~}&<J71F@)lgS zhLcI!<sW|^9MDEENZ$hi`ZPOBvZUwK6atErpE(?kuWM^Gv${$@c6Jnq!{bq+Yi{o3 z;6&x=m6alhm`G<H95iu|JB*W*zc6T>-;X-~;UO6Z1|D$$i`_1H7)hmQKN2Z|6e<so zk1L&6-nH4<IDlw~PK-zR6N?>#94UWZT2i{bc${uqt?e8@G(;!CfG`(o5K*35TvWOc zk9(uH*USM#Lv)gv3`Mz6gNX8k*Gnz)Pw2{2Bi-{_=$ggS!2v`=bkf-@#rYi6AfoJ< zo1;2UBi-NY%I$iS>G6eE4S;BfPKE&~9zzXsXWC5F&a0&Tpr>0wBWXYCspS1RKkSu5 z5Dn4E@^z(o3^hodyMgq9o5zB86+UR2njkuI-&wX$gS1SxQ`zgYzwk!$?ebPV$)3yG z)5G9ZanWFSO8F%wGLD>y9IV_<f}iCZSj(5sZ(bt2EMI_40|v<dsM6HdJ~*S(b^kB& n4Gg6&m`WF5J~f2SvK-(q(!RKgvK90200000NkvXXu0mjfC-oTD diff --git a/interface/web/themes/default-304/icons/x16/documents_stack.png b/interface/web/themes/default-304/icons/x16/documents_stack.png deleted file mode 100644 index 21e3f4d1cad3c96126670632a37531f534baa9f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmV<P0Sx|$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005HNkl<ZILnoh zze_@46o$_~P}CH(1d#;R5>$UdlhmRO4K+n&_KU)7NUFiHF&Y}o!J-xe(TbL^z(6F> zP{=_<5F|=Uz5dqIITwx3x)vRHxx>BR^PKm)uyb|>yXWWd?Kwf2Z;`(3lM~po*<jOZ zh3^OD&<6`rwTd6bBEIJHn2;olXEJ#A^o0D5qG|<@&F0fnyEhU+PdJRXp%C5#gXoXN z@bcjSdFZg-bbPF80{msZ4g}EVa-rSrmNPOlvrd73nXeun(HD)%P{YB&A_ds`FY}?p zfr)GuXZQCF6p(L|J7r5He4~Re=`_YuDSS>Q70qtHUzSW;EK3xC^`j$>K36W|doI@m zX;?+G%jc6foiv+QC;;4p`xGh_Ocx42AiRlac6z;-p>4;F##IUc_uxK7x&w*GN)XX} zaet2zZ9BHSyhZ`w9^9u)fIPiWf{12^$Abm>c2K9=XzS_%;2zwkTB~7+YA8WO^U&0k zvtxAB)UH;~0YEQs5AMSN-a-i?n)@}HJv!K3PbUm(wZMJ&ceR2jnuY1$K3E@yG(dc@ p{C5QNz?WH=9;Pz=w<wu;J^@RgrHv*wQfvSK002ovPDHLkV1gm*<v9QV diff --git a/interface/web/themes/default-304/icons/x16/documents_text.png b/interface/web/themes/default-304/icons/x16/documents_text.png deleted file mode 100644 index f6f5833275c3a4c8ed3eb5e60324371bf495f740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006dNkl<ZILn36 z&r8#B7zgm@4=AdOhb}=R<Tcu*Th}18V}jBpZIwj}3?oc$-aO^WgTe%rMy*(3fvk<C zZ9?n^v$n;^A31TR&HeuM^nQ;`zFUSLcr)E+pXYgfo{tRA&dT$-IT@Ls7ye!U|2oq5 zpImr0Gb2x?r)6+zO2k-T1fSeQ`ZMLS?iC7}$Yymtoz|bJl)8dJ<sQ<0bb-18oBiox zQIk0MYkyyV?CfZGYfIlPEh!iGk#=K&Ch}9O)%rOS(bvn%>WjtnE5agHhvP7&o}NdD z97|sC`_;d;)+FKHz{G?Zk=ihhBfs=`^iv?9-qlt0ghIN0aG-tT<987e%j6_;CsQiv z8@IdG^*!jV<QF!Z#*;~nCK5H}t+BCthzJ?v<ZuOc4Q*~}aAV^ivJHyw*bBtt`a7T3 zo1>%m5fL)TDWCw!o^ZG(vAbOQ%IQ?w;$n?#hw4u*r+b-<rf}UGLqh|I2pQxQD;15P z<G1bYCJ6^f@+=Ca(V0a!uWJ^|14M)ja>~`JE_l8A1<%)zxG^w(N3sKgEDo{==XKR= zeu#*WK~4n)V!OK<#h@AzBl#_6KqaqQz;7>hc0NAQ)+Ry*IaNH@$CVZR;Pa_B8dWFW z-$=gP-EBW*G7UCzvZLd+h@6*8U0p&B-@A&+WppW_OCC%k`ATo^Fb<q;$r(gWlcV)T s39rMMw2~VKTGu&pjJ%_ANN!nw0SCIE(y{@<;Q#;t07*qoM6N<$g5|*<(EtDd diff --git a/interface/web/themes/default-304/icons/x16/door.png b/interface/web/themes/default-304/icons/x16/door.png deleted file mode 100644 index 0b7c1bc63a77806b3a7bf4dc963bda49c0a27dd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004=Nkl<ZILn2T zzlsx47{!10Iw2W@IE5^VU|}Pq%>!7Zu(J{@Ew-@m1$>ERL2N910GqASSOk0lUtk+q zix3o)y_=ms$^E|1A~VTMvbYyM4)@+OXU;ir-N)wu;2fWTF}JVpX1oP>_svMGJ~d<f z;`Q;^drz9C^!t6h_lO8(SyELMs>;_dpF3)a>Ta`It(eVbq-jb~6bCq&Olb1~yeKrI z^=+1AH=?T2<^v?sQWOz}!y#FgVP+i+As`~io`XcBE8x9HRS%}=qs<3MVoR|hnps_} zQB@U-#ex_ks!BZQKwvk5bFTB}`JXEuzxlwgP;4DE1K^{;c4EXihlrqNhzNHurte?U zbDR4%e-mM^gC>gA4jw(oc=q(kw#0bQfpj})A~gH`^ZyDo4%#KQ@g@iU;(C{<6Tz&5 zZGk9oaa{|X&Edxt<kjZG5CTO}uv{)X7(zf*$*T?jY+gqI?oNMm@6~-sl7!J{#9%O> z*XwQVuh(nJvP49<T*CB{hd==G1W19SpE>6zr?Xq%@?SUyj(|0g{{u2FU){WtAIJaz N002ovPDHLkV1mq=)!6_5 diff --git a/interface/web/themes/default-304/icons/x16/door_arrow.png b/interface/web/themes/default-304/icons/x16/door_arrow.png deleted file mode 100644 index efabfc908b8efcacd0735b6c9c5546946e42f940..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006gNkl<ZILn2T z&r4KM6vsdJ`X*-_!l(Tnqhb&vLs|?(D-DclArcW3C<M7^D^gIK{()Llw5Xtn&_xBd zks!)dVQnNxBx#p~4T%MB)Ol~b_uLlF(>Ez~;mbLPd+zss&-ZfGy)FPyiU&Y}|F22s zxEvRrt0vA-ICXxYptUBG$xvTkkJcJ%EnyfEMG+#x>t~N@*gTQ-qEe|aK0Zz+lc8KL zZ;0L9-6Z<~v=xXU)m`8BH;p1fvfm1LHo<7EC7aFS`##ROnivED)>`ae3Os9T3AEOT z$OgoIB>Mq8lVFS+opV)V9Z?ifEEX}wAR?Fz9#~k1MJZKt^W3izEf??dGbpbqNWwD- zNyZqIQdnyd=djjNhhywoFS(sf7-KLNW{+K2&7-K6z*Ywo5nNTlp6xyd^ZN*bfYHW2 zX8NxlT54|VuY}?7a;bzi7Gj9V+6XaG9F<bcsvKwfIvXlsIOv?~Uo~+P1xXX%>>gk~ z+lq*zI6Y1J<6bWG<_nKUrUsn|-nS)aNpCWObBG8Fhfi?4tAnp4@C~d06AN(iY)9ec zllOz(=p6LyfL&Ww4+cSibB@KuMU+z1y?f4!i4WB$6dF2Dlk3PceCO4q()zXsG>px& z^;{!(o=1CoJLz<qR4N6)4L8He$`oN3GW4T|r2~21-WvIAi&OV?>HDw(wgI`LDXup` v+rR$tmm`<<|88!rTb`e}X+J%E2rT>o4-jf*J8CMR00000NkvXXu0mjfB^3*P diff --git a/interface/web/themes/default-304/icons/x16/door_exclamation.png b/interface/web/themes/default-304/icons/x16/door_exclamation.png deleted file mode 100644 index 3fb609c2d6bf4b511de7058ae3dd0d3571dfd52d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006dNkl<ZILn2S z%}bO~6vlt|df)j@$C(6kGO<W(gn|SKDlDXek|;`|Re_5(ZCeQS7qp8uE&2mWsEq|J z+(+TwT?8?W<OhwTGw*oMy)BwI-^rv459c24InRC0!%@#C0YE8U0OS1sEP2m^C^5c$ z@t*N3cV@@6)}+&ElF1}mYea-*vq>0+IOq8A>SYI;ac(zhwOTALE|N~CX*3#p;?&d> z@p=F)4kEbrYd)X<XLQaHuNMbKVvHg}Hk&1%&*Q!Ch_zY`5kdY^U_?3zwAMK1_8{^j zUJqbwj4>+o-nWhQgkeavTE$w6a}K-51A$!#N~w;YE9;w-?ma{LR$%ZWhfk|wkbwxs z#w1y5QA!~qIPVb=y70Vze4PuoG$R+Eu=4$3_t><gfF^*p0uiJ=pmPr2R&eNGp37H< zIC^rDTyK$q(X%OWT#9-+2%K|&Mu>=%f}pU$!00*d-ha*DiStP(>V{a1*nJelO-vTI z=_w6i%r^7$^N6f=B{IWhD@^WK&|kOq8Nqv;b0qtIQWzegvhkUB3y)Y0mkA2}$E{^% zX9uO<RN%`dY=^%aYqc7UMuU32jt$mH6%%x2DkStO*QTG6F`MLaVKGSMPFc$t17sF{ zaNu?i7-J}x%cN2%f*@ccyTs5~FKJzcz_GP9M}6%r0R5$&W6NvxSp^h<fr)^*UKoil s$;3^L6iQ?|7RS&`cJs{`S_#9aUn8DR7l-2jlK=n!07*qoM6N<$f`Ka$5C8xG diff --git a/interface/web/themes/default-304/icons/x16/door_minus.png b/interface/web/themes/default-304/icons/x16/door_minus.png deleted file mode 100644 index 7356d39e49539ea48595cf8c1e3fb20c5ab6743b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005rNkl<ZILn2T zJ8u&~6otPTW@B#*V#7lSB2ggmh&yD779<xGL{uOO3JMDT0{jCS8bm<~3Q~cDXh?&E zC2EB0NHn}eFhm$wuj5^N?hHk|o3$O3k&f=%nKS3!d!$j1E&_m3tN;!6UTyEWlPAWH zH{R2@eB*XQYfTu2R4Ns;)`$pcnv!K1&N*H`e=?zFoZCr;!y&C!i!cls3<fi?*=$ng z188xO!;NpFDB3kT=P2{VfsvA;h)}E5h@uGZ{X~r87!g6HIxr%W0$OXFb2G^ODDwe~ zEh*+i@BP?VPnKnLIvuRFIOni49ti9}P)bcy-stvNy!DWu@u29S3~dDpSc_5$5y5$n zh_DaO+TE)JYWu#-KlB}po$??b#g98Uek9`Tsgs3?Isf!02>Vk4&beZQJfA+d0_VQM z{yqr*>7Z;PfPMQB^P@*M_`*_`rEti50X($L=RPb}cNxL^BF38uH?LgJ>&)kW=IQDx z=H&(~ABAIc+YjS7#(PhaBq*gwl7!Jhl?Sh$QJJgor`y{KMyvxEXd7UDZIc7n4uUa; zdc97yS|tdAVvN!G5owwtBCI@qv;N{Q%RqbywiIv}IB_B1-U6K2>o5O?5AR0Y2fhKn Z{sA`@R=%4E38(-7002ovPDHLkV1i<%>f`_b diff --git a/interface/web/themes/default-304/icons/x16/door_pencil.png b/interface/web/themes/default-304/icons/x16/door_pencil.png deleted file mode 100644 index 2e245e00b19f23099f32f7be52a1c75b02dfcae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006+Nkl<ZILn2T zPe@cj9LGQNdN23ozb7hLqF6$~E_GQ5szbpB20?g;q=R_y5YeeyU6O)8A`rr&4t3}d z1W_a&^00X66olX*D2S3&HaByfU48GZZ)Q5UPj^#j;LCS@%y+)?`+Z@=_!$5Yf~P>5 z|F2KRa5XM$Q`s0px^G}OZCMts>rz)&hh<qPr3iw6FbvUJGxh3Ojhn6Yc2O>u$!4>- zu8Z&cJ2;ccP^|~Bl!h3(a_V{BuB^4DTCX(Ns>)F*MSXoep66kVsbMK4N-3)KJ@W!v zsagZevd~)ZK%7Uc&wLSR309;bMl3YORDv~xVMs2QBZ?xl)<hbPEeQ6@I0FUSPzWJv zUS9lDq;u#YOVZ!!Am=4dM(|d_Su0Yog(yM@fl>->3`!~XV3@pl5l3vEuh~tB*~Z3m zhek&F^Ki$G{>dOt+f+I@(B^UUa5qv)%Jve=PJ7dMcKU8#Z|~R@W8T*oXsx$Ki0hd5 zw)prBdB$H4ccoIP+l3%_cNu1DMu<D84iUg=kk}o+$qWqh_}*wS)wB3PDK!gV&#ggc zVwVw&L2HfUtzlXVTo}C0%STW6HDhwkel*=CU;?n-EW-C9tcRNyrIh%-PpMQQh*lBp zOPn9P#`6bbG>6?R&mjx*5#I^{6Mzluo6OUAsTpkBCYel<NF;C^hoAB@{WoTKasM=3 ziQ~AciPaKJuF?TWU|j&Mz`+v^w_4yx^+%c7AU$+StjHha*Yl<bumWE{ZZHZg0Ly;? X&|r2`$K1LU00000NkvXXu0mjfiSQtj diff --git a/interface/web/themes/default-304/icons/x16/door_plus.png b/interface/web/themes/default-304/icons/x16/door_plus.png deleted file mode 100644 index 302a1f9bf36608fc5529306202093986c84946fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmV-E0>S->P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00067Nkl<ZILn2T zv1=4T6vltEnakeh5I0~FG?0iOVmi4>ED{MQh-f1UT39H?Kf%({Mg*}ig@1q+snRH% z0ZZ{f!77P`79pB&lFjDs_A+mtMQ$&9Cg{M&H;;Mq&G$YS^I{qRjA0(A^8Zy=WiBtQ zb~mb2FW<UX4T69uiU`AyAP5i<+U+)3mf^kU?dw;4YS#PxqSNV6tJR32h*qn0fM;iC zDfR;d;vt9cp2l%}D0}ZI_KOEA1w|2|QmGKfF{;|fNs=HU$X^buNWVZ31bFWcAkU-N z4`5wEF>h4WZm>$0Wvs8S<DA2Lk2{coz&-?HOyA3Ejcvy7KId1`>NzOFx`HL=9L5+# z1h0ySFo3f7=o%+RhjGr~1U^hxKovULFCg6kz4vI>!SQ1;XHHF!BneN(R{8i~`0U1r zokw+!9Z%o{a(M51BjiFk8)H}*Y;yhf{ULU>N~YZq4{=Zo5#Z&-PgbH9rA~=0*@Dai zd_t+)?>jJFK4b*d9<SOKCvRQ=VAE}K@ybjUU}@n!c3};!j=<R9-o+$IP*u`2#TY}H zrc5>l_%^>p7>0y*PV@E6m-^lhq;7$s#SM<!I11KUrlzJSm&=q&rQR6lc6VvF+dMR% zX-ET7U*d6ko=aiV0ueC!qsj8qXSIL+<8;PO{$6eju+1_M@h)rr0khv;AT<iMw*UYD M07*qoM6N<$f@#tOYXATM diff --git a/interface/web/themes/default-304/icons/x16/drawer.png b/interface/web/themes/default-304/icons/x16/drawer.png deleted file mode 100644 index 50c57378c8cd0e0d8ef615bf5da45a198b45c342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006$Nkl<ZILnoi zyK59t6vlt^*m>;BsEBUFL@Wael7OJ-KcJ<kU~20i*ovZ9tEGjgq_Gf0Vk3x^mCq(A zLYM?iLS*CaB>T9#b7$_cNOlvALOkWYe82OZ?;PvlIj}6SEyjTfc31a}Few7==EJxV zCeEC{Jh~h8``6EVjV7%JX94(lVf@-?l4vZ;!t*?Q-zS%I5fQZ3B#B1r1Y-ox%P}?i z=o2vJW@ZC5Gc$uy3fs2H=kt_GC4wM8L{Li6YPC>Gk!2ZS7}C@A0U|<FuVY&l{`xwF z)m4IA4%fEnq$zE!QCg#oVI&B)0kSQCh;V#ph%gNCJdZR@5fL26Ax%>{oep0X77!77 zIyc?sz!*cf+a-=;7FK>THu0D!im1K1%h5yo3BwR$3?f4Mr-R<d%<?k6>mnAsyLS~E zi*hNT+G?TVxZh~Y!8U*~h7-fX6bc1=-$!eWh~T;|T5FV2e4d}j7(==PAVQX9bh=&Y zam@E>om1DJ5=9Z!m$x}`VDCoyS%wkW36M<((~FA)u8R@j?VT&wmPN7PQ*AbB*XtXj z{?)-I;N-Dm6pKZC-~Vk3Ns^$H;=|nBKStOLQ7J{OR%5BQ&gmPIL{Y@bi<=zYS0)U@ zeu#a*d;<=8TWg$NS|V^=GGlmi>k_tQQOM`0wpz5~xZkMVg&zsHQ&k2p?g7Vf7^zfn z9EWnb%)r1v|CHP9HjPGuX0wUb8pm;1Yr@nTgDz0{)@Js}v#<P5)nOK>`~pW}dOeSl R@p1qF002ovPDHLkV1iF2CGr3O diff --git a/interface/web/themes/default-304/icons/x16/drawer_arrow.png b/interface/web/themes/default-304/icons/x16/drawer_arrow.png deleted file mode 100644 index f4a707503d76ae468188023a2cc433d481c406b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00080Nkl<ZILnQa zNlcSb6ouc0wF4jm0?H6IP@;k$AXCs5N`+t%h!i445eyY&3Y1AIZIMA`OiGA?VNfE( z5r_m4F)s84O<X98iZQZK*Q}5Ky&7dFi<9@~<b3bFbN?s0<Amsm7osmg7!=7(%0LXU z;?D+T$mO<dY(|tNhBxSnWl5)_2p@Y2@Tu2`&jZC+8!p3-u?l=2EyuSZ6MHLtM$S-{ z7-Gfs7?ylob`%puVYpv>7}MqPSZdPYtvwTOY<es<XxW=AiQo)ni6K_BN3rCii!o?D z<&U<k0Cb(+i^2S0j1(Tg-E)U9R1k`O!+vyT2Xcn8#1Jc5BUtjGDH`_7J(#ITz>E46 zytbs{Wn(Iz{_4sJ_GT*+IYU`uh!rj2Ecu``3f7Z;pmkh1*`Dfyxw$zw91i{_Z)1iS zVny>omYli}iIxms*pxu0Qp2Y6fjMyp>JvTCmga}<oFH7&@8%3;i6K@rgt8<J&yv22 z`_0#?`PvJ0$#`zoa24{NT#DrkWr-nH)CRNU#QAVE={!N}urk1w6tBM(=$pJ^+b!ri z7htWg1~J5ns(mbZPnmXu)&otcJ7HH&u_Sw<Ce9V+csJOz-sn)OX>7A_tO055^T^ZZ ztm<=0gt#2Uk~E~cWOwfOtU8IOPuDitZ$oFDhW6@Hgcy5~JL$yDuRwJ5)Vj+0-XKi= zf+R<ke{I&df!0A~V9ja|u8=bBMC%v8_yNdz_fM58KtS!16gqby3cZCKIio_&@$E3H zU13qGG#+zDRm?W1^J}0g>_h0;e)#8hAadA=jAbA&uYcXMbjF}eL3m|u`CZ|TGAOzM zJ=Kj*nH~{&A$d0tvIt&}sFGHRr47O&T*R2hMacijH{AGhYf|&NDj;r^7-D|`K%@7R TY|a5G00000NkvXXu0mjfhD}xi diff --git a/interface/web/themes/default-304/icons/x16/drawer_exclamation.png b/interface/web/themes/default-304/icons/x16/drawer_exclamation.png deleted file mode 100644 index 03f0c1eefb72392ced1d10249b396dfd42135dfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007;Nkl<ZILnQb zJ7`o}6o$Wj-e)E=Nk)R1C`nA=BjAgO3ZjSz7TPGny>e4niC6_hMB9jkHY!#YR%tYa zAh8rhxK~7jh$Q&9cZ?wk!8=KYn8}%$v(H`@X3QWK?s9FuZ~bd;mb!HSlmbi94-D{o z=Y|o6M8H`o^c!Jd-_bw%euw`1(Y<=3A$4;<0I!bqpXsaBVw6&No`>)IxUPeU5XUjK zT1*_*Fh=k^myw}6qrfgFG2d0=<Ksk8gk@QzQYkW-3_%beB1BO{xm+fSB9bH_3`6SN z4}pkKSXjVP3V(5tbg@X_x;U0aMQfJhm?(~kjiEOP8U)FzKt$Nu*-03Nc%FyW8WF*^ zZM4=@DivN&OdulEIY&1nFvd`=Rw<QAOw7))Yv3-0LV@{*SLkkELl}k_V-OMa&k5=m z<1;h(j)N$8a`i7P6xmFG)jo@tU!o)BW0p)qf(C&xhHYJ4q|<49-zSb^L<GlGxZPuH zK75U5!xz#2YU-S&6VM455t1aKQmryIJ<Zb>qv(U@`Pg-W*Hh1F%5No;YolZ19)h+d z>fDb6vXWqIYKp*dFd{r2{1eMkY(E^6-?WcYr|)z7>Rw8PHyBVR`Nar3dwOVUYQpz@ zwAR?!63x91t{X8tJj|`Zv!vVF$aNPpU;dMZ5mp{CiXtW_Cwcl}6m#eT^X(~89o@_< zyyVfy1&Y;ogzIyx?WOg|Wu>f7Utzhr`i*1L)66U`k{H83w~ym2kKt!$@vI_8k6kC_ zd?lN!(9)R>wPvp~@;@CXo58kidh>Z~+a{aM($dnxa_d_*><9_1S#S;Ixl1g~Jpf?C zmS+FM`|>#j^zC*z-wGRl-n!k#>CCMo^{b7v94epZdHfA;Pg(8{5rM}50000<MNUMn GLSTYj$WQ42 diff --git a/interface/web/themes/default-304/icons/x16/drawer_minus.png b/interface/web/themes/default-304/icons/x16/drawer_minus.png deleted file mode 100644 index 4e2ff66c9e3510646debb801a0b00a4cdb787760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00076Nkl<ZILnoi zJ8M)?6otQY-#3$&NYDgKBwYjri6AHn7FG&2f{N(`D~llb1A=0$c3OyrX@m$Ou?$vr zz6y;H<QmKaVUn52WM<CHoO{o<NG8U_BJOf;*0<L_XQ@YLK`C$)W576js|Qxdi-5P; z7_-9o=?hmz_o9CH=0$r^UOhYm!2641H%D77gHnnh2nfRv-}ev^j4`xY24h-SD+Gbh zbpFW);Dndi4b<%HELv+E$DyO6gRZVFq9{T{&{|Wg)zDg#Wf^fC)7EVPM1-VN!cmH_ zQX#jpLgf2+jzc3&sT+ef24gKpqG%f+`vVXWjt&kI$1y<=kftdjg6q1ZX-cEf;M4p( zB0^i|rP~}>YiTx{l*?u2f30$2{3%J2P<(xl!w2^h$1&DgM1*vwgZ5x{d704j5Cw1V zU&lew-4#)&)zIbg)}lWSwgIfQ92*)Um&*}`A;uU)1kdv@#-O$4<BuO$Ye{zjM98v? zMzcw&TxOwA;^gh;BuPTy)dYw7_HDd=mSIJ917y>|*TqF5&%=r^bN4EaQgr4*3e_t0 zQfcGVO$P(3|2X0J@Gza7orGby^$U%e@92e9thLk|4J24+q{2wl;_+XAc4&&lB1^>z zr|#rQk_0n%iyN1&?M!sX^U29kb+Hc)1iU|Y{^;nJr6nAth&+$9WzjmtQHq|0CT6XL z6+r}I-=|v9_1KX2rV9*Q?g7_zInv*c>$-GzchlS3yA|bnz0UgjI@M|wV+_9U^K$C* sx2ZKIJfQz)ow;X|pZT9E!5q;48@uFo07czFyZ`_I07*qoM6N<$f)0l?TmS$7 diff --git a/interface/web/themes/default-304/icons/x16/drawer_pencil.png b/interface/web/themes/default-304/icons/x16/drawer_pencil.png deleted file mode 100644 index ef7ed0ef506f0d2ca535c13a8aa031cf6650669b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV<J0uud+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008CNkl<ZILnQa zNlcSL7>4IRfSRZzQUr>KBH+^4C?EuoO`&X6f<-ZgsDQE<k)=Xtp|mu$MGPctnktbc zEK0x#8Z;s*E*x~?QRSc~HNk`NVAA93eB%<si9dNWlW*Q<X1@0y)|JFqcQRwWDXdV4 zuTX`=5X=5-Kn4D`tpF<#d5Mu5bS6sikM2^u?=HfJo??8uUXCw=Rroe)#L`GDJ`YsN z+G209^pKYrVp&Im6u(!sALFG_m?+<enc8H$u<G%~m5<j>1LiH+vNl-}BR%9LhFEqb zPKr-oNI>h+P_!M}hRze)(RWgV;gUVLbv6<MMOs`f+==#rFzF#LF~qXg7%4tg84p+f zRy;7K;8{}^7VNor-kc*(e`z};YY#7`N)LI7A(lC!rTE?Rakz9O1T>C`lU+H%n4O)4 z+wGQfs{QXFW-LfytYxnhzjH1Yj=arq3PZbS!>JF3IdvnNQvK0(I0RkC!*SWLMS5lo z8ocsRek>?T3bSY#iBov?+)c8-Ig?Ia`)Ok)o|rRaD^$B*oruQVF!bsp0h<j|iZahk z8b;#dWzn$e13}}U2+)zG{?`J{sWxGZK!silkH>?eko8ObjOke24o2d)McS5Ze^_$@ z;1V~nX9l7n$rt8i6`a{YxOOH0L-sZBd^MpgZ5N8ez23E|M2I!vQk+6+%=80g@u>cw zOrNg(xFH>Lj#x~0s3hD`?Twpd5g>+GRv9YAN5sE2XQ)79p9ri)=Pz3ryitcC+iD5B z>(|0+@R1&3h-G>|#!7-1A3nVs4e1+T*7?FNT4_%6gXzFJ^jo|o+*z{<EdnMFd5IyG zK6Sp&?-qtcP_#QeReH*kW)1Lj5d#)qj2pH1>!FbtVrhe@7%w)O;l=oJi8Y*xSH9<| fmBr<2#1Q)n;{xdkB*s<L00000NkvXXu0mjf<)u|= diff --git a/interface/web/themes/default-304/icons/x16/drawer_plus.png b/interface/web/themes/default-304/icons/x16/drawer_plus.png deleted file mode 100644 index a63fb3ba4b95dcb445de9576b6b1412700021ff3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007wNkl<ZILnQb zO=whS6o#Mg-f!;DOlC}pqN!+#3q>)Cj36YmR7w~AER_n)qE&Ef5CpfPbgd$Vx)2+t zi$Ez-(xplfyC~Ya&<rSCgPKs7$^693+?o0A{f>(|G3r9k@*LjhyoYm+y8Hzw1&(3@ znB?Q)q7_OapkF5@tS~u#=$qolsPFzU-EUM<mp%vJ-r<Rp#a_>#l*02oeBURN(TE7f z7<xT}F+HpmJTJpc>FRx8uTJg%sM*<B;yA`}9J1Lg`Fx%r2oMqCIHuKV5yvrUni7T~ zeccK`M2PBj9HsD=mdI7B1epxlap)uoZDWXy!C1?VAXo)R-vC5}(aoC)!w}E&NRk8* z!F64dB%#yk@bBClB0^uMlT{9^wRF2(8jS{X|1Gk2@)}VTQTzP@pKTZ-3`4B7hzQBM z4*G@Jg#~=A5e2t@_!b96As<j_wTK&yl}2wItO8hT*)=jkE|<gieT*@P2wH25F~o7q zKTn@xttEL6AVQj^bh=&YjRwyvb@rY9nJ9{=+&IUkb)PV`yG40xkDa|5#XIi+<h6rG zFJ2I6jTPbM`C~XrF_81AEH6{`+8jLg9k-@`VRs6Djfd}#uxHB_1_lQ3eSc*OS2iy2 z$Y~NvhGyCXW4ZSIn(d22?oV$4`bSf%)tIj>F?Oaz6h-`9J<GP^`vIsXRYs1E0c3Cg zcB`lkuY>g-_x681T6{P^kE0ZU)+9Yk949zR@#j9p^Ss51Fmz&+)>N5BtJAKpbxL}s z!ly^pfa|*K7#_xTT?&N)gM))Br+lE@=4JgQrwV0iX^o&OeD&jU`PU}rG%)<E&ExA+ s4?g&XoiFvs(vxPEMcU8WJO+ke0dod)()+4g8UO$Q07*qoM6N<$g0CG++yDRo diff --git a/interface/web/themes/default-304/icons/x16/drill.png b/interface/web/themes/default-304/icons/x16/drill.png deleted file mode 100644 index c05a3051ed0941ad4e2a9d8c5d1d734762107405..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006+Nkl<ZILnQb zUr1AN6vxjjq)1je1}mXvu)ul8M7u)7$YM_|YA<&}PO1qqNocjTpokuP8ALt>`P#!C zswE~Cu}Vr=GrFs^jQ(&#(*Ca?M&cIv?cD3OistaZhkN0i`?>d?bAIG>I!Tfw(&=;s z_A;@BOC*;e&IEH&sv;KDy4`L+KQvSz6bb>euF}lx29#adT)bA9yGTJ2Me(?zDDe3X zA`*#cR~0<l{trJ>P56GN4xa|9F%w;d53#k`^aUCri^XC#8jZa~G+MypIRt#%2RTCc zHEu;_qz38h75FktMLu6!nVmknC?LIFPk+UJ=E3A?lJQzZ?&&&YCs!joQHl8{D=`09 zhfIR9Z~95$nqVn`7Pq>{d$W_|jwao0?#sZ}tHy=<=j*_!F(%HrU?RXxTuQ(NG}OVL zW7j5gE)#E<!<ZE{HPtCjTh$y3sH|YHo#?Wp(K{Qf|Ay37n9b%FoOanvM4j9C&R{V7 zCpg?nlsrl_e4r@sP4#bnkLM29Y__*t(nCwd)R{j_oFWo8X}{1S2!h<*?T5p$Bh6)f z%NC?g5H)Yqtv8uWcU6JQ<^I8CgKYwlr=h&S%L17Na`G6-_j-7&uXY0Cc5rXxSQ~k- zcuELb%te8WcYA=Bt&7|ENYoz2Xg!b+zyi6XK#lyNiiN{r1Oi9k_jjSO(XQBR!n7o{ zLy|)3K0GYcS1@ZBlR8z#&NQ>2PhFt=0lUF)H|S)3k&;Z5*`mFWsbs3uspdr+mWkmv XIVnDB3p%QA00000NkvXXu0mjf%*HF9 diff --git a/interface/web/themes/default-304/icons/x16/drill_arrow.png b/interface/web/themes/default-304/icons/x16/drill_arrow.png deleted file mode 100644 index fdb0737114a34912a1325fd6fa0697772d7bea6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmV<Y0t5YtP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008RNkl<ZILnQb zZ%9*76u{3c#n3Fx!Az(b82;IsnajkM7Jh1>t9Y~8B%2^J1jQ|ap!y);D6%5K4HFUC zhir;jR;-d#OrtmdD_J}>H8nFKBymQb&U-pDl<2~bb06oO-@EtR`yeGH1sH|_kx1kr zm2fOR0QMg^3Dbfd{DB0a8jZ$CMRgv`W;5cLdVNNZB63IE3(in(t`bb3R4OlU9ES!& zCR!{OA@X2v;$Qr9#p3r@Vfdvc5J&C4IN{jho-Tz32oDdJipAnW0BG`{)t*C~OheWJ z_^T}nXB&cWy50-FK7kdc9&L0F-&hhrKtKSj8fS>N-IsyIk4jwV*^2J&P3Z3O!THV& zINu?{*%ojQT7jc?OzR1R@gf`a&$EEdh!wr0zSMlH7B9Xj2}4RX6HdyRTJouhs|C_D zGi;4W6z22-)Me0e6vD~eoOMReVRIA)1qHe&9mVHJ0I;X18>GhyKvgylN#&D}TrnlY z(!2zy)d5s70)=Ca$Qg9Sp;Rh;Pi1Pk1RyJ6S+Mtd-x|Szk|D5X273gCKI^V=>{p>& zE+3(?+?Bnq796@aVWVP}qMjE#z7he-ox&FO%VaV(C&!2?Rnjz-6|WJ*6%X)VWo@4k z`51q9P|pio7XkL|5QRu2lGnUIt=9aYvf6YRfHs<D@@t(olCV5}XRBCUHHWuH5DykL z4&AwWVu%E6YXPv0xpb@_4kNZHkb1*9(n0@FO9IvXPve$hL_-gvw&M@x0mQUh4#a`v zrQ6u96pFDa60t>wBwz(WNbWP6<a|BL!>=H|lEdTeh{3wD8OBtM`T2QhG-hK=jDnNP zWy1`kLxwT)_u-wV4PJyFA=!MovRBrK=zprB-&b++DSv^Me=vSd-GEEW7pax76T5kV ui0~o&ebTJu-l^6u@03C#J#YUHw*3Z#CZCDyCxQL|0000<MNUMnLSTZq?OXl; diff --git a/interface/web/themes/default-304/icons/x16/drill_exclamation.png b/interface/web/themes/default-304/icons/x16/drill_exclamation.png deleted file mode 100644 index c9b4a4a46d3cd8eb7425fddd517a716a2e9d7e40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008zNkl<ZILm#K zdq|T}7{=dI76xId3|2;7Ldm(IsEZ^dGowhV{j&*PzzfI(gKD!<3Ir(@QvW1m$qXgw zvT15+vD8e{&H2rm=DkmbN?w|wnBvTQJKv`pDb)u*-gCb5J`d+S=RjOs9LVKzAcQzM zPtmVE2j)K*D5{kT*bUUcM<$agsi@Y8TCGN$i2pm|XA#+0$BMy+T`B_=NTt#omSr(L zJry+?4PQC%^RZ3*w1ne)lRr*ZdE$75J5K8NIP4Fg83F?X{R9F*0RXf*Q7F<7r!F9) z0sLhW;X<<)+UvLBw>oe!Q{(2a6|NhAhldCJ@g-6^du{@QBT`)H-HVQ%UFfjx#N|)h zarq;`g?4a^76VIrRGSPk6A45}2tR(C3CV9VfJq4_jWn04*-F7$N0C3$r8bIzuBqBD z(GYX9z2Rb-J20=vCK|62s7;~U3FU9*?t&p?3EM>I<>hIi1|n{a8o*XzDn++Z;q_$# zFXX^cFrg3rj+RLD^Ya^|vUrIQAR~&7x@w6NcT3%lvLCbBDXwz!wi1^?dS7wCSL}~Q zi9|9+W!bL8j4ug~shXT)nKS0qMIC<WI%VeO+<&Pre}p4qv6#uqQet%UaXXdWa~XWl z5e~PG%5B>D$vboORpQ)4{v0<q-zRRCYXA`k$v&Y_*uoja$IBL}tU5sqpa`L(cTWkl zJR>Kq&0)s*i5pzXI60`q?z(_cMni_F0b{%Z%=>J5t-~h}O`%ww1dKibl64C1KFSGc zd_szC{VDc=-qToLmxI057_@dAT^(rhMI4G*e~sNzUW~25i0xve1`Kb|P)efOssu*c zP%N^25&RCg%JxNKO<54;=Ov(0nTcUxp{ztAw#ns5D3`0bzAiq4nukO?WI8l6JtD&C z;lsE%o6A=Yrs=@)btM_2AvREG8j!c~kc^ZHN)VJ6LeXOl7)v$Ksl5&6l3T!R;Sp`z c{|~%>1DY1X!8ZuT`~Uy|07*qoM6N<$f?U*VxBvhE diff --git a/interface/web/themes/default-304/icons/x16/drill_minus.png b/interface/web/themes/default-304/icons/x16/drill_minus.png deleted file mode 100644 index dd63de2b44ffa4bafca4db0b96845f1b70588bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007NNkl<ZILnQb zZ%7ki7{H&i&>~qm8LWhy!2-8CCfW%Rqd)9Zi`ti)kkd**CJ2qT78Frn9|n<q30i#% zT2U@Bsfd+Q%2Mf8X&L?DLel=PAV%gb^67ccZPpsm3qS7ed7k(8-un+64hKk*1RTd@ z*-k{~E`j_HVuU{(fl?qrh0EpgQm4Kwfj|Ip+F6*Xt%%ANH65!^X3l{hL{Z$YC<?Z; z?8Z<iq&*q<WWyi)NYvuj{wn;?Q-)KKCHOA7Tuq*a0Wh1*CWFDy2>^px-0nSy?{}aa z0{l5*!PI~rlh=#z(>2KP@#<oA^7y;}bUGdU)^-x3<A*`Umm;PguRwKtDXL?|IQwW3 z&OYQY6$kZI7!<1U!$qq0l$3x(Plh#Pxzz@qo2?)>)pECKU3xxWG0fdNRfUuqB4U*D z$9=SjOmMjX-9~`ECi)$lwlgPEG3yKtSx~PpOHkUvawGt_0C0vRay~46p2;MQ&gp3N z7fh@}lgadq!cKt(XkAZlVJiOK+>H6Kcz8k3G7(<$7N6Qt5QNth?#Qj!F&gP873ag^ zXDb23N^J`DJkQJR?OwFoHzuiDS5831aG(JFy8y-x0VL?7ZZ)^kXf)no0;kjUjncgh zJb>F;KycCoFmXh~Ljsuu^6);8?{?6(zSxX7V#D4>kfROY>2|~4t$slu<C|@W&o|AV z#s{L-83(Ho<2;f;E+}9vbE%@iU=V%2z3BC}VNH!q5d?lxk{VHx0_;58&(;?a%Lv*S zFcUVSjs#uo0A()N4T8<^VCEnV6A@yqHXu<<loI6`(W?KX{1*~1T|DS!GYtR$002ov JPDHLkV1hZ0G~@sP diff --git a/interface/web/themes/default-304/icons/x16/drill_pencil.png b/interface/web/themes/default-304/icons/x16/drill_pencil.png deleted file mode 100644 index cc0448bb4aa186c15f7ddf1b7cb2ee9063f35de4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00080Nkl<ZILnQb zZAep57{{Me5e2bQSuCZPO9Q=I6K$cCXtETxuo2!#sbLB>K~UUMGEBiQi%9xV%r6lY zelVABWXLS>C10w$O3TP%B5C$!L0HZi`SjfB#*z^o_;C;Cod1t|&+}Z+YPG=gJTS(5 zWD@q}CJ_FCgD@{O!WJMwgu!4iQK-X*#bQC6(FbQ*hv-W4EIA@v3pc<F8ja?R%jLp? zf_$`Et=^{yzC7?3znt;-{XrytY6-#V#!dLazST2lgC2;Ej+RTM(mDX>_hB@iLi~6X z1uNk1kyxDX3B|e2b@=5j`1#zv!83JnMF0|s1Omnh;?Y<&2>4cmOE0#eXKXWiMmOT( z^Yys+jN$wscqSXbMQ6;x1m4kI1i4*>Amqif`*bfYU++klhpt2-Z4D3(+A|N9(Io~G za2yBC8QbBpnn9t=TbWDq4sHPlVlgx{#7ReDJMsWX0Di&AV+^`)tss{58pkC~GS)i8 zSn6#a>SpXQ-_W@a<#PFJis@A{fWjo2HPwJW=p!pDE2=axu^MY@v7NC#5)_O#C}#0h zGOARncN8n}zwTOr<0ebd>2xJ-w;R*L!|SgDq|+ztS1Of4aj^-LlT+p>Rv%O#hTCkc z(>;3@6$(Xlno6>__c%bpF1AA^ll6)Mz25MXVr|(<03#P52n=66&w5%d%r<%s1ZO1( z!{s3Kl~7sV96}sXV_Oag_H4*)Hm(ZRhA)(ZcD#lH?~fo(q^@-1Q;j!_{V|AxN+f~c z6GR1uPa8qId#AT__KJ!MEGsKTlc@;f;?ypcN;$>zImq)Cu^*mz@4!|LRrq59FITaL z83!SsmefQ73F^fLTK&Q95tX!Fwc1F-L?f|Bbf77d+4FSlFwMgVsxXBACt-g8C?A6n TqV8@900000NkvXXu0mjfLk~=h diff --git a/interface/web/themes/default-304/icons/x16/drill_plus.png b/interface/web/themes/default-304/icons/x16/drill_plus.png deleted file mode 100644 index c9e751ca6a4e8b0ea6346e545ac54cb80f5b85b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmV;{0xA88P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007=Nkl<ZILnQb zeMnPL6u{538u`)E>0l|;j27tLm}m<kMk)T)qDJ&4q*BeWSwhmLK_LYG(V#TwgA^<f z60(+<Si~|Z#WcDrwURz~CTdw}LJY+jc{=aSrx_Mq_;K%f=bj($o_8N)XJ>;T2*7ci z!Y;x$+W_nz_zCw+J;VSBlI(W7i;9{RJRT3?h;3<xcOZ&cp&5UYI8_I3uvjdmq9~%% zc>uj$uRKfOtF4Rp5lF}H50mjrV;m0Guf$Q`>d^QVXaj@6px0`(6#&q#;BXv7{Ja~P z7w~6yDhAs$IDR(*$68>XuXmP*2G52CpjNBlx3Q0S+E)$?-&=6zWh{pJA~Dpf!s(u6 zIQ@ddU?+qIszIbZ?xh6scu)v=_X~jKr*o~;m&R|mwX;tyB_pLe2tVcAoh8)7d4Uie z#;B47v;ms)>2=KVm#GZ;jZ@f>iW*H^fYPZ_js!HWY5;B|05oU;Zfe8x-Y8knluM5U znTio#$^-^Bp<b_lLsd4D4xnJm-vksp&qPAY{&|7(b@lpB*l$IX$uvY&#S4dB5Y!M% zo+&<ZJ`#FQ0a(__N7&5sJS!@4q1C!=oT{o83+mzlt|zcV6QwB4QmhC9Cjc_ma%*%t z-6Kh0v)L!9swsyDa2O>)t)_+~OhOndL}i_IF{YISj0CLfIIzdX^jY6!B6gdRdc%A< zkax==2`<O7%+WpgCmSxTn#7Mg5#MeP-^S+_xft715IcD!0SgN%)irQV%_R6CD=KR) zFKVEytPD#^j-ks{h-qnN(PZKW1tAv&!6V&=XG#|$h-f$+)0_Cgh)^EgPjLn{u1dN< zb3fQUg1P}G=PptgQBQ1?1RSA)qpDgsyrKt+RM#j@{7>S40SBXUH@gIU0ssI207*qo IM6N<$g6xz&L;wH) diff --git a/interface/web/themes/default-304/icons/x16/envelope.png b/interface/web/themes/default-304/icons/x16/envelope.png deleted file mode 100644 index b13127e8695b0e3bc7ad10e7973b73d7fd79314c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU~KVpaSX9IJ+<eo7gM5yTYJ9V z0_zt|yP6L8Zs{^}YMJ1b)-|(prlx41pl7a8Mqr1+LnTh{xA)z&Cr%I&bv-j-$@WS+ zgC7z}Sq~1Jv3_nDRM+X*%3!?0=PxsJnTv{N*RMrM%f34=y4Gm7iaq`%dr=+Rnypj1 z_hnV@I?&uN%YWym#Ed*G#j2i}E5bSdbNxFE5{#*q-0*$X?k}^-g462Xw5L?K{5V!$ z@nPfR#x?DX$DiNkD~&f}=~5Rv%PUv&rsBb&vkj}G?=A5w3|&z8^y-}l2aor$pNru+ zQ$OX}%2*DrE5@H^N!$Fm@$taQ$&C5WD_f)Z>l(dIt=xGKWS7bt9-VEU8ME%`aZH(P z3{mKC=a|ES()WvhJ)PsAnRpRmVp15J(^+Z$(94^d{0k>PW8=3gvnj|)OIW+`nzrWb z2BEnZAnIfeZxWd~WxL|@z8;7dSDZg^ZHG)|T5O2@_SZ~6ZGR6eDD>dd>pyjI|Ds=t cZv=j@osZtUqg7N27%L16p00i_>zopr0AJtAB>(^b diff --git a/interface/web/themes/default-304/icons/x16/envelope_arrow.png b/interface/web/themes/default-304/icons/x16/envelope_arrow.png deleted file mode 100644 index 8024339503892d87b314adb2daed47080504f96c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00063Nkl<ZILnpI zQAkr^7{>9J@7zVuZFSK_-BwqI(nU~R)twX-Y(yABj=&NXrj{+&*`{Nz=_rddQ<A_H z71j_WmL;*~W?HVfrkRWyI<|%xlJs<5ITRm<8Xfo@_`dUhI5cxrP|_z%8tZ>B@s3eK zdubZ*?IBROU!2x)ukVQBUcs7{!YY0)4HU&4_xg_Loky^X`Gg-IhU>AG>HjPK&K>vq zj%d;?m~CzGE<TSt5gk19+gSf8>CE4`<6hqp#aabx`SGO>s|&XzbI%$LcieHW?}#E! z!PM1sH&*7ZOLA}AhCA-K*LOs(RKZ-|=Wk*;*(u3JU4}dExYu_?FYSW4S7xuF@ZKxQ zgzbhq?zq=?L?N4C?aMPh<lnYQ(qosTv-)@xr|-q#@Kgmaw4Eob-9j|dESRq_?Ll_J zA(;;~N@w%!D7w<XA>WHkX~(R2w_}oMxJfX7eySCV<Ci6=k$PDB9^t6}`MR>YJ1_-O z@O}ccab(w(2{S!u5UeYw{UH->mL!5TC?8D1`4Om?0*=N0s7(MntfLWXIiXOXR_Wz9 zK2&W`>AHb^)`4{;=ekkan?iXM*lZb!Y&rYXOxm-l$D#!CF%{X@wtw1N(}SHMVEf7T z+=l&iRU7x1cu(7^4=bG=6-uy}vg4HtTaVbkmK;3rfOkCp1)P7Ksn4f?0ssI207*qo IM6N<$f=$;H(f|Me diff --git a/interface/web/themes/default-304/icons/x16/envelope_exclamation.png b/interface/web/themes/default-304/icons/x16/envelope_exclamation.png deleted file mode 100644 index 36a43a4909f5073de684a97cb49522fee50181ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0<QguP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006QNkl<ZILnQb zy=xRv6vcn@W|EzSNhTT1#(WS>vL+A_5gR*uwXv`e8$nCKN<qZZ%F5nW5L4LbU!Wi& zCZMi_5LXcmK}~dbXE&S7z3*8h*|@8s4^D9p_uP99yz4FAF?b&5fieF7eRPg{0D%LX zWB=5phqqAux77DpynE)xP8nDSfLSe-NG8Vrsb4F<$2!bTZL9@rF+m(to}0(2{uSl9 zd4f2`+Ln$$?Uu19>1REy@#@Lb*0yG|Nf?H$dT9IrQPPiE{8ohR0miA46b48N11-Vw zQkmi6L|X)>irU=>EeBRJRI;|_zNG&*4&${ukevadSdq3~tGisK`kXW^5%(WOei>lY zf?9m1g6)7vhE+kONh4ii^w4F}>H_MK+ty)3K@{IgMkhoBD;c%gTk?Ge$>n<pdna)b z;|eHX#DZ9SD}r`FvJ90?DwWst77lan!UKAeDO@i_GwlL1?J%mKioaz$YlBEet+qsv zPjFgcc6OFV`iWdTwnvl`nd~|U+#f!UWWw5yH{_EMmcPH?@uRDJ+gPBxFw`f)*(}2g zUY0#(MhU;He8qO$!bY~jrq{swALw=!PMyBZyV5a;y<8=Xj?}B^adY#&#?=PV;NV^g zg`^GZvdF-&N8YRub=9e_UMK3R6LqBwj>MB$#zhYpyK>UMR@_Ii^Kil;H)BHA)5$y7 faK?Skb@S{e+TmO|+H;j(00000NkvXXu0mjfl3N%? diff --git a/interface/web/themes/default-304/icons/x16/envelope_minus.png b/interface/web/themes/default-304/icons/x16/envelope_minus.png deleted file mode 100644 index 34003fb51e17ea6139debdb28a131f4ae4bdb06a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV<O0S*3%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005GNkl<ZILnQb zziSjh6vsb1JAo?#>#bZs37Q14@DH%Cvayy}308_W{tJ>y@&|}up`s*UYYH3f0!q3| zLLdf0*c_tg>5*_T3m)#gHx_rhW^W_Oz!dL0@4fka=SQ&p#1I7B0WNU*@x^=I09X%r z&&A94m*x>Uxik#femVOn53PCt%--fE@yzsz_4~;#>M?n2R6!MEqljd64HfzCOjg&h zQG{wyhZP-wjmLF<r-y8O{8a4L@As+IYDIi*dW!M5jwoSaVc5WU5#osk@kFC2XzwJP zzcf>_;6)JqXQ3ca$q<*7lF!8TiiQcw1TJsj1a+>It5Veh6XK4s5PET_l#`vy7#q=y zgd+r!6J+QJu5+%UsWCViG)R~IQ40<k!F5?y(ag}ouLV!P<*||zh(jf-SWwB>nt#XP z*0;eK1ctP&x24B556zsw`r%_K6F5|a_UEtMyn5s4QUho#EG}Z3Nx+p!YCk*ON&|rX zZVxwgmgg()hXes>_s8C!9xV&a0Ek{c3}4MYczmmJ=g0jeJI2zBxwm(p$-V1vV1a18 o#rO2-+=tWt<(&>4AX<ilznU5ZT62GNp#T5?07*qoM6N<$f)2dr(*OVf diff --git a/interface/web/themes/default-304/icons/x16/envelope_pencil.png b/interface/web/themes/default-304/icons/x16/envelope_pencil.png deleted file mode 100644 index 8057d8d35b7f54c67a21e1c8af2f270f62142a15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006aNkl<ZILnog z-Ahwp7{H(N9J=T#*hLpYffm(O|3DCR;V!x>x)7uftth+^VhsEsx0E$)EjJw%nHGLU zx?&fJ8Dg^>bIp&+wE3}RVL5a-#_}LZPw#U$NN*#g1Hbd}yuaUjI0t4u2y<R67F7HP z#oRFv6DL6>{Rj|co^Fru*f%<WnMP!)S0fJkwc5Qc?6Gfj03Y4RTuaA%G(TXa&1A<v z;dS=dH#&g#E@bSRD_!(`%t_<DSGEXsoR^+?ojvxA4q&1IncAPr?X>arfka}cDrd$X z``ks%VuPp?8OO#_E3GH)O02ze<;>V)e|{grsG<Ob9mv#ci}xuz*DR45ug{sW7cJe< z9#@oSAw@X`BX!8Q*5h|5^QloH8L7*e#Ur=KcQXGC*=!V0lpqA{$lT7(dMQ11Q(`G( zlb*kX%gEnqAx+cBoR{Zr12Ds24Km)$w3||sHzXE=Ra^I;M=sOw<3pr<tDrN5yTc}v z>2M2(W1t!tU;0A>t&CllSQxbG*TnDz3U(jV<KCwI)MdrM#loG?b5#7qzDi{7t%<iJ zBQ+AS{;Ra`szk&G^!SM<pQc}2BKD0ApteW_zeRn-^33yciAn!Cdik(Gk2_s^=ym5Q zeN*<iD>{Pw5wNSRO!cQH9F%%%ml$d}PLz#NkEej9`bzW}d+c)u#<92jgxcIxs`mel pSR>16Ty~ySNB^7)-^U%tzX9}1jGE6yH;(`S002ovPDHLkV1hC%ALIZ4 diff --git a/interface/web/themes/default-304/icons/x16/envelope_plus.png b/interface/web/themes/default-304/icons/x16/envelope_plus.png deleted file mode 100644 index 1062723164bfafc24d712de8d1ab4bec9f05fdf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005wNkl<ZILnQb zL2DC16vux%yVV?G*DNMMDQb%-ZN2&dv|vG`;MuDuPlDd02M>M#@!&-f1gRI5f)@+w zq2kFjjSz$)u_!cYn}$ZCiP?EG9-3X*M2QdP@cz8_=J)5#IBRzlj>Bc(DE}W{tmQF) zX8~(DcJj*e+lUNrbzRo(U%DBkp0NO^opPCAVti<Sqw*PJQBkgp0b@{}?^9VRVnqIV zDl0`i-^ZA^4^PY<SUSkiZhhy&^4s{fPNzdEm5TGj<Htz{8N}em7J37e6(PuF33A!E zVdGPUBPS*j7OV(j{#b|!jD&~|6U7IE%z%b+k_0*$par9KqSnZu<|r5a7YnWxjge%r z)*&N(ni98<Kq7(=(}%0IPH5MvOO!gB1o;EAQ|<6ZOA;0|(ub?VFrgK{ZE)u71zs#Z z$Sse$bOk(#2t;Ef9I#*{<oefFl-ipBG^Gh$<8(ds9!nu2@NDm~BndP|gwk%6VD>Zs zbzNt2?p$^fvTvTf#w%1Drp8EZ)wTx)05rCDIVC>jr^UT3%#BfBSly|)&N>bSZ~lq+ z53joEeE!hj&U<k$cM*V@caPYT2KJ|Mx%Fd)^ZT0~;IFPzZQY%JIqV~i>{HYFBcox> emH?lnU(Mf!F&9r30v#Iw0000<MNUMnLSTY)>+_BP diff --git a/interface/web/themes/default-304/icons/x16/equalizer.png b/interface/web/themes/default-304/icons/x16/equalizer.png deleted file mode 100644 index bc17e8339c389941615eef01bd914f43dc4c61c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apHrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004SNkl<ZILoDz zO=`kW6ouoo3vke3H{vb=rivhvid2FHJLsT;7IY?5L{Usc<G&~<7{!2sx`a+0bS0<n zTso)&MKSR4ZZ7XT?<Yh9pxuIYbAWmt6o%sIN{l~Od+hi7-~0U@yWQ?0IF}Ax20U-K zTP&AL=(>(`wUS_(CdT8jywhcXwO+3=pU)8vhq2jg(Cv1SOeQfJjgI=|av6uiK}I@s z8St`NtuUQV5sgOS`#wsgl1$|2x-L?wl&oH>)nFI~8jS|%&}G1@=XtWNcs!29Vu4Df zf=DESdcBTfu_$32|IeXAmjQ3H*$lRA!?G;2S}hC)133cw+(j%FL$z8x>Jz#Qc%Mur zC=?2^630%bgLFC#_D|J>E(1P?!=Z?YL_)UOY&Ma}WWfHZn$TrHo)_de4zk&-e1S`9 zI&`%_An=jP<$l`jwtTi;uO~NuuBJ?fE(1b}FNJ$0bV5ABog%2XzmlN1xBiX4-itXg TQX}Xh00000NkvXXu0mjfM8v%d diff --git a/interface/web/themes/default-304/icons/x16/equalizer_arrow.png b/interface/web/themes/default-304/icons/x16/equalizer_arrow.png deleted file mode 100644 index 2919dfd0826e2172427d018a6ad7d4f5113397dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00066Nkl<ZI8UXK z&5IIY9LGnZpf{p}9Xds)g6>^<xwR3*t{ntN#SpVW6fts%4jtC8E?G^YjE%}TzKqHU z3cjG>u<E6Vt=Kw5OjNKzhy5GA&F`VerKnwc;LGp#e0e_K=Zyov{f~Y#b}AajE%BDF z?@+`L%egg8dpn!WFr7}fC0a`iu@n%VOePo%25>r^_*-v52nK`Db)C(LrGV&oJVv+M zh0EoFVHl`Zs}KYM&1Q3ppUGrknkK8n5K93!hQlG+?KZq#FGiyg(&;o?NL5u;ghC;< zdoGs)&+{l2iy($r3Rv#-dhA$!zaRa6AK7dc9*+mIEJGAU7Djb`4Kc)0!0k?_gM2=Z zXf%pasf2pH&aOZ{ox<nyL6W2`K8aWgxYKI2kV>W4PE;$E3L=pR$e-^8Wepe8uW`4! z%I3sUK%&uTFfb4Zu%jx9f><mD^5^@@*>y-8z@qdHE2=>O2@1GJ4^$`=5Rb>%56t)O zhtF^(VPN6GbDRikaO)->eE}9yFJM1=wZqwLwv}Wu`MF#!vu~@_YV75I_LsDexc>?8 zuLI6kzjX6Ga4f8UrGWF69$QlXq{A1MKiJ*!CTZ`LC!41g6OJ{&?k#>hbWXTMSJ-Fi zh^3?d(m`H*b7~c!dcYxG`@wE+>^ix~?QzJ`?xm+Mt?JpoBr^XyS>h*tj)@<+00000 LNkvXXu0mjfdol*j diff --git a/interface/web/themes/default-304/icons/x16/equalizer_exclamation.png b/interface/web/themes/default-304/icons/x16/equalizer_exclamation.png deleted file mode 100644 index 46b11ab46a352867a69c2d27d4c3c510dd524380..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006hNkl<ZILoEe z&r4KM6u|NCeLp5AotpO;$Kj=A8X1g*KR~NZo1jH4qLo35R*4%I$si&!E15-`!2W>1 zjbzZKXw^O#aHqLRC}yO~jBjRWCepd@-4^A5noxK)_uLEj!#S68h1Qyrguw|z0DZu9 zAoibkzXKmF;Ks_z%3ODMclux35kgQX6xJsuCUOSgc%GN8*Xt}TEupoh(P;cNFBXd| zFE1md#Phr~;240Zlp+WMOw%L?0({@cbzP*CN6u$wXOU8(lmakYfKm#}vQSFl`#zaW z1}P=J@8dWQQc5h#Vqsx{Xf%2Nu=WAlwoyu9nkLz7mbSJwDwPT|Gc)|Gyyi;RONIst zq*AGUz-j^2YL!?lMyXW7bzM3-I!Gpy7>2>(VwPmQ$l&-Bdb&!e=8vO5tyW`tdYW>% ze4rY~akzY;N^k!)&cxd3?H@!m^9KO?&xTws*LsKjH3;_T>HI?K+yD<BzoM`IDyPCc zO6>vI24IC@NIV|LaU2qf1VIqA09$Y1d0m*=XLWUzaBrJvR1;z2cLhR-=GNBM*GMG7 z*w`3C2yEMK<?Y5A=PzAkyOQVK+YII1O-?5ab}R4erXiXZ@L_&_{w&}gp16@TolmFS zQPb9mh^le--ZMV0k3viks?GYXaSE2!IuCpTti!<6Bk_D>I4+{bH?Tt*J9E@`-T*K( w9JeRK#!YeDyg#@D_iyte3>i80D;uo+0$n@`?!}Ex(*OVf07*qoM6N<$f@j7T*8l(j diff --git a/interface/web/themes/default-304/icons/x16/equalizer_minus.png b/interface/web/themes/default-304/icons/x16/equalizer_minus.png deleted file mode 100644 index 9e862afe46ab431887a39ea8714c66e428e76b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004=Nkl<ZILoDz zOG`pQ7>4I;`vD@Y!av|o=vO3o@&Y0zl9_=mTC^z8osfy5c)|M(1qClCD5(23?ZQQy zphfGJZ}Sc<v@jA6Jj{1K=6Pq%nR5gHu@7SJ0C|}ty5wv}^lw+3*6a1><#LI|V(~9H zmkwP9oX_WTj7B3^EEfD#O9>v22kmxS-P2`2U^<<m-|xd}wPH4#p<1oN>-D15YHjor zi3C=wl^W^LWx&;VJVv+Mh23t)WHLcK9#<1NmP#e~d_J{$I-Q2D>&WNxphK4d*Mq@8 zZOi3yVK^KjnM}fFvmukoAQp?MFpleU=+I@rO|REOHk(Bt5J0h5M5EDAkH9{6;dDBY zN~JdXgf0VaJDm=q(WqL9W2I7o-|q+e+iF6W0r$;jQ;BZ3TWz&aC?FUNg8gkZq04{> zUr;WWLnstdC-Ad=G@DU3nNU4CLe^+hHIYZ~Bs5LC3x~t6<#JgaTdh`8Z+^Yb$jP4$ z$1fs6yfNTd@*pW~<3!V5E`<14=TeAw`589&2nP~_<Zwp}%H8*G`~v^AIKJYxqTT=i N002ovPDHLkV1hnc)Sv(W diff --git a/interface/web/themes/default-304/icons/x16/equalizer_pencil.png b/interface/web/themes/default-304/icons/x16/equalizer_pencil.png deleted file mode 100644 index 88d6a9937e4e9d21c55db6ae9ee854aa6c6eb6f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ANkl<ZILoDx zO^Z@d7{~9~_5lWJ6SZg&1Vy_BW>&3(1_W=ufTLcKM2xYTF>FY%7LB2Zj(5Du_5CFs z6nsHRL+t|uZCXgQDEa__%YWxNj4&fH6m#Iu^W5h?zyCSsIT8TrB9bm_z}IyynM?Uk z$tSGzs8XqXnayUHPN)AQ>LrF)GI%_hOwjN5VK5kQUd|ynolZ0w4e?DZ8F)vd5jvd? zj7B5I<1tF55?n49>h=1WdLog)d_EVE7-Grb$zU)*tJQ+pY{qanL_8iBjTH0wJlt-# z*j-gs$g+%VHVa~iC4;BkZdV-3X0xH!>miv;!elZbolYYbiwQG|%bt%s|Gd7A`-~lu z!Ct%FhNfxodcDZya;R3T;tEu!Q&_E5q*5tScQ_nK?d$;i`%oGCMh3xVvx!I~B6gx! zEEeJMctG{jd94tH#bUu?u|R;&<(?$zWDu&=Y67&|?c%7quEXc^f$GcrxEjLyquW^g z+=Zejh(@C{gAf_KrU7L#8TkEv@dB%P_@xnz^c?{oytoQA5fDQqR$`333Wvkr3x$Gs zwsN^FCcn(fdH~1TT>&4yxrw|M6fiNwlEEfdlq<igYnNH;?Q`~n;5~)?x^;tnIQ5^H zO}fG*t~IVJs|szi1N{Dqcf0J<_LlT;<^S3Vd+vhk0joc=vJLyz-y8k_V4@ggVzF6$ P00000NkvXXu0mjf++hxt diff --git a/interface/web/themes/default-304/icons/x16/equalizer_plus.png b/interface/web/themes/default-304/icons/x16/equalizer_plus.png deleted file mode 100644 index 5138e71afd403d3d9f9460f3ff9a7a3203ad1061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005rNkl<ZI8UXK z%Zrjx7{-rKElgU@VphYqXj9BcyMl;_)=`k4DT0ZaBw}DtK}3<QMo2_a{B*qEP*CuK zf`YmXB4`&9wJ0L$UwHbSmljS#HA4p;-V5jVocElg0I2`bfyPnAr5SP<x^qO4A**iH z>-Bfb<r0g<;!xsVGGu9RZ$6)6G#bHXv*B;K0m0|<q1|pvO_m0s>2!*IzYn|Jj@fL6 zYPAZ#-;Y+SwXdH{Cb3$rB$6RZgZtz07~O6cE|&|F$pnc+LN+p%N+kpW0XaRB$-v=o zAfL~J3|SgH7z_q7mdE44a5zLNm4eghL^hj6JRTP_#`Qg9$kO0Zuh)aF>j;HHC>D!o zG#YXR_Bn;y?M6DC-q)wd(%?y_(?Kj2lam-Ll?sBvAlP5euhg$$LqCnH&FfN=rNQ%N zvnin0>y=Rpg#yCiFxX$uw@Oxce?*{F&Ph#{1~2(Qxm*sBNJM_%_k3sf0<^ppTlzL` ze)CDL?OCDxmN&{|GChk%qaVxVvV2>uR+E=s&$Y}BE`PakK<dS*&osDX=#`<;ALTT^ zR}U@Usk5IhLh{F!uj;nB!7G>zZ5Z18r=FgCyZPY^7=JNj54p}CQ!02Ot?nLwEs?dc Zega(?4>*yC6rBJ7002ovPDHLkV1h{#_s;+T diff --git a/interface/web/themes/default-304/icons/x16/eraser.png b/interface/web/themes/default-304/icons/x16/eraser.png deleted file mode 100644 index 9ffba3dd4b36701d68cf33badcf5f233f1fc7617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmV-^0)hRBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006-Nkl<ZILm#L zO^8xa6vxjsKhTBvK}!R}pq<N?8{JHzGYiR;*eZmP(x6}@gs>VH3E@Btgs;sIv<L>O z!Dgny##NDv2)9G{)h-C1i1Pe+?{@CRCo?J?_;cZUf4_6zy;lNQE|&`efdF_s9xxh> zU@#cq%7d4n!`}!-2SlI%YXFqsSeXKRSAfD4L!!|rxZQ3JnoOouf@?UetslM46GEUI zzWGQ+2@1Y(K{}nDgDV6+?09{n{OXA$Nw^gqI2;am7mjb^{AUz={hz>xor4<(dyl)_ zE)ay-4m8PrIR2CZJzgo$>-An$RfYRkeWHXg%wSC-bvj&fd^`JWNr2rsoXKQFMNy#t z<`V}sNf%+=Y!@HyWOvR9FdWWiv*L6*1+9kr6)yRE20py|@Hw8t!Catq&gF9AWHN!p z`n|KqVW-mxNB45O2*1aDop6EHIiJsqqtR#y?#wznPkzG3t?d^GzeV^9zvfgb#o<Ds zAj-151h?C54%=)th{xl}TR;9Zbd*#s@CSy1L?W?SEEdJ#aJU4wTCF)8iA0ikF14+e zQbz&&0vS%J3?vqdZI((UvET2XgPYCf91aG99JW|2^&1@-4ynXpRwNV(c?W}mP%f9n zUa!X|8;u6PGP~Ule!oA7*I7eZeLNn+;%5@p!D_X7ae+{+Rz>#ev=Rg%iRV+Jl-6;C zRmJ{ncFaYy*?bwhUSe0s7PBCD$~J^y_d1@9EbNge7?lak7z@UPp=Y9Mi)N#;Fvr*Y Y1G*I&-ZiG_+5i9m07*qoM6N<$g5midy8r+H diff --git a/interface/web/themes/default-304/icons/x16/eraser_arrow.png b/interface/web/themes/default-304/icons/x16/eraser_arrow.png deleted file mode 100644 index 7479dc31ff2fc1cf8cc2669932a1e18005dd13dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007@Nkl<ZILm#L zU1(Ba7{{Mirq01kCq=}XBxDhb#blghHyK;F7OgG<+3qGdmPQ4Q5W-3?62dVFVy8u` zVHAvV!`k{-^J0D7*e;@o!KSXOE<(lWoYQl9&Wp!vj$Zila^A!5_dMr3=MX3@tyT*r zlL_>CJxHZe*njmNNbsCsBtRG*paXy>xX%>;J{N(90){j;HbQ%QJLq&ekjv#DlgYLU zj^fsFawgy*gg~gP?>dJP6nvxthr>|@w-FezVrO^g(amHsiLFSWp`ihSUA=BRe}jS# z{}ULo@`>*0@f(Rm0tmuF2cl%MtM?WU{Oq=Znwpvxj^mii2aRkJVJN|(B)PguC9{Lh z+f@RrPT`@UA+}g7Li*`z3W|~h!je)KFU~uM{}Es)>~uQWLZKiI2(puNRPwt5etF@V zAK$}tSs+$+xm@h#<|b@iKZnODtkGy-=923U!c*ASJQawQJsuCcv9VDFua+un<`?1B z7580)pCkN^j@fRvQ`qbEvbkKY3XaF)6jrHJ&_D5QLAI-TcfPjHozLY0*>oC+)oQi* zd_Fdt%~rv&SgZ{9^z;m<2B$CfpF419JQ$1cJU_C&wiX~3i^VoNI?ATeR=J|lD21QJ zmGJgQA}*0CGRw=c^)sgphPE~xJb3&y!gJgRF`LaTnM{TWg+gp9m7?&<$_gEsTCE2A zVr}ZwG5wAu^soIL3^dgN1RuVS5TQM#QrUvlm~c4E3SXVL7={_BH@iAzdt3Jj*Xc|K znvWX{dk*X1)BTwUj&?-&+0>Yw3WY+4Rhxtn;!CB$=UfsR!U%KC*Y^eHw6?w@@v$dg zxL@D>BpIC$1PTl`1ab^t5&Y?(Sg{vnXUF_J53K|^e|~BpAl&-{R_!YXDhFHo00000 LNkvXXu0mjf@N-d_ diff --git a/interface/web/themes/default-304/icons/x16/eraser_exclamation.png b/interface/web/themes/default-304/icons/x16/eraser_exclamation.png deleted file mode 100644 index 51bafd9b4c9869ff55469b70a4aa7bb86a9c4f16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmV<50wDc~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007}Nkl<ZILm#L zT}YEr7{`C-v^6K2Gd22PB+c@oh%BlVBSNwdvw=ljL^nYfRyPR}5up@9N<k1^#3G8K zx=1L>N}?zTibWvQ)dI~%^g--hqnvwR_nvdQ(8SXE!vhZ-e*gc&!+8Ybs;;i4zP_H? z+FHC`FN=>}L;?bkh^T=EFv7qS7m^Bti@_5Phl#~vL?RJ<J|EL)t;RHLdw9K52tjY- zUI|FxC4g*hZYCTK^AD}lu(`4KYUg*$BAd+;@4InQW3~V>#-08PZ@YWtWY)4U#(>sj zvsrfZ-Rw}%1gxLdz!<YUb!z{z#@m-pWHT9zF&M2UOy2kRv+2UAV+!JOI@ocXXlrY0 z!rinAqcx1fMr*90p|Rc=T+9slH*DK>w5_czF*-VmQi{^u4HG7raX1tTaqrNva|-Tz zCc}k7A==T=k#HR6kEwh+>-li)AS_H#rq<BA|M7VP_ar=%lat%q+Y`2Jqm=rihTf+z z%WM{HJj};0H{Z!wst<Sy;Q5{0-QArS85x<f&~!SDaFSHbuEt*;U|uY$OO`zK7&G=R zZQG7^b#*23`TUgR!NEbaDk6(736{?*?AdpVIW_C&YbBbMi$}R2^Z7i$6nJ1@0IfAX znc_!oV8|<m{XIQB6o$WsW|l5o;wm;2U68q4?o~V<ZwUs2Xsyv&Pr$)ofESMrJP+3_ zt@`}^H4p9|A>*X*R?J=Oy6i3%5i*%fzDcLkuj=aRTC~<!mPIHOqO7cp!!4^%FRCf8 z@RocI&XgINwx6NY^OHcpsq~fvmb)%%1uzSk?f3g5LWl*$VsT=Uv&Y%BwJEZ)qRLl^ z(F7`YFl^lcAZHDKOTGQnD*!)G3itpssr2P8It{E4V(hChcHRbo5rCBR{{rh>dit4u R(F_0p002ovPDHLkV1h=DTzUWi diff --git a/interface/web/themes/default-304/icons/x16/eraser_minus.png b/interface/web/themes/default-304/icons/x16/eraser_minus.png deleted file mode 100644 index b4fbf24f596a2b628539cb506532b9ffe56d2b9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00077Nkl<ZILm#K zO^8xa6vxjMKX4Y}2kk^bNTQ94U|u3f!W7yp+=?+&NF$9#1xW~l)woCq2O<bxn_-5a zV4xbTnF<>hQ8WvQwk`Z>5d@{qLr2s1Zs*<c$&3zN_;cXC`}_aTz2^}aF1y_hKA#Vq zPA6zI8aRIY38-+Npj1FO3NQme3D&{@;EM<p1}I{+TEXM-fWzScolXZ@t#;htG?tn3 zn@`h(5Xc8E+>y`(4L&o2csxD=k1%j!;@R2!>b+*OiLI!>Y&OHoKzIrF-=o2&{~5S3 z`P}Tr%H2kz0R&;W1I1)L5WY`=ZXIc$R;yi-Byl%SxcMf+FoYG8X1&f#wyq{0Oc-D~ zgA<7aFNz`v&)+dnF=-&I8g}t|A-R0W0L9>BGRY4H17$$aSuZe?-v{6~*A^e*J8X;$ zl;l(@#rOMt7+*h@R~T%uSYY!;>Jh@Pu&-@qpd_c$X};I%O~CbGvSs@#yuG#b7~vNP ze_&&d#bON3WHNlW+ns=GwHkwsMk9p7;ppYkud<f*3R4uvO80<7B9ZxQHp_Q9oe8*F zt&ZSeFc`H7!p^0if4*txevl}45DJCnbGaNZ2*M$_QmKsKXVcRko!zcQD@l6?&)`)` z#P9dJ+U+)%&*%A8tHnN)%Vjn)lgR{LuQ!_B-MxNgZtmoGhpTIAB_byn3<ejbam8Yh zm;X9taU2)L_u089iVHS?Q{x6|xdW^w)G@tY@4!@>JVJz+D5c-!hEVcc{|>7x`6m(2 t07$Zd9yNv1?O$soY4}b`70342nSXWR5efvLt<V4f002ovPDHLkV1mfoEb{;W diff --git a/interface/web/themes/default-304/icons/x16/eraser_pencil.png b/interface/web/themes/default-304/icons/x16/eraser_pencil.png deleted file mode 100644 index 0c18f9d72df358b7bc72b0931d89aa5c2e21ffc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008gNkl<ZILmF5 zZAep57{{M8(X|=sCP9c4n4cCkDq;yT6l_c-N9;pueXtrh%}EnQ5^|P<9EL&#;V`fu z@I$X-Iae)*VCukTBO>r+FGgPi*<@|({r23`Hf(j^&jaV4-|sy4o^#0(Aq@ust~*7d zF}p~#+|l+N*b!;31rAn%;Q)~^08Ic4!Rkl>tfYZ~6oyy`S!f#`mg?<x!;k9f8Li^Q zW`W=gmZlclQzIb+tj(8(Gblm95*17X$Y!dl<d&_iUZqmmqgTy+!F3B+K^^XRw$=LN zb|@6WRyZIO3gK0=dIaa+q2MEVg!%!Y@OVW<h2rbtg^{-wlZ{^rW6{gC34A1LwM^d% z27^ElW;@79o;9mS8DQq9ps&0fq^IJI^7{DD)y^A@Hp~6Roy0j;`{Ay>5W<j!bCS^Z zHkHhE4c^TQ>QBT$dNS5jx_{ptO=s_ExBD~H9P0(*_(j2-B#1C4+r^t}gA+uj(*c*u zg_4pIHsYd$`|{BvVSP(W9jvadL9KWcB|a+I*#pn^+`Nb1!IBpg7Z-~&nT*6>Fqi`y z4*0e@0m_S0u<-sdh#Lmr`@}SbD=RC(rZ+r5_%-%5PX+AGENnCy&GC4g-h;r#3M@OO zKsRIox7+;(o?iod|HwmxUn2a09&>khH-$|mlQ|ZPLE#7l0u;tm0<~JLz4Ga&m%|W8 z5xrn2&}cLr<KyGzXf*l{?DzZgutK5Grcx<azd!9k0c=7H)|nU(l}gnyIXP(#hr@rt zKA$fS%VaVN^Z9(w`Ry3YG9e1HgUID_aU>FvSgls`?(Qy~^m@JY$OHlbNTpJ3I-Pc* z%#%nYpzt*byF*!7nHU#HoKB~iy>+=Ekw~=oeOwH~c(B6%2K%!KFb8-%UJdSgD49$G zyO<4v>uf`qBqouqZ19JKG$z9eco;s0i(&R8lUtOn>4G`B<~PDHN8ZyHM$-TQ002ov JPDHLkV1f*%W)c7Z diff --git a/interface/web/themes/default-304/icons/x16/eraser_plus.png b/interface/web/themes/default-304/icons/x16/eraser_plus.png deleted file mode 100644 index e7b3f1c5e1ecfaf21bb1edfbdb99916d138a3ffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007vNkl<ZILm#L zUr19?9LIlWxvfQr+XzCW!6FF>7FpfKV5F#MLVM}YFo;NS<rWqsHHg*RLqaHs5Z(xe z)I+$iY^4>;JxEdyD}tU1Hn*U++H7r3ckey@?rC@FCLQ>3;Ou@r-`~#fUIL|MGMS*I zr3D%r8$qpB!=7vRK!xW7O9h0Z0Br!2;2seG-ibg#z#<I|4Pdj`z-%^yR;vY#MpG#` zf?M0M*@po_2!y-N+>}s)f<-3qcsylr6M+>I+q=V){!Au=t*F3YFu;?po*_Jcje@uT z6Ie01qkATJE1gaQL0IlUk%YQ>Zd0Ihn+j@bYAli@aaZ<Q`3%BPf)z<7m12^)i{3j` z0!(M{;NT!HiXvnmy<(suNh7Q(b@9C4JGw!D#bB@3%L{^_3<&a}2$TF+2fw&<V+`+M zrYumBeLf#wEEb`1eH#rj*l0Au>}B6L!cVcUc_vVj1Azd)y1H5gr%K7j`H%4O>d;+; zrxAX`#_V>x89Y2Z%ohrUDma-;GPtg;4!EiIg?xQ(=ZcO-fl?RbBp|)Ly?rAiBYZxe zuY#ABmddch;c$Ju{&V2G<6P7I*<cJrdJqJBk(^Fv-^9cOpUq}Bz==en3?H6sT`24p zjFK8wP98te9D4RR#vY;&Bb}X{mRv5!g~MTfd3l+g$K!D}GQD08cDvp6%TET5o^EZb z>@Ye#A0u)?ZEdXu)3|6f%FAz^vN(=&;r+Z9U0eIXyro$_+jq*+{CVor-wp_NfSVp` zhfb$6W9lw>gb1;slzx#L!jk8@2LA1l`m?6}-ybADfbaJq=+H{CK!>#rOUwS%zrv3W r#C5v}9?ckD+yPLN7>uu7kbnCF8A}~g;6sy^00000NkvXXu0mjf)lfv- diff --git a/interface/web/themes/default-304/icons/x16/exclamation.png b/interface/web/themes/default-304/icons/x16/exclamation.png deleted file mode 100644 index f37eb958203d45839b176190b2c07d1178704421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005@Nkl<ZILoEd z-%C?r7zgm@8AaudR6;AXZZZ&|(M3pv)Qx!KpAfXD8{u3O#FXeNs4fcXN{JfyqqNeR zwZeH8t<|t}67P<);f^{acW`XBVma8DJe}v@87FlSb@74sJn#4WzVF2WB7*+`Q(mm3 zS~s+=x>D{>2V6+T&I-osiU&--z)iw0u}+Nb@sw7F3#HYk1>xK6;n`MM_~gM&CPwf| zYW|{HT)9of%q?10C6#AeWnugo{^sLzbO`?;x%k7q=5o1+6|!AxLavi}Z(|-l455`R zG>muCiOythse>d*GUUFxD5XkC-s6n51Hs2w_WlXBMBX%pelFjn?}>JDI-Ley=aN@R z$n_!4SUd3c5t?=d25o)mL`OEe(5~NjjvNjL+3j|UhFfWRvX!D!ZCTE6*6hJpFB<&) zct!~{iIv4mG&j>mO60Wumw+K6P8p&~3yqH+6r44C;OjwF<A1ortEuPn@n|!}rcW3$ zscQ!Fo6USao|pT#dAY+~c;!ZT?Z(R@a5TO+dy*Eu94j+lV4bnByg$wz?!w4DJnZY+ z8PwuUC2h8mtjq&8&X-~hrP1E)LGHr99dIk}YPHOK1EuGV=<3Vz-#QJ}nMn!k)3^%{ xZb0|_>oD;zxU0VqY`QAlUfqGeRI}c({Q_>>24w<5P~HFl002ovPDHLkV1h|66Z-%F diff --git a/interface/web/themes/default-304/icons/x16/exclamation_frame.png b/interface/web/themes/default-304/icons/x16/exclamation_frame.png deleted file mode 100644 index db1b763d86d274a15931ee8f9953d30c59bed2aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005tNkl<ZILl-B z|NlP&C76MQg#{Pp0pczw=E0>7p8<gl4XJw@>QncE*rXaDE-NcO@$<WN-#@=w^IcX( zY$8aE6a!M`&MrIq>ut~fUvIkq&z)6x79>Wj0qTZ^Dhs~9oBOA%tn5Dse|t0SkD-Cm z0+1Yr0nE(I$e0O;E4OW|zVrD>`Tv}p95DX;xa|LywfT2Ia!@sJJ?I8ld${Ru`0}Ft z|A+gT{}U1tz!=2-^t9%`yR*gykQ!VDaImtn^qe_T`Re_>%>OTMC;r#h*Z(geA@Tpp zY4`t^Pr3i!y21Aq(Ahm8wb%>@Oi8dh`1WDp|2tQG{$IN208AweV0`g{Js4lP<oZ7% zT;U){ExG|h{QO)CuAWW#a_fri|Ld16!T8O~CNPHaLHNi4(=U8{Yzshozy>feF@bPK zWvRi1hc~VN-@9fA$1oQli-B-Sfz$<%9*|y;W<?oku8sGvnE!ruQ~N(Mh8ch^e)pp0 zZy9O!jUc@YjEsy^r*z3ad~;Xx|LZ$yK&%SK-`-V#F|rs8Pwtd>2+|9*fMEuZaRi8W z15E@)(-I(_1q^La^6dfQZXoUhicJOL`9L+RfOsoV{Q;ofX&?iD9%0}DVqqYbA`**0 b^)LYd`ng3C8}oH{00000NkvXXu0mjfgoXed diff --git a/interface/web/themes/default-304/icons/x16/exclamation_shield.png b/interface/web/themes/default-304/icons/x16/exclamation_shield.png deleted file mode 100644 index f5fb107ee5ae5a705f8b118c6e71248dab8e452b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007jNkl<ZILmF0 zT}V@57{}jN!kZ?<3fskmcA;3JSYAXCHHspNF6y!iVO=as2)dZnBFN|iiiDM@DT-wu z&T8cjvj_wUWx55Mb6eXva|*M~ZMsc#elYUseNH=vB^~&&=Y5|4|HlXbkcrP!Wc<_L zU#FFl9~{*%dh=*-SC~PtOSTFS#~|Io3hl|+TYPf%CXX}QDW&`W1Rabfc2qMe*lddU z>fM{!xA1%AHO%>SQ*76UH_WivfE`(2x6t=X@z#WcQ&^o`2^S4E26D?UVLf)6VT9aL z7sU9hypvOK4(oPndagNv9a%8;ftoj#-{m&aov@znfVIR!SczN*gTWwz^J@GatSz)K zo-#~1))|lm-v?;la=c|VGt&r#==FM$t@}*GxQZQFFw#%kQ<1xw)U+NX;(`upYimKJ zQi0cb8axvxMQ{#zE~Z(hO%@Elp%0?LYthv7Wk`f{z<bYu+kKo}iHOUk{fEhk6TevJ zzAX6mie3rW&jzAGJ@`Gxz&m+FL=s4E#OKk1V|ZVHbsA*B*Iud}weGRc2<IU<bx>w8 z(JWH96MRQu#G<rgM;6$+X^E}7$TsuyOg8MVgRuXAi1ZJnH^RI3XEBQ%S-^EsV(p}c zF;4A?3Wp#Ps1}g~(mN8Yfzd&w2ea6b1%odrv9wcVzlm7Jht%PDzGgEn?1hy@qsY8a z39(@1rrowHj2X;gM;72$RZfVpft2+;B0c8k#V+@-D!C9U2LxwxYq1M&n87T5g@Pi6 zf>BzbA!Qd%5#6&pWavv@Nf^PI?JnVsWp?MYMTLTG`9l?>4k_J94nJ-pAD`SH7M!I$ fqne?@4tD<lk$yjFa+OE~00000NkvXXu0mjfbB#pl diff --git a/interface/web/themes/default-304/icons/x16/exclamation_small.png b/interface/web/themes/default-304/icons/x16/exclamation_small.png deleted file mode 100644 index c8a05685975b26d95d53646bf16c6188b7c58cf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmV-N0l5B&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003FNkl<ZILl-B z|NlP&C75Aw8E|GZBQj0^;?+<ZE{@lL)0-G!nB(jg)`ef*&V2!*L424TUIUJ=X9VLD z8yJ1>p7A*K=j-bKcTT&W0`XyTcnvtRnh}Iqj;&>y`|)|_htSZ_{~w+-d;sx5;vjjv z2JBzX$Z%i<qw~dm2FE`>sR7C|{C|EU<NulM%Ev+CAbGq7>{`UgxMvCDj0e|Z-(0`! z{(tM1(*Kt)I{d$Q()tZZ93+p|fNk>_Ef22~J^tXP)Bn3yjlnJe(RZ(!{6Dyc_c%x% zuK^opGS0bmQu*b}+gkr$-qQI0^=&1X2H~5>WnO~h@fxtGn_<d=PKIN+Fi3uoC*=V# Z004VLwAQ^qtwjI;002ovPDHLkV1io-nnVBq diff --git a/interface/web/themes/default-304/icons/x16/feed.png b/interface/web/themes/default-304/icons/x16/feed.png deleted file mode 100644 index 9e5327bbb474ce30bcdc1305781ec839e14ca7f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmV;40(Sk0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006|Nkl<ZILoDz zJ8aES9LGPu^E?03>Lb-^Q;#Ys@fai$kq}{E=u#vi76w~`!C<I_m~3M4NZP@ONg~96 ziFkyjNF+jOr75b3Ttct*-g_Q~-d-gP;+K4La)#gMe1DH4DJA|V<jz(A>WraV4V`Lf zvI^GzSw_hj;id?Ez=Rb65xSe(8xOX0G`6`K=Zv)&RgAS5YmxF@R7s^$abk32S>gRC zz-g-nMCfekXl$D-<XtHgP*tq86=^wHjKPSwy7nb)h4-VK(*O%1G`Sk*N}<5~6Yn4t zh`G1Kk$a>US1|dH7-J9-0F0}0DbWOAtb$dL@=Jw>=P5nA1XG`}Yxj}uxs0yfSxHVQ zl?5q*wbKqTW!uFEXRy|iRI$y=F`Ii}%P~Mmudb0&f)FYIQ|WHG-uff2m~-GUS=U)a zE!^&bu_v(MFsW_<Aq1lL#J>UJzy%n(g|x0gx_Y6mm303U*lJj{3-3MAds2iLe*>s0 z>G3(z-IH*2|MaG;KSat6lg6GROEy&iAwrl1C>m8%6+Q42=^lV@A7JDzEL=Bj`_mxO zxb!E$Qw$z#d6UOx<~$QAC78@1SuNgswD=v>D!li&5Xk2lO9|xpZV>2Oxqb6qJN3PG z_NYP#c<+Bv2m$A6@&ngjUyPA%eKZc+=FwjCbkr|uY0&ywOLa9khh!O&Wtc2OvkdDT z(VMBk{@l>$@Z^o-Z|E1GeQ^z~M^~|9MJ*di%#D#smqYoC5n_O%=gZ5lJnS9k+PG(2 jfCiu%(0}~N0hsy$hGq}FqxX`800000NkvXXu0mjf$vG{R diff --git a/interface/web/themes/default-304/icons/x16/feed__arrow.png b/interface/web/themes/default-304/icons/x16/feed__arrow.png deleted file mode 100644 index 24fdb9193e60a7cd7380387476526a7399f73439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007wNkl<ZILoDz zTZoNO6vuyS?{z-o%uHs6W2kYIk$52G5;DrIc`ztRiU)5(@<1W+;PNDrOYY@CNQu0; zJ-A;oF2#g$nT~15I7Vj1eCK@o+aBi3A(02G{_WPo|G(E-|Fy(>&;Nv6p8-IbF)X)+ zdaG2a1=T;pSh7aAB*I~!Lq$M@<pa`{D^tTNYl37D7*&k57*&iaQpm+xd_JG+$TZi6 zEg67aY7K}`pBh$K^F8bg@-D<$i>el33uG|{BNCLQht`BGnfe|91re%(WDw+C$e=Cn z!G*-xx5Ul2@J;71ogXm9AR+*mpikgERRBgUs0Atf6y7~R{>drm{(_EON@CGz?5O!g zviH6K@E%lqD!>%V&fVFIs^YCh2Mov5t%qrw0Kvb!i1!|xD+-w6bPN5KuYF116%R-> z>_e==mG#j22qvw;mkq`_M;t}Oe-nrskHhQBNcCu>;SiKn<8SW-ErF2>h@yx%itsVS z@oxgwTKt3k_#4~d!m^%CnXn3<eS>d(%<hf`RwoZ}O{U{wa51R0AVRL!XS?EY5An!& zXubipvvJO0+FtSO<4~r|spHIr98)WrD?UpF8is(-+Us*~c<<qRmTlMCY3kexcLvh( zsfkFtnJ{-IXODIF|JbKysXUwucn*(QShpk*c9s5Wm2-~8RVSG^Wi+q8K}YoS2GU75 zf8ti7eb@%GQlxV^YRiYD`e}KoQc?mzfFu$$z7y`=e8JZzjkMjrO?x6m>A*^E?m3nD zl6k&Efb@_g)f+}KZ$v4R@l?by#VNbO8^^G5_|8$fdR?-8|A7zL%+q~c_l}+vpdU~I s*ngdFFz?`YkBp=1)4}}J&F6vcA0=S~Y7FfIXaE2J07*qoM6N<$f}t^4oB#j- diff --git a/interface/web/themes/default-304/icons/x16/feed__exclamation.png b/interface/web/themes/default-304/icons/x16/feed__exclamation.png deleted file mode 100644 index 5a5a1a49ed9f05e4c89feed68eca70380e4f904b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007$Nkl<ZI8UXL zO-Phc6o#L3@AaE$X4G+13^hxOs6`O{2U!q=L{hW~f)=ilY8hb=M2mtVf{22CXj_m( z5w)mRMJc3G5d<wN#2mvMf0&t^Z@&5NZ84*ZXxD*vaSpuiIqx|~oOAq7$gAA|B$T38 zE4s8HWi%M`Zz#>Q5}u223&<G}5TUoBt?qbZM_sEI^E_n?N^6ucC}WUHE?VP)pqLvQ zUFnaH0bDU!fe2lV9d)hqe%=d0AFVaUm__IcS(HMFc!{><t^W8}S6RS-2q`b-c|qv2 z^z07^eeCpi?C2ZZ=ZC2LPn1%K2ms29c+QamP)38%AeB!3;0=Ng_n<I?S$~A8L-)~Z z4=j?Ma}|JdU`%-eRAubqz%`69IIS@at5BVNu=5NcxGzs|&OsRdL!jcf`s5cV=5gs^ z7`g#3`(V!{GVLwQ&P<S)Gt`%2SO>T=uY8`0fE~FDUtb_i>yYl7kZ8iby-0TE4b3~w zlZ*Z)v;oe7wSNg{t#R+J<6fVK$2|bB`2@51Pehc57q21Gypf!jCA1LQvURkksI*3F zjXw4s=^cS=8b)8^maZpLHA{8<N)Gotpt@}<8Kx)(1VIs$??b_7LbOIHRqnd5?fGfu z=7y2_b}Tvi`}>*qe_^W|nT$$lG6N=;2OLu+zm%^MiF13?;;BjlR~e6{sok=d^vn>? zo}OaLA3_>ZF55y%b&9B?Z(+W`$8W=<-+V7tAen?@5^8G5#)TjmBaEc+)D-)=FB3Ca zmedx+TON;;N^BFLZCQ+_(`(qjI?i?+No&Db2zJSe)qC4(lPyt$vn1*dlFK{-ATybp yem6M&Qh-_@3g`v@3vuTH=YS1=*P-$|is3)c!T^|nGoAMU0000<MNUMnLSTXo*+(J( diff --git a/interface/web/themes/default-304/icons/x16/feed__minus.png b/interface/web/themes/default-304/icons/x16/feed__minus.png deleted file mode 100644 index dfa82aaad7fe6e4211e3191f75a4e73e10f82eba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmV;H0%`q;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ANkl<ZI8UXK zJ7`o<5Qe`wb8?MI#3UG^5)<)7L<BJkifCbz#s^qfS=hx#VPO$Lu(A^iO@u_SP(&+1 zY(%XLnt%|s5*1XIjmAJ&Us*SI_ntEryV*h%1b_HBoMOKDXGYA7|B*c23qXr=45*`D zJ?&n>`#;+$1t&ZZVHBA2A|S%RvhKDM9c$XUlBOha-s4np-s8MSYJXA1DwXnFKDRdg zm<PD%)qx289c$XUN@+2vgcMc9dtbNKip4pcNYc{X)0KYA_g4WPL}*W%lB5z+mY<t~ zkP-_Yh`A@&t2?;jXPk402mmfwl$g;D;JkuYkXom7;tG|Qw_yGYe#;RW4&O#M9;_Fe zS<PSu-d7XgYO%}Xm+{_Xs`zE=aJvU#&sjjQH}^0z2%!#e_3hT?U2^&ji;q8}Vc!s< z9v%(C^mEv83Ts(G2!WVo#J>UJ<TZHr5b4~E>>GiWPVDIg@Qu)Wh%C#9S%yW3@i%~~ zV$X)LvGZ{EC;)6fi51>s(=U*oU3EZ+5Mp(7R4F@ER24n`0vVWuAD<vM1}pojv1i{R zZL8~mN||#0IruaMgz1GlFUZWGR6rV<nY^9n+weK0d5G-u6i$`mEE~%|8TE5Tz?jX_ ztk@vZ%++o6Q-$$MWMdb}=Su9~yT3}_v}vJ7>-8Hq`ebW6T-wTsj^6HLtNVJ^FKS8} z%?t|xtHphAGso1s?|>0Av(j8PUn*v^9|HFU=w8)C=b2s(Y-naDMr(}Jw;XD3j1U8q wGrqq5&cw(J_hvF?1Xv0*0=kgx9~FT4Up>tgV-Rl0djJ3c07*qoM6N<$g7fh(p#T5? diff --git a/interface/web/themes/default-304/icons/x16/feed__pencil.png b/interface/web/themes/default-304/icons/x16/feed__pencil.png deleted file mode 100644 index 48587c8f8cbb353e1c8d637f98c8292e688c81b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmV<N0uKF&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008GNkl<ZILoDz zO=whS6o#MkecxQi%!D-2F-Bqp6H0{E-xONG(uySuLtDBK7exvdMZ0iO&{9DWb)#6K zwWyJnE=pas6p2FZrVZ9WG}?to;(v^BGBI3#GGlV@%)Q4&rUR|+Jn$|Khxa}IqN==# z$zQ7hNE^duYiPHQI%mPTm%~_mBm6GH2_Wx8K!nY+n`*aa7S=X;Ri0;@!&r-P4&xkB z_QhJXSPb*SL(Rd+Fu);a4T#X5Sy<aR85F!?6kx5zIah%#lf@W}h?j0!&=`yiw@(W= z5TVYi^1NacFn8B|hyr5&4)M@=^x7|&!YIZVL<9ii&G1yI12E2lvmoV6LGO1I|M?lF z9^saLN@Cq9?4pk<WK}H#RKdCF3NYoe!wW}n&Y{-gX18Eg?SOZ80)h^nMpYq-P=zP` zf~icm+;8=lgUsC0N223f#5(w62V^h9+uP7|15p(5Y~T^WS!wb6dG7^*xc_^&bq=Y2 z6X`e(>3a0<gW!_T`Uwy6hQ6@`3pVbqc?f&{BVesX`;MYL`{1|FrZ45KFHrwBn!Uo~ zniQ8t6Rhk!&w(@FjQOhjowXoB`0t+WmMhc5t~MCzf#wg0qKGGhKXEg>%i8U0IJRjy zi{?&dlW%a&1OZG1WW`#HF_jZlRdmvaL<(OfxIWgy(q&8N?&@Ui;u4v#cq=szT)qG( z<E5ZfNQk89YOAa&x^Ni3cON%&oVNGZ)7{lcOPpd>Na5-O##O;y8izF*n!=Fg>iL-( zSDkVsli+zw#6_-~QC57sm9sw_WpTQJIq}S?fj<9c_TJ=~z4y5&K-2sx>c48`!`D;1 zgYsG&gT|0+lzAI|9B4TCb?ZdxnvN!OJPk`c9(YRc@f@dfC2|7P07<~U<XcBR?~rak j&xv3E)XV>iMZnZ^WX%!7fc5E%00000NkvXXu0mjfA>?lK diff --git a/interface/web/themes/default-304/icons/x16/feed__plus.png b/interface/web/themes/default-304/icons/x16/feed__plus.png deleted file mode 100644 index bb6db9b11a719bd0c3d6f4b4498b8f51f58a843e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&<XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007nNkl<ZI8UXK zO=y%?6o#L3&z;X?CLtzuh)NQviX@9lAqa{@un1YyAF!pHy67&9iY{EJ2wk~TDYS}a zp-a1}l<u@(X{bL)Cdoo<6-@}KCSsT%nxF5R?|#QcCIc2-^@W$qUA)hI&$(h|{2$4m zUjWeL90Tg;S5KQ)@czSgO2r8`MHmF$dJzy|U`<!+;o`>Djwl~R&U>6H&U>8qNbN4F zShbqGotoSfKc51);MIW${l$%~9gFdNR1Gnziub;5t%b!ooJiEvwV@+^KGnYr@E}54 zl#ilnh*|snzYt=w$^_ZuU)ZBxaPu=b=MWJ9T(l}OqYc1$1+O5rm*RVusE%ESr8)fP zhsb^NGum^Y9yYU@!3?}#Zh))RPVWAQ_a0Nlui1?2I|;ka0D?XK4Ksrf>Ht^YZf)M? z6OU;uJs`LDCqzB`eiEifVEb{bX&oU1vNR?87$7TOg=e>r_Ro;LSD>jKyK@eF19TrG zO;fTo#WKjU{{U1KdvFmOIt#yk2LRiSV3l!fdX!Rigq@$vakQ~Q$RK3PqoYdVR8dv5 zG>QzA;mr$}9D?<|%e7~pP@emn-Y*X^T%D(yko?fuh>v4Hm|pqk6`2_<R*+nQlCLoO z&v~R!<aKxrNnrQ3mY%7C4$AO8z!=>6b>FwSc%iToHZwv9q-n}d|BBUL_0{1k`s2p! zvJTI}o+4dI!lvfVVvBDscp4fYijZ6m$>kW!62`}#vh;A0H{E$=uial9A9*$tPlO=> zx;pc;pXz4+mI6C4R%aRYEr;5fWpHdyz9$^{G{10VVrJEah5av6UJB3xGywX3!4Ieu joh4W=DrGJwr-7w+F!l!O0;(DB00000NkvXXu0mjfyLw0< diff --git a/interface/web/themes/default-304/icons/x16/feed_balloon.png b/interface/web/themes/default-304/icons/x16/feed_balloon.png deleted file mode 100644 index b9c94756a18d1ad580fba4e72829e8bcc7239ad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmV;c0#yBpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007VNkl<ZILmdC zOGs2v7{`C-;Z4VpaL}xf6pJ2<LXaQ`YY{Pvte~(>1?|LIv~Up=w2BC#O%JF=8==Rh zh+0*v#0ms6=>ZmLYGzVQRF31FIp=;YymNa{2mX8<_<z6iJ&qC)`nIXG)^r(7)>tyu zfVKaYHsrM8zEWJNza+C3Kx?|{R@5G@Z>enzQbC}tMH_>*7HusmzAIypQmHsQIleNS znglp!0gNVF-%{IH2=hV7hZtk9)+RD>veFu@RFGcL)EG`pW`6-JnIIJeB_Fc%<OlE} zQErTAydQae3!VRj)*7W006JI{h>!u$0M>wtUkaaIqV)Va%zwqU9-w014a~aTNwSE< z0ssr;;VhJ0d~zOZEn*C|ZWX%y7;HHKC}iX=A_Cqg0G$BhertM0sOlb|qT>R}Sa^60 zrk}y4qeyxg-g_eFi2etN2Cu@q2dIYisE*5!Za^NN1zQPg_u!l(at?|90WiiO0~e9L zQ*h_df@9+mBsYpo522biCjkE!ps0<(7=!5^LUj$okB>0k2g}<Q%Kq{ORonav;3y^l z5vG+fXssz95kU$$sHny{hcC{7S%h;A@t%C1X#gc6yy{d}*6eKGZ|CQ#e_xgN9_QR2 z^4=2!sr=x*x7W5mmM#nM{X4^B&&D@3wKlB|Qb8s0s<d-h=aLwCPvJ*6KQfRTota@c z`3D1^>D>@cR80;|WTS{o6oEt#Md0JOt7mK5?K6)CohLV6;Qq^5dXpBEQkC&M>~AuF z0yy4GXIl*i0rtLN2T%k;5t%DbEdWwL4Uhqr0L#ic{ht2*Z`_Q%OMu0(pPwZwDwX7h R-i!bM002ovPDHLkV1j7aE5ZN( diff --git a/interface/web/themes/default-304/icons/x16/feed_small.png b/interface/web/themes/default-304/icons/x16/feed_small.png deleted file mode 100644 index 184a29e54cc36492caf7caf4b518c5b8c2ebaf61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmV-z0h0cSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003rNkl<ZILl-B z|NlP&C75Aw8F0{v!TG2g!^YD-3}-F|F`T&(!EokY9K)H%$qZ+nr!#DNmBrwU*8rgA zO^?bYKfY;K{Qsdx?f=)wy8nO9H2(j0zUBX4(+xfX4cLU&0Fccf%`ouq)6@TdH>CXk z4>aWeBAfp}1J2+z0OV|t%^$l}|9_vT{r~U2I*3V|(!j2GkwL%!ke@-$h6A9+|N9&M z|Nrz1?3Jgf1Pr(v%Wwpw@Xs^@h-M%Fvw;9)@WVugBX|wC6~(ap?*c1`?I3>x0mv&L z@Ud6@|5;y#<#-J^>B%tnW540+|BG$^|D9*?|K}_du+1RN4@zZTuhC(ci`Rht4h+tF z?HD%gwqZE4!;<05R#S#E8;uywtkYvSvr>~`(;OKB>0lV-1#&O|w3pgJ-YsRe00000 LNkvXXu0mjf6DqOo diff --git a/interface/web/themes/default-304/icons/x16/film.png b/interface/web/themes/default-304/icons/x16/film.png deleted file mode 100644 index b8b4b5c95a33da87618c3dbacc75eb163347970f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006kNkl<ZILnQY z%We{J7{!OJzJT!o`W8Hcu3Q)sc9J&H*tA5D(2~+JBT_D*3<|VU?w3kHT0#h-B!og6 zF14+-G-^_Vk+(Shzqu`R!z4eF$@!g=Z{PrM&1SRBfWcsRKM&+mhq@g7G#U-i!@|-| zVT?d-#2CY$B}VXNhVZ5b*k+JJuG&!s>h(GZ7M4TB5%|OjqYw9fA6tw~sR!3y4_3c? zWm)s}fm*GmT~H0?2N05d@W~#wq+@KvI<W72!V^mo56zP7kgIl-foio1f`vyytOt9b z4Xd{Wo39CBw}n@sBRpEk;DLExb~Ilfs8lN21$B3{4`-wcH~WlGu8&-?jYPhM<?TZ} zwj9U~xoSrlD3wYeSl9>@&+wZ4X?%K!&Al#yiO&dU+E@)XV13(_9nIGV3Wb7p!AGOf zcttEMESz&3H~1HF$W=SaKsK8N!NRsPb`JZy3q13UvGiu7v*;PZES$=Y=IaBgR7$&` z!>1=$m#(oYUj9$`LUzbiJIa70Ng!Bw%%{G?7QVvE$T!$`Z)9xIYgkzMg?}VFny(MU z<8keRQ>S=?74KI(=f7adHN;cr2^L*_IM}DTl9#eWuG&!sL{S96!n1YpCoH}RmObo> z&;%Q)Ux<{aXtk#}WRRoz`hXw^P~Ny7YvL`|qPO7lf8aTo$wWTPkf=|QYW|iTa@CG9 zU^1CH4u^xn**uU-9esd3cNq5=_veJ%yVU&)57%HV5zQJ<00000NkvXXu0mjfSTY*i diff --git a/interface/web/themes/default-304/icons/x16/film_arrow.png b/interface/web/themes/default-304/icons/x16/film_arrow.png deleted file mode 100644 index 1b256a8b8561553f7cefcecfe1ca15379d79d442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007&Nkl<ZILnQa z-Ahw(7{}*@U1Wbibt`xg6+~DN*iGg|gcX7pDF|L<NlK=p&EX5_wv#V&vU#SP?l`A& zn+|2ZjBTllp<A*yU6~UNjUw;6=%R~n&+nX0L4ovx&&A>SJm2#@KaK)`A{-7!2;}AE z&HfL}WjmozNTFZ>!C(;V(9mc0q+y&+5orv#7%3R0lIWXEpr2q4bJ-3d1q1>CFlabu z@}{77yd~n$jmM!Sx`i0J>@lbY#FlfiPe=hvOG|PC|DZboZXyo-L=0MC121h+Xw0jq zR(f&2P7odDvK>MS@caE>&~TBn#h@`ppz2$J+7Jdewt`mEA}X7waIbD$bY!290_NxE z<pu$rHI7cpI&}0Irs+7Qy%9LvD`@Ipz(eJX=rEV<5K@58=L3U=L8CW=S9EFm$t1e% z>lk#bVQ4CXmcbxY!|S3W`-BwW@p$A0uS-fwb{IuPMcWF6BJnrOVJ_PtqyU%81qKZx zowjXgMzUxyq*33S`puJ`B<i?L(UE;Z3UE4|a)YRTGKUUf7cKm|f2gn?qPRQyEwuj~ zY=@8n1VI3U0ygx{eW-_a@WS!|nz20*wRIQDp)78h_c8JXxNFIx)wYbs=3hV3=;)~2 zV6&6oLv!DIH0rld-<3pZR|+?D8QkpMMq$GOs(c49egaB+W4NTvREq&T&x1h$nGXIV zl!hFddZ>jdhcfqPaECx`7N|`Bp(O_ts-p=pfa5r^0p0RJJAZ_B>k;(sujrXMMwxaK zS5#}bs$Ru~=gYY6IKYDxaQWFR&OHrC4Qgs?qHS$$Ea3Pg3hr<}F212R*V=KdqA_}= zxJtSMI;V-V#QBprRc^88mk)2{-_|{%=K{9)6ZOznrgQbPj{pDw07*qoM6N<$f}2%M AQUCw| diff --git a/interface/web/themes/default-304/icons/x16/film_exclamation.png b/interface/web/themes/default-304/icons/x16/film_exclamation.png deleted file mode 100644 index 371e74b06e10ca5c8d399063e14dd79d7a09d36a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmV<K0ulX*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008DNkl<ZI1vTG zPiWR<007|U_vibw&3#jwVTx|cAVMMt`U6QCjkT~{mJAjYi%tg7r4C(21ks^7N$k)? zx@Z%>4l5W#LLn$nIt4SSQ(+8d>gM|N_x;}Y?Rm14l1rB^UB>aLsi}(q00026wzl>< zuB4Psln`S)J~cH3*_rdd&eky@lM*B;B{3x#K6vw)?&Rd8wY9b5P(qB+>gp=wDNA}) zA4y6iq?Dw@&fR;Eudc2F$RWmPdU_g)7^5spWJyX<==b$@dVXL3%k}GjLoq!)EygIu zsDu!Lm6a99d)s~6I}e09$nt1pBzHgcRIx9~AYWNo0gywC(ag*Y6ftEQt%lCNT@E}l zY;3sj_`U%L4|EK5hM<_4nGs_YV^l&2LATq5d~kPL(GOzcZtuQWBxPAB%BI6d_Cnt6 zb^(-7*R{F1IVdikd2byyHa6-TH*Qn_r(Vq-dht0Ub0-~|ot?G3ybMYRAvkyL9F#A= z_0<#onAzH?O@;)Dyz;{S&zv}MN*&&=zCHhqm>M955Q6#nc_>-~EoHNz)ovIZY8o7B z8sBrx#Moh@yW5UFb!_OBm-Y%F2qDO!u4`w{o`pgxRR2XqR%o@F+O5LD))kMAA2GkM z?C6un27bBxg%B!rUCSYaU}0ea$_Lv~)k}JJDz|TLEB^h_XeZOO>B5BzinLiwOzhW8 z>tg6Dp{goNOH0s9N_n0XMP^`E%VQ%y8=Dw)^Y&FgeE*@%2Uk_G)Jp#tZGM^Mu(h@2 z^y$-5O2bKEU{~A2hxa(N?@yz{8yb!4n)#-auYGQ?+_t-ON4vGDu03DE`uh4$i;IiL zF!ag0V;cbPFJzr(-<W6(<n3G|+PU?Sd$+y=<KzA6kKeqLrIch@Hi!;#0QmY-ALD5N gfGi`=)n(z@|6U9^2&<P$O#lD@07*qoM6N<$f~o^#0ssI2 diff --git a/interface/web/themes/default-304/icons/x16/film_minus.png b/interface/web/themes/default-304/icons/x16/film_minus.png deleted file mode 100644 index f0c58e1abd2000b56b2e966e1654782294296a2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00074Nkl<ZILnQY z-%C?*7{<Te);|y-NJP6R*p1x^U3J^8x`>!}NkWn6NE_;ybLY6`oXj16Og-v;&xW!b zV_U1in47Xq(=wF`>?Z$!pzfaD_Z&_adE?-7G2YMfoaY<?KopC`GJ&?Xwl|l7UCtB= z1tGW~pU;DTbWG1A_u!AWh&@cjm==7|CcKdbCJA=f<qV-0<Z?MMbleD}T98(Eh&tRW zb&L}(wT7|f8V0Adl^cdn=mptq)>x34PBb8|)gi6bFs^RH8LGfO^B#|FDOh?`&0&`_ zgkF%zWWdmIOAggw_m?r~En&!4guGP3tH2f>_DAucXGL=ipU?|7H#dz1Irl;xj@c^Q z^csP99r08dtBDf&Cg0+bZC!KN<qV-0q|<3Ibj<rx`<S4QCPkWXEmtwU`T@ac83WUK z49-<G$M6ZgAel@W3*L2gbsaG#lj%SR(fA*B*yRkN7sO&QFmx<CLI<$VAL5yB552Ej z|9I+YqDS7<9K$E{f^ax&ET~A46O5|I7*IZ4BzUMf>~e<C3shAFL&t3?{1rpNBfOmb z0{hab#?ZnsY!rSm)zTcpk60{v!Q$egv0&GsoTA_R8PBDU=pAd~iDL(ocP&smZe!)f z9e9QKmGA6Cw4(#`0`ppdq9|afV1HEk4x8@;eI8m7IDs?#1G6{H_-(abV2(d57s#@# zEugRbZA3Z4$if+<#7}tE&ow6QTj9QChGa6MSBO9Jw7}Wk4wtc@ySuwGJUq+==a+$9 q&fKFvLVvKhLR=%RUlMk&a_}#HygqvvY7f-_0000<MNUMnLSTY6Vl%n` diff --git a/interface/web/themes/default-304/icons/x16/film_pencil.png b/interface/web/themes/default-304/icons/x16/film_pencil.png deleted file mode 100644 index a45ab17347b403f8ad79e83dfd093d6bc8519ab0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007#Nkl<ZILnQY z?@JQ_9LDe7)*D|&?+P^f3nXMQh<YU$fe8^97D<AE=*l(Jkw5OVIhE;6=jJ&#=e8Q! zRK{G^LfnsV)2vJ-3*S`lf)GZpp1$8ZF2de)@Og9J&-3uy2>^stDwQT6isG~XfnCn5 ztgHwE7bKHO@I%MgXk-(^b46kkLm{RJ=WGFv;06W>cG%?%p%)|)2{3e=cSVbk{COgW zzUdr#i5@kJ?x`%=hqRURhEM1P%gf8gg7`>y1M*A`(o7b;Y6g!d*I*lciJO)vt~RQg z!!BnCy&xWsgQ4S+Jeh@UIE{A4Dy+^FWZx<txt4Ifbrv;^)0$)WgkG?)uwX1m^m%fy zyVuc2pW&LzVJ@16KfH>T!A0D#Jk=a_IYa0Lu~-ZY9h1Y+E%eh*lY#~GOs!+Y{|aNX zX|#<b(LTPeIfkFAtJ4c2k%+P2g~?>vVJa#rwgo}hI1W3dd>)0$N@PUQtQCYpAux1I z+b6eSn|Oz2=O&t-6#sB<pnyjC4a&;O@~-A)z;4HLQGBfx1OfqL!I~7@LzlXXHs$?4 zbi1cfUS57sDwXh{wic=&T+s?tRRu!@87c4y*0CKtbbo}+x36LK>_VFG!#8F^>8lkD z4GoYa3BH;d{U3O}USq)<yRwf~#|PY(-lD0yfV=iQZ2fNdCoXDX%Wd)Jm;E$2L+AyH zqJW`-tuEy=EY3Z&4A2VK9-RIt!c&*Duy?2m=g*1<hEM1PvMg&0=r131Du?Lw96}0z zgEN>x(05r2k2|X135PX@UCt1CL4AGwT1Q6*AHV-i^#$<=N3`aa`0Lym;fL{_UCx-z xX1#!(6T~Uv^f7R!T3ozl7ORiFXZIure*-a#OxYWC6>9(h002ovPDHLkV1hChOI!c| diff --git a/interface/web/themes/default-304/icons/x16/film_plus.png b/interface/web/themes/default-304/icons/x16/film_plus.png deleted file mode 100644 index 2e41b830996d7b9bce031e93109cde22154cc957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007mNkl<ZILnQY zT}V@59L8TSDlmxfrj)?!Vi1J{-n3$YH{B*dK@vz%6NLiNkv7!f*E#8&+T1ZW=W!mL zZZ@=~jJd3V=%#J+t4yU2^hP1*rpqp#{_i=QE)t{zKX&o|JrB=b27tw4u{eROtgKi6 z19y35c6OFAUJ#8&!9O~NdIKxy9?K9b=<;(iaEzv5A4#E;;0||rhR_Nkkq9_+oOA{= z5PVBS5^Y0Cv=S|H0?mU7)OM*WCv~6D3T9?z^abIb@f5`2B!uAvTIEGFdFEm5eTVy& zAWF(*)!{DB5L!Vv90rGu)1oH<Yj+&A_Bqr!Vi3J^c;=kO-Re=?Dj!lE-6ynysi`S_ zL8Q%{gspD@ZS*&sV@Zq!<M55op{nx@N-Yzr!(E;sw1QA51P&de-N98nr$-Y;(r6i6 zK#%V|T%&Q+^h8nnazS-;pU?^dfq=f?t;uBC<QNQwb;elgU%10vo*}dXzuylI9pg67 zI;{O0c<fj~Wk=>O742!1i_5B``-E1YD2l#dUKrU%qr8P0>Ej^^eGkAKIls&ws=+ga zRv^nVI8?AGC|^+L+Qieo&#-!TRO;MYu(&pGX2^(#KP@<~Tv7cJ`JPrVFfgDmShh(! zsJ4H?6JZUN&1slzOSt%=6uI83$diq@^TUjy*Tu;97E&;$UoDU%2^=a|ZIr&j;@C!2 zJFReTqe<CAzWW-A_irD9xlX6l0#Ovz1@y{a8>C${xOX9p@1uR<K;^pU5ei&J6i7x~ z-ZP;{xq)*X2C&Xk+JdsOvibV@dR}mFB$e5}^S)m~Zqo(u47+(kdjtBiiL*rBkyIQX iWaeXQ>Mvs_dGHUbS3^NFGTUkZ0000<MNUMnLSTZPMnW_I diff --git a/interface/web/themes/default-304/icons/x16/film_small.png b/interface/web/themes/default-304/icons/x16/film_small.png deleted file mode 100644 index 311335dd8f51eaa11ab6288dcbdc73f869f810f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`pFCY0Lo808on)AO$U)|){*&UT z%A(!f-mi<!YRov;9iXVNOw*Bbmg1Bx6Li{|Hi|kH7ID<|UH>h=)73+)z3M~Tce(e+ z>n+$C?kbhVH<<VuYf7{k?iYJ{WjoU(6-Hajjyp&7=X}?lvmj*Nr(OAMM+$i+$*f_! zoWEz!vx*JVPrY6zD&RVCpMvBWuZ{#>yMIAoRV|4elVob5rj?rbZcgdRJpokp;P<|L z3h({-URYS$cuics=iO|^dCwbF*pE)Gb}HZDp1*{l^<5OB6G!dA^P4T2{k8Yh#!LaL s+LoI>r+DV3S5Z@f>z~K}jAy8yTX$@K4)4KVK;JWXy85}Sb4q9e00J_AcmMzZ diff --git a/interface/web/themes/default-304/icons/x16/films.png b/interface/web/themes/default-304/icons/x16/films.png deleted file mode 100644 index 3ca32682411ad922fd5831e34468520c1cd2c39a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005;Nkl<ZILn2P z-)mBF7{<R|NB_V;L`rA`T6hzZT?qXRT}!toSPWqYnw^1_lWOP8j_fcc+;G*|5RwGZ zmFveUYSV_S_2X(6WBmhBcTeBvY{%w0;R_$s=Y4$nenhL)5~SH|_L0BWB=GrsEB}Lg z_Jn&N5{ZaLqu~OMELICEpD_ER3;l5iGmknj<R^3P+3O#Wp>w2OuM-fNJ<Z#j$S%Cc zt%q-MqtM1xb=k??&cFc@4u?gpR&!tQEIa=WllhmpTWVv<tmDeql9O}Ko~Lgt76Xyr zf1JB;8J1<CSXxAWv5j%#1@lI=S_K*E8wdn`a&MX@gb*7<c2}9%wvC~_qvsRQb=^U^ z--U8-lijsSr2;b4_l!Ki$>nmGuy!z>-(q*2S-D(>a9!v%v(&+KWdnNoRp0mY*-OY| zG7ghw4-b~VviqS}EP@Dn9KK*R9*=(xg+e{Q-;ZcCO6OmvMlU-1bUF>Iwh#OH9`kKx zhG9UsF7%ozZR7gv)`9C^-`}dLg2+GaxoDb(WHR|i(Btq0>$exaV`6Rx>in0Zz90L( zLW~^aq;Os6b+hmdW79ocyVLdbO{G%epP>hbUfSF)w9+oJ_P(dDL@0_fctCo*rq5Bo s<G8+wL_&~YFgS4IgooRRr?1ES0r6J?;r5P?4FCWD07*qoM6N<$f|1k^mjD0& diff --git a/interface/web/themes/default-304/icons/x16/films_arrow.png b/interface/web/themes/default-304/icons/x16/films_arrow.png deleted file mode 100644 index bd136bbdba12f063a6743600fbc281f58e39f57a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00076Nkl<ZILnQX zQAkr^7>55{)Xgxuv|t$6AgMNE7sY5@2zH$y6}2o2yod#wU3ehZq?L16?zlEQZA0do z=FtX?R%2RfYDpZo#xOGxvJk!KqMInZdHcVUXA&g#!^3~h_r1LQ4;vX7VMHdADZ>B9 zIne2J!&^an$}z3LY&NrWI;{aZJeUX$zeo3A4!*}(bPZ%7@|)(gr(Cgs57m-XDn)?c zv!{M}7M{Kt-06LTo53+$5r)*cmieoIFqup&nM`Ugc;*ScMXP@TosluL1yVTE*ssoM zPq}~kTCG+P{ClnPST!U`LO2qGKQ@MD@fFR}i9`a#w!UR$Wj|;i2n4_wQwW|NrI{?t z*w(k=NELiOpNivt4vu@XlpT-9;~=*6J-`d-c)eb<Nb_j+=P5f)vuHF5rn!(;SAP~A zaRt8U>!R=egD2p2yH#2P1w0s9pzOPFI1GZ3$HogrZ8qBnqtRF}7!0sjEad#NyyCdJ zcRHQ8^k@yWoKoAluQU@y5lnL-ueQh>n!59UTsM7x34#E^Bs^c2R-oPu?J?BX*H1C> z*m%M8-M&S%^vpvDeJuJKYHxo#+q;PB&Kc<I2J+{hEW!5$IP9Ly@4Fy2FwKR$ZUsM~ zv7>-%?YW|_^<jS9^BK5Y08ZyNxv>D03zG^X4?5g;&egLFS7aF;c@<J}74pj!?5=A1 ze$q3A%IgW}FUrc%=n`tOK<U+#vd8hl&bY^<%jKeim93yX`IguRltU8$-Mi`r?YxB1 s(R23x2PHde!qSdYA%)*|Uc#v0H?gcadwhwY5&!@I07*qoM6N<$f<!+#UH||9 diff --git a/interface/web/themes/default-304/icons/x16/films_exclamation.png b/interface/web/themes/default-304/icons/x16/films_exclamation.png deleted file mode 100644 index 6aef39eab5510857ddc5f190caf8ba6afe9b4217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007vNkl<ZILn2S zT}V@57{}ieUKHU?myrmTpap8_MXrnxqV7W^x*B#7VPZ(&$d8Tk3rjcW#G{+Gt(k2y z+Hy8FX<Dh7b2ip;YC@|-*9XzXs*CF1`<y&dVfez2_q@;ZKM(KkaG2lkXN1q^+kl_P zI1mJ3=zmb3a!ekOo14qLUat&j@u0J7=ovch%t1RCLi_CybbO~e^(nV8fET499*>6r z!D}wPeHP7@Cur!OL`_!!Wh#eMmotA2AaZhYnA`1^Z!p~4JB3>PIIf!l&=@=@tsIc* z)Ti90z6yl`1b<%3JA4A7D8gv6LT?SAO80>3UZ>LuVoTrj^z<b44F&@kV?lyvN2zAF z+p(o@_Q7IkwOWbtwmFpFn5FEP&1M6!rEeA=K+D=w3YX&)4E<LrJ3%$G*$gJTkXQRa z2rafCwC0B!zWWXwLt~>FZfgM&D^`r$J&hgPg`m-B1i{E-{RX2&MMW<%GczM;X=%vM z&nM@vd$W(?)7m}E1kU1n(t+o}3KT1ZIK89O>A++c^3s^1xYQB;?Yi!pk|KN?6!Y-@ zbt_6rO7JFj<!4>RwxmW=2c=T^n32c&4JH~bOQ`OihpIP*YH=P_`Y;L)35(02GJJkp zLpQ=|>^vr18KG-c!Wn)}WwHw&@U*^b5tS_wTx^;{ts#O=M+~Y9!n>D|bC{2uglG6N zBH`l*PapX(dQ0f`S@@qv9<=zhsJc52wJDBf`zl2DDxCM-=xf{c<<&wlmZQ=)k@n?i z0mg??r$+jOLdHEFsnu#~uKY`-Qb^ADGkzqN_9L;Fh2%$-v=a+cdlD{DF!CJR$=SUb ry$!5~6D0bY*!0a7Hu)!(R@V6o$3;YR3W}GK00000NkvXXu0mjf*6B{F diff --git a/interface/web/themes/default-304/icons/x16/films_minus.png b/interface/web/themes/default-304/icons/x16/films_minus.png deleted file mode 100644 index b570dce43c337e7e2d875a8d10807a8437e1eac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006DNkl<ZILnQZ zO=}ZT6oyaM;vW#g6l%aCB$jL>7#D)SL2ywBLRS?kUD$y(PBCg4)Xp?c$k2q6hNN~{ z0tN>{QceA+N^KKEsP$vjMQQ&)sk_&E#!j4QC0=+)<~{Em?vqfhRwJfbt#%O4YXW#Y zo|S*WbMBF|AP@*prBZPKA5ko&Rz6{NsR{LI12c;aXyTJ|o^!9WK!o-Z%d!|SB72rJ zw-8_WfP3@rFp;X`hP-U&PN!=D<M;ciTrN8|cpjg7kICdKJj~WHrCYc*TC{VXbMHjo zP$&dOd_TBw@hS|%Kqi|<GGE7-_LB2TsZ;{f(^rzDL!Rrp4kFrQM0b@l(=^f3cVO@e zR8_SZdECUvqb=^P6$%9~J$=uK1$+{T1jdaWj3ry#UFR&9%Yhsh_L?a+FkRS$ntR>x zJ$wE#VzHRbq~6Ap<*(e`$Ye5Lh&_&Puo@1BKl^;Xw%6-LFc@U#qyB+Q_B<Mm!YJ>< ze6h#*HfNfqfgBh1n#ykD)@<vS>u=v5vMhrUFYY-gih@Wa@|M`+_y+6u7rtXWy#smf zi`)0(#_%wTeSOFiwcJb)&6DH8UUyR8Fgo4F%?Hgc-?Sv*XlUp!()_ow2OsuQ(z{Ty zyNH|nUA~sM!CmpYDB=Y-F(QM6#~b!>`~8XIdtE%-b|IG7=ak^ge{h;kSnv}!<`cTr S_+*s;0000<MNUMnLSTYgED|07 diff --git a/interface/web/themes/default-304/icons/x16/films_pencil.png b/interface/web/themes/default-304/icons/x16/films_pencil.png deleted file mode 100644 index 03ab1bd2e0191509c47b22a38a0532c100c3999f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007GNkl<ZILn2Q zQAkr^6vw~Y9;25%CMJ<)QcPnIGFwGiz3d@;>7^b<z6g#qU%ZfWW0r1YZq7SgZq&3{ z-Px$+V5m4Vmr**iVP-uEm3!*Jiuv~MJ2&sjSnR-$`+et}?{I#XO-@cSVq#(<55LcF zAPB<P|DZbcF?B$7bu~*Q5-OnJjZxp&Tl7C#g8N|_eGk&`@Gs@5PJQ_SJgE$c$KwPD zo_p$*7tu5P3ODY)#C2a1SHy^tS9^90Aapt%i^XE<2ID<L^XTwC$E{!zb}5dFEu%`F z>eN@z*I+P!;OA^j?OFK!eguLe@Qx(W=9#8^A{vc?DC%2QR`!$Xk|cpKwm|USDay&R zjH13(M^D4;b}KaBUP5#4BK6LM!(k9beGl;g6fTzw?fzA?d6#iaqj{HYXh1|1!BiLW z>KjeN8D4-pG@JJ=KYRjRU0n(tQU=ao3TH}6KEr0iSY;&`d2DYmWi%S!S5#DFN=r+j z*XzkSccALHQny;I2t9rRd+&YZayi`Ncd4lfOm!hIdvFD<{mZ{y|M+f+d{w9866{xn zt=v};TCH}|VzIz%HqWt8D5P$Xx;gv_?Srcjhd$(edH&6}>?|U8YCw<sL?LyqPIG~8 zx0kbr1p)yOyzzCX?;~2A8CbfP6yJf!8uUkmRoSmo9!pkX+IfxDpRd!fe0V$_WdnX( zu??=n7F<V<ya9h~1M>JB9Ie84dOYAb2zuPz!q|=h+~b9f|51MY@-HTXu!$dQaCh!U z<K>fc^|g!<<@<KAzhn2dPa)7~5}q}j5=@G3f%pZE!V#gar7tu90000<MNUMnLSTZu CM>v`Q diff --git a/interface/web/themes/default-304/icons/x16/films_plus.png b/interface/web/themes/default-304/icons/x16/films_plus.png deleted file mode 100644 index 2bf37576ff8e49123ced7cef000920f38481ad36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006wNkl<ZILnQX z-%C?r7{{MoR2Ma|TVX6JK~ZM0n^>(V=pP88>ro5_N)8bmq)jrLLvwST;mIwTGOObn zG#ZS}nw3`6Q5(bT$3+;3LEv2!-F$nWH_u8+)(an=bH4AFhxbE;LV=ikK3_rn&kA5N znNr)q_uM06K}$;u<#IU#@DasyH1!%Icb5>lvxwo_iwKL!Ip1@yvOt7#Nj95hz=-UA zL|Z^$;svgbKf|SH5$Ao=GB-L~7BDuOjWU^x@q!0|vFGTHJjP(Wh+ZX&bL~?y=X>t` z)7Rl}fDzxH4;?uTRaFs-Pa-l|L`V1$=ecw`4W_EE)oT69_llx`h;&ADXE@U|4OM*` z51&FP6q2-FUqb890(WPV$t0Mnz71jlpI|VEE_DSRkrH?3IZGrGAj5^dhNl)Wkkk=M zJgN8|Y&wp<zCKB}QpSzxciep$i^aeYdu+a7#_4pvsjsguTPzmX?RIwlcA)W?yzlAh z!O@fl`|q6qdCVJ}g~MTx;lf_M@nv{NO21rx`+oQNd|;@*_Q!>dPC5O4KU^-?9I?md z3+DSLKA>xK1-`MjfBL?1&v~)$mJM`sZ|Uq8x15qr^EeqU>~%T%9_<5Vv|U@;;%kjI z<K+68zaXVnC-&eYe3$*BtMJEH5zyA5X4auST$8!Ga1oZF2GC%Q-u%far(~!`CE@Xu zeME6>J1V|c_ULsVo4}I-W)e$?&u&58e_*Dzoho^D=yG~@$pt?FuGbxeBYrKu00000 LNkvXXu0mjf#C9e2 diff --git a/interface/web/themes/default-304/icons/x16/flag.png b/interface/web/themes/default-304/icons/x16/flag.png deleted file mode 100644 index 7d0a6ae0be887bdde4b7bb0fb453acc2decff2f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00070Nkl<ZILoDv zZAep57{{OIZWYCPj}b(H34SpGO9zUmO}%Z+v5E?FnlGSz@T-FCOJydJ6b8P`6%>|X zkZH*v(=@Xeq#9NjB&q4J3?!_K?8Tn`cT5t=_Mrnm&OP_s-|yT*B0~QIJ!2+67!5Kq zhd0cNhne>bGB^8}J6|#<V5SG48+gG&0fw9~#O!$=71jHrq-1KQv{br?o;+nv3KiG_ zx#DeDSl4u6;l$UXA{kFlmjP9k$;?dYVZL{t`SxAr_EzS~xq%IkOZ-OTt*NXm|96*5 zCbF|-&}Nh8@$uq|j+Q=?N#3QU$v3>ePSjIRl&S?*K+YdE7+O9$90R|~%4VjEi)F;& zkp9F(@j>#%#7KW!oD8L;$j`hyxkB{tJdt{lFmSKB4&1E`c)<;D4NPWa1WtVs8!NBP zW*NhuNPfOtAnL6pvUuRm1_%K{fDj-A2mwnYB43<N@msC(88Im+5J-=!u~&m{LInr` z%Oyl!+3f+@jc14!1ZcrPbEHD;IeO~M)zh6^{WfowzILqPh@6A$4xT(Wuv-h{fU>nr zZo5KP59k7cS^3kWD)HEr*3&!L><)@rz((`Nu82Q@wnO^uH=X+G58Y>^&aSj*a)pZh zzlrk$4f}Ma`n|fE@wRd~YgHOgshp(AYB<wBhZd-^DG8NUzU*&3DkoF9sXUo?q=piM zLkCu!NT$x=CYKyHQ}_NzI*4~hunw#SD}ezl153c7pcgnnTWnIp>F}{6>eFVdw}MCz m0XBn;U_Dp^mV>21Px%c;`Z?fGt_R})0000<MNUMnLSTYw4=erv diff --git a/interface/web/themes/default-304/icons/x16/flag_arrow.png b/interface/web/themes/default-304/icons/x16/flag_arrow.png deleted file mode 100644 index 06e94a8776270e9f23401892f911fb96ad098538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmV<P0u23$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008INkl<ZILoDv zdq~q!6vxlmX8))?D8z^Y6Qs}#OJ|x*n>x014Wq=|d<`_n{s>Ys2})Cwf-v&6Wt663 zk!gvPS=zD((wwFkD9zXK5lC1W*~3ofH+=pP{?UaG=bn4-_jB(BB7*+`-XVgG8JS~v z2}6jh1`(sIh;<gkmiLG<uJDR6F^$Z>1ju380HX1uk5BurjEw2o>}+ZUFn1t^tR(Q_ z@Z~W#x7L}|)XDE@X*3ZNL;VT`P3d&hhWO$o;*;ly%?*eJO9h)aoMCfuc|08#XZx9% zNs|c)WQ~ZR?w}yD`1(?pR7&HKk@SPt?*p_|0E7#I)f`S9adN8vtkLxU$;p|WNl&L? zjfQ%IgUP}ni=Q9$1_shVSQ!1*>!}*xbs2!-7VzMI8J_arnwUoB0dtR;ijB43+7l2! zALMcx<(E)$GTj7dF9A>*IXf=^761!?1;7GefwG1r-?Un?sZ{ipWt5Ua9C};Cd&PWa zB>}KNd7CADYPCIF%JZykdzH}{^$>hx0`?RRg7?Ml<$^j-5i}=Cpe0EH&ypm&8sj7- zqgChVI)_=Hl$DJeIBe#sTM#62FlRkNsagbgqQ!Q>eE7?oLNcmF4X0zI@`I_B!mVb* zD3MV8uMOzz0%08RSQIqHOLjlhN{T+2u8=`3s#m2O%zV&}W5Qjtw$@4oBSb>KBezSp zOi*=LEUh>sE}m%0qpK=W%_Rkf?5i9e%O4`r_Yg&QE|S(q<bI~jydWry5XlNuSZQlG zPx;|kn-_}vx9`{q8&5nkxE^mb3kWapFSk;Zg-Gam&;9~2vo<#rS_W$~>4F?gM?B#u zuemTAn03q=#>rV*W$`i*Icuvs9K+AX^BM{Q2WE@H9gby%K$lRt_hvj94`wT~nQ@f_ loho<G7&|3_C-rkV(O=mwm2><wgGT@W002ovPDHLkV1lj6S26$q diff --git a/interface/web/themes/default-304/icons/x16/flag_exclamation.png b/interface/web/themes/default-304/icons/x16/flag_exclamation.png deleted file mode 100644 index 18a242fc040d605e843fc871aa9096ff8be2fe0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmV+%1LOROP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008xNkl<ZILoDy zSxD4T6o=0l$LPT#h<qsm5h5}oa{(9J*K8Py3{$6FGJI8B2;7$l!a#G^G)=>OEtkej zb6f{aG&T3J)EH$nB`fuG{zH}p(nA+M4)<Js-#r&D5E1+j(2oczX67f;JD5V;Gl_V9 z9I;%9C?7(!;R<h<7N(ZjO@JJ>nLtcmFgEV|9ul&;85Kp%06o2kcK;Hb<naBE1_sUR z0RieSfq^vd<wc_|E~N4GrB=k(ZHNu85F4uz6L$&@b2vn$um56ICR2S23nTT_t2FN6 zL2s?CNoi_IedgvgckUd0<$f7JYaW2JAlT1gzZpHfie;&EbSoxib3G`CrlnFEw6!HA zhm>Y!G-zo_6HZRFapML(1!&I%aCr>8_+4pD{I+_gmZ@Y)7>&2L_SOLl3mS89pbtC= z`T0=}KxYboTRLaA1;7Ge0k8mA04#7TV#%7152@VU=`+jJ(RL({#HEH{46pP?sAlSz z-2}h_w<jzakw|Fk&P{3x6E7~$rmXbV=;n4;;a&y={t%QKiJ<YC806Q*@bbF&Os!0u z@}VG{imh;LxY2cTW38CRx}Cc^Do~;*M-YH(9E>@LkSY<uvr9T!!FG5>kwh6%QO(ON zQS<WLJ&mWQCuwFQH0`CLthQnlGoW2(kNp<ZUlE&B`G}L3S{_iEL{w22jFJ8F(~9NU zyZmo~=7#;L=eeQcRS`Ni7yczExTs^EcR}aTe0>}}bQcw+$k4tiA5*7>Wa@VVu2fqS zL<9YH)Zb~P7Wxf&h`$6$9wM7Wcg$B+M^J(@mc}`veO)$Mw3Z!GOpQ3u_@Ie)0-=r% zno>*2K80{D<aL+>v5p|0EDfV*2Was$g3H{~FG<GSkq*O83-3?R!su~YTMX4!ff2=# zg~~L{6a>1=Q5QqF9cc%BLgoD_#whR><fq4gG9wmxGUK2-D-OD{;-ND;9y)RoKoRN> aNk0IYQMbB4+|rr=0000<MNUMnLSTY#a9|w( diff --git a/interface/web/themes/default-304/icons/x16/flag_minus.png b/interface/web/themes/default-304/icons/x16/flag_minus.png deleted file mode 100644 index e00958a5aa6d415d5e24cb27d159af76ef19e26d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007MNkl<ZILoDv zZAep57{{OIZWYCPj}b(H34SpGO9zUmO<h|$Mp0qDE6hIlRYClc*^(#<1*gt}!kSrR zS|X&DX7++)!wQ2WH650Lgq5Ma*wg=xSvm+mbl}Im=iKxAoqI?`=zpN+%;W`QenuDY zmU;OI^Zp^`CJ%GxE9MwH=@IA#t>9k)h8#1@T>Bv`toKJz(ezwtsdN$bJ!6hrDzF3c znRh`!U9<W5lQRVcGLe!ZgC>(qrKd{|^Mi-X?f02GTA0fh2DU&h^6K?>rZY0U-;0Z7 zGAm1ll9J>_bhLQF!=>L~koU>S@(t@ZiF)dY64k&O$o4UvuKAPAHu%fon42vulu?^a z24Z8y1IZH+Ap=oSGMtbgKXY@Xp6KxfBGV<pz`a~|akn<m3T}ZLU@A4$ck0W?NO@y4 z$~gW+>~^_G)LTttu7x`vAOr{jLVyq;1k4SHd`(Leuf-x?5R<$-f%MdgZ&lc{RDcjL zUq<A$)#{UL@D9<80G$W823-vdG=(bEk*%f994+0;(e7%^&{mJTj|qf61k9@F2G{-g z0@=W^k*UV2(6z%FUtnJT{G?K9txAj2z{dIo;-Y{$_J#Znv}I~{-%isyKX#uJmsM## zyVobXu(>Y~b$wC5eNbblJD{nWXe*Nni_&n~#BmkD_=e3hnVAxZy8b6nnWV&&Tlk8% zr9@68a${LM?@5H5pk5Itm0)uq4*wr$z`B$1)H%{vEGLZAeJGTUU`-D;f%RZ5(1BH8 z1z6_ynEaD%reHdHJdXO+C+0grC<p=D!B(&tYyhjlO24Q41~+kCBSAB<8vp<R07*qo IM6N<$f)+qJ<^TWy diff --git a/interface/web/themes/default-304/icons/x16/flag_pencil.png b/interface/web/themes/default-304/icons/x16/flag_pencil.png deleted file mode 100644 index 2d2c67a32660d824ddd75fc784a9638669be42d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmV<50wDc~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007}Nkl<ZILoDw zdq~q!6oAj!R;{p%1tSasEreJYmWqn$oOA5q7}W~%kq^)UgCG>l(9BenKuk0r8J1-! zWooiWt=Y5;sg@N6N@_YZ0|_f*_OR2LEHXv<qYEFudoO(7@7@bU1pfoPKm;2z=45mM zZxL6HAnqALY_cMnUn2(d7alPd#>6ZaK$e4t5v$&Nd-r}%PoJ5~$)Qewr_T`O{|anp z`Rs(dd*^IQ%9K4dl_n!2X;7u2>6jSmM(lcs*!}>qqZP4uVPF%>={BkK?o4c~?OR3$ zO~u90kWNQ0gM!HF<3oLZe)KLPg1++pEr9M?fN)1(9m`2$E-uX<4Tiy=xw&(*X=yZS zFi?L;2w7RO`ub9TU?2@EmGmPqk*)#sR0F6k0S~@c<vqSz8)ITxn48RWRMh-mUj+ov z8-;?#`6QH-L^S}tHxSj&`P99RH{bwp05|{~01f~L)b$+s5*<x8jfOsRjFOY73gAhe zRI0uxlLhbtH}&v?E*Ag}sIPEjK(C*dD|lYB4b?`YaqBUE|4hoxrWQoYUx6l>06OAD zU``Oh{RGiYQ>>_byzUfTVEHo3?X?)9)oPF0?RHYRxfStsR1nW%?goSky#N{x2<HR8 z<xh`GsY)+st&Bs3LvAidlYQa@d3bnaN+c4mYH$v%=bu2^A<?ee(W0^smLjUu3z`?p zWm#y}E5xC$uCA~oP-hhS)$SFZpKQyga~eT?i4o<C<-+5j)XBvl7K;HE21<2;;9?D4 zwY6qbK{z(%hhgaTEbv?`EB#@~5HjoY!oWPzm_cV0VA(H&gS;m#Jc0!@Ge9LLu`4D5 z47|67S;eeydI-+NX4Murd|D2DjxVph7#Tx}TD-G+2kztfMn=M{WmY>q!7tTfbmyts Rp4<Qc002ovPDHLkV1i9QM>GHc diff --git a/interface/web/themes/default-304/icons/x16/flag_plus.png b/interface/web/themes/default-304/icons/x16/flag_plus.png deleted file mode 100644 index 560a99523420b6ef4e5753b9342b2aea2b67de2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007@Nkl<ZILoDy zZAepL6vxlGn?^8}sYw(CCfJ8bV5y+k)amAyj+JDX?@F^k2m%G$m&{C}G7Nm1DWz#B z<Vy`9v$SO|NOM_Xkff%=G!n5gvKKp@yIffie&~T8=eg&e|L@-Ca)F58e}E^5;9w?} z7+=OKME5boJtK(icEq0Nh)S+-pRqEX%)bQ4VdW@d&6~i${;vfE^NU4A)C*u6K#W{T z5WwLxuYG-c7jkoFKIP@nbW#!xYcw>Mno50$ckdzIyo1<nK`dJ?*vR1mhmX&V`Ls00 z7n6x*GBRi+E{>jthm$=hhz3JKXevIQK6AefpsxWyEehluHcrT79q$Z=;qS%8iwpVr zG;T1^P(%dTIb;tGrlGJf8jXpeZ`s*&1>iv~faVhL;&YjA@!7hVPUaeOm6=OUc0To4 zXehl@sc4elgp5YI2+&^zpsnGoO8_hY761!?1;7GrGfO_Eq>w|WqYo^joE+lNqYA!P z$ulbnfCbviEP0{VJHyqyKcaBg`WJctw5;O+Z-6?_KLzay0lG7#(32&F+gZ}>ooUjl z$);m;fx|4&a?s4!oYf`B<Y2KELbYCimVFYZz!iS~u$*f2f+aWIUA6V79H7zLc3?K2 z#0vFZKLz62<^NmIl`h?JJw;kEYduG1z0gq_iz=w~H1n`cB=Kzyx%STfazWExNk~J2 zq;k5egwE@P=F=LCR3BaqP~l;Vno6L*5&ORc<#B?tOoxpQOCg<7V{1t?MydVySB+f- zP%1aWS-DLlU}7h^_Rc;p3FC1x8hXZBO>{y9)<gyD=bjJ4UkcVTYZw_6$?O}(6vTC4 zDTkuKjoGa6gM-H-VNk4my^T>Y{>&C;6SE$6yVb)Xx5r%TmU6-m8}x0e*#k!>00000 LNkvXXu0mjf-AGY* diff --git a/interface/web/themes/default-304/icons/x16/folder.png b/interface/web/themes/default-304/icons/x16/folder.png deleted file mode 100644 index 08dbc875641c0f02557d1025c1916c3484ba9f54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004fNkl<ZILnQb zKWkJ$6vcmY=RJsvAP9<xs7SE3@k`iQYbh2sVxxkj^aG@^vQ$VF8xg-mFm;f1V<DoX ziJQ%4-<*3b-o{;IUv>u$!~D62-?_u2y-fokB_06RS#5le;5|SU)13%z+<x@oHPYFo zIkWfn{;Shv<?-*xC=JmxXV#~>#sixf_{_j1VhKSq!+p*`GlLu}7+{8+yvV>p!c~^k z8|or(HK;7>L4}+g0RdEH-k=CC-30Zy9>2fsQ`!i3BG@%KOqD|g?~vupufaYparb3; zF6W^KR7LXy4c-yK%{V&z!?pFBj3yI`+D85tp`eZkW*MoCI2?~pV^C?HKm}I^fik7E zagI(-(3HTw44^m^r)r;Zu|h)A`SIWq#anuN@y^-lCypm+Exf(3P%g&fG2!CiV8rnx zt?l#^2J|+zbop?^c}qrJ)eB|G7!HS6GM;_Bu>E<L?Tsz<5^xc?`t)9YvVMhItNi7! gKk09N(i`B%Un<NQ(N~H==>Px#07*qoM6N<$f~IQA761SM diff --git a/interface/web/themes/default-304/icons/x16/folder__arrow.png b/interface/web/themes/default-304/icons/x16/folder__arrow.png deleted file mode 100644 index ada7b23ece60581afe13de082b7451098459e7bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0<ZmvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006PNkl<ZILnQa zO-R&17{-79nZLPOR$>`RsR;#zf+7+`UiyNFh`Q!cLOSK42s%b|EfFF#3d*1e4O9qH zp+gcu;6Wu9qqW43$_RJ0U3cDhI;^Q+rUTDmW_W)*&&(4<?-~GtfQvve8(Uwzrwt(V ziznVwa-hEB79#&2wU%h>`5S+?q57pOgG=Mn>Hp3LSy`yZECX~Ipd$En90bOox&k1} z0P8mZz!*fa{{k2<f{I&b-XLo^P)Q?hy*CIE#d;4O2;EA66V$EkAS)-A@1MtTnFy8M zGhjqvQPzt?*O0N6Z?Q2{gqrK_nkaSZ!F17p6L5lU`dG=8fm8HN?L}RBmF8yS<QEn& zzp#K4tP?QZwt?pChd9L!{m9{P?Ll6|_VIdR58~XC)Hy^l5#z}uPO(lQ^s4tqOjY&G zP2I(*p+R(W9yQ0Rc-EO9ol0`D=qms!7Uwc?=29s{GG7^PFUdc9=4kQmXuN`igEY`T z1EnWwX?vOA_^w!{>LSQuPcFrFa#aZd!qIobop<^Nt9JyGrFps81zLWDqKYy;Jbq5y zp{b=}c@>h$BwmG?nR$LM1d-u!2q&9QHv(I3U$*yJ^}&UBX&KW`9#LOC%eno(fUHb` z0z)E^zyyZIu5InFqO`a4NNxy3fWm<o(~|dg{Abhn*78W-*j(?MiKo4*yD;*;gV8Cb eTYBUZ5cva4x<5(c_atfn0000<MNUMnLSTY=>JOs; diff --git a/interface/web/themes/default-304/icons/x16/folder__exclamation.png b/interface/web/themes/default-304/icons/x16/folder__exclamation.png deleted file mode 100644 index ce288bc15145e4784fe508c40a40a7f13f25b555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006TNkl<ZILnQa zyK7WY5Qo2W?!9hy*=!Q>P$ViLk`#+*6SVUW(8j_-w6Ks=HWt1RODn51HrfheAU09_ z2dqR4C?SLplYlYAY#w{>CU^JFoMVxvuOtV43}=Sl$IO{yCWkBl#&8`t$>GkN_q+rM z{Z__%PW9b-^90rXtwF%#iz|<|uc7lhC5vSEEZf&_q6p`)y8yQfaH{wNIxyDa+#Z1L z0s?;s0M??8;9mgiRdFf@_$~Us4xDDF9P|bu>Il3C4}`J@uu}QJ+RA5&#WF3W^M9G6 ze1V_eW|7Si&Uw$6RR`)o4Y{N`L3jB!>&X-<DNbcaHV9apnZ>Cx@IdaV<A(EK6;Qwz z>B+bBk;^yJ)Y3~FkK-i!O|@!FTUR^ljRv9wqF`;m$M*ZsmpEPOEOYJVYnnUySzG&p zN&^)^MQ|dhDo%trO%X>R4s0eM%Ee-5x!uVs!^6XDB;WD&2yr}x(`-wE$mTe;dL2~) zRj^rx5#efU_nFrDm5;m~y~|R40$<9py!sWV%Jv7-tvEQ-iMY)LSP?Gd3LR%nZXtKX zE^+DdQwm{Bp-@Gsk|c9@RlHNuG{rlmQdwuCVVXWo8*IJ7VAt_dZ{99YjB3;>4=F}9 zicvz_QP1M?7*QBujU`DEtg+k~Z5eq##>nGWS}^wqdERq^fe>@dK<>}oyVS(#4>P_u iH?_d@&^vtw%>M#mM?SRW%D6iK0000<MNUMnLSTYQsS}m} diff --git a/interface/web/themes/default-304/icons/x16/folder__minus.png b/interface/web/themes/default-304/icons/x16/folder__minus.png deleted file mode 100644 index 0f7b0fdf74975f12e6236f8cfa4af0ae5693d0c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmV<Q0So?#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005INkl<ZILnQb zJ!@1!6o#Lfxhop{hz37mAc}~ZPFV6M1dCXzB#l~VAt@9gwiY(RHi{?+0V^RA2tiP> zu@VF;i$%;vL_`h9x`{V?=bU4)H`!IZyE|}-nc+P1zK3^Qwc-JAj&r~${jE=CJO)TC zKQZIbu?tUcA=14y1gZ}wW;V8o+UAufW>}VW?RTXTYWOxl+W-~8dMI$-quK$GHXv9Z z0K7+(@IQbz5maK2evcF>P|1+kYX%9T1T!!oiJgEbXe?Gx+BU%VrDbBv!bvmUc~QtK zm_)Rod<cB2Eu$ig--y>mIj;u(=Sw3BL?LL*=vJ%sU+msD#9FgS6hah8>aUFE66~CE zL1RP;EO;LfX<2Nf>4pswgZpXC%2~xmUq88nS!*ae#zq*MIlT!`3B=g4v%0>HNDin& zd1`X9{O^nNZ=Q3!BNHZq<T<%i+sid20Z4wp+uO6VY#HS6;PA+h<_h+o82&3%rb3#g zm<lT^Yy57yt?xfWaucS3?T^ledlMJ0oGHqIcb-P0fp?zig<W&cs?0rjAp;KB101}1 qDqKE#fFu3<<qu!^SXq?2z?VNr2o?FV#*?`K0000<MNUMnLSTY%P1mjf diff --git a/interface/web/themes/default-304/icons/x16/folder__pencil.png b/interface/web/themes/default-304/icons/x16/folder__pencil.png deleted file mode 100644 index 6f974e1c3d836779df9e4f9ce8894da216fa19b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ANkl<ZILnQb zPe{~37>1vjS<6Z&HN^xq78EZ*5PPt2BZ!J9Q0P|l2SPgLMTD-^ISE9nYmg*%P$EJ) zb|~;x$rids)Z!*BxvQ(c`M&AkFO4#F;ANO^_#VD@c*kT0EC9xE5ol(6>vIS^21tas z5&|u4*Pq=%Wb;<%$UN%4_4}C6uy$qf5h02;?Kc$_Xuz%mbRD1~ge@j8)}s0cK-K{+ zYy*I`h~hQ^*dT(6-=g0l|C>N1Li|>5kU$g{0tCQ%g;-9#px&e2Q=XjW$BiM1ucy{( zu3`uInOVHzByd<1tSH2CK|Cs+++2~jnLLdhU3|DVj*7=R$6R(66(QB{`$V~<0jw8@ z<<v(M3K=Hf<w)Ng<U#%ojXft&AE7>?^mBpg`dSuOR`7!J@|T4|;Un4XE6$(W#r@k? zICQd|np6^rEr_gITqu|Eit`G#6arceQc2VF%mk@)H)A8ioa(5ewRs;ZQ7n)5s}@Vk z%ZT7az%H3Us0qiH_Jkv;&MwBDKA|mnj05#esK}av2omo-**d(E@VXl1w#5>Cr!Vw3 zjgJh|dhjR>wJrYyDyUE{mkBD&&o8pHVk+N%fyB4(=5lY})Y+lC?fG=)wYrA=EgJ{O zSc=6W)>wMS_l~~EF#2#pb{imEJ!4*0?=%a^T2r;1zx*l3^uTi&1it<PmfuCe<dylm P00000NkvXXu0mjf%6<#; diff --git a/interface/web/themes/default-304/icons/x16/folder__plus.png b/interface/web/themes/default-304/icons/x16/folder__plus.png deleted file mode 100644 index 152eecbbb856cd947c968744aa705e78ba69cb61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005rNkl<ZILnQa zv1?ON6vlt=z86W`pcrkeMQjIga7m%K=%O9$;-GG#bQ1R<is0bnZkLK!5QnaHkx-%1 zKR^WqTQP{HA}ZPj8q=D*+;fgYQd4P@^uihLy`0}U-^UjeCLI7lz!l&qyE|XZm;s2a z`C`V<@oP`-A=0@u3@J=syt8?Y)c$=rd>yOTJN5^O1ZubzKwAJ6!Mbb^IEU&MfV2Ri z?E-*vh!XAua3+F^@6zv(b{nYF5#P;&2vI^aFd*_<0bWqweuG3$FTXx7;~Nr2%y{EO zp;@7cN86MOLw**QQ4vnw_P0d2ss_<?Uy@V^OFfD4(&7WM$wS;fd~Vxxb&mD&Z;l)r zW+RUA(l9c5yf?|75Yk5G{ONICF65DZzk_)pA`OX^YIRcv4&z}gydu_MP1Yb5#@;_6 zSDZtozNI|gH{`6>YKRbuKtxSP&t4iE1z7Pbq|clH;O+Bw=wK@oCW16`a=qBkO(g<| zsOsy5nRy1ph7VpIIpFf&0m!B@|Aop_s8*|(3ahId{E36)(pQMMQO*G=yW97nBqcI6 z<Hf0o?H&Y<N~MAe9Jy!vX6FjbKAM-_07wIa`!7UOiGd(H1m%fX7dwUN;}1Sf=4A@_ Z_7`{r6Ttq}ImG|~002ovPDHLkV1g$&@a6yj diff --git a/interface/web/themes/default-304/icons/x16/folder_open.png b/interface/web/themes/default-304/icons/x16/folder_open.png deleted file mode 100644 index 06452a8e747536953f66aba41f92409ed5c38a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006;Nkl<ZILnQb zJ7`ov6o$W<d+(a4YnGTqg(wLY1`81(J{n643qi5d!ot>0QG$(NEoft7CtCObNuz?; z*#wM%REfrjiOC|aYuLESX3jZdu{XO(DhIw|9_K&jKQrT|?|T58;}URy{~O<9<Ox6; z^OYDG7`XW0?pk$@Q2R+%?4!`tPgdNE^GQ22Ntk|g{`UGbRcmee!p?nU+xHMLLT!=N z$}Gz>A1EC@hjXr3X_ldeZw0AAjyDx-twCH1WF5T}2TrlFvdUulH`PBiOa)UxtsS?q zf+VUERhyOo=Nz@#U$%$9atIVVGrV)C(ejka76DUfd-9%oy}>pK0H_3_bBK||2r)t` z+7>VkXnwe<;0Ph0xu{A2?+_&cj>gD@7lWMCL@|*KC?N<ILW>xL;ahT3jLW*Uf|xf6 zz$Xc{N|_K8({&4LIPX|mSy``QlR#<`u-t<8o{9I*={a~36`@c_PziXSP_5SyB?a)G zW<eB0NlgUJF%g0&>9!&!fzpl)lR%Wf)vvn|Z6^0O9vkDc&=6N>-gC$iL=-b=lG`&= zDwR47afR_&@IdFtQ|n%;vx^upH7tJ*79mRtoA5ZUzwUbRW`dU^PpvZrI)LtvUn%#! zdo_9J$npJM-F+n&BlF)r|C*S*Hwn;Fq_N(tFJ;OP-|95bkpfkqI<*k59h(_DxA<l3 zOsThjXmDtFP>q>8&-BXa!@hFiglh>*EyQ-`H~vwJjEXV3@MHeS{M`ImGkSpvw6kv= Z{{RlZdz9hYB$xmI002ovPDHLkV1j0&9P$7F diff --git a/interface/web/themes/default-304/icons/x16/folder_open_document.png b/interface/web/themes/default-304/icons/x16/folder_open_document.png deleted file mode 100644 index f3224d33d5e7dccd2eae74d555a90ba1cf4caa5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00072Nkl<ZILnQb zPe@cz6vlt&-20yYEyN)UDWwDn3R)D|GAJTM2--x@s#W_o(XxHiDkx|Xwg`eKa3w7x z7imzqC`czK6Dmt*)Oo%8r^UR{6oL+Xi+e8T<99#qkq>ti01++&`}x2693$fZHWr;2 z85p>D_tx*93*^;rBwZ!aUHv3oeTbT^QDgY<;KI%3(fY7?rD^A0lJ-4B0{Q9^iwpBq zzrP|oFa}72)EMe^sCO|vLI`2ILGX^4=Kv&ay&O2akNKHtr28bMrG<{pPRivnbLq&T zkL_oMa_2s(4^YTN?`bMHN62%kt1GxH<JXTLtgWq4tJS!2_2Fpl+-YD)U4TL+dQb3f zQ_*|s8yh6X(3T{$Sj+PAGUF2y9O>=7_i}P_)H=TvPw+Y3<y(QN5WL5TKw&a+;slv< zbaZquRW8@9+seQO*FbNUsKGmjszL~)*8b%!WLYNL2x5T_pvF*JS;6~&ihwFcWYa{A z;r9*$8(dB(o}j9{pPHiY_%&3O)Y@$%s!En+qBC>gJUEXH&fyCM=WyQB-g6KIN~ID; z1T9FcD)o9@^!lT~^c-YP(nk7uA&2(?5kZ?OhE)}X1_97^<8kO&S*M#A2|f^tzu>(` zMG%q3;9n*p!dkVOD$ok_y!ph^>&a*D)>nW2N^FY6i1WTdpo*$ujlmj2VlCDfzE&!2 z(oFE&G3C-J84HoKyG#AUgTu!MpT3yzx8Dvt(bm>=F~;p&$xy2;*=>!;a~F8N_@#2R ovQRnSW$3HT&fW*|f2{S!AAfW^>PcIz9smFU07*qoM6N<$g0GJ`9smFU diff --git a/interface/web/themes/default-304/icons/x16/folder_open_document_music.png b/interface/web/themes/default-304/icons/x16/folder_open_document_music.png deleted file mode 100644 index 855299c23f21445ee6256032fab70db97dc545d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmV;>0x$iEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007)Nkl<ZILnQb zPiUM)7>A#E=i4uTHfh3=#9f=3L<|NY5s@10O{Jx@p&)n>p_hsW@hXCP6t6)~qJp4A zK@hb<pb!)Ug&a%@ZAwX?*){7Lh>0e<N%qS(?~I52@~48}z;l>)nBjSU%xjk47XXam zW#A$H-})^CW&om)RYG8R_{9(2J@{*lw7x;EyPvpckX&~WBlh^JwJd+~!aIlCNd3`~ z#9bwFoevQ3q&w@>*2>iX{Doxb3Se5M*3yhd`)ctx-uwF>@ahO@3P7%-kD<pNq`bI* zIrTKQt&MzF7nMqd)%cl5Ryxm*rp~R1ddRRrl|#I9_%x-yvyDp<{@&bVcXyXYqrufz zKAlRPdkz>C=OM!eRlK?*f-24ZeR9_F-co@b7qhjs#mww1<9&S}{xCN;6*)bQ$7_nZ z^f)jvcvY-v_5WG9m)D=1gpiWY=b5imnkNk+?=tlx6m<>}p;l8iDm7-7I%$g{#2At! zG2#?5Y&fA0fyVYWsva?ha@jF`xxkk{8#;11a@KN?B<5rbk#{LRYe7V~JwH$J>}!Y! z#nX8Xf@OFxCXN&lX&Ef89vMX5IW)sNhf}2z9_E{6PjRS+rA^`OXH%>(L?SesO(So7 z?pauc#F@CIpJq5zJ#T)u%8j)q>y^7aKLnGdfQTT_G5|W>`ob5s_c%oec=h<~FQ_Vm zvc<xWKk@40F=7lNf;9$X47>Gu90Bb>;n#bt56pdg>(Pm)&h!)pdQAv8RX(~lNdQWv z5&`fb5JW(PKdRLZbC}@8Cxn;InJYeUp|^i<Y-H^0$k*S`>h#UwucW<w&sgjJJ(9lB zSdZ>21g<;J_1f>%iRxPQQn#hpxO3-YApMWA-v0+U8hAC*ZO{1t0000<MNUMnLSTY7 CSy@>C diff --git a/interface/web/themes/default-304/icons/x16/folder_open_document_music_playlist.png b/interface/web/themes/default-304/icons/x16/folder_open_document_music_playlist.png deleted file mode 100644 index e2f17c32b0825334ca49ace3b8fc2029eaa6a5d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007~Nkl<ZILnQb zOK4PA7{`D2+(#14t8tP{-Wh37g!n)#M!PDslr{tkZ9xPVA_(s7Lb`M-K30N)LP!>Z zpcb+ULM<pFK0pXXn<kUoT(7Sg%*^QAoR^Eac_<Wm;I}y6;e7o6|8qX)*?9qg<8T=0 z=l`t*YncG>Y+A9F!NH#|oL(s|B1^CFo7xFldhwgGIKo}O>bg9;{L}BNTTh#{BM~%q z;cx21Vvx%*(c(O%H+M+}#sH_L)OD$PLzyTT#u)Qy1EUpIN&x(Z3<Ep5nScBUr+Gha zT^*Yn8_DPM%mpJ~KHv21kW}iq&<0Xmt2L__r7%+R@<owXO9|2JGKD2Wxm@PRu`8oe zsc(QGp$w$BR%?t_YgnxjBB8U><=j#eNu#DvC@?WK#c(Eb@%HresHgOLJVr~jlIwv9 zhf+yWd0q2)b+(nGTffG~Vy$KWNWQvJfoD`IeGN^0VCc#EM3Lrg7;!W5Y0gO6`#h2) zafH&4;@S=J!LnR@N2#ocUn%D26~FCmVe&7BN->}iX;zZN*=WHtN@7wALI`Fa+-LCM z34$-`$o6bzOJ_i?KcKr?BfOdd@9`WA_pdfkXr<ByF3T0kVxf<J<|NsH7VgYSj_<A# z#|CQ?s@19^PL3NM%|W7^peA3YDC>b0_3pQ4;6>=GR>wKkg9p_4wol8fqB;4W}ke z+q?HPV=YD-O!^l}l@+$gH$1%kC%@zbVZ1^ZE23Dj5GGVgrN9H~fwqVL5_e4Bc)D%p zSA8vQ9j%VF1U`(P7{LNvU0qnf*xC~!1TVs{!C6i4`#pj~2b?iu`L4CScYAL8zTEXc zru5k-gV#iT{d>oC)#oE=%H`Pmq+q$F47Z}CaA&v}{?O!-Ezitc0_1;;^@oq9z=OQZ SK=^?G0000<MNUMnLSTXk5??p~ diff --git a/interface/web/themes/default-304/icons/x16/folder_open_document_text.png b/interface/web/themes/default-304/icons/x16/folder_open_document_text.png deleted file mode 100644 index 5599a35d8ec93aeb789382e383a66e35b89b890e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007sNkl<ZILnQb zKWLLd7{-5h_kBr|v`s6q8d2MVRS_aMw5T`<iiik;iwI7xjxOTpE;<Pcf}(>Uh(f30 zD0c7<C=LqNq-hPP&A%@(@w<D^A&I4e;0w=i?{Uxl-UnXw@rDLKDb52s`M)Z8&jWzK z_dDJ*HFfspwO`d`;^sHPk<BEs+X+XuqO@6mY78ImoVhwU22TE5>BMlJFuetj5H~8U zE`Oo<{RQ30(}3!c8bc?T$*m>|h{#3*aTXuP0EDR=ll!*u<;`o<=s`>}NoIJMVzJ0l z;?S;7>0>jowV$*T=*xKL7)Y!|;+STmj_r1-{rEwv)gp=_E?m5ODz^40Fr%$NU&cF! zIQvK5If~^nODijUE*41!0c&e(JeZ%SkjveAzOZmAux>pbaWT%u>w#%SI-N$3kCPo6 zBNc`mnwz6*EtyP)#bU7&*!2tou|4!bDQ#%f>zGD^YPCw#Y9S(s2y?Tubh}-(fx!3C z0kknh^*X6kn#}k(*=&~F#01`ZM1;^7e*I+-h>el{2wH32FD_EsbR5@g5=9YVGKq-L zZnxPnG0`J<vjl~m0|SfekD#@|I>+R`BY5xGy=M<1LVk1<5y5Cpr_)jT@_pg;5_GLf z^wN*}vN$J{N+n9A617^5N~MBP3avF7dIUh~%0o%ryJSZ39&rMAymL6`I8rDe-jmPg zao!`|g9u6~TFquc14F>3SD&f8TzK-X-Kf^WAc688>l|wEqt*n*5Ew%k1O&$LwOmfA zL4qd^XwDs0r^R!8Z1eWL(|c#9A3vLS*WXS((nCXSWsLoMB_)a~!G?zCsTH2Cu9Wwe om&+$d3|pfQA8rHjKi2x^Z+kFn+GVm?p8x;=07*qoM6N<$f=2L3W&i*H diff --git a/interface/web/themes/default-304/icons/x16/folder_open_film.png b/interface/web/themes/default-304/icons/x16/folder_open_film.png deleted file mode 100644 index d5b9900d1cf9e737b56b66220b4874238141629a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007wNkl<ZILnQb zJ4n@09LGQB{2#u%*HZHlX1Q3D5#^9ei-b4`K^PVeEzT`9L^!oXLljLS1YJsUh>}3F zhFT)ZbSNw%dR&Qa4=}ym=Xo{U>x&3F@LkU1^ZS0!`5p1@iUdFiP6EyR--tWM&Ck0Z z;Jf0CbF{P^yLutNxPVIjAgHP(jBF#Qsz*p~?WpJRZsh3s?=6=A@Qqzvl3`^7LHSmU zvzTOphxaG=^yW2>KQ*oaq-1W|ow#zn{Q~f01Hc-MQwjkDWi|BlpJIG;iuPT71Yrqb zX$4Zi-1I@&)z!t+)YRei0M8kNGo}y;5JHenFO&9ixLlS}El7O%iFJs{$;m=hZJ{X7 z8G|)?Rn8c)=`{IFhFmJe{Cu3mw_iAi*WKNXF$Q0oH3!xxj8^ON3cyky3GqdapuB>3 zJcY5y@$vD$9Qalntk&yfKtNVGl$Df}l(N0Gf!2LTcJ}u6qP5=Wz!j|nNYCTzLY&0= z=iGie13=(=2r1cA+sfG3Sm7Dh0eq_!wirQ5$;8A963rLsXl}yuLrTgcIBS@_cbdMw zK1N4J@n=86-sTm6#^|C0>EUqbik*}Lm65vDN^etwSS(i9cP3_;`3N~J!ouyVqBQx8 z!elKvYsjbasBD&8`Zp@47#J8pYmEfT&fT(`m(py)IjphRVn0~tuz7(L9?@t82U@G? z+*3!@*XN7F!^0@0kU%N0`Q--^&mP@<m0n)_75E{-IfN9{G)CC6HA<wq3j7c)0#Z3A z2L}g9CX<MjT;2O6{hgxMI*vqZx3%qP>)0`J<4)7H3A+T?VsoyJp`oFMcs%}e1K{`} sfwqv>v|CG0Mp1t@W-bHjAKyCj2Q;Ev3E`{-A^-pY07*qoM6N<$f{hhdKL7v# diff --git a/interface/web/themes/default-304/icons/x16/folder_open_image.png b/interface/web/themes/default-304/icons/x16/folder_open_image.png deleted file mode 100644 index 4eb3967dd20e21bb8421e3b1e2922442199d5ee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmV<W0tNkvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008PNkl<ZI1vTG zOK8`1008jM?=jn^d$@FNQ}Y>_f{>umAks^Phe6;aJV_B<I(Dh34xPFsK^G53%n~G0 zA`wHvgHh3A=t0+VzH-ZnoBQkj+y382pHDIVSqX~5VLSx@0002Em9x>&fv?pWkh9I3 z4;}qvdG@weV@6xoS}S@sXzLnKlobF~W&GG{A6$6yLr}*Apj@$PP+R9ZS<;%HcK7xT zjr*4@Z5lxVimGz8>&U+8wrAhMR2>t5GQ}XbTA;0CjZHg;OpT2x`uFSX=+NEM1NQ7X zG*U3~{^;o2bxZ)N9HSf~$S8`!iJ#|P_%-S6cx?5W9>ZJd?%?3AY<X#^s6zr!<rt+H z0F-5EL+5`E4BfOG=v=+1uf4<51A{_J7MGTaIz#|fiY+m;04NLF`#Zh(!X~hOXvo>W z{?^k@NXcTeS=1o`s8fhi2mp$*GBf#&*~V!w@Wy?Q7w444qE;#_Hk)M~B7iE#AjJU6 zsxp6nQdza>>{=<uETrV0Ir3EH!1`dJ*(~Z10n{n9q|gFoS-O1bxXlNi7n={I#zP?` z&1TkkTnagBE-Vz~pOb`0i0TxA7=jpr6oQbubPes1p4g_lt4Av(yZT#R+16Cmwb=&` zs`A~hl0PO{3dM>PgA`j*Y)LU_%-(Wu;!C%#oHH?gO-RWvKb`c_r>DGgc;|07Cnu*$ zbi8*W^*vnBEoUhvDMmR)jrr*2<RjN7nyy`47IL<CYp;*y-aOUUxbgAS#fztFw4?9$ z>!$mE{O<BIyZ3GE>Fe(;a<+0{zm3D6+c?a+!9i7BJAeL%tE=vr{^DF5M|%PA>T{*n zhl`Pvz1+KY!;URG_HOz1`?K-rmF*|%_V$IMsshAEk7oL2E+3zm%Af{-l${C5nY;hq s*?s5sor9|igL7kJ$It>m;{gEv2S?ptPtjX#CIA2c07*qoM6N<$f<63s`v3p{ diff --git a/interface/web/themes/default-304/icons/x16/folder_shred.png b/interface/web/themes/default-304/icons/x16/folder_shred.png deleted file mode 100644 index 2208550e132e4eaaf6b2e4cefc6e2f8cf78c3dd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006BNkl<ZILnQY zUr1AN9L2A{-=p{#^ji2*NI`#~S6_VbxrY+$p%;77hhoXvbgmdVbG8Z9!w@ADNs1(L z^heWlHltxvb2K8-HoHy7T2m(K{q{S*`@3-I_Rxh7hkL%~oC{YYB5k#gY3aL6%Y<2z zp#48+`YiH5vklY<+_e3aw%!K_N~On6gpV9Pn6?I1LJWB769&<*G0G=yNi{Y{9Kc6b zb<BZO4+EVio|oyMFiQHoU+TX8&;fj8RmU7ib~E5VFbvwy4^wWoQ|exB&;fj8RmU7y z2rv-%U8&IC#t?m<@k-rYk2-*ltm>Ep@tX_;bHyT6MCjX;Tk6i&`wrkEt2*Yuw2y&M zM%O7D_fdAvC&T4TzXSNls*X7@*}=e>*IpJ`oAFTLqyJ|q-A8|;C)%^+OoWgVXh06U z@Gwct&F+;}L-b{$d9k=0q>cEsoL%9UKJ^lE0_4qsaTm9U7E-tA-Gj5St;GPP$1kSr z3Lkgmtd1NQY2y~dn@K;7xoRHeKXlQX@Tp0=!p9vst0M=ZSGdK%+Vs^Op-=RM4jO8! zd1hDm>ONp~<N%)5My^FJ^Ojiexh0_!Kjv@Hzf|2@ke81d5Pw6fu033J#Cx6x?_A=q zlA{;$(Ck~6VSmS6<c=aQdujl4hXlt2r-2BD8&0z8J<a?j6z|qea9rj2A5tPw#mZaU Q$N&HU07*qoM6N<$g6u&RIsgCw diff --git a/interface/web/themes/default-304/icons/x16/folder_small.png b/interface/web/themes/default-304/icons/x16/folder_small.png deleted file mode 100644 index 0f479877b277bbe25a5c3d5263123d5e621fbfd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmV-40n7f0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002{Nkl<ZILp<O zJxT;Y5QV=Ur&l)c3ZjX408e5jVkj7y2?iQ@1Oo*V6T!&DyNF<BqOhBcVo!HhceR1| z!>BvLL>5%?cs#zUqD(1;AyqN31_#t#;qG{D6IlGgdtV9{E4z7iK+Y_$ZeJat`h~ON z_H6y|PXv;wH3o{vhi0rr@^|lV0XBz#O8f*+MKV^Ec_7SOVocZ^JmOo#w`39AWI{~X zr0n!wAtr1JE$^)<^3pu9wl8}zvD7<45Jow8B>K1cOTjtEW780XQ7?guW^7ccO+{@g zj4IAKHf|Ph(TsZurq4WFo*Z0v^({`BR-AWr^Z$QgaKI}tlYHPqzi@W|0000<MNUMn GLSTYa2Y#mj diff --git a/interface/web/themes/default-304/icons/x16/folder_zipper.png b/interface/web/themes/default-304/icons/x16/folder_zipper.png deleted file mode 100644 index 874d076fd8a8404c5ce3268c31e464a158ad142f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00062Nkl<ZILlp- z-%FEW6vq$GyQ?m{=&z9QUkJMDrkgGTyNIBOf`pJpG8$8xy2Nb#a!AI=ia?79MmV|% zs`+EN(kyc<5mPqI*S9szrS9~64?8d73!k0mIp_O1?>3shWeDWsrpa<ud3?#V5Yai* zz5O~(>d|-mQKywRUNV=T3yDO6)9JKS?Flx6ta|jV&nO}OJ<PRVPX)-?Y?gz;px*<? zAgdnD_8R5duKSF4N<#t`6bc1dpgn*Lvg*-vk5M8!t50})B`IKm>$<W)djJ_^)uUX@ zDDB(DM_gTcAn5PM0__20kX4VeT}Fvkmj`)sp<jT!k-H)bv<LnblZ@<Sr=bZ8jYW;p z{daMIEBQMDz5!$`(q8rFATMXy7+FhW=DJ<*zQZUzn?LSzd9Ke#m*9-q(z~#*TdOhh z@aS#CC^swfarVC45LDJXW^<{_QvYmiG4k-}P1q>$^4DHo`_$>9OK`?)_Eodg70+Yj z;n8TwD0jV?7_WY86I9kaW}jbNl$tM<7<qWqeacX(RY<JcH<c#BKDq>F%%+CVOFc4P zW8~q<(|*#SkrpTEPIYiG6B1O`J7yn-PD?$Usxb2K@EouldU(MZ@p4gKn~eDQ|A9SY zHrjteDzayfI>+lS9ketwA9L>AKI6RJOCS)4?e76(;lTY5?k{#y|62^b00000NkvXX Hu0mjf0~-@z diff --git a/interface/web/themes/default-304/icons/x16/folders.png b/interface/web/themes/default-304/icons/x16/folders.png deleted file mode 100644 index f236e50c5dd18e075f427b6e74c9c59aec157e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005eNkl<ZILnQb zy=&A#5Qd-G-6LoaB`H)eiHcZ=_7;Nv0XBk#U?o^sq_BxtSXv1}>{E!CLYp)}Qj3~& zf)a#yNgzcM(2Ic!Ig**#wYW?8UA}bSW!c%Ccc0m1W$sl#1OQ5Dk0RU$201#GN?|-z zGa`@+l*0MT4=0}EesF1w%#Gc729WlyiGVo)-KMA>STD62o(WZhU1R}*aC7b31f@cd zj`!0$cpZQsf@LB=D*PYvuP<*nX1a^%-ZAjpHvJc}x#6ZrjA*NcWn#|s1k1E1X80k> zW|%4^XLM_u)t_~G&)vF^3y*?3xVH_m=^-*)jgm7f^#%IRo@VgwhkNP_C2O}3vng)- zTi8W5#kX3R88HgKH#RUQ1#>VbxhbyOU8*AY^j%|Z{xjBT>A`#->ZG6!>ZGiS?@<-G z@5T#S%?7GUcBRqSL``bR+Ao)K=hSKhkuGHSOtaY}AUv5m`EF*J*GYE_I+s|D9AX#p z@b~GZmGzm~+3EMxS80q+`bzq`2v-NBmVN&v#u&Sh&E?bZn2%Jpw8GQzd}@7@69J(X zYh4OR7xKp+yuC6Y%fOEQ2r%^cb{x5MhKoo2-TEqvqm%v;Sg7Xz0wz*nn$qrf?EnA( M07*qoM6N<$f(icgbpQYW diff --git a/interface/web/themes/default-304/icons/x16/folders_arrow.png b/interface/web/themes/default-304/icons/x16/folders_arrow.png deleted file mode 100644 index 720b84d47b833c19139035180e26806240cef659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006wNkl<ZILnRB zT}YEr9LMp~c`mxG%ZdoPjO^A*gk}&GLWQN6b<^90iuNLsWG_@(GSS@FtR*w1Go5qB zvUHgxnG~aF>1wsDu{q0LTs7A;Me^74e`>YOK_2*Wo`?TAhY$0pIP<E1N8f+`3&bk^ zQvsc2@efdLmDDLrT7gJs>cknHai@B~Bj&oyPa|x`-1v=@(TvWBv6SRDb-eG(z+Qy< z^ZpjL7h?89lhn^pD~4<MIWe|i^5=Uwm>Jbe&3<f#L&-0QG2$+WJZ9U0DgRac2sR+< zzlNt(Twz!6#f%ulAy$l-9L<7V+cD{@N5ree+um}xj9INu<h+y-gE+*B5tE~tzjF(s zUJcwmC-BW#gXr`$2F~+ZCQ>NH%)3U3m|TqPZI@x<Wi?)Pl_KJ*MIaQygR@-CL<Xgt z3g~d@&SM-jy~eFUE53Ww3FKg33H;Wb7`j=6@URjx`yB38@_JSwFJwd^-hP7vy7!QF z%YE}avdfr>XYEJu)gi~a?kH}b6dG8X{Dp3l!uBcm${^O4H>1GfLtPNqqkV*q-nIm? z(~yCFeLlht1&k#^Tjg#cgJl{=#;O9q0Vj~__*a=5$gZ{}kS%3=L~}^!rjBL{TE^IF zwyd~EmsYGF-+ac5^fCj|4L<C84#+A^XzI`<kWI&g7V*;ZxR#2sCBz}t#^cwq_93Lb zu|*|O<H<!^g>7qAE@H`RmB`T$YeU}Q(G@utC-V1Y4aKPQ$VuxLa0P>|I)-yn00000 LNkvXXu0mjf=&3Wo diff --git a/interface/web/themes/default-304/icons/x16/folders_exclamation.png b/interface/web/themes/default-304/icons/x16/folders_exclamation.png deleted file mode 100644 index c41051fd9255a393166bccb994eb554c3d9f426b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00071Nkl<ZILnQa zPe_zO7>A$vzHeRsteRSgl9~k`f)3H8Ls0j+1RaVl1wj#B4T8FLh`JQftwV$z%0rh5 zuSR7N6qOQdt3^<X?&qqz?zYYQ&U9E?*04VVKZcp%eRu|bX6kx?F#zCwWjBW7Kreq^ zU%cmTRC{9#I1k>lZQ#^{OQ>!<8iq{WI(z{j`u)uq5GBC=z+1cFyh$WbM^Fo>DjOg$ z>|cEM0AFJeHFnU{yBC1K7{n0*M4tasUU+_o2C-F5)ir>+3iMyfqJoOWgdw(6LL8xU zBm;3&4kG9u;zST@@y=n(KbZTNp=s-Ze&;z8sDf$*5YLbCIdg+}eheqJCW2bQJI8Eh zhK{aIdXGFlYL&jKf!HF2e46f^XDQ^<h%KUGao$lbl@PILxrB%ihK6jRfGANQ3Zg_S zxe4l9c95)3QQy+fa&BUsa<Y9Fi__1LwJ)8VZpSK7U=^&RE*HP1Wy>y(ow!eP`v6P1 zw|JGRa{In3l=3mwTAW(qxQG>#2*iOl(ibK-;dP0Tkr9f8uecy$WhK2%S=Eux=Ls;J z8*RP!BE#)SwtHiWW}v>Ui*LDCJbE}pw)_g3>&Rx`;AMAJdGP)Cm)WHklau53$;=U7 zd#JOK2z#40wQbg5hPq&xgNLp%J-G)WLvCReDSyRjH*s7<)I1%$r9(9pDFxrlobK#t zZEXnVNF`QTjn9)xtddF;Xxrjg%uiI6pL}3=XOH;?{7Nnwf9=U-KP?$ZR-l*Hwa}H# n%J9pJlbJc<o1>cky`?_^GwOPx_JN8`00000NkvXXu0mjfr8+Id diff --git a/interface/web/themes/default-304/icons/x16/folders_minus.png b/interface/web/themes/default-304/icons/x16/folders_minus.png deleted file mode 100644 index 435b57b4c96359c60215fd936a1ee314c43ef89e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005|Nkl<ZILnRB zT}V@59LMp$&$;M!U8YFTRT*^AO&8+Dx`>J(At6feD!Necg(8%U!g9)Dnqv-449fX7 z(GY9CBnfsALt&&j+NMlbsO7BFnr}${dj6+2&JGKG;0x!R|MNWOL%}9NA^YF>`QLk? ztZJVMc`xZN-~vrrcd;=D#0JtQXS^qn?t-Aq-ze@u?Ze($SK4^Sdt{WB{OO4pU!S~= z=)~1zs<#-sD=)NuN4qg&6Axr`VDh&&SFrQBU2Au>13s&GC?n<`h`c;<8Jpo2Y(?4- z4?o3Jy|8#K;t(-|Im}8BjqxlpbP*d1PQ*gZm>;_Xzw2!G`&v;(%wP_)5=3J>3lE$_ zJmf%N_!fT5+7RE~#$=6XAW7jYJ71n@L}LkZ$Zf{YkB>1oREC(p0gKTn-rg5>k_^te zx!8(dL3>Jia%8*|;lX@-cv%8<#tO4{52Mw>Ngi_sF@<^RoGm3I+3(83wEHH$`)YB@ z6UVDcrH#6XTHPl4>N%N>*Ew0q-W8nDsCx43^IS}{UxVtiz*VaBR2L|@)Iv19Ra69H zJts0Xs-E0`TP!(lC?2l-lG02>$LNt1)R}0_DgWv?ek566{%MV>C-+t;o$^qouER1i zF^5^}Q#C2^H$A!JymBEYJA;htsN^^jwEvYP8`dAJaCwx%t*)p50000<MNUMnLSTZI CO$k8& diff --git a/interface/web/themes/default-304/icons/x16/folders_pencil.png b/interface/web/themes/default-304/icons/x16/folders_pencil.png deleted file mode 100644 index 34007f81b37449fbd2b1c9f790e8fa4d1e1adb25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006;Nkl<ZILnRB zUr3Wt7{~Fm^Imk_ZO}yuQeJe^O(0#^MPvj<1z`pfWRN3QB$edWm^f?ZYHuplT2QT~ zn^{wvS|edy<l103ZM4mp&HO`dwbpcs<gfRf+E`<d2fpyWJm)!lNXS4*So{<F{`+4o z)%c&P*<F(R04r$VUBQwaNcI&@nz1{<LJx$b0yn7=2^-cIpB9YG*c~ZSko@r$b;e!C z5gR?0E#a=i+WaHlub2h?cB+;l8zz5!eFUpBCf?e@WB7EmS&A_3hRAcnl~|74K{{$g zDsm5=YgFsj(oKXh7>BVk#QfMSI&c6>pSq9?cVg<*MFh-yE$>>Wf-nZ-Fjj`hN)9S9 zU$F~u+a*qp^zB0`+=1ZG1$>`qM`~pSE)CTaiNeyZetE!&tcXVsr>+)ItKr&R!pUK4 zIetvG;lqFe$$%cyu^8T5r6Q3SEZy?-UHlA*nDr{qYid9`orY0SiO~HzPL4Y35wRb_ z_;WcDejUo)>lkUGT|{EA^o%#-mgB9p6zRD}+)!1)JFNPL95C;J*LoV?d@b1NNMZ1@ zU?dWQCC<J-3s?7czHGZ)jPapbPR%7xJS@YgsR{|77Up`PyXmM<M*3AUGSW(4xO#T* zWvf^O|H~RIdNrJyOMccsKX;rG9ISH(g-$|95wWO9iCvUM`LbafeElb|Fs9@&YA(6w zyzoR?+LF^|(soAHic}E2VlgHiClU8(vN38dS-xMWDBUU}`3H)_bn1GIFqYvJDof5g ZzX1v;f6<QbAY%Xk002ovPDHLkV1lEQC~p7& diff --git a/interface/web/themes/default-304/icons/x16/folders_plus.png b/interface/web/themes/default-304/icons/x16/folders_plus.png deleted file mode 100644 index df1ff71d4b222fd64f10bcd08174c161c6d7b757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006jNkl<ZILnRB zT}V@59LMp0&q0ESSluK-1SLf&YrE+p@nT)rD-^vDB|*p#NzkGfiVVYW)MDnwCQdVY znJtYbV_|QW;Y|#Mk>+Syv6_+9rp+}=k^FU@r&g!KARqX0&f)(*4<8C!8AWWr;_tt| zOXW`gr&7L4$_scQtLO|Sy+F#7J$c4=LfI||%LOm9vq;{-Z2VT%_>Aw!QC9M+M%FXd zcL0greSb>&4`XKZhUiDajX?`LCr5K8e}23h(<5!7nU6OSFthV=#JO`Ke|WG1-=fX< z9&1H9+JgQI%;Yz*`NSEV!&w=kIzEf}wqo*46H*ZeUOzgCplhT1c|EHp&fpx*$`IA@ zS=3X4bi|I({bTqtWI=jr3Vn5~fn*BLH2wanAgardBb^3Jyu5^AUo}#}2E0uq@U)iM zNM`WN#%J50_i0h~WD~xIZ6YN()>DP3cPCzSRU$cPhQU9Jhc&E;${H6Cr|7%1Fpi&q z&QplwutlUM2VKP&=q$&0pdQ-pH13^}T8XYKappQTpY$CC*c&g0&b>x-$ZHT(C3)z2 z5qjJ9BN;HkRVCf7*&`JZIWz-?(Opot?%HZWRg&)>XYcGrshf9XyW}9E6-1Ur&fJR& z<GPkrD2x?D+ng^t*uFtfmE?}2QoH<9o}$Haq~RRBEgyN&0_dzOG1gxv;#4KMa<jB$ y?Xr2KKFei}eSJmF$kK|O3I5D5mHj3Edwv2l=5LHSKO+4A0000<MNUMnLSTYi2_MM- diff --git a/interface/web/themes/default-304/icons/x16/folders_stack.png b/interface/web/themes/default-304/icons/x16/folders_stack.png deleted file mode 100644 index 146a8fb4589dc2162b0eaf9eae565e6da7b7e3b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmV<S0SW$zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005KNkl<ZI8T+2 z%PT~26vuy^yRc<zqx=DO7G!~?loCaEr7R?B#De6l$z)<YMij;)Ly;&Z8H(6U-o|4* zW6Jw6h8f25_?=t0*PT30eL8i1=XXAR*>)YUoqAy3y2vT`1(9~Yf0S?-pb)*oh_{3O z;cv9VQ5}%XTXkT)o)PhCDpiGhE*sxm{kUEO#hkALe>I;^CgaP68CUdB#`!$(XY=WJ zBHkai;erk-=c*uptp74QN8)jRA|E$<V$C)!WHZV^dFcA<x!Esrv%Mn%U3NWsd_J75 z06n7|l!vZAA9wmiZr&Zuz(Y$C9$a4HR4Eu3&q7o_ophnk*{b64$fPnm`l2z$_J-CX zFfyKlsG?=>UXy}{gBHBoYgU=px}z}6;z3IRv@o87(9;L^W~~C6ZI9*Q&3diEykd&P zUX5TbNfsg*&p{aO90t5z)hVFa#)wAha&vz!ICJ8KM#fku<2eYU+g^<q3l$1zwmOt0 z^$&A<rZAKi19ALwFeixVL|~M~wXDT6Td@L~Ee>QzU1gS4AmzDP(&E*8xdNI^n?$LT sIUyWUKFzWU;a3}s>B8tw_%l<z13RdJnm%V_)c^nh07*qoM6N<$f&&BOiU0rr diff --git a/interface/web/themes/default-304/icons/x16/funnel.png b/interface/web/themes/default-304/icons/x16/funnel.png deleted file mode 100644 index ebd8b556cfd260133aa84bc00a41e08fde52406f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005tNkl<ZILoDz zPfKE96o-$R_zz)lp_mXD$)p&;4EhBG7lPxr5NZ=dP&CkDVu)G<vuaa8Q6Z!RVOdNT zrWqzB63##j3c^U(YL>J5%{g%mZRSQW2cFCO!adLX-rwO80Qw&uAF)_0>i7HOMx!xK zM8Y`pQLEK1S}c}Dhr{vN<MGS|0)gpJC^W(E$DRw~?RFcjRtxod9kp5wrP2)!4hqO* zN+=Y*;r8|?8jWALzyA$>f9x-T+#r|BA)QVmkw{>5bqz~PU$DHq!s~6MQinJ>xqxzm zUO^-hArUm2O;josWV2a5J;RN=*xXF>`Vv=HKX7;V@F<8zqrDjfgFz7tNe0zw75RJ~ z$H!l>zMjO+&Jhc5aDCl?lEH8|9R8<(STH0Zmdj<Fo#n8xkwP+giem9Qln{L^pqB*P zPa+vF7B8{2wTJ!v0+cC?uz+48ka{a)lqo1<9AyEi3S2H1+3j}H>-E%CPXe3GMoy=b z+-^5{y<YP9e7ypddJ<TzR_b6jo5^4>yh<>u2o}1VJEbbnXfz$BL|`(R=A^MJpO*zv z{0|6|BH&zRo@Jvd&@pcqC)3Z&oS#>r)9GfFy<lVd)C6+O0P~J{&wOI$`BOe9dts0< bb_@Oh5hRmo5};*Y00000NkvXXu0mjfO#tc+ diff --git a/interface/web/themes/default-304/icons/x16/funnel_arrow.png b/interface/web/themes/default-304/icons/x16/funnel_arrow.png deleted file mode 100644 index 48589782aeef8f1318670694c77fbdcf84e58049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00074Nkl<ZILoDz zQAkr^6vsbZ3t<?shnWgN<Va)|WV%2qX)s7wYY+9}rKkrX4FVA=g&qn?eHcYSSkutd zRyhKhEy-nbYcjoVu3@6&76aE<PxaQ*zjMab9J6}pgWvt`f$#jjbI;)l0OEhhKCD)& z#b7Wr7ZnvX3n7>mqO-8Dut%fO^pup8bm{f_o3*vI*GwkURXT6A*=&N@5Hx2p8KhDv z#N%-+EiEAw3S(j-0FNhxK;RQ%v2`R8-;qxL1f9Q}C*TTvJ|Em}H=Ir<9FBhU_TGct z{*c~B;Bvjj)YJzk732yU8yf`+lF1|@kqEqAFWv5;#FrQva?|@P=H@<Qb@f|TV6j+4 zj-altjs+FmgJ?7gzu%9^$+s977{lo38xn@Gu#kY#gG#g6EH>CG5G1JJCeF{#V|v<$ z!9f?s#@-<qT!zxbDiVml2`FE%q$L=f#qjVejE@JPOrhFny(k*G--{FdX>s&HLL9vF zaa#ee13X5af-=TKRVUA86C0jn@&)DP<wB>^3AI`+wyaHoR;v}q9;d`{$JahemT8xA z1b<kYg38vX;)s2PZ<YJj0p5-G<I=wb9W2-<*%#@c%xEsWkegg<xSIqxuI^ft@&pA1 z1sk-ppnhQaNB0-tQVcj3`Az!@u>Xc%-nIhz2beY%Xis&9_OwjM3|C+rT!SqPa9n!D zlT(3;*iDoYWyJNFnJ82$RfiIn6*rA68hk*p^i1A${<%bwoF4E9_7aDQ8sZjln?B{V q64&ggZ*!{8JPPl$IV6$@7W@KS39<+GQ|Pe(0000<MNUMnLSTYTF)4Zg diff --git a/interface/web/themes/default-304/icons/x16/funnel_exclamation.png b/interface/web/themes/default-304/icons/x16/funnel_exclamation.png deleted file mode 100644 index 0549c609fa196fd15180f5e62534520fbd4bf0be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007sNkl<ZILoDz zT}V@57{}i;8x4k75RNjsNJSAZBAXErMI#Mi3@LAfpesplf+#98DJgIof)v<?t{kR= zZCEy4=2yeD<92j%81pN?7&bprP|%AY`1d}`$*j>$FZ|B)zVN)i^YA?9FaYd-h&&7i zgFZVuyF{f@l`zJLGR{4PLSa;^)kcj*^Ef>{y;7^y-qz`K*Ll97u&|I3Q9;Sd$_m2a zFlJ|G5ex?5_4?7->4wwkh1)%bK;RqZ<~Fdj^aDJ<^e+Kb;BvX(a5!MGSkTzmgqoUq z)YUcc{ae`WUFhxog6#@+3knJf7zsk55JpEw(bw0<-|plWtuUJ%d@sW1o5s}C_lQ8R z*Rx%M+}vCeq)`uKS;pYtAiBGIU^3az+WL_T{TLaU!*&lc^YZdolvn}df;4KPBuN+; zaG|-`4x6nX9?v+aiN%*QvZ^amnel$w4u1;xeMXWpk4HpHOFKF`+@LAcKTND1{vcR6 zS2-+7JOQl?8Y4}C#;7~9|Kx~6*}S>dv_w(r5L6sSL<A`*DJ(fTnJJY@7PEE)L+=Fr z%<x6u&n+var3*efi|qm<et%8zS45DMq^|YY6-^t9#`U72BCIbwSf{hwD(vC>Q&3KV z{Ih%8<o;vg#zF-pVsYXchMlS6XN#a4Xp18d1R=^z5<DqSkmkp(td0lr(doE_fP4<J z_w;ISi}3uDnJ31pfd2!;jh-$OY_AT4<|of%CYTecfZ|N>1YEX6vCAZ!iWMYq_Hhn! z4sq^uTQ5O&9o=01nuX=5Ol+;)jYMKnJiPq=h0qu)pb;G59OvY4s!EHQ^t6&qG*mH} oc=?F=UstoCH%8_m%(d*<FKKSfwdE=-9smFU07*qoM6N<$f|O)TBLDyZ diff --git a/interface/web/themes/default-304/icons/x16/funnel_minus.png b/interface/web/themes/default-304/icons/x16/funnel_minus.png deleted file mode 100644 index 2f446d71217792cc51f254acd8c570dbd0aad8bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006CNkl<ZILoDz z(QDFC6vvO6%pbmp4@wC=#KZ_ADD)o?d=N~09kJeo_7X&}v0#i^)b=piQw`Q&W0{l^ z43~{&!)Xp@o5-+Wgo2O^d+I5A`tBUL%Jy@MpbMY-yZ8Ri{oMOIhaUl;|Dn@GB9XAy z>y23~mKYHUBg_M%(Kv0jTBn^(=VQ0qJ>m2DMgxJsU5<}LqfrvNf>^uVMyu6Ay<SJH zRzs<@hqbi=GMN$zg|FD(|A9v17Y+~qfaCA<3FHR3Tn_1U8i_;#3kxqXGc$+T+2=fd zg;eT2Ha0#(-Qc7k6bg|Dn$0FEl?t-iET5j?jc>8MoaXU1c6Pqw;NWLR5Dtgwguw6j zi(pW4P_0&x&*!ne{t=6dNyOtHSh$DX-3C++E(e1_>T+B_EEtp|mdj;qZsxGGltME3 z3B}?!s3cxt0sT$D`$;4t#o{(rR^DNCwE$Ixt1KW9+~((;-A=D1`V@gQkCaiWpvriS z1r+so=$Xw%Z}_Fq6S!P1ayT4hHk;{K>j~_9+EY#IZR``A(RzYg0|R}V|3xsa1W)2b z^Bnv|kF56z3<g7&`y$XZZQ=z7{~jKO9$7#22K)~Q_e8*X8JpshCOKHol<o#5#>Sjy zE-+(TTUD4$rg1eF?990#?naqOT@IuK7n$qK4dx;9h(G0~nhTehPOXQO;0UW#aWW0r RK_mbG002ovPDHLkV1k~T3Zwu4 diff --git a/interface/web/themes/default-304/icons/x16/funnel_pencil.png b/interface/web/themes/default-304/icons/x16/funnel_pencil.png deleted file mode 100644 index 7c2d9b54516e0b3c3158f29f388ba38f6dbc5680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmV;H0%`q;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ANkl<ZILoDz zUr19?9LIlWX<gXEVuI2J5yPdX6(p0@OXkeMVl6=>@Kpv$BuG#hiUbh~NkL%`YPd`c z6-&0vKU0QtGKY$Y{gIe3Xox)p!RYDR?_6&(YxUBB&*gCL`F_sf_q&$>(Ep%5JRXm` zq@={FD2kVeB#q2nole)G*Xuj-^78Imt=2Z1&34P-a5V9LPjz)QNqz~uJ3Bi_CX<NA z<Jj2PKs367Kp>2Xi73M1_gG*5f~~D@*xvpD-hb^6fxJN|6oTLH$I#FadU|@%+4&e< zUEMr?iP6!wn3-9Cc7y!_m&-*`kVqu3y1I&BFvzD*aBvttpP%Q8SX%mw&CRc>!0mRc z;fF;<yMnT^GAYQHHCS6)!~Fa_CMT!S*EfQ}!FMcN!SeDJv>FuNu-RxTCx@a!>=O_R z@?{ZYu^8s&Lg?=w#mLAkB9RZ!ig?25bW(3|F(o*hNx*rMlEz465d#Bb7#|Nq>%z&p zD+N?rTPp=;<3fx@gecD>kfT7hQFcLV<7ro=nWkR|s;Q~TZ?fB4(cX?XLWER-*=(lV z++51e&Ze}nComd~YIw>g&U3-9r&1|YnM_^JiK=$Lrp#kc&~WvT8h+g^0;%L3SS*%S zmY(X7yZ#|)(F70D!%y49th++FU@#acqd;(FHEv2l#kqrh>EVuMs=QRL&|d{|@IN4F z4vY=sNxSZ2dbrX~bo^MBTJX!i2@WuanInvex&7){Bk=tb9<_*tIw#fhnvu!ccUqc2 ww%{mphACz4$=CH4MYyz3G-zuUMoG{A1hfu=@H2TXkN^Mx07*qoM6N<$f~1^4lK=n! diff --git a/interface/web/themes/default-304/icons/x16/funnel_plus.png b/interface/web/themes/default-304/icons/x16/funnel_plus.png deleted file mode 100644 index c2b772282c2fb51d6bad561ee202c0958c87d7d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006vNkl<ZILoDz z(Q8ss9LIkuHf3vwZAuE!!(>rL(9pLYLh?Z{F{r;Fqy`a1(O5935w%gH9wLNo;IQFJ z35Lr?v*9#{^G=iDf)NTrHZ}-)?CIO@+^$2nRSzBb-19q!^ZVR$e?Kk(p#MRB_<TOE z-EI%)bh-c$3Hq74YPEW#y}f<JY&Jiz*=$1&hvSaR<+{%2eSW{61Pwu8YikSjdL5NY z1?6%Xxm*Era~UKOIb<^HSX=vwYV`*;H-Cc9U)>`RH%O&Yh{xlIL?Rd;pTOwoGmMSB z;P@qCvA0-Q_z2|&tpbn7Lqbri)le)JkxVA}?FmkNjj5?P$IDn*`GSp&ZCT*;dZ|U= zbUKBgN7SHHDj}UtV}AZUCMTnqo_@!|0#;Y6P-<|@?RHaxW&yFFM-(xi&tq{hg-|Gl zX!HZJ+0Rglc$@|FHv#99ko0G>%Ls?xV0JbGr3)u}{dO`uJxVmwO%&-OnlSDw5TjSL zQFK9R<0<PoCGl1FUV+tWC6mcSTCJ9v#*V;fH2zMQ=?*fIJU0veFm?oOmkdOqLqy>& z>GJp65VO4ghhR_<Jfv}BkPl0Oi`xM-VtIeJK&4VOxFrO7y?%(E8>F+}E?_ref8QJM zKOnd%1YDN^deRxB$DNYEUOR(EEbli7Gz@<%9cC=dz|v9)8jWU9SzG8{$0tkm1ZcQJ zqDKdbB`q}&EjYrQX8M@>%rJk-d1c*4K5c}qXbW`hK#*><$%0>wOo8inTC3s!0000< KMNUMnLSTX<<rd`t diff --git a/interface/web/themes/default-304/icons/x16/funnel_small.png b/interface/web/themes/default-304/icons/x16/funnel_small.png deleted file mode 100644 index f914af50f6356968acf7124975eb6d34da25108b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002@Nkl<ZILl-B z|NlP&C75BD8Q|^h?JF)Wp2ony0K$b#Oib;3e0&{BN=gkD78a#I`9MMjq`i9e>i^@% zkN;o4e&heHUB~|)Jb3y4wQJA+KYRB5KTtlKkO3+n7u>jU<Nv8sr~WTlvi|>$9jE?Z zzWn4r)CKB<3}65npaSy3rAwFoFJHb9=z>fCp<d7e$rED$P(K66kb>>okNyXSK^xEj zJ)i*$1PxGES7+em<z--GWMlvaU@pi2E-tPrkfA_B7__yu@f*O*%#4f+K?bn0vR1IM zu`$3fUIWlT1IPfNOPYX~0ftF2pbLr(kp+igUH|}OU}x(`WxP-T0000<MNUMnLSTYw Cwu5*8 diff --git a/interface/web/themes/default-304/icons/x16/gear.png b/interface/web/themes/default-304/icons/x16/gear.png deleted file mode 100644 index 2ae36d07bb6430b6dcf4a004bcee5d24ef692464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0<ryxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006NNkl<ZILoDw z!E2In9L9f6MZ^wzaZw@>$_P`|D-7Q{I7UNK4{Gl{JVlI7LDDFKL5!e7F*|i>(01SO zG+R3;@4#1Z`bsvM%Pm{OKfu7tx8L(Jf4ot!Loa;Z@0aKMJkJX+BO>-c7_Ve9$<paG z%Vx7Im&+MbQ52bT{|woDgBO{<3No3@O>TI==Vi>%Xhg%|kjxr9|13zQQnw0)!t23c zK>2)rk((AyPJR%;4h=VW;QgZ@kw}1ty<U$rtw#NRpGu|DSIqI=?H(96c;H1w6v(p7 z;_<joQSLr(wVKpy?$P04myVB*46sAP4IX%r5e2bWY?cd;!0PJzgLYe|_4Tz*IDGvr zzzz+!u@4zhAW72WdR?QPolms8tMV_kC=!V*Tdh_GutUQQ9(a)v1))&rNwr#~a=A>H zy8fA_r*AA-EEWc^Lo<7j5e30u@OB^&cnVflir*Ryoi;Z=Hlop)X8=1i+{Qj+M1kM$ zXFi|riX=r}scN0Jw=1;2->1{lUk2Er;RX-9$cO^3*9(?Zb&obSwy096Q?dB2SF5!N zV26eqJn$kT3OpVUxHC65|3TBf(A3nmH*UB4g{tZVutUQQ9(a)v1$b;W8*@6HNtesD z>~J`)Vs<(|`49b0W(^*A@t6ysOmae;D6re@_ju?fz&_SFVa`Ql%movi3mh-!(m70? cc_)zl4ck!aL=vxG)&Kwi07*qoM6N<$f|2_RlmGw# diff --git a/interface/web/themes/default-304/icons/x16/gear__arrow.png b/interface/web/themes/default-304/icons/x16/gear__arrow.png deleted file mode 100644 index 97bcdde2d51196d5a71940be5719ada572890969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmV;x0zdtUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007qNkl<ZILoDz z-%FEm7{y<6OJo*$v#f?hDH8s`HfXK_!wP8|<!nXNN*07@MHfY46onubc%jVD2(*!T zQ3xqUkeS5f6}HiSyrP-TrpzDs2N-&D`ku{|LS6O3=Y1Z|bIutXOadVN5Am1TY?iE6 zt7Nm;q^hc___W*YCPB>xrp-5cnIT&WDl03G2t%!ydpXzF*Ri^~ip?55e=V?BEJy3> z>swb=R^W6x?+eq7#l-~>?$mgrhu$p(6%`faRx}!g&*w!f7Q^7+;527)k3?qTH+tyZ z$Rr9(CX-ZFR;IJt&pir<LkNX}n4OJaets?vcWS)RLoYK%qcKrXT3UKs2zQ9v{c>h} zTtRQ|>&c>`!e@j#HQtgwW_}mw_4<2$zYilLpD{Kji%$xpxVX4EH8oWt+^O+K553F? z5(NbX1r4L4qZk?*0;i%(prqtbV@gVjM7UGi>|sWbD9FppJDHoC`+&Gy?LPtm1p@=0 z0tUn3hlD$|+8$-?SZjEp<jUi>%m@+%IXO9!PN&<a*Be@7*^l9252mJKSYG}ahdVWU z*EF6l0LHfOiqSRe5ML}&pw((gqbvu}-~SOFk00&rFQQ)WIO@8CIML!;v${ekyxoV( zeG#<I10w7%Y6?2y1zA~H<aBxYsUDy28}joHwq<5!Hp#LA%bPhoi2~OY;6mUJcc*{@ z4IY2u4<R0vN+qSIr<*kzO><gW+J4T-$t7Ix@IqVdUdpa{r)bW1E*aes*uDbUb?^PV zZ+>tj3siz#0`ap-2BKE0t3}aM!kt>i#qNp1FTjpVuR=Q=y;ntvlq}dL$Pj1+d;Z1t mGaX&(vz;NerOmmKk$wTf-}toy!X%*p0000<MNUMnLSTX(5<(gP diff --git a/interface/web/themes/default-304/icons/x16/gear__exclamation.png b/interface/web/themes/default-304/icons/x16/gear__exclamation.png deleted file mode 100644 index 0fc7db097e22aea9f227250c8ee682c8942f9326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmV<S0tx+zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008LNkl<ZILoDz zZ%9*N6vp4%CL$K-mjyK>OtD&uZIRACD9c(+Klo?+q!51T4^aeRW>|q_76lb9C>2pz zGcXEe89CjI&Aak0w|Qr}bhhNCZV(yd3Mo$SxpSe=w=Vqdb2#TY&%M0dO8|iU58_Ry z(~;8BQc_-CPAV!YMAhr{YRbtq)az&H#T{frKv`K?0X3Yax*c_Obrqt~D6H?H=br&3 zB_#*z>gw)AA`z&mskux|XBHMd1A;a7aE2cAZV1q7waD2}C<Gig27(}f#bTL3jn~28 ztT;mtde?Sh0cy3H6c!fB_4>+d6B9o0`MfYU7lirwPa;@j4`=8>FYe^!<;4Q>^Ye>n z;{wvv)j8|;^I$eVp32VN`vAcjdpL{xaOZD;QmMS?c5`62+rZ^w>60cPCnu*_B9RaT zYp?4%aDy5cwO#`B;tnMipin64olYlMtyVzg`S*~UyRVU97=oyjiYCuUB`im}VRYaq zI2|^?9ZD=9Gc&U|BO{{$X=yQj^musa?;rB0R0pmg&&;*{pzj>~TIq#1uZ{>Os%0kJ zp~M2x($a`rF5jV4s_w9?8-|A+5C{mcwDbcO7r(=}y$ZfA+y#Td0O7f-KW%17kF%GN zQepuznG9)USugbU4T8hr2BWbpG&bgkQF|*5(Et7>G|=ysz~b~N7%=S=MxHQ->^*A% zsi~>RF^%T1iQ}drD{J@tl$4YvmgT|r+yK+#RnaM43ok6S!262e9b2$GWMUo;cGCkA ze+YU>rBafVl%z{ePHs+2OiV}hau#4;7DFhYf#9S{d;`?r<bHVlbc<`CgHgu=q?D}` zdaOi+BqSspZ#*yYc}LP$!ZUjy{9zZYe5n@|3Ap6pzDG=ZJYW-LGet((7N@O=v{Kyb oX}>|Zj+^9d=PlyuzD<mO01i(G3OSol{{R3007*qoM6N<$g5q~uA^-pY diff --git a/interface/web/themes/default-304/icons/x16/gear__minus.png b/interface/web/themes/default-304/icons/x16/gear__minus.png deleted file mode 100644 index 0f5d27111e63f687d3d5052b3ab33d8a95a0e10e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00072Nkl<ZILoDz z!E2In7{`C_REF5WT{KE$gtpdFmO{=V7Goi)hq*j;SnL!LT?$&oqA`js=um7?(WOBx zA__J<WorlJ9ZbRLE4i_`Y}p+9103!0^n87N!$r`c7d}1@-{<@NDlaIANc<1Ak6<t; z!r`!pL?WWUzrQx4(WsxfRL9?VgBKaFr=YK|?<5;8^E`;TySq!(YLyx_c>Y=t3WZJ$ z4Glfo-rlCc!NJ>Xy0W?Xg8+7DxWNPOo`OIi0IrrwB}%0hsa!5oEEZeE)b?U=t#*S4 z-g-tY@caFuySv*Kjh?@o%VjB>U842%B5iDZtAQOFZt%d1jL+v&3%a_x&aiMDOijI9 z%jXrEo_<|$xsE*n*rDO3`H=Zt;PH5Fq|+&ypZ`n?3o?IGj@)kdm`<k?06R3?;DHwz zMlI;*=(v?kCMh0|6Q-hkq0Y|Zqmm>EfE`++2N^~!a5|m64u@kHOiWCE&14jso&A*Y zdQaQ|*rDO3`H*4M0=wNVY&Kh~$K!n{%W0aMOVG+nnYOleYG8+k8$742*4A;OQM?gC zEwETDU{scuXlCXkB@$_xoP1GQT+9=A*BkixzO9|!Iu6r^BS-0}PPfV7^t2GqYXvPW zE#O>F&)HY0)H1cTwLdnS&G%(lAu!(5RM{CApg(!WCF&o7AH7~Lj7DS7WHOC4H#Z-` zEEFpILch}my*@K6Ny;@zs@#;M)e#PYd)hBRp0P6gT7?%F42Fwb^Z;PjbjHQ(w{vDh odk6e9G5Z(`bKoCX>t1BUFSu3ICqy-97XSbN07*qoM6N<$f+@x@q5uE@ diff --git a/interface/web/themes/default-304/icons/x16/gear__pencil.png b/interface/web/themes/default-304/icons/x16/gear__pencil.png deleted file mode 100644 index a2906ec07b1090add0018c48254e5630c4d7bef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmV;w0zmzVP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007pNkl<ZILoDw zQAks97{&kBP0SgjK1{J8F%*gAvJG@=f~J-@_n>PJy_FC|MGyoHwaBCpqDXN*Rp>-5 zSOwbjK{J(&E4tBi8=0iGWQq738~F0|KX+G|&|4RN`##Qh&iTU_5wZV4`mtKA%x1H( z*49>Lx7(%Za5&7I8#3nf8@$MXBLyujE$6x6CZ8uU_xJZHkw{Rw2G2hWnwy&~PN%bX zZ*Py<+S)p}>GsafZvxn%;RX-9M+zDn8^N7eEJlIAGR5O@@_M~LFc0?4%?;@W54>_F zRbV!oSxrri#^Jd9C>&m;)zuZ++S;V;?Ozhuq2UG(yvQsGLaM-IGSzb79&o#dHloo8 zjg5`2m6x9x0NA17cHl$iu)tt2+z$o=G&lE!78gbSQke95eUCz+U;sNb+~D~-G)VI* zRa6v&TB$&%)3y8kewvw?A<RhR8&y=C>lXM606R3?JRT3ZJ3EQGx@cSw7NmmG($a>K zl9C6Yzu)yU6pGNq#OILFSosiOmo(4ggvDa<CX-33FDiOJ$k-*Rpt!i0X*8Ns27~dr zC<bYE)<^5>aoXKYN?@Oz8lb7sYD(_3lUA#Jk)NNhf6Z9xKTxaHpj#AIXncH{e7+#L zT(4rw%TWT8AD<;AM^a&TZzWY$oEYW>?21a2D#**r15I^x7e@kt?^ITHx-U03_o*mG zXny()xw@1a2oLv}sG+*>1H5u3Re(>aRI=>sY->(VPES@=mKHO#<frL(_0r2PJA}om zv&Y`T1MlG{7eFcC=r~4@nVEU@T9d+0f7a>A-Hf#hRqU30E9Vr-nZtq%&T)>KQ<Mf> lw+Wx@wSp~8E0Dd&u)oX{+#oQOmhS)n002ovPDHLkV1k2fP>}!t diff --git a/interface/web/themes/default-304/icons/x16/gear__plus.png b/interface/web/themes/default-304/icons/x16/gear__plus.png deleted file mode 100644 index a94a6188cd9b71da1720b817526d6eaddb3599bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 687 zcmV;g0#N;lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ZNkl<ZILoDz zQAks97{&i{n=+<jN=(opQ4@=)*apoNVTmD4ALd%mGKfT^r>Idh5}`z}DAWhb!a@2{ zFN#ks^Fg_SyD;Y+F3IV#xygba7w+Zjf9~Bvqn;Z4_I;f1oO9vAWkkgO2l>zCa<T62 zZr0P&!#p03JiT78lhaqgdGrP^GT>N&+wH!<4gGx9V&?OC%H?u&RD<WQ1zlZT7yW+! z^K3RtKA-OaHw~oI`vkB<!wnvIj}>%wc7of<WRk++HA<yYw6L)71+%y(65H|(9(W5G zrNHTQvbMH1v)6n5(Z)uUqS1BQ*-6me-d7py&~SqXUSu2&hf>hm+IpD_cR(;Wy&a25 zG&?&JZ)$3s0NA17R`enByTE3%-4n$yEiHYb)m4E%X@i=Zn}^kEH3Qh8;RX-9$Z(Vb ztJQjcWo3mzp%7t8(k8XEoEuW9R19E;cGQCmM=7YUukWx}EDyoh*!XTFBGLT($B5m2 zJ^-*oYk%)P)V!?TuL#tJk>Mx>b#-;jY&M^?+3cf&AkyOEGHq?8=-}X|40dQ|-Z|;! zkGrIrJ|XD_O^m&+QVL8a6BrVNb()*|K+DS_jgP-duC2ugbj)}T8)h723EJt#_gkcX zR+Z*qkxf-i$_15`mEc-?`_;GM@MmghIQznAG(Hvti9pE{W9CZ6Lw~|1jH2>E@SjGb zVLF}8rPu3+%gV}5VaDSb{zAWz##a$hjTj_Vz>sO&yF_f%Aj&*7Oco0?oN5k#t;`Oz zT5T^c8Ufg4J)qyL*|icIERV9&{E4FmRxBvtlymr-VKx7xzw{03(?;1q=~N-ZegQGD V-%Zp)jc@<}002ovPDHLkV1gYRP#^#R diff --git a/interface/web/themes/default-304/icons/x16/gear_disable.png b/interface/web/themes/default-304/icons/x16/gear_disable.png deleted file mode 100644 index 877a66d6a4c947199334c2b8b2960f48df8d09be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV<N0S^9&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005FNkl<ZI8UXK z&q@MO6vl5YYEf-VCJ5R^L=HyK5KKfRQ9Xc=pp7uNP;sRo;?9MjE0=<QKt+86U%+<| zapl6tu=BI)FoDpbfuHx>bH4BM&K<Q{t<-;5|Fl{y)#-Fpuh&!ket*qyIJ5*;V{Q6q z(Bjz^U<q!w+cj8a_6GhQnymrtcH0_{$6vC49gRkghzNKDYI@Ajp#2rlXfyyrSO~H% zm&*@XA3)dM3@sinpjNA?dcAHmn@#@ZS-8^TI}J6xXEbQ>cmdUF)slt_i^bv<@nkZ2 zPo+|Epr*%cqr>9`l*?s~Zwt4YP_bByJC37(nx1cNYtK(WsZ?TfFWhK?a?F^(t3iyO zZ+@>mKLPoC-pb{2F3jh1ZvK2Wo4pJMgE&yrW46)Z@dC2htjc6EMxjvPGjhaJ;Y_&D zP}93bgBFh$kW40lBk`UA;buCWawnIdYmUw=gcgq%kVquJs#GeUvNzM|^p{*7f$I}c z(_@APEgmm`ClCmza5!v5qfys1O@mct*WmA=LCfP0*cA?iW5EF1wx1%Ahzr!4zHp+o nyZ(S3VNW;^j{X4iJ|4W^qt-ZtAWwi100000NkvXXu0mjf`3vJ9 diff --git a/interface/web/themes/default-304/icons/x16/gear_small.png b/interface/web/themes/default-304/icons/x16/gear_small.png deleted file mode 100644 index b0e969098528eb9f0f9185357b2e02a9edfb801b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003ONkl<ZILpnF zu}Z^G7=`bUB^g3qAX^}728Up9X><&CND97z;OHWOtP&{&2V08HS_fDA2nn5nT}o<9 zsgRJ#ZXLsKk3;En7Y951oO`|l-*g!fvA-NUECJ_ycfRi*1wn9u+~-1p=Xop)!@D?+ zN89&h+qQ&62gfcHxUS2hD0*10ziBdgE2^sc&AP4$9J^3p+xD^JI9KEG^JkvtRF)+n z(ZR6`1(s!9XIVyRno?1Gkt9hyWRfHVj$J4)P4mPsjA%F<E$8zkHO+>Q=-}9e0$tZx zw|o9Fn|;t=@VJ^z->KifU!j9z7YZ~@W1Y^~6X*Wx_I<NhG=xM4$1W78s=7NxQBGx9 izD4fy1OLkZBKQHS+MD(ZuU0z%0000<MNUMnLSTZ9l#x*Y diff --git a/interface/web/themes/default-304/icons/x16/hammer.png b/interface/web/themes/default-304/icons/x16/hammer.png deleted file mode 100644 index 59558fd41a3b3de49b2b11fd14d9442249d33c01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmV<W0R{evP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ONkl<ZILnpN zziS$C7zXe+Vn|KVUX%{i)KmyW5i&Sb6e{8m6cjy0NQ7WXhs#_C?NEnKoeoMu{)4!N zP{C0QI9l)!LBtFRZUv!3NeB&>=M9$-iiX@5J{<Qwp6A~CL4`trW{}_$i0~nw&##H1 zxRl9cD49%BJRW~Qyg7pj-lo%Ou~w^nlV$m^R4VP^{5=X@Jg0!PyO|P+#I~X+!^vdw zr(Ulg=W@B7NF-tohr`6?hGVf91%p8f1OgkF;&413tE16KZ8n>ye!o8j#Ab$hG_Tit z&z#L>tNngo?Q}ZoU@*AG-mcs2CYQ@abC=O*Bta0!ZnqQ0mV3RP+G@2_K02LF$>DHp z+HAI`3oI53`Fy?###ZnsGPWgy!SJQsZl5D8S*_OSQw4&@<Eb<n4F#iC9$nhxlIe7+ za^bvu5`J~NUG=~4{fcr4j_b3+AE8&RR{0KpK_DILEA&I55Qi^eOHY_z(lC`uarg>8 z>k0pWvtqHx;cM8}6Fz_oNs>7H4~|IZ`du!UIeY^r@EZ6JS%FtzhL>Q1C0OLI3<g-> wg73fuKfw!b?en~YRd}P7u4rY;TG3s}Ex&!L<9qgzga7~l07*qoM6N<$f>*2NCjbBd diff --git a/interface/web/themes/default-304/icons/x16/hammer__arrow.png b/interface/web/themes/default-304/icons/x16/hammer__arrow.png deleted file mode 100644 index 23ee5cfcbf5b48e873b373902e5135e5d156181e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007JNkl<ZILnRF zU1(Ba7zgktF-pYcCPlhsNrNet)QD^@O`M{j_=Qw5akYyxs4kj}xgamPh(%zG)-LRm zVD2I)Mv~o)jd^*tG!Zt@YQt6#2wg-minr$p?E`cq{5ZVtd;b6Ps0RXp05rg%LF7e7 zzu&*#>-Fw%yWQY$IKXDJ{RXtzfC%k#xm?~@EOsp(k57fe;UQcf$AX>zQvkK6iR^a! z*<3ESQmIrvCzHu%KA$gSu~;N#vl&R!u+?e>gTVkjJw07G#Z;+OV#Q*SrPJvJy<YD` zKpKW=G_6)!C-HbZ(R@D7GMNl36bhTTcV4YlgG!}>rXQhD2vVsO6bc34*zs&O%jV|h z7+sZ0CD-2Gu9L}RTNkvnv_N-v_b85?!><y@ZB8H%jLpx_uVI*LYisM<sz9pIXhu`1 zR1QZS{p(0aCDm$`QDL*Z11<49&+1`mmjO;a_y|YFW<jd%?V}Rh?ranuK-p+CN>BJg zS-I^Z81HR>>HdcVmhgBDbvQ3KeDYP4H<?Tn{)*0Yau4C?%>o>|wF)QhyyX+`8KbLy z@=ZuL{`#LV{YWcLr<20p(C{A15FEaqP2i0@5f41!`=6HC#5!ZN#<Ng8Jb}u=V35L_ z=r(O0ys`+!>9vg;?-(1*Gj{sbA0w-b;W<zDO`>&<<0$+cP1jo``Vh!3y-e)A@Pa2a zf&Ous`IZ@@HJ<&N;8P?Lq3{nhi*_S=Lt4=;>Oo>8lJw6kA6j5c5}H{O+hSqd+eQWB zhzgz~EmGJ1o&%@@$!n#p!jmJ9wtMa_3wwvp(W`<4KLMx(6o+r)x`_Y)002ovPDHLk FV1jd%I^zHU diff --git a/interface/web/themes/default-304/icons/x16/hammer__exclamation.png b/interface/web/themes/default-304/icons/x16/hammer__exclamation.png deleted file mode 100644 index 7ad1cf51594b3bf858e2b9e40e7c7dc9f308cbc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007vNkl<ZILnQa ze@IhN6vxjUi}Vj=DgL8ni9uWI7c&|&k}(|{%-obojmj+OCG=N<E<+*z(IN(sNl9uJ zN`WQTY(d1DG@8yQ>@illHn13&rJ|4&V%*LVD}pIK_;5Jid%xd%?t2gHb~_|NK+YmI z<VZzD#de#`wz;gV49sRT7>&k10EtORMYffemfD({nwniMS9?`e)p_g>VL;0N1i;#9 zsV0-@xFksvi9}+tudi>QyuAFR!C*+!>-9jaYc44%fx^N<(CKu$aEkU=EXJeJDED|g z!&<G@f&h`!OrxpQ>ffYUtyX6^9Oiz%pGP8*Wz^0nl}gCV%Y$_vxm*qkg#xm(vjN9; zg+d|j^?Etg+}vCtCnslLW@hHb0qN=KpwVdRacl{%;zC)F$z+#&KHo<)3mF+1#Tx}E zR4P@y+wGQc)Oyj)s*(Q77ua<QnV+BM6u6$>jEsw-$jRK%!cxYEHr@X=*Y%ld!Cq#e z5ZtpfnfWvlayp%K!jfhWQ;ZC<qjAw3Tv_Vpu`y$ideoDi+=zsWii*hm9XZz4%;ayM z$hsD%uPszoR`P|!l?Cek{Y;MhW2TohVX;`q`~$gIZD-(n#EK>Ffxu#-k#s&iQNzU- z`2o^jKl~eT1Bp8v4%)Pg+}y8X@bUp;uX@>?sduMl--k{7`A{7XOL{Ji9-bwg*2&z4 zd=dnK%qvJQi6^WKJl#z9W*{ptHEH1SNWtm^RO69@eE4x%fYxd6*V@`zTKtI&B3TIi zAzKD+v!2P3{4X;fcJrC2k}u6QtX5(&uyy8X2kWGOR!T;mA!<aq_IY;Hor9jcEg*Kb rz*tu+1d-A1Rv5W=b(KIv4cz(#NkluYhG6&_00000NkvXXu0mjfJ#JP3 diff --git a/interface/web/themes/default-304/icons/x16/hammer__minus.png b/interface/web/themes/default-304/icons/x16/hammer__minus.png deleted file mode 100644 index 549d90cf1323ed117e219163e53994871b710499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005=Nkl<ZILnRF zL5LDz7zW@kF*XZrR_TzIB?Ku0d+?AbB;qOxijE?b5EFHnJ?B9?Bor*{X<%tt*zVav zhlm7^V&HKC2N4#rL*XqDI>g3OOz&6YB7-gsJPv-&`~LsTNR>*3mQdg^NN~4YF5i$O zX{}HwP&S*TbUJ;Cc({ZEuIKZ4so8A4P*rtbmgOyczk`Ac|5HHbYK}}Mb6?l>qv>?| zz13>HE0szQlF6hqkw_3*8BV2A6pO_u8jaq@F7_vri7_6JjZUZYF%pU7fY{P7Z%q`% zIcKq0Yz&7(qu=ivqtWODvq!;TkOF}Ktvu{@I|+h7Uayz1ZFMjh7~O8y;IrTFSA0I- zhR5SMyTIjgQ8*l~W7|4zMa5XL*=$dHz1|mu6}Q{Hc~*fC3We(Jc3a0*>kB_^aLH^o zGq`Y7J`0~TO*1Uv`LW3*INw?peh7m`qrofu071mZThnt8SKm23gJC=#=kPJy3*qB% zp<vOWCCm@$D3{A|_$NH!;cIw9^a>YiRy?1Fcj0rjTIKKwyyRgX4*t=OW!bReIbXL2 zUlm2+@Go=G(<24jSPA#8S#6s;_*SdcIQ$#l!xi9v$U0mGCtLyttigGH%V2|ZT(ARN u@WFh*LG$(8glllsEL}ItE}BJuOa1`!Db`n#o_BZv0000<MNUMnLSTX+6Z@b5 diff --git a/interface/web/themes/default-304/icons/x16/hammer__pencil.png b/interface/web/themes/default-304/icons/x16/hammer__pencil.png deleted file mode 100644 index 3e7821f55dfa1f24c5a6ffe22779cc79cee02357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006zNkl<ZILnQa zU1(Ba7{{MiY-Na;q&ri@Z#1_qfz=1iw~{KhCLj3Q11-Q<N9%(ZTcAR`tM!62w4 zb`vAXivn@rRTwBDEU}A9y6Gw?j8VKjZ_FWnj1K&GInUwuKhJZ{1F={PMj#*;kuY*B z8jbD`hr^S>U=X}sFSy<AZGaU=Foo>%`~BfeCUYyB&E^t`#AUocf&twB1i;qYraT_c znR>mx(dl%)=kxiOkx1m6)9I8r91dWNm0d0u*laeiTCE4Mi(I?irma?s7K_Doi^akt zz!)jB){I7D4@oE#N;et}TB%fMv)SCl+6BE{4_d7j#$IBv802y}s8lMzwzIWbjh0F! z%1(_&BdFDClTxYNIY26vg4t|NVcT^aC5vT2BobXOm&>0}78DA_iJb!E27@70C=}}0 zYO3#%$vH9c_)8!_PZE+H=X;U&)oPXY<U<AmZ=VsiBQs}bXIJRb5?v+a-6;7yQcI`P z6wjZCyeGeTN{;({zN_7Cm(HtH_n!dF56TNj!)~`Txr?0cm)9PV*WIr-s7|NL;QXeQ z0h!IS!Sg(me<9b5(=a6G7D*}K<mO~D8T1D{Kt9IfaVBpf%S>Lq2}APTB)E772OP(3 z%MX#yf*>&YH}aenPvMrnScC(Evg_#ZNBfpcCYk&PSwr?BY(w_kyFzZ$A0O!Q0$EQ4 z!H=~`WEcC(hzKDp;10q9ULi(AkIW#`tbU0ng}K8dzyc8ovU@A&U&vq1L-fE?UKdaR O0000<MNUMnLSTZXTOOVO diff --git a/interface/web/themes/default-304/icons/x16/hammer__plus.png b/interface/web/themes/default-304/icons/x16/hammer__plus.png deleted file mode 100644 index 331a83b89df593f2ce8c70fb685d629f39005d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006pNkl<ZILnQa zQD{<87{|Xv+oZHRT@PtlLNJ%H2Okm#8_OvQieAMiA&eq!y(XkRBvdcGBt)?XX%WGM zdWlHzQ4D;%8;S@+7SRxT7zjN?F^bdwyXaV<qYr+ZbN=`I|M$D+9!jNBGy(<O05Vue zCX=USS)Pc+ViXRCDHsgyK`f5I2u?+#QMphkJS-NAE168@7S<OKF!?_LG<cga6bfBw zwOX6KUhiAETz;2GB(D1Xe$&#@5;0@Vfk1%f=jX}i^Ua`(m94EU(d~9cwOak?^?D<K zn2}~~&Fyv%F~#HYe7oHijYdOsI-Ol;*Ih0bIh{@#TY9~oBuOHh%|>Xu*ladMtyU8} zIvftgZnw`_t=5AB%w{urJf0ldZsAjkkQJRycduTre}P%CSS-s21xT~Av$;y8(n71b zeUIiiq~Grg4jktXgLPF^#h&?`f#~gVq6ZR@`|vV{Ks`Ikd<``7`8>bjJCMi)^P6c7 zC;?R)IdDYX2kphhMK=EcmuUtYUs{M><G|LY)tmjhf=6x5`o7{r+KfaZZ2k%EXzGh8 zqE$-?n^or0jv|J0O&`=#@F|^6vw0Uh)6~c$(Tc>V7r!ROzp&2Ro`Y>gQP}(oto_wj zXac>NOZ3F7GUvA!#Bi?ZsGV#!%jVzUJ-|^D-w^ap$AAeO0Y-Xsbi?-9EikTQtpkTR z;4$EU55NsvgWq!ooCGHZp;IIqUeRsC1|<xud{sE)4|yKx2oX^;{r~^~07*qoM6N<$ Ef{C6Li~s-t diff --git a/interface/web/themes/default-304/icons/x16/hammer_left.png b/interface/web/themes/default-304/icons/x16/hammer_left.png deleted file mode 100644 index f44861568c1cd27774a14ded9510ec4e4e1a296a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005;Nkl<ZILnpO z&x;aa7zgmDOh#MMR>y;on&LztQgl&NR4~NfiVERD_7bj3dB|YBbm&%xf+$Kl*B>Be z;#ndT43ZMNl+ZQs5Ja&Q)AtcwmTlbXg%6|e`2D_*gA!qxOeQK63V$dTixO-@B$vxk zB9T~#Mx*;k6h+Erv+L~4=X05_nM~$_V!>)tNjx5pN|LnG>-Ap6VzKK`fh>Z$e=5L- zDH4fXvfJ&~X0w?*olf^UozClYI(;<|2xxsi9}!Ma6b^?e6bg~w?<cR<dvh|G$iv}K z9*stFv)O!!y&%xqrPJxi>2#9I<)U)A{B%4X%l&?TVK5kc#R0o+w_9^$fy3e8N$z&L z-S??fs+rH{AJ=NN7p+$7Q?*)sCh@386o?*==U%(rp5Phm8Vm-q*=(n+R_jH)ui-g7 zu~;mrb@>>);qS{~-dGk8LS#0ZH}KopW=i2Lc-v?+WL&>#G#c@6fzfCry<UF~Q{Fxt zz6I}s!61jf!<B<Kxj?Jct_X1X;QjmXA(>2a_y^oj8c(HCkst{BMXU7yK9)))4)4K3 z`pe=XwOYM+{Rlo+Disd@gy;01>r1^}=kPCR@t+fnunBrN1slNg3c$ynfa7qC3+@0H sw7~`E!3k&K449Xto6EA3%c4ceZyT$yz8|UnT>t<807*qoM6N<$f=%KGzyJUM diff --git a/interface/web/themes/default-304/icons/x16/hammer_screwdriver.png b/interface/web/themes/default-304/icons/x16/hammer_screwdriver.png deleted file mode 100644 index 27877af5c4c42a4f6951cc377203032978d874ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007#Nkl<ZILmdB zT}YEr7{{Mi5H(qZql>96{9=Y7xM1RFDt_Q#>Ne+KLKvpJb*WY-v4j#NZ$_U+2z5~n ztc#XZ?#9Gy)S#ff4rz#86uT-W1%)BW>Ho+yEq&nk9^Uhw|L;8SIpp<vX)EpR?TiXe z02i>ewY42|xm+2ot*vCY+o`d!aTBVkscG?eJSyOkcoE0~2b!CkT|+}dm;8SJSZ8PF zNxWMi$lNACsmWwg_Vo0KhK2^Jt*zaV@NQX6O-(*c)8dIl;(H(vc<gq&kJZ)H>3AK( z)lyPYA|jE9=JWZ4#bTkdvNEz-t?N`(RhiJm*wWIHTwGj~Q&UqfD=RA<fSAoHE-n_c zv$LAR;SeU1iSqOF*F`|*bUM$)Vlf#GhvmY;!YbyvN=r+rprC-ZRZ&rq2!%qL&1Mq@ zgMo5#aws=9m(aF98jZ@CnHkBW(P&ij^76{{dOiJDg@uJ87z}C^6&1p!(`B2@W`VXf z{EDB?D=jT;0G)n9Sj7hQv{RuqF(JfUI6HfOzPtMizi;_m&XVQjWywO?rQCOke#+5N z8B9-4j48^IxT4T0kg9r?@X_rQJ`SSeR;$E{wWQPe4dKZTigG#%!L7fN9qR&!RaaMY zdn<OL;par}eyFNM_}P0!5pN*4vWtWdDUNI8@GsEk!{Z6jNDz{h-d>4t=(VB@ynx^l zzInEUuY!*q9UUBA1=o4<FhH0Wk358Ab#PE3JUy)_=UEU)g>Qh*D%!;O8$9^8H7~di z$vsHchKD7>uO^5tZV0~i_xE#n4NQXlU?126GC(HK0sUE`Yj+^w+ZiW%JDw6;1}u0A x%-|3(ascd2$qcD0EAJz^c^i^0qBBP^@drlr`KbO9z5@UN002ovPDHLkV1gmaR2={S diff --git a/interface/web/themes/default-304/icons/x16/heart.png b/interface/web/themes/default-304/icons/x16/heart.png deleted file mode 100644 index 7e0f0f7b41183f68897a402995d436e7d6bb1618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006#Nkl<ZILoDy zPe_w-7{{M&uleT??a%Aj=19tuiWYhiL`gzH^Ego))+QZ1h;<6<5(MiKm6$<MNzIZh z1Us}Dc97&{nbm9?bc%&_5%IJZGUn6s-S*Z%@zM`I@Vw9S{rukF%lji{rvHJSQx4-C z(TMO?(1eh1Uiv10y3o@KnGrZ}>6tJ~bS|W-(QThE{d;VTw}ysNVY@vh{fhwgrq`SL zH9Cq}`nAm#g#(v@M1~onB?NwWz5IP(fHwvQd3$(xXI4=nV9V#*K~JA;cswaMaOpA8 zp`gjMy6N}xm+tPrB>VgMV@u1=HQ`%d-<}y9xb%=nd1Np|WcS^b)>hWh+S)kU)s_9+ z*_lOMJd5@8?81Rd_vJJ05iNY}?M*E;H?vNtv61I%YWS(k#nY<F53JT4)0LGRuCGtQ zflGJtTv@EGO|EuyaJZp?U%1^Iv{?9w*}R82r;}%_)+8LbG?C}{q{*axXm3w1I2`;^ zg8MNqCwNs=m7XvfH8^nTW`P^>Tkcj=tZQ|3nMIq8Ln0ItmJ_{kI5LwZCF{uQ9$o*3 zAwYC#s=PcAsjkkf$lKnDm_y`cRfU{D23g%J-hi&j?Yc@de!H|ZzGk;)K8Xn4TP&Gd ziW0{RnPP`d7vUGiC2)c0azNe|H=DCDA)qJ;^e{u_7#*<O!Wp^$XXWQim6as{YV_Q6 z@G=UA1&83Y6E%5=mH}$?3bP}G3$)Kd(<PjsywG$?jt%r@;iPbsaD@x&56Q?~QnY`4 Q@&Et;07*qoM6N<$f)p$?r2qf` diff --git a/interface/web/themes/default-304/icons/x16/heart__arrow.png b/interface/web/themes/default-304/icons/x16/heart__arrow.png deleted file mode 100644 index 014c3785064ffae4d5c6ceafac9a78835854e9fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007`Nkl<ZILoEd zT}V@57{KvoZstcR%x$ju0ft_w%|OE}Q4-VeD}wxLCv}q`BiRZetS$mgyNFQy2&EF6 zC7KEbwHbCXlp!{CenDMmEAvLgt2L3KPtT*yG`s7-58m^>=l`B_I0q0B{s;8HHm_cQ z3i63qiHTgNc`@Vh?wob^nhI{Xg*T)dpv<ID*w?gL*ScPht0g5)vr;)r^S2p~R|LWN ztFn^UTp#3eJ2%{d5kS-hFw7VH6a@TUT#QQ^4X%}!Z*)r}V{BEc-QYRT+ERYLlN)ZK z6X1wZEFNFc>2M}1YmcL-2q%(~mThFQpy1FNH{8Mt0Le>{XpDB>8cj|{4{J&a+A}jZ zr!q1&dAxsZHamNZ8*ZVUUZV|Q@Jnv4b2uRZJxp<NI1m+uuR}wzL!rRuGTF9{;9xYz z#yYv-7Mge5ABv84jHjicS*^ym;o)cu3c^=X=^?!#A=o98Ik@2#8h1oCiN)5>sj03( zl?wal!hac{CwLbY=4$lvvU0;MJl*w#K1-{=|FktG#yupLqltq3%=AS18!ebuV{w%g z*S3~t8=y430-zrDi0T0Dw)pwYk3~edN9k@O6mFx~qENUmKKQuawv2eD`I{}VX;Dzu z&m7nQYUuBJ2vFVN<1=SdD&3P5Ru<M`uD%ab4Fl`S!uDlN{{lArK&04q@{wJDbP7Fm zq?$G{0Nktd_MV@UN;faH+wrjjQ8$ZNF!e{(SH#Hb5gYt{gp(Zl|4ZrPwD|fuaxPRk zPh9I*Iezo~#L?1TTVm$|UY<mxbDQdxN!Z_dkwBs%AxePwd;kmMG0z2DHBQG`5Ceqn ziNKN`fi^jCa|sD0r(h?DKTog1Jm-?LhJNq7XETy>cS?QKSK!!b4g3ZYOrv7!5+Y&% O0000<MNUMnLSTYISyo8^ diff --git a/interface/web/themes/default-304/icons/x16/heart__exclamation.png b/interface/web/themes/default-304/icons/x16/heart__exclamation.png deleted file mode 100644 index 46ad89f85535ccaee38c41188aa98ccc638b8e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmV<b0s#GqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008UNkl<ZILoEd zUr19?9KiA4-KI7}Va_?s1W6xaiU#^J5-lqQO?sMWi8aO02QeSQRv}SlMbRHqQ}a)$ zrKuHCIgOQuwy9}3=kOoON~07tg1NA%zkX*rTlLuB!#$jHzlVEw4<I7^4|oJNyheab z@``AQnxxY_pJC&TIqk+hnXF+gJS6o1$J7$Z;G$A#`H`KC^C>CjHmTG=^EnI~&m||D zm$I_hnx)m#bC5Nxg<1fv4nV_hm`P5?k4Z^5edGu(rll>{3j{sPyi&Q$=Im?J3Wb?9 ztcCjk&b54g-&|@c4#mc9G9@PBfL#8$pG+kr{IkXy)<PwKpo-&qX!o`5@Nl%#MnvFX zOw8(s=;&28c3d;W#jUZ1wNOs4Q3lX58Xs@ggoUA<IwS<21O(s%A0MoiNU%aIwyE~= z!nU9wGiz82MeEMA%Veg$s3>d;4#p;5U##`;z#5Tg)3ZZcu_MnJ+Y`iCCl;Gn!&<nt z&i^)_uYDI8X=(BH#%2l}J@yh|=P6fQ952MKJol9%Ay3B|*247-*XXm9xVq}Kfq~X` zPft`+Xs6lhh9eCJaAm0p^^K8BPmgo?O^F;Za0xbX1pv9lLZPw8&(GRT@7qOjmso_| zIYRt4k&g<60vD$8EZSyXWp@)NAb)HC7wB}I15n*`aT)HHO0Dndf9R9D;n3X>{62G* z&Mn}V(G2WY`|COzxP2Y<w84J(EtRNflM?`^3!I#c!ycm5w;5Y-s`v2Ph#>}FJU@vB z{T|f!?w;4waiuS7I1c{)`I3Wl{*ThfDUmtPyuKm%X&Q^dNn@z(3D|Yg7=~|}-E^&0 zoZPYH5qIKEwn+g(3)8u;Lz*4d*$ElWj_<^!1(of}jOn(|wv=%djvEMw57|XRncO7M x6szFVo%5h)N=f-e7^uDsx_ehZTXPkPegOd`x^w;uVVeK|002ovPDHLkV1fZTZsh;~ diff --git a/interface/web/themes/default-304/icons/x16/heart__minus.png b/interface/web/themes/default-304/icons/x16/heart__minus.png deleted file mode 100644 index 0c305c305d538c344818e3b119d271c0d61a382d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00074Nkl<ZILoDy zUr5tY6vxkRn@xR)=Js<;9SQlQqJ_Q)q9viA`KV}))h0doAl6G^y$FT9L?pK8zm!X9 zg<w#dVGol05Zg?fLQk?VUqpOb6B&B?p8d(Cy>;O;?(f|5IrrY(L(EM71HGmMIv-IF z_yjcI2bU1n3o=i|v{X)yIO5V67$>^uSJlNWmn*j2*T<VqXEb27h7rFa$b7@$i2myB zm9^Lhi)B$9acPuD@e)l-!cT{Te{^>8T2~iub$9QK8w_*8rpvV>vGm$nTU%5dap?uo zkx{*Ve#7nNZ_Ukrh;(#tsHSE;2v*zM53PwKE<GbMJXe%CRNtGet>rXYT^%nrHSK<F zY}}Q3=32O=WltP&=`pVHh-mVAYio46x|-AYD=T@Tq=a7;7V?Oy@>8=p!AO2S2g=K% z;)qN4liZjpEse}KG;pAzg5TKfJerrsFHNRH_zDWxYc@y35toLNoEX;YwJ-Jcu}Pba z-y-o}OyC6Xii%=GI-MqtxO6wg9X!i}+}tIttSmldv9KRPCIOu2qs<l{&dOSnTo0Tl zQsDMJ${^7-PfpItTyb%H7Q20hm;myOs*1cKIk>;#OZLxS1?VQaYk;W#p3%4*v|8f} z5QX<fBYPEP8*jf3DFlMTnEd}|A*OMIeiXS(bbS!JEt^ccVc>zh?R4@%9-;^x9CmOH z{eJ<E<H^pB2v><#ak3ByW^yah0sBJ-jshDfuo6|Z5zPoPmso1;7%-g2&%lAr4WJO5 qq@+-F23HZ%-{2HDPSU~{r@?Q(&v&1YaO`FP0000<MNUMnLSTX)gf%1p diff --git a/interface/web/themes/default-304/icons/x16/heart__pencil.png b/interface/web/themes/default-304/icons/x16/heart__pencil.png deleted file mode 100644 index 2d37ceefbc39eff1e7bbccaf92ed6f4f7f368bd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007&Nkl<ZILm#K zUr5tY6vxkR`~B1j4!1eS)REeoTUscAG_*t%G~W^w*J_i92r=m)mQaRhFZ~m<%vfTY zl8IqZn_`h9ztk)=mGUJP{UJnr8V((LI%jUR2l2uO?mg%Gx%cw>U3dxr%-}BU)_WpJ z;5M7{zX`%~SrCp!LJDf0BVH3S;UUgYUCHn~T$3NF)$+}Zj8SZA!Vy83fPUIw0N}Jo zub*3UIMxI8^|)%c`@IIk0@WKBp0C(!{y&W;u)nf$GY|;iS&imxH$VyW0tkHo;~e;D zv*GvZYWz`CgKM?58v~*^#jH9U8_RVi_@*Tl1HWC^Y_)E-NYZ<Dp$8zQSE-y?aXRsH zS=m2)RaN*gKmXS(@#TCmj$Jc^<i3U^oVFJuJM4lRKzt+!Q*`q7q}7TM<bnd6D=poc zIeB>N)fHVx?x{<}m*o~*C@<e;hh6BRZ}0$M<ZDHRe>^V_BY1Lha5y&uhc2o@@_na- zod*)IJ2@G>7K@)9cH!<0jiXsvzL}yT^k!${Gm{B>wOZ^dR3ZA8v6E!CB>^96G&q=& zf_*xjj~#ZQZHN8sN~QdvuyB3EXv853GStGWM`F;OsSd4&bvk^JmbTueP{{1C3%A1D zpkH|}K7L*{n}efCN$4RV8ZX^w%xDa@OVT`NBOYA;kI)KmsY9h&no3U(PSR=bNDM*p zgkI0`5@$FY@uD|?W_poL0IoZ+v5T_?L+}%c%(PY;ye*20+~Z8N1I1A|2^R$}09<aR z(-t+Ftp%c06qmThJ<epp9>YW&r}uw~eojYRoR8r-*G#bYP!MXuNTe75aw`EQ7@l)2 z+)D(0K)VbsrV<BXN60-!*JdJX;t;V9_z8!{UqkIg@~->*MgRZ+07*qoM6N<$g1<dO ArT_o{ diff --git a/interface/web/themes/default-304/icons/x16/heart__plus.png b/interface/web/themes/default-304/icons/x16/heart__plus.png deleted file mode 100644 index 4ecc1a334345a82249cf5b4505c4af16f0db837e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007mNkl<ZILoEd zTS(Jk7{~G7+?G0Y=ngKYl8{$w8t9E+iV_Yq38RVP(55ALAr=&2bs-4mg+@{amL{ep zSqXO0CfS7~Lu{5u=*m_mfr(dZB14~^XFBoFU4svM_rCA<f7t&IBEtW`O9X@r0d?#H zb1?_I!t+WY<J~#e?w&enq{Rz12wZX)jWg?ZyKkeRfz~Q3y-t&9p69O#8L!%G-aqyA zvgUhdFw96JE&2h)05B#Se%fsGy}X>3D=KKcre<?crJ59LcKfEx1=p6XR<AVDq7OLM zuT)O0R#($pVc{N6Ss6`dWv#f`QfcXtHEE<p51@LgP)zdCw<of*Dae(RLo*i3)|Y~U zEgA1$n=dNbmPT4U=G*83M!psod&e>}DaetYPQyt_^gJ$(dW}Zv*6Ra$V`9jen(CEC zT0Gowdo(%OGnJoD&a^aom5@OFIvqWWjy__@Y^DLd-Xo2)=-6@cfl}%El$+}tiH)V# zyzyU#`3l~~$NM@$LR`{Fi+j7;_^~|FXl7k0DgIG|fgBv{=j1CYY=|LqyWV%|y7s;0 zq6U`p;lN$&QM3RzJHx{lCleF>6MVLh90qVaZZ!JMt-6iN>o*7k1~>ZjK#%Ug0np5E zR};{9KQwf~Z8G^kb0|t`b!2Xi+K6nATCx7FB@W#I-MTKE<uIt4HS$5O0=HV!>cxfV z=&gBn{El`b@7D!744qMK9R4J*bNv2S@x$p13-gE*RhlJ5n|2y)T6gM?GbG;u?b@#W zZ3xq{SY|c>8CGCi$XMpk6ftZ5mO^Nbm_}<P|MS`dCs(mJb{acDMjqda2>wQ~`VDH; ib0|?iK^AW>2*qFZ;e}*%MqnoZ0000<MNUMnLSTYc7D#FU diff --git a/interface/web/themes/default-304/icons/x16/heart_break.png b/interface/web/themes/default-304/icons/x16/heart_break.png deleted file mode 100644 index a19bd593f4f5c8d8d49172eddd7427e84e1b93c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007jNkl<ZILoDy zT}V@57{~u-=h&RMwzE%Wj->8XWTD=Pl69qd=@$-bLV*`zT|`(nL108tn$1Ymbbf0D zMx+a)gc{BwG!?pvnNlDUNNcr5zCDlI%8T%(7k-@geV+gCIS0-QAq4&hj9~}OIM7Hu zBLc(}ahmEf!}~-nkjON$!!Cx25#ZF6)w=M-<B5E4ZWf=btGB53W;EVAH*L2sZMfax zZ%s{Nv%Ws^#9~=shg}Q+(jYLyfpxcAtk%|wS1#A5A>a(v)e%LR+w^#%Yjt%yJ$|lL zR)*PO7yZD#0a>2kXlM}c%F1>aOHXg|(Quz6U7If~T>ns2^{2;#YH9>K?4k!ydL?O& zrf<J2DiX}FUO&@K1E_xfh0C=WC@vPs9<x+lzReE1=%U~~VDf!MMR=y5KrqvJdC?xN z)=zbGNz(0Jlj&=>*({j*Hk+8v%?-1|F7Cv+<j>9y&6k$4EGC>z;WHYecV*e{rM_3A zndmbZe)v>XjAvwsL9;o;4!dZNbGSp61FuU;B9jh>ctAmB)L@9TOHyAOWrp<nt%vjl zk1{hO?HWyh9d>au!43K?ooQ){ft;L}-(nF{G@xInTfGigI~67PSXF;MbvR-jDJhGb zO?tTc7pWDv;MM6?=CZP4&rPNnosSLcbRTC`b$ixoWqE}&oK1SW2jB|buFF76n^wCV zwArFTRgJwhnM9C=-BOfg?r~<fgX6nsAX+GJ7P#0-Z(CN?UrR)*qO5R@dz?9hJ(iO= zLHGY8{Ty#<YKY-I*PPgUX^8!VgUGN0`IW#d!+WkJdPeXC`p4qp0m6m2kbjgun@OID fBg8@Q6;7<*{cT3#bt_Tj00000NkvXXu0mjf!eL4V diff --git a/interface/web/themes/default-304/icons/x16/heart_empty.png b/interface/web/themes/default-304/icons/x16/heart_empty.png deleted file mode 100644 index fb513dc4d53a43bf690d504d4d159c39f7e67516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005WNkl<ZI8UXJ zL5mV`7>D1npe{vp5E2G9X`v;GiP~DCo%SFRA+!)4qHV2dKY&+nf}kEmP!v>95Jk}s zphrJ}UqevAi{e2Ld!KNYVPV@te|Yen_xF4LGbr2bR{jU+cDrEodc8v>s{B^Ylvld< z0rPH0M&}R*SK95ibUGcY-|t7~^Z6IO_2X<dI~@!LKXrcu%<RbM(8a-(X0vIuTCMZx zbV}j1@{-@hViDGY1I*rxE)K3V8jV{zTxf8jyzuaDG#Y&c<}29=4zAQ{HDA46zu0Ux zwg%5UJYTQZZ-LpH(Z#`)YPBkrO6A*lJpQENf%5bQ4(Q_GO0if3dpI0MG_;f_H(=4l z!IgYI4-X54!mr6>64JuH^7tC|>CnZ&m0T|Omuxm`=_j4*KmJ~edy095Ju*6UT~E^K zw2P5Sr6~MZE|*6;DX_z2M@EOP>v=DbWHM<a5{ctdsdT1qd*fcf%#MtX*O5>tbcy3Q z5|77?SS)s&$z;B-Rx1mb*^$u+27_|#F-=p#;jk|njeahd%csE1j_hB@Q0^%A!0-15 zB9Vv#%<f*ftN1+L<zabWd88l&Y}@_-?(;5tpxkz)KUA+72V%<mdjJ3c07*qoM6N<$ Ef~_j_r2qf` diff --git a/interface/web/themes/default-304/icons/x16/heart_half.png b/interface/web/themes/default-304/icons/x16/heart_half.png deleted file mode 100644 index 1a996b475dfcab6d66e591c9319c5b9980178831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmV;?0xtcDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007*Nkl<ZILoEe zUr1A77zXh7Y%~8rk$;EAz|5eObfJ~ToF$SWlY|&3u1$}2(Ut2eRyTve=EWGzws67* zYs0Y>fj1rnLn0YsEvyu}G%CRvyKyX1*4K09W@6M$AN&}+e9!Zpoo^$?82t|lQ-&l$ zbO&BQ6a=`9xilOOOCpg-6X;+V3~&K+4v3~u5F#2B%F9<0Lqn<WqoeGbUZ0$m%RgX# zHxvrB2!b%UwYAlY6R#x_i5oLBGX~6+Q&UI>h`1opd|anXe$naJr~ZESd0>DghKGNI zWU?h};<vZAH3&DudGRwIkM{<HL46<);K)yOBp{V8$9bN;@9y5W-q*)st*u{UvDi(7 zE<?isR}dcY`~6b#63KiVw}g{_E~->4C#qJnm9DPz&d$yy1kOQyPCA`d`+U9;uh%P~ zNxTCO(e%fjp5%OUGs_Vg8`<;PTI^?M4mrEAv2oqw@$^qlBJHA#2Xl3G>&qP-Y__3+ zJyj@JprnL7DJ~WZY7bE^EG%eUE|(gJoRo3ukyILe-QJ#>uB>Fw5X`|kdBEw-&CSm7 z@$n(2(^&#U4%%bKRX#2%dKay)-<>NfV*<j$UV$R38n>asW9#j9yVBuskce!wkFyfp za~Bq_Emc?VE|!+ES9=9jVnH&QY(e;z)oNAQY&H%^bg+Od_(htDOb_$(SKr9xyKnIx z!~&dr(d~BY%w}_&#bVhHX9_y$Hy%tVF%sRk=H;!e78j>esg!bTY;3@2G`5*cCXVNM zs;Q}=zb*x6@E<VXa@++4>k|_by#|A!TcgoP6bc3XYf0c3R6>=Us7XuoQmfVS6%`d# zm>tb3$nO1P$>0Pip-FTVUq!7}w~K{YV)^mx-pu+1;>Wzb8~%Rc00000NkvXXu0mjf Des)d; diff --git a/interface/web/themes/default-304/icons/x16/heart_small.png b/interface/web/themes/default-304/icons/x16/heart_small.png deleted file mode 100644 index f2ae66f976401735faa8bdcf42e6bb6a833c4da9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Z#`WcLo7}w|M>sko>_H9qJ-3j zIgJM^RGAM4D%de6IsZ&|NK!C!WS(YVAX6<O^5tD^(WmdGckYNg{K!pu^!@k0fA1ZN zSa@d~KTz<iH0aX)?7F)D@7Y;vcRqgq|LLmr@BgzueE1)%;@E)=FDK2u-G0~2?SJ^m z)BodD^#0W^oN?p7?yFbwAQdl?6FO!cJzoBFN8`c&Uz?f|_Hbuh2r2uftzg;2_QlA+ zV2hDK$(iTR_m_JGefrNCc=3O+h2{IkBMwC_k{6hc9OdB=Zjh2c`|v>pOH%U@4<iNn p4rK|6w59^PkRA<Yw}dzbhW4acMGJney#(|)gQu&X%Q~loCIH0>gU$c| diff --git a/interface/web/themes/default-304/icons/x16/heart_small_empty.png b/interface/web/themes/default-304/icons/x16/heart_small_empty.png deleted file mode 100644 index 6e0c58b8ec7eb82c3d4a8973d6ac99fc6aa3fe31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hdo^!Lo7}|oxG6mkb#KnZ&?YM zBu<GlCXNaU%+75}i6`G2sY{%^dd=%2o0i=C<tsXQ^6!RaduE?0XJLP&vi!U1@u`;2 zZ<ue8=h0Xi7JGefhlt(&;GBZ|1-Z9VB-(D9_)ffL#aNKDqmsEacKNki%s=a7j&mH? z`0yDohoaoE8OD_kIcZEF={cY0PWj|1C-i!zfOOtHhtSY9I;WHGe=o1fXOxl7>t=Ed z++cIw-}iD1qs(phMxE0UGRMUk;$?mu-v5EE&-Ze7(xQz%K<_Yky85}Sb4q9e02&@; A<NyEw diff --git a/interface/web/themes/default-304/icons/x16/heart_small_half.png b/interface/web/themes/default-304/icons/x16/heart_small_half.png deleted file mode 100644 index 234580f8e27bf5c509a78f9c5b6c2855c4180f56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxl;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00039Nkl<ZILl-B z|NlP&C759t8nB#!!FVMD!%-kU17a^<zFcbM%9UwAoCIPMG++q>!?8y}LGRutCx2hV z&3$3@>ea~~KYsLo`0!!ik|j%$2^uhuf#LM)q@;h>{QUmk4+{G7^5si^pt$khzki+P z&6}4-(12+S44W>wxqaAeWb}WPygX3ozZwv0-MxF)XWF!BkpvCsV_=Ay#m9H$xPig{ z^@4&R13;!&%$++ozOS!OkDvj)3=9md3=AFf`T6gil9U7)pu1|-s<779R+rx1UIwBJ zXaVA428Ic9I5{6JTC^yjxVYG(rKN>|Bm?q+ID&y;W<*4UZ+?D01JMSIz`Ote81%QU T!f4<y00000NkvXXu0mjfL}QUO diff --git a/interface/web/themes/default-304/icons/x16/home.png b/interface/web/themes/default-304/icons/x16/home.png deleted file mode 100644 index 242e2501df0efee8b318bf1a069eebd1d24b1c44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006xNkl<ZI8S|% zZ%9*N6voeB-}_Qd3xrmXWk^Ak&^F7Pi&a`#_d}Q;LJ(PkI5aW}Ee6t{tYP7bBE=kK z)Q43BB}k=MDX9npLoNT1W~7xCl6gAM+uk8jUHEa&ectDHc;Qk45!r-9i-nSe<-&^J zID|Vf9O(%bGS`ty$c?@6P4tfiF5%v-x;h4!kzGHw$NO`7l<^h_{B1#o5V=`f%LAQ{ z6_}Bgo6c)r-gR@(n^__d_;bN_;n9tn8YK>PJyBprcF5!5`wf@*O#bFFfxzMghR|{~ z5Kuy6aVAF^LJG{taAq0?AI?Y#?_6smx1bkf2~RKi{i-<J)5;;!&aa226qu3W44u7B zC&Ph@1#Y4JLS>~YjP*TJKpL8uRbbXRI_ScIiv=%NTdmddOA2R3dU-tBuE4dQM{X-H z>l__);lQP3a*G}IL<*nEEt(zc<H`OP{{<a%;lQQz<fT-9JO_BczmM|NV3(q;@f@Gn znxw$2b9B&!1DCG&JeuOU4{!MEaE~H*AeCQLA5>u0IXdWSkAg=HP05ds1N=>{2rg!? z<hIi}+<QKcANq`Vjt;uoqoUnubhf|&eDj~)^4xe-5i-|sONE<TPiAwWo#Ht<=)!@k zo+DW)RF$`>d|`To=O_CW_4(`hL8*&7{QG6eu6T|Px^VQfM6i|ZOReCU310X-st6Zs z<h$N23d}l32VFQZmy(6F4Ma`bh&qAHRjaJlW+4!x8QG%qCOB|^0T#jXmQ-gYDgXcg M07*qoM6N<$f_+mYUjP6A diff --git a/interface/web/themes/default-304/icons/x16/home_arrow.png b/interface/web/themes/default-304/icons/x16/home_arrow.png deleted file mode 100644 index 5ea4ae607f918f183856dda67ec0ebd3871b042b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0x<oFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007(Nkl<ZILm#~ zZAepL6bJAl>{EU4OR1|6)F4ZfqDV`fFH^%_%&ZCF{E$Z2(nQfnBYZ(w8R1J7&M2l> zqq2ggSfo&yLN)Ux!Lp_{9ce~dX(5^ap7XR(g!JLZJ@?%6KRn!fX(<u83mz^mq!d;N zD}M_S8XZD{++0Yrj#NT|<I49$Zi_Ea33sm7)PQl#y(`Ce>3&X+fv*Cw#TJAK=Bw4! zuv#8STyrm16MFf}yB<{OA~OYI|1O9S?itI=WpJpgRpOd^2V!H<RDTi0$y;&+Vt+4C z3vHLm%4DD+Jrd@6gTyuW_?bqnhBnOCw0*5R#R$#?(Zb^kB_(pu*830!jW@c7rzEbq z$Ip0XPiQDO!&zPsBXm|26vzR4f4jt?;fYy^YiFNlc$PDq<ps}HD-?S1Ne<79_F;UW zQ{rPkG2f85cJ_IOXF0=JS}slz<?TVHQweFa_I^wbKK(DA;aSdbmV!K&QQe6+ru+VW z08>L<Qb)r%<OeGyuDMs*V#T3GJF?E!8jtB~$UEu?QEhgtQ~KP8H~4Dnm8$mn;kkal z#5MPl8{WcT2O=taZGq>9v;q1)qN<~6r_3K8t@tL6$SQYxp`$1c8G0jj6gMNWwh!C# z?;`1z6%{r>ge~h!d$g3cGl0&dhOq4UPa~KcACL^1HE7F=LA>b|PLBX7FM-7FKXP6J zK6&jHehqXm+LsEGHs>x(k79muP^wGzM{|}6Nm*ssnqfqANh^X+HX*RiioGuY4_&iG znckx1yet1pIq`mZn3=%B=P}8Yx)HZ^ffCo;Q{|iC|44+B4E81A*_n<kc?tm=h^~bb zS(vB`eH4nDLYc!&?ycICGU=)=npJwK?sJB-zW^i~`I@9bgLnV{002ovPDHLkV1hfT BOt}C6 diff --git a/interface/web/themes/default-304/icons/x16/home_exclamation.png b/interface/web/themes/default-304/icons/x16/home_exclamation.png deleted file mode 100644 index a40d4dc1ee1c1529c029f28b00f4425ab6c5fb72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmV+g1N!`lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008aNkl<ZILmF) zYe<t}6bJD0#=b=)QC=zpwTqXKBnc~Txm2XI(Dp&h4<UuvLXfReEVTqLQ7*HbMWUvy zR8-O=O7TANnx?j?dC6%yU3tkBl6iX0lY=M+Kc2Jmp8w$)dtoyGSTL4?09MRSX4fC? zOzApzH**0bj^N1zub=cCz<lEco=o`*r4k9%)XTkcD(ct5B+|(M*=T_mQ(2Uig(IDB zIjX5Amv}r``qYD&Q9jWOkbf5(XI|%JWboi<R}Dus^+E#zu&Ur8-V8r1V}Sg<K+M!W zPEY57La7f{7UXbLQ;(iW#9}<>Wv}vgumC^Cw7{2Xe2|>X2Pb;#F-KyH@5bgis;NiM zXy&ws2U3Qzw7`#1D-sg;z*K(|N1-vjk)ztwrx}{13}tCS`yP=fh5aQLmv!%PMx*BF z+Rc^49Mz-k@%W+62lf3aNVAloEbL&nIALoEs_Vg##;Jas8*2N{>|hgW8-sA!@Dx9` z24itj;AP5C7Tm12L;kfO67^$RgY%<ZTub2{j5}t<HROk(u1|`q#uA(wkm5^)b9T`U ze>iGm2Jk2*z(l$-JB;5Zdb!LHC+tW$iyf&USdnUmOEU_TNF=!UISp&_wzW2w2qFd` z^OD#k`ln$8zq6k~?giRlOHvSaWr?w~%ncVO<B?q$r?ru&E_WEOe=dmYRBS=yNoPol za3?XVU&nD}M#JSu_G4|FA2wv$p|&j)HGTg0s!EQ1z24ZZb~n}(3d%PH?Cqn^d0%@- z40DyQE$DD{ZivedKY-QoF4&^li{pdrMH)E7Z$RhBfGakXZfUK~6^>ATE4@pyGfuI% ztjD#*Nlq2vf)y#|sBPMZ`e8@Z580#fODsQ$R=s<!EL+H<1=fu7L4ar80G))@iFP7U zi9Bpmcg9s=>b6WU+>Zs_-Dp@Q3K<xbx1dLU0rGwWd}jOlWjIlN00000NkvXXu0mjf Dyp3v> diff --git a/interface/web/themes/default-304/icons/x16/home_minus.png b/interface/web/themes/default-304/icons/x16/home_minus.png deleted file mode 100644 index 138c898a02f0c36acb99765dec97afbf579f243a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00076Nkl<ZI8S}j zT}YF06bA4!7)f~1MdnA5kVRQrYeAHd({gEy(#qOJm_`U8OOQk(qj1GQ64DZrtte8| zQAS;?P$)qvr4OYPVPL4WDQQMpX(E}Y^ZeZlQqthZj^}-z!wZhWi6}}$>vR+&R*F^g z62<+H#Dqv4**8&=$P9hsZ=%S>4<w0)cinCV%-G#Nv)}Q1Vu<lA2o^h#EPM^s)!g6t zM8S+*vE6d(`^R@&<wz+I1b-jcEn4nWR;uDa*HZ;Ec1LYCepFY(m$J7P34(<OtfKX1 zdATao=cll*&ZA()4$tgXD<4aa_wL;oMQK7ikSd;CcezwB(A~x!dmO(V99J-7hiAwf zuvi!!ba5a}bX+YhRe|B&=L$-Lqf-iIZI2AH=%9-Ouh;4IW%4gMIT`HX5r2n**M8x< zr(o9h$RLXjy0k*xVozK&c`sz<O%3<*Sl_GvLIzoM(4~af2&z4s0gmZUejXp_QrhdU z@VT8a3TADO46^7P$AKG#HckG_=lA?0(5+M*Ht?IWBMN41j|{Tj)yv6?168N2nu1?n z`uV54B3w&f!|fL{xThkE8`ei~v&o>em^X7ncvwKnosC2u%G+n6%ejeAIQ#Vj&y4sL zk9`BTmZWjp`E;%bBc9I5`G;GM;3eopYCJi!wiVA!1bKF>PpQo|^5fG<{L*!ZYmCwC z*<ze$HnDT*lAu${F1&$!mf^QlbkI=3lcPNMZAkIvZsiA#9SUY`j|{Ttgt`<fOlG3S sU2+v<cCOXyn?!j?6Lt%pH=={?AC~{;aRaE`g#Z8m07*qoM6N<$f-ZPDPXGV_ diff --git a/interface/web/themes/default-304/icons/x16/home_pencil.png b/interface/web/themes/default-304/icons/x16/home_pencil.png deleted file mode 100644 index f5602a492837a4f2b4a258df54d62d59cc5507d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007$Nkl<ZI8S}i zYe<t}6bJC<mGvnikn)xYT9BoUf|7}IE0;67m{|Kz=7$i%R1nNd2I36K6w+EI&P-F( zk>#u=RG6T7flBd$;3d2?wKOBGW<xSh&;QYZg!ICX_v}39fA+o`+sqhq<=iBRxpN-e zj#WzT$r`1?MPj<WOvOd5-SL?*myH*wxQ0h1B?PF^D^EKa|7T%}aOW6ov_Q>SYKn?z zw5v%#jb5rQ_`#2ly<~_FN#Yp%yWj}-@?l}22#$5X7Eq&iE<BtXtBUD*Oh5|9VEqCO z*L*)eUj(WXL&#EP6i}mwGo4057u3F{usyC!%Q+T=a&PYC<cL9QUke#^KGZWlFQ7&b zXP7x198Aa{iv?P)^LAF27?>Vt6A&7oT@+9|`k28iGRR`VyInF_F8@m|*(UpGX0TJh zW4BxC1k{c`W-`4u-F)TbG<-~whS+xg6i0pBm?<+VZgF~m=0@KB*Jw{G-8im#PI^5( zlcZLr@Y=>IuSP(;{qrErk97+j)wk$ckh_2yJ!?-HnQO|(Znu-x!=s=AuTYvC?vS|j z<pce+_6deFe)K-~tblr|ubkTIRb>B^L197iMrUVdc^Q60LxRR3>G#)B`o&)Z?ws<b zj_e5PFNmh6>HDbNtQKK&X&~iY_P-mc^kv0|ycvr-A!m89N=RP*HbF}>gMv}Fo0>DU z)Re8D(llu`Y*f&AuZb{=46@?780yRP(Fapk7A9$VZbYbz@h8ib0D56?7vTo}&0}4a zgc-~t<G8kRt|^gz8DyKKmG4u6DfR$WBzO|phRK+|g(mvzL?1JlMP@C_yg2!O#%d2U y)&;!Q@07_N^FEzdI}HVT%39D{cV3GOvVQ@B^YD;3Y`h)-0000<MNUMnLSTZ(9aC8V diff --git a/interface/web/themes/default-304/icons/x16/home_plus.png b/interface/web/themes/default-304/icons/x16/home_plus.png deleted file mode 100644 index e9341e8c5719467ff08f157766241bd4d06c5983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmV;w0zmzVP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007pNkl<ZILm#~ zZAcVR6b9fU%pVcm5L4H{&;l(*(j={RHQiLC)UuWklL|v*6C}~d$h26HB(+4tsmu>7 zDWw7{f-)pi`dBGN5Dc|eMQuZ^w2;ixeQ&!ECH;7qGiT0wxXcW>5RsSQ?c_vS!ADs0 zn@(u6(?xnZk#QqM390rg?uk5CUJxbRy;WPwfEvB)Cw7~D&W$s!0>MfPqJ{Pw)zv&~ zc`TtuufV9U`|{x}SD9jS1%kg9#0ZZXDl27hr1y!08oji{M84m2na^cx$rlLzTwoA7 zu9lU_Kyywkw>PO0YV`2TXfW`>=)jhQ4PF#4I2ObS&uYwOIcV+cWYy@;Z$@V&)ac<E zW>WNeMh00dh!=V;78lEbiGeN&q0#9D3ALk-8O$PsEEc?4uPCMBlVr`0_4CwVkA!1C zZ@(>}cJwiWS!9r<)#4O8{k^HBC^dUwVt{Q!FaHZOm_-IziuCoM#*@il`aU_xvm?Dy zcXK(P+OCyQqj&h}Ar5<}<8U>gE3G1&TvD8guH+>;<Sc%C$6u{|Qq{g7eqFj>LXBSN zy={DSrhql|TC39FK~(2XRCUbYko)7)Fn<$AgiA?&+<i8g`zz8p*1VQO+qOzZTNZ0- zy{sZ^p=<6cW$y~1^O-uxTbg;#i&KM=Y7F3x!g%gHox~nzTsdYk^&eET%7WKGN8$ph zBt5)fd2WoCY(r9GMle4(9>p)rdpV)RkHhLCq+qL_T}$1^=z^Pt%H34tHTakE_XHL4 z{4_6r9+z4&L-~#=LPCw+W;KF+MuXV3NHbyofsrL&A!HNL%^gG*5Ov8qMQIhv>{`*& l8Wfw$0cFA2pmZaH>@R2e-;v;1CBOgx002ovPDHLkV1k+%NOS-I diff --git a/interface/web/themes/default-304/icons/x16/home_small.png b/interface/web/themes/default-304/icons/x16/home_small.png deleted file mode 100644 index 07b9993bdd648b14b853725b6a172cce5f1c2818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU}X1naSX9Io&4kfe|u)t8Hojw z3g-?SP&jzvgaYT0OFcbS4tv;K+NHUTTe1vU7!5D7z3?(L%8Rm0K2|RfEAaC9h9y=8 z%pILZ4)PfX&MnOi{r`U6&A;+4?mKq>KmYMkW^U(pg^UJ80r^?iZvFay;>@T2vU*Jk zQb*W3o1c7?QaE;?AgHx<sc6dQwYJ^=_wOl`@oD~{P&mORj@f4ki-cO5<+J}4g^&L) z+ji!^Dq9R(<ArGnoQIC?zklzy{muB7|4&|1FyMXEe8lln1@8(jV}^&H>gUJ*i5FS^ zy*_%P?F_b$j*k>7_pn(oBr|rTGkuf{R#<!H(571=r`o&tzb&y*0EWkhd7b%f*14j< PkYVt2^>bP0l+XkKyvB=0 diff --git a/interface/web/themes/default-304/icons/x16/image.png b/interface/web/themes/default-304/icons/x16/image.png deleted file mode 100644 index 8de223155b08b68464e316d1100f3fc1fd1db418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005fNkl<ZILoDz zJ#W)c7)H;vuRmhPj#C;+5&~)lkQzh<0~-<&3@i*RNL2g)egp#pBVuMj>Qspi@CR67 zV`8hiLb5<pnvZMy`d$WiVuIw6-ting!}AJjE$hT#&B&LBhmU~niu_n=t$VNb_TH{S zzc@H}E_GQ7V=Z^z2pj>P3(|!`g9XyCKIy=46GmOo2A<ru=&}^DC<-cT*}W_XB%}@4 zjA8N{8eR<}V7h=CJ=pETqJ+v?ilRW~MIkC{=`}xd?b0^wxQ7L<Z^2eli<Tt}FVwPJ zLl)M8yeNdsl@gUPeERy1FJZ*PTaURnx{q|gmv!xB2^$fV75FYh0aV72D^&|hV>miK zB5P&5KilW@>^p<b6}lS(E~af7eh5VP5@H`h4^(w7P)a$KwdALLe$FKGUp^nE-)Mx# z#8FHf$0W^!q?yo4QU;wK+nqjlt_CQj9I2EN+8Bo22l&2E5ClX~M3Tg0SxT0rwA%@- zR!o|PM3ILRI%u;%oi`BXuQ^+5(b}+B6bP|IYlr#Va&l4;h9N-^aC2m9!DKvkUC-m= z>!<%X9|J6LJ)g;V?22?}=b6)N_EuS<nazF(zy~rw{wJ@2saW@&{{WL{zafH7g*5;G N002ovPDHLkV1jJu-^c&} diff --git a/interface/web/themes/default-304/icons/x16/image_arrow.png b/interface/web/themes/default-304/icons/x16/image_arrow.png deleted file mode 100644 index 2d4d3c884b83a4508c7cf02934c7e1ac1c648def..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006rNkl<ZILoDy z&r1|x9EYEGc4l^WW@p_sQ+HMi_h9%Vw4j@nU_=lR5(O?@gD(9C9XfQ3iVo4CATUHd z)GdgL@Q`%rARVg35DZxh3~g=qou6-q@f3xSU-%q94<GnGLMg>wPGgU!-<Y322bBJ^ zU)RGhbZ=Ix5B{fpeP-sW9tMGkmE!nqfhNF6ft~_C1O?<XNpuY=9WYdaFosJ<6=4tv z-S>SWr5NcEq;<$=p~HstpO7_@G6FW6Fzmue8JYn^O5yuHy65{MQVKWsmj3QOinfaa z4s}77lYm+QRQ4q>FN8uS0eHSIbWchV#WAnmKVmUsapuS*<3khZ8kl-AyA?pY1wjO6 z3am6laf~Nr0tn)m+H#FTTY<U8W40P=^zJ`EslAuZe37h~0W3@%Y!fmD$Y=*3rPLy& z@V3fqZ0r2`Ve)kI1KG?nwq;}6HcrmL$vJ%EAhBLzqLOB6)J96F=~7A
%BDNNHO zolav}7LH?6DC8*=@)U~>ZEZHsKW=k&+~vhWoo*+E+*u&vKXg_~5r#3%rq7p#M1Bp? zv@O<FS8;5Q6Jr%-U)I<#29D|L^?E907(BZ*^;cQ0y>2iuTB6o~u5f?=SlocVv3{05 zt&EHO;NWE~mvjGRn^C!VLCf`&0k&H$hEJa?yN4?*-k)9bSKiD4m_R4s?iQyyy)?X_ zlvABv%1z$8Lh@;R;QMagrv}dBwY+zq?>r2I5O)p56M)}eVB)JMAqh$V0000<MNUMn GLSTZn>k(Q2 diff --git a/interface/web/themes/default-304/icons/x16/image_exclamation.png b/interface/web/themes/default-304/icons/x16/image_exclamation.png deleted file mode 100644 index 5ca76146b2a9febd7d9e1924a66cb5f0844d4d78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00070Nkl<ZILoDz z%}Z2K9EP8B=Qwj`?l{f(nPV1Ckfws92tpK5LLXLSL7@b-tUsV#ixw?fM7U@neNb(L z6tW~Y)vB-{v7(4dEF&<*)YLIObMKvVTFg##qc8lH@58%ze!>{TMq;tS$SXZP$AGeR z_9vw8`^l>v9bM~bU+(U{Abrmh+8FlS5Lg280w4q6`e1;VojYkkst9V!z}IlP!QgwI zkgn^JHHP{vf{=t*7>XR2T!3(1u8e@WC8$e6eK{<7kTnL^b&(m@6<K3QMhDrkxsrsF z!~j*LP@10uEqjnE%)v4~#O)j)<GMm-loDC3c`<yK*LH+MyV}@SdjM%cQ08VYdk|iH zfci5)P`47TI7e1%GD_tDp4N<vju77z=VAIj^XYLainmf$P(ev7fi1yXcuA`I6ysyh zu&py>w8#OJQdZU&GV|rkEK2^(26;61iLgD26LD}Hhq}VAwC)txp#VyR8T!&sZS`@K zQkGOo314ecWi14QK|-Mrkw}F6e1~{EMk4OeXuqK<)lB>O9=bZ4nEUx0Umr#(B`l?s z&?|H{#^C#!r6reO`V|QqWOj<)-d^1F4^Rs%&kmxL5^{24A`r;SqwjkADykSJKis3F zB*E{$Lkv8<#B^qeL_EUW_+zFfr=^J1)SR`V(d25THC4`UyLcphw4u3rYu2A<d+jja zKQ{t`_ix93-F{-<5<n1$19Bzc&Nb1wdv9ugL2;-Mqlp%_u{hHQ!0hzm%(su@{bDW8 mPacF5E!@<ahBaT=;@y8L|M~<IxEe430000<MNUMnLSTaVb1tv| diff --git a/interface/web/themes/default-304/icons/x16/image_minus.png b/interface/web/themes/default-304/icons/x16/image_minus.png deleted file mode 100644 index b5e76b464f22fd8bd4f0401289fbe5307325c3d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmV+^0@nSBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005-Nkl<ZILoDz zv1$}i7=^z(dv|7bW@mObCMG*;BH2PA5uz3riXdoVp`Zwg!3XdmgjiULosdSb3YdVt zfTdc9Ru<wWjYUWrW#eWycW3V0YcZ)J3ML2s=D_(l#rcJ`mZQkwh?0+2S8oEXL*}=n z);fK%xVU_n^rMxPhf?RcFxGPUnZOZHt$?gRrojTSU!HWJGY<1D&<5_Fx9B_<GRraw zYgsrU@Fc`F7!P6l7u2d{7y-Q@oJnD!4Z|D?Yss<<Im$9oSW8-e	?dnqi6sPEW#Q zRD$+$=o~9yBMpgP0!CRT<VYz|7{lAoFZkdGTt9c4EAv;84!E+cy_dsS0C@p!1p*HW zV;Ct_0&-*MZgfc+39tGu+39aGJuyRTY?|Y7lbY)T0j`A51-}Za*as-3oWfd0J8gdK zN(Mh&UiZFG^EU{CkT491>Jd>rq7lVRPo&IFw7GE7Ln-A*rIgUd&}m)6bzMBqBM1Vb zC?rW@k|d_tjA%4M;@Bq$syM!bHbc~Y17Qx#*;<R%hT$+nh&|HfCH(JS$sLEj5bO$v zPc_4(e*d1_-rA~Es#V@Rz5mz2ynEi|*2S}b_}|vnW<)$U_rR&w(|;}Q#`^l5sllLq r(BHK7qX1kW0px!!Spz+B)OY?3eeS{S!n^ny00000NkvXXu0mjf`vm(2 diff --git a/interface/web/themes/default-304/icons/x16/image_pencil.png b/interface/web/themes/default-304/icons/x16/image_pencil.png deleted file mode 100644 index 2f276d7e75826e1ddcb72173f780942f06399ff3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006{Nkl<ZILoDw zPe{{Y7{}jTB07Y05bDsOTYnB6L`cIS7-jygNrWz=jNEi)#>y-;ZB`ByUHΠC2`~ z)~Kx1WTA;23h_^wT3UfRwXzJHOhx_l`z;S8(m@~i@bbLR^ZCB;3P5ZGvEhIlc6*e> z`E?Q{uG?(Mtg~cSWLhkmrR8OUis4`hgqFdfa!{5+h(zQ)h_8i2E95-`M;Fv}g6zny z$S|8V3rkCA>*3-9$d#7vw!yUqFf@UwRYL0X8^PHF!{6cUILMCdij;~9t#@$|!_yAz zoo-qN;Q0zYW6<0W4}0OsJ9s$+?<Zj7C&-TMilpM=6wkr}%KS5g8&fg0xaf8NSsapH z`}hrCKROMcr(jGvC)-}*j*Z2bkWePn1qG?ob8~Dz70hm31VPzqZaS^hwztyUH%!;a z4+bV@eF0;?VDQTXuKU%}hvZS`=Qkwcva{2syk53NpTPfEJUiphvR|j?fIf$?+(KfE z<)|wyXsu3e*>7{X%#2ssugc0IBRaZLMC$byCTC{}NH!CcW+7BxM?~&pP8PY)RKMY> zV-TaujkUcIrz0HicoykWXh(N9vMa)Ly7Y06=bwP1Igg0D(?X)D18q$=1vVSj+AyD7 zUaG{@@B-P9U9nH4y7YB^p3#|^HR=D<L~FwlpIl#~q^qydcP~4#E4J?0qxK67ys{Pn zhxZm$6>b@nWrKe6aB$?V>c8i*E2P>a;V-dcHHIWb37!v>W+`4Jsl@SBbN?0hzlA17 i;mAC#2sx)(d*L^@HH#<@Ms$q;0000<MNUMnLSTaXlr~=g diff --git a/interface/web/themes/default-304/icons/x16/image_plus.png b/interface/web/themes/default-304/icons/x16/image_plus.png deleted file mode 100644 index 522539d56675245fcd4daf33924a129043a5b812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006dNkl<ZILoDy z&r4KM0ENH%=FXd$_vVc=Hfi%Fg$xp$Knx08ghe4yw1}Wcg0}q;EnKuIqE!nwfo%j` z)T*Fp6IqL*K%yU*kPA%%EvM1(zF+sY7*|0Cdf+U-kFz+!7{hL2vCGKOsj2foWrzHd zjN{n9IWjV~6Z*!)#B~`*k<i9){I0+fkWPV2K^TJp3fWer1wCb`RUp=I>4+hYA|b;t zBr%5m{ep~yLJrC<EdPdFx&<R(tqF&H=&wREg2WiYFhmAnC=z4v^RGCx?*Jv&#{j*Z z(CM{An-TQvX~}{ZirJPR2ty$Qr9`4N&)?nWb=Kj`zy(g!P9ZI@Wo!0k1nmw)3D_xc zGLUFZpj1l`Y0d21EXB4WlZ|oejYYclc2jBZqN7kEXJ-KiTY_stHVrD-5-6pt#2A8l zmDP30#!s7vYahsE=Wrbt*LCso9$wyKIy+81{flGe0mhErMk!@UrId)Zrl)cm+qTJM zGB}Qd=eZP%1&YN2rIJTmo6FOMdkhZ^@?!cuvDT=q1w#LIXJZU;tZ6nwgxKUs^A;=L zzalJ)dQvA?*9<>9%a2O^vRqzTN~O|i9^JX}&%>O1JV)<P2LLPa3I|V?0QfxrrCSvG z`mS2}yuaP!)(00Z>awZ=^j)h}KRx)k2*7;&2EYb70RO)ob!Yr<HN&Vov&GmcAOSXj s#<m@l4N7L9@p2Uc{g#xNWI-o?0N=Fh7xRM3MF0Q*07*qoM6N<$g1c%IaR2}S diff --git a/interface/web/themes/default-304/icons/x16/image_resize.png b/interface/web/themes/default-304/icons/x16/image_resize.png deleted file mode 100644 index ed9d5ee99c84dae3d405860107b4c3cf7ac27d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV<T0SNwyP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005LNkl<ZILoDz zO-NKx7>3WXc5RDRMS-=6tQOTmrzE1181X02h#Z5Uq%0vM3PQ0~MG--|uvSV56BR{a zoG?lv5WzvrKPVy`Yl?6jMy7eX??-pjkF%Hq&*Gl<dEeE!4sgZbnmWHCj$KaqqwTY< zu5HFuwZ8ug-7A+Dc5I;j!bch|e)2Wvrv6#{6M6F0vw`T@aj&5ARKg!@8KV&L<f~@` z!KI7DhJ+T$FM*Cc`Rds~dE*<mwf33dXFku~n^4^iRkxwO2Tt_C)fe!549n%oSI-7E z?2m_#&E>fC@E!4y9FIm}U>xobgP(xOIV_hKc5Gm6#k~;H*({sRL}|WrgQ4j;5}z|n zB=dYo!M6o0mlt+yV9oCS5PoDbtgbymNz+Nn&$n~vdKagA<6Ied&6CNb<?_Og4QxE% z-MT%G1*vqJZO6NbwDuD1cuMTnTiW`kxi<KnyNR6T^5m;$1Etl&!N*I%!r~%d=I8&5 za(VLAvw<x&Bfex;k6T~XH5gn{h`@U#Up*Vx(J;l%!!v%x%I(XXbE^swc+2Ih_xl~p tA|kP*-@NaETk0s67j|r*=)bYpfnTOJYcs+aY##ss002ovPDHLkV1k%R_tF3W diff --git a/interface/web/themes/default-304/icons/x16/image_resize_actual.png b/interface/web/themes/default-304/icons/x16/image_resize_actual.png deleted file mode 100644 index 3c57831d33186f4707a9e943570e0d3c60ef555e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005oNkl<ZILoDz zO-NK>7=^!OE!zZMg22$q773CY7mZ?AVNuFp4GKnT1SMs<3Hu?6YE={!q>E~0q%>fb zB*ugl5`jbwQcf<WAaZJoa2!UadAjGL3%4QL%nOH?`<~|<?&4kpm_lSW?|W|QJKvaH zUDKwq=e=n;^~rQxNILE3zu`&Gy2}?QUb%l3cnbB#1I;HtqV2ygS+Mg+G~$~0b>e!Q z{F}JH3M%)EnVPmq2~F-l(ufnUoGsY6d&H>-j+#wPkNK6$vF#cJ`=RkBG~a?lcj3|# z7@NlW;>0Uw3(D%ltlNG+pq<HPIWzo<@arrO-op4h7@UI048#&x-_P5EHCyf>g}Ni8 zG8xK`HPCtcDwDGbqMy^u%;ktD;rjyC7w2VcL2>O6#kGS0?Vss1tD0I_-+q|t-m~nz z(#O$(Fc-&P@F+HCeLw%_4Z==I-LNUC8zGrWQF*YRnw|j~&W+M`<0Z$3X1P4^gFDfz z^~H%-&K8tzeP}l9cq*~5xX9P}`6VS^oOtDI!OFF*rl_pLlm_}HDuPq^b>MW2{F}=? z6R(^t@Xaz;j;Gb-U7@O$4`}=Eu9ka&`~o{GimKd?D&bV`|AHqy>z+Thpy0o;(1PFN Wi(L;kybpE&0000<MNUMnLSTZ}GzH!O diff --git a/interface/web/themes/default-304/icons/x16/image_small.png b/interface/web/themes/default-304/icons/x16/image_small.png deleted file mode 100644 index a3c531aaf342bdbc028135498afaec74646e722a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`&pllnLo7}w|M>sko>_H9;ta`v z?Mbcqe@{)#++pA$x1Le7TWl%w%m4p3BnUK|dTh2J;n|rp_v`=v<DdEYfBmaX|Nmc} z{{Mgcwuk@!-!=dDpS`pB$w#RP*Y3~%`t|$!|2w;%|Gi)P_w@hbexUhf@Bja=&W9-y zxO->L=YPlh|6jUT_y2FS^#AQ^ZvU%)IMMrmKa(#5*qjIPar1tEy1o7Xv&iEA)mQU= z%s2df=Kr_Y^Z)dB{CREfA*0fNo#FVIGk?PO*Zr;k^pu;84XjV${WCGer!OM9xSOA} eR|l!FGc$0vyuPP?T4pZL%M6~belF{r5}E)~T$|Vc diff --git a/interface/web/themes/default-304/icons/x16/image_small_sunset.png b/interface/web/themes/default-304/icons/x16/image_small_sunset.png deleted file mode 100644 index 3c09828f0bd3ae8cca54c613d9d670107f89e282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`w>@1PLo7}w|M>sko>_H9;ta`v z?Mbcqe@{)#++pA$x1Le7TWl%w%m4p3BnUK|dTh2J;n|rp_v`=v+rJ}@r$;|m;D3GQ zVv8AUoy|`^N=>+SfBx66-{1e2m0b3JeeTsC|9@<F_Me}B&VPIBmEYx6_$D3Cb|@(> zKKEPR{-67-?tl3`;Xn5mcHR5`K0fIGeT$6W5H$_;m6h*K=imRQpZ$>SvFKZy|NZNp z{@=f>{kgq|j7tA?hT~_>{0ZM*_qYDjQ*Jhh-3srYi77sP5z)on{G`1)NR6GDfw%La VPD)MnM4&erJYD@<);T3K0RW3{gr5Ka diff --git a/interface/web/themes/default-304/icons/x16/image_sunset.png b/interface/web/themes/default-304/icons/x16/image_sunset.png deleted file mode 100644 index 3d54135b875cea20ad63fca5250be9990a6e5ea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004~Nkl<ZILoEe zO(?^09LMqBiAY*0Y*Hd&lV_9E4syau%>hjg6EkC(#eqDOIe0ozo(_|TB4p%5$y3>3 zPDqK!2&o-x?ZLK>|M!1z;j-;t@4kJ%_4*(F^=ANBII*x_Fu1-h=V}QtIqO?pZAFL= zS=MVZsr`WfE;r+XiVRuSH9xQR`u(`t75<Y5*Lxz|>{Chnq@C_$$TH3JbeqfP!`f&* zPM0OPKS=%U;V=!4N9lOJ5aZRF!%y1jPKGQ~O-yJUUN7oPOVKEkVZ~Sk+esGR%b5i4 z)&jWgwFvlC{G^@kWXLk*$Vj{0?M9hUh|0`N)Rz=trn?Z^lZCKs6ywQK&f#9}lNq?# z1^bN*AC^3jA<Js}`#U~eF6iV@eEOOg3@8&Z+>``kb21i&GGM!_g73QlFZXpY&*tKA zF$HAEvTB2&^UdkRiAnIcB>~P?1hAUpaC@A<Pul5DhAgYlYIUy;2gcM9e;U_BVoDo{ zow+C+ZAJ5wcDj=x%d!;;{kzA5=dZ7zB14wNip5HSRN50tWEuBFaK&?pf-Ii5;r@+3 XpqhicQ@3(k00000NkvXXu0mjfuh-`~ diff --git a/interface/web/themes/default-304/icons/x16/images.png b/interface/web/themes/default-304/icons/x16/images.png deleted file mode 100644 index a36d528f38858060f46776069e8de5bd2aab4ea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006bNkl<ZILoEa zUr1A77{~GVuBpr*9Mmq<b=4xgNDx^GQHV%*k$4d#Xc)P~1~Yf#!X(s!Ffi;G(iqwt z+ahNxoTU=U2DvdEc%f~M{%8iyh?;-q82j};XYEiIq0$Rq-gDqN&*8%Wu>Xm*+iX&| z?Di_&)qPYYe%NNQWNPGFk=jFaXrBHmE@?HHC~Y#8!nt0cq7S$*kiM(=-7pL^*#L_V zaLofWNAu!>4u^x?v|3rSAY6+lleqJ08w1`HY_q@<Kj7fE`5o}c1Nc7!;V3|JH2;^| zU^ZL5p%Ci(yU}JJ!c$)e&u1eT3q~;FkHF3Ew~MP-ivb&n1g`Y-H0|3x;tODXV;kS& zanyEpHcRfgXL<ifAwARFz1IOa!U;sTwoq*}UYFcKXCW5G3h>^YpKd%KOOq-@-W)}E zqL9BAi0<3208GIozHV-!Qm@xBa**fp*;BZyEyaf^HI}E<_~Jc*pUV|U#4h67Vi{IE z$3?euW(F&<7}j=nP+C`~XXGHyX{8e9)oQfYp2T2BF(%C#{D`)2br+%^8}MnmM0B6g zYMly=#y}k^D!RnTL7vh3*<vqx<#_o(4tIYp<|h<bT~Na3%)`{<gQB}qr!z9fl)NK6 z86yXI`dVaC4{yjI7_u-b<iO*S!_u7%p*2f#m(<iS>5zjw<l3!_o5zlom!}tyBV*c2 qG@q+du}pLh@DBfW?N-|T$N2>|#ClyeI-SG-0000<MNUMnLSTXh>K#=8 diff --git a/interface/web/themes/default-304/icons/x16/images_arrow.png b/interface/web/themes/default-304/icons/x16/images_arrow.png deleted file mode 100644 index 1b8a94034c32e228b390df28025b868a93a6a346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007INkl<ZILoDy zUr19?9LLW~W`%o*2IhlWJ;cO(s3@^|s2(I_(u6|rmYHED8ffkzl_jAz8dipFWvyYY zxy>}Qa-~MhT!j0l`H+9QWI796A~pZaG4}18D=mT|r2`*+_rUjl@A+^K0YLr-qA(i6 zTrioWl)M!n6<#dU>wj{Zwj#6)*kXD1RiUI*t7YT|Lm?cj15)b&S;NxIpfmRYP+$b~ zeL(vlz;Y}v6jYkcq{3hzg=+N~e=vwkFBZ^X3&H3D?%M$~ow~Qc&0fGh4vcyMmSg$f zyyZHb!8S626Pg;7neL&vZv>BBJUaS$wAy)C=(G-f#*`134Fqtiwzgo!-mQI3e4Smu zjNcEgs;V&T?QYrd7sTObmQ!^)VIB>@J3o(%^75jvcmJb!yzhv^uqAeh=dt+Ey$SrQ z%^2;9r~5d;`(nEj+WsKE%+29Yaq(HgJeW_;fjv;>C*$Kw2_||Zn6xG0`$Q@NzD!IH z?SrQ`0X01{IAR!w;oUT*78jA6on1_r2lLq*6N5B~1PX3D8Y_38TbF`w-V$nE4ewYk zKK1OvG1DY&O#(YrF3;Ay%T4Q(lClW%U_NbE)(SkSi^9|EQLt!480-?GqD6`Hs}GT; zYDTi66Im@huF+q)t;#u&pm>u*m<RKzFNq9u<6I=v@-=8vuY=U=hH?xzNiWY)_b*C^ zfi34>I|%b&J|3U%j}++#u)o?Wz)rBck%x?4tmuMgj*W#DjxY~#N{W0rh%#?`60JZK z*W?f#H*vItu(g^JO^Nvz5$T${s}47~B4l?sT0&UC57>R32xfd(MF0Q*07*qoM6N<$ Ef@G^S-~a#s diff --git a/interface/web/themes/default-304/icons/x16/images_exclamation.png b/interface/web/themes/default-304/icons/x16/images_exclamation.png deleted file mode 100644 index 4e6f454e078d68bd91e97571183799b2a7750974..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmV;w0zmzVP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007pNkl<ZILoDy zZAg<*7>3V&X~m>MAx3BkL5niTe)tg)_G45?Bn+eki=viTpf(~E(=xNdK(T3-t!&wx z<yUK(Ez5Fg)83}TbenV4Oqm*Gb5qCI-FseX^a)7^E^ZFo=Q-zsLjaKff#fKaeooia z#Iqb;0P)<xOoie*N7$+G{R4E-KE0J2a-y=5BJuis*j@~XN`XBU^O?Zr!8<^T5>V)Y zCL=(5w9gI5RjEjJbu~$q$&Su?y*U491{FFVlnijY8&I(+?*hs@fbI`~Wdfi*+W*O0 zDwkL5%x3H_D?nyV6>9ZnG%{9b3|7>2ThYvB``{?XoxrrmgF{6{DGT<l)4#^#^b9`F z&LSy4Kh^L3=6>*B2;q{c=VPcx3`I*GR2B~=+-@XfWgYW-8|qhKKobU2bLc!Rp%~Jx zhV^MU%&lSQ)da!)<u01kyCFABW6b5kj<mGngnCe)197n^ltjVyL<swHAwKHX<Evc+ zk24W=W&_?cJK=TJqMwn#GOWV*+#I5klhX+Gpgvm!0_+kBk(0Cuw{jz)mB(OeBAt~# zi?=U?m>MmBSS*IamglJ~S*jOojXt?NB4Qt*9@MAd@?wq$#eAqs_-HN*g7I+(hM8dW zwQa=INH+U#3C0E`&^3lL`5C-Kb{|Nn2lXjU5A<^-BM>s_A~eXB;8|?|hK+kMU=-n@ zS_)(DHuS!VozyCL<*ijb9-$u8XT<6J4U<g^eVYjHOmVRGM{+NqY3<*P_IvzJ%?(~O zp&lVIG15PA@ys%PU&k7!!?F$z^IEt*o#K*W>Rjn)yvn=I4kZCBD_8`-a_t<cVCnf0 lc_Hb#d4as7R9zya-vGL0r8OQDhbjO7002ovPDHLkV1fvqM8yCA diff --git a/interface/web/themes/default-304/icons/x16/images_minus.png b/interface/web/themes/default-304/icons/x16/images_minus.png deleted file mode 100644 index 21da574a17fca460deb3d12dbdfd438fa4dabd5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006wNkl<ZILoDv zT}abW7{(8E(ORyHXiy8Bb+-t?1tH5I>Ow-i$g3#P!cj{sm^C5|8?inh42(I=7^9qH zTjp$)t283nK(}TKFSM=E$JD?TQBya^*wcCc;wVCxbl}H(4m{^M=f?oB|ADpG?Kv(x z9F?4ttDsW2*krXXbBebjn+LQgPp=9k=gnq9lgVarunj0T0*AYnW)+`xJwUx3u=)Y_ zI6yhd3k7<olU=geScA!QI+e-b`tu~Zd|BAXfbIa`<kK<&bb5in7a$S`C`b9fymc0f z%@+>ic*iv~Iqu_uKa59XQ4EBl=nF*Q;q&$63}zF+TsjSPYis?gz5Dz@e49(+M=FJC zgP|ek{r2JJ6_Dokl)L#N2xlaX_`(9Jnw!t$yhE-cObp2J-cz{5vqF3r+K%X}9f%AT z@v~g;zTytT9LnJ9{5%e6wPzW5kk5$&dvQZkijOZ9hz%<+?c0T4v2vsnNAP`eAEvxJ z1#j2rD5eq#%q}jXw6<2u$b)>!WHMAJ6lked;+}pthAb-lj5l)YtB8N9!{^~Wg7<!n z#wAs$bi}6O;$w_F$fy67Sm1G+1W#^D;OW?i@j)qOCS>qbh|w!wi>FE@%moG0-Hg4n za(WoM%gBR#jE$lk?dL==>DHs)v;khX1YO(KAX!uM51ov?VdOzR<h2sLYBh`{C1~eA zxF{CK^!y@WVC)Vfk7cKPp!`wB*aZ$R5!O1+7LF_rwsJ&ee-!)%A8~*YN{cDO00000 LNkvXXu0mjfI)f!g diff --git a/interface/web/themes/default-304/icons/x16/images_pencil.png b/interface/web/themes/default-304/icons/x16/images_pencil.png deleted file mode 100644 index 3250b89d2811ef550243c159b4c8b442d92bbce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007QNkl<ZILoDv zZAjBm6o;==q?L-9Q2Q`7`p_g4>Wj_ZC~QfZO9+A#6QxWn(AtNb*&?kdG*)xIkc?`| zTxn|#mzyG)i<r0s1D$Rqx(r+qHFYYoU-$l(qsSoXz{9!s@;m495CG(VAY~d&fUC{T zX_PZ7AdMR=QLC3YOSi)J53pi+_A9sKQbPkHf6?c|AvqvY0LSb7J%je#Mxa0gsI7p0 z5MVi$=N8DcT2k87L<*J4b90M}xY^-Fy~PKO4S3uKXlYly0cv}JzHwmG4X_-`|K=@G zshTV!BRE}i10~Im@WeWT=QbzW2b^f_bHYgb%i&2(d4TDK1>{v$7OdF2)!L8G(_Va? zn?q)Kd11i&ZOf*=5EVGH+#ORt^x9sGr>EnJSS$~C4?K&(P<u4&M!ugHd^kE|;q2au zQF9EvM|0k#>P}Q$s{>>*G=_&e2=ib*IR}$)D?bq*x&)Z$5#Xa`2fj~;u;4j~FT;D` z>WzcT)rAU$0$#5d)lw<4gu+_FJebcO9uG$a0+eO$#6#IGbgG2-<}Rkz6>yK`V#p*w zk0Ax#$;;r!#dSm`B;4H?AAgEuNTui9v$N1ut>b8uhr)0#6vmn`44R`bImE;3mIxT? z)^NkOr4jEBC#@0_LbgzXNlH=Cg-<gxP!tCTsJ<8sr6dG8<$Ao*ZNSs}tGQwAgZ;=U z7FCN*>?VOq%+4;FnxBWu<M{*om<`?fBiyit4!^UT!SWQcJvrIGfO$j-g_7kc$ci*! z+K%gz5XZh_+v?dH%ZJ6rk|kKJrEI3~mH~OGL2Vfaf>M9p{ocRS4?it=#lq9Ge*gdg M07*qoM6N<$g3k;;k^lez diff --git a/interface/web/themes/default-304/icons/x16/images_plus.png b/interface/web/themes/default-304/icons/x16/images_plus.png deleted file mode 100644 index 2fe20dca552af201c6718eba1e9af72046c71d63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00071Nkl<ZILoDv zT}abW7{(7mY9Cuo9LO&GC<s=fQ4ls8lwC-K7mb1<$waYfGn%y<4U@7GYJsA&P1ews zY>RX)(@Z0h4QgL4ywJ9WrAxu}LCudj#-9G?FAX9jr5Ap@=fHEG!;b(U{{yKv7~)(p z8jBbz)<6;auvV}C%~_@uu~k5a=IO6&$tA6pB8|pkIMfUjwgN{r%Ui<ivIjtw0npn4 z%P2r|G|v_^m`vnycQ=u#RF&aq6gLMKp|Qnaa0B-pfQi|<*T7vX;Ftt_L4f9H{ts`3 zPS<VodU2-x25OC6cxd<HvD=S+j~_h_KL(inYJ3{AAz&^NLAg>{wPx=gy9;0D7V$kC zMsZ`KEbjgGQR)it<7b+?_1p!MFM{C00wi^H)p2i6Zzjh2Gw^;OeVJ$J_%NIW|I4lL z4P`R-4A%Rq#RaV=ikbO&9G1(^6Y4>IN(=JQB+bLb3n8XPg!pXB#?PrjL_#O<bzF>q zbq7k{T);N-KAg0k!|c)$@=8kNgnCe){Q?1w2!*IG-i^+NJs8%B@FQ5mSYJo*V;Me; z?8UC91t|ZfK!Q3gz!!-WDLFZ(2=$;o<~ti$o-}jN*TTU-I~Suvd`yoCaLkyB?OGmk zdk^4vumVKGd&km|(m|*P^=Yk1j?;EA87jqkm{l8LwQ!KtvKa?wB!5BLwm1p(pgw_6 zXhlvB%8=8UkK8UXvM0qLx4BLhC09+T2lZJE33a@HU}7i8wM|aa#34)xp_9ar#vu47 nm5KL=be)@2C#s1&i7ogAIe3HDe!9er00000NkvXXu0mjf>QyNn diff --git a/interface/web/themes/default-304/icons/x16/images_stack.png b/interface/web/themes/default-304/icons/x16/images_stack.png deleted file mode 100644 index fe33dccd8da879865e0592b2015e633986344d6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005%Nkl<ZILoDv zT}YEr9EZ=HPBEEekb;U=h9oG7A_`sX#tSuK7~yD;VOlEAkDCTAVV7>=&_To)$YzQY zHyln=booIPm==VeFA-{zUWlJ;GWPTRA4{CCr0Ic&^In|ydH68^>^d-AcQ<S7>N<TF zh?HHDf)D}m%4T~mni0GJI`mdj*4pj1&&$i`>nW1rc))K@&wT`fLDX9;<yR{AJC*PS z0;n{bD<tKTw*u4_0Z*+0o{0BLyMUT^0*pffI;MW{vd8@xdxwX3W-z??ud@5gA}_m~ zYHay@Q0euRjCPQ9ruXJK#GZW9o1xh`UVdX%VDsPr54GAVMmxy*wJ!<t0|{909JBa7 z5yDt9mPV4WFqpv01Jg6S+^EgP`u;xhHJWNhJIGq9$c0sR4=W#1usVJRo8PkF-+6@X z9}28Zrt-33c$$|xy<Tki{m53UHH>zUH7`CMg?Ce7tjd6+ITQ0Ai^bJ??EJ3A&+#l? zZgPI&<xG{z6`PaO5R;asVzh&-PGbaIEs^MNje^^B0~4KctbLEe?BFeoTB1YB=}M)J zF%~BxW3+>;ZMESiwAaaCeJ#VJD+&%%B+T{Ul5&__&iJ7nWL@3e{U?(0-y_;e$a)z< l%BN14$n8Joi;$iD`3OjacuCsVv3URh002ovPDHLkV1g>^23i0B diff --git a/interface/web/themes/default-304/icons/x16/inbox.png b/interface/web/themes/default-304/icons/x16/inbox.png deleted file mode 100644 index e93b4bae815d07eb5fd454b10402851f837eacde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apHrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004SNkl<ZILoDz zOG|=57)D3GkNO7^{fzJzM2kp*D5E5jvJh+`gos2JgaW&WT`0>yNGLHEmP!^{S(Joj z5nYIG5G^WKc6IyqJ%XYYf;n(D@0>G>8HN!ND+X5d0bv!-@2Gf<z*vE3(6a4zzAW5P zYDsL4&}-OC?|T#Uc`!}Mqd7{(Y#F|yR{Drc(c7+t5?iB$1}zJ<@zP^sg)hE7L_w3B z4re>_0tYS{v}{AkH(ZQYM;|=B6d0_duvw88IB?ORWoxaR?q<IE>~gW2R{LwnJ0Qyo z9JpxEGH(lKd-3%=pV+&|rLRn}KdGdcO`QW~>3z6p&@zvLv*XgT@f&M@9e~+S4=r;y zagHayk?!4w6!D;mP90hb4L9b18TQg18nnzQ7cV`o^wG6bmm&3pe~|5<LCYNVV)xy$ zfzB7S1%U=Fn~{kFw=O+h2{&5^XwWjXRAe<(i6Z|2EfZFWfJC6YKqRTQ*x&dKszPyC T0S4K+00000NkvXXu0mjfO#ih; diff --git a/interface/web/themes/default-304/icons/x16/inbox_arrow.png b/interface/web/themes/default-304/icons/x16/inbox_arrow.png deleted file mode 100644 index 9cf3d51da1705b2026185def968cf6bb2a655870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005&Nkl<ZILoDx zUr1A77>7T1j(VZqhIrGp;#Ca<@2oCDiEV17PKPd&3=wULh!q2qS&gN`Y{!4>kghe% zQb|S4DJrH-D>Y)(Km@B@skOZQdEP^6)?A7oJiL7G_j}%p_hSIqabU+D;MVi}xSlVT zxPL^7$z@{&e60IQq-A~dE;ig|{FrP&V5SLMZ*17|2)q26ZN|@OD>f%ASbud7<dDlo z@_FUF@l>CG@D7GenV5T27!t}*mK<`~kdDt-esF$vrKbi1wQ9J{*&(3}Wyv9zz0Bhb zpIWjOKXjJk#jRBI-cAb%WhhGyxvW>q3E%swzb&+1hqLmG%v7Te9-(L-)Z2NdEIH(| zo@}n2mi8z8#tZ)ppx)m(a+&KgCw}cW!sn`z@eiBuPAtVp{l$GyudaIvI{P9zyX+u` zT;|ABbge$W39rMji~NN_$g<5rSc6<0PehQ*#B_!0%hM_>*-L{`*64!DJSKCxqyyS# zJ~XTX8p}A!ujRaE57QI_pPiNXC~Y<vDyJ9qD}a6pxb$|93NN6%;n-wF%CKhBxv=Sj zNXaw!6AEns;-uCRND_U}EC6&*KAYOjq!S@=LL%;e#N<4FpEv<fjn-JN{&o*{xOf$d m(6kBR>Q;|bbEDK&xxWoEV^wXwCl#9j0000<MNUMnLSTaH+5`*$ diff --git a/interface/web/themes/default-304/icons/x16/inbox_exclamation.png b/interface/web/themes/default-304/icons/x16/inbox_exclamation.png deleted file mode 100644 index b0e69ffa5e63d90fed701e4cc85dcfe800072c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006lNkl<ZILoEd zT}V@59LMqJY=^q(s*8%~BIqW(5UN2C5@Lao1u{3xBuNd)E`*RFD~nOVG?%@wmNT_Y zYuF6m-Eym@rOV|@=^S&e(Tr$~jHPQ{1;5UJ#mJb0@W6)$&iQ{I4$nCZ09y~X?hPCz zJU>*zmka9tQ#rNlMKQn4QM$1{@~jr$9U3gZx`iLFwOAQ%z{-R^A?DH{I(i37!}W+f zzYc1sW%kp&WKy-aH*CEIn_7l9_s*n5Gc-#Lwd`pTpErB+h%4B65tggDaA*orq8XZ{ zhFUgoN?bYLcw)x$@I1ON9YxROoRnyWW~rf;^%RQrUwW0HspfNNS7gPF+%Cd|zHAkj z;UI<{Y=z}U8fcapYFTH2xS0;^Z+)uct2byY#fWhyVqaU}w;w>%`TL-$W#)Xb@pGRF z0drMc*rvuiV+HIr@&t!A19LBB_!;ZKhp~KkpX7lWYMDtUdi1fY8a`8HLi`i{5gXUR zH<*FtkOp$O9Fc`9m^7zjq3Z&uWk#vU{Qhwj+=hyzrdp+#wH?CJr)uH1V+hTi#oPY< z@OGR8wd`(=$l`BTz$=_=GS0Si1l`5(y0bCRuYh|x6VqdvaGCZ%cT8kuWfD%OKFp0K zqb=lS2AeiVgT5>TJp1BrKx@Dwf%X2Ts4|yp6YjAMf-QpW|7xn?%wFfN#jrmO;rZQ& zeN)C);&tv=>~7#%*jkq~o3Yk9rZv<u=UV9bFGu8UmjMLn-v9sr07*qoM6N<$f*~s? ASpWb4 diff --git a/interface/web/themes/default-304/icons/x16/inbox_minus.png b/interface/web/themes/default-304/icons/x16/inbox_minus.png deleted file mode 100644 index 1c5e0232eb2e5474e5bbaf011dac4437f3542210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004&Nkl<ZILoEe z$x8xp7{>8e9g6U7%OR?Jm+&7bIz$pg3l))+hERtfLL^!+5^ST5G7W?T3-e%VwAo@& z5|%}@5G_J<s65$Xc6^&xP}E8Y2R@hIJl{FYFo1}V3`qI`P6@;8N|+Yb@ISRs3p-6r zhEtk4>fai~SLX=6?~h~Pa0-LRS`2!05ua`iez+#_ZEqC)+e1hVwXoU92v3v+cHf!` z9qKAPnrTjmHngRNT38n|m6u~B?gvX3uJ)IsbEGaI+R&C7YGI{;*Ks>rdwykXM{7?h z+ImF^(T29vPz$ztp6<oo`FyHxMU%WJ<X}RK9-S-(orUkymKtioQpeNNON+LwEc@{Q zI*Z>?3+5W0;b~ckUb7;^=TPIBp$#_&s$<X@-3#xip%xaZxbu%o-FUOm5fS=?zlh#Y zLoFC8xaRvs1zyax{b{2xAFVlp81}pjoX_TXVOqppy)()2ntii>G3KV@mstFRmJe?r z6LK`_VvZ{jRVMiQ_z;LEO#=t8R|-qO%K9fks7>~7{03oiX#B6AI4uAG002ovPDHLk FV1jVq%clSU diff --git a/interface/web/themes/default-304/icons/x16/inbox_pencil.png b/interface/web/themes/default-304/icons/x16/inbox_pencil.png deleted file mode 100644 index eb6f91962fb888a431f7e491735cee4fe7cf54c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005`Nkl<ZILoDx z-%FEW6vv-u?~7e_ClVA`;2#juO;8X8(XeEjl!#VtjOK-qHpZ~*r3qX4t8AIGq+Zam z7FcsMZL>|uAu}hDNm$yi3zs)(Wv;t#?|CWFxd!2Z&&@gC&w=MW3;^2-Y|9H`)uK33 zEm{<s{}T(jEP7Tfh#9xFEe&7Aa;yd4pI^tyxErf4y0ALwS>tD-6F=e|_%_;xrDxYb z4!JCHMl4QBdj}Q=n-F#yFmc<I6UtDQ9CF!Em8gH+el+p1zX2gfDPk?<IiU<?$sw0L zsTAtpcAt7R(|aC|FC9amQJWLWP?j8WS)fAjd>OE(rh01NvmR0zyHSNnk9h;s`#Voq zOYmu5(XXcmg&^xM7kcPu>j_FFn-)-yX75AIh%}l2NkU*dPci>VL0$+-nD^UM7Q;@w zlxq=jm2H4}A3_$~yJA8*orb&O2z>iB5#}{$`aVCph*@v_8tNBjkQ%*!;k$c~Ua;e` zS&OK<2IMkXr}57{uwnXs?LSG%286o{Rk_!>6VaPGkV7uJrPYMq`K)-OTs9k1vhsvG zyH&Z*wF_gOGPO?*xy)S5JDrDlJR7aYdD83PUrFw$<I64`pIJXAmnoH}kgu>K6Nizv zVr3TXb{;qCnJ#0V|HsW)ICp|Sw4LS$O#1AB--X~x3jFbT5dZ)H07*qoM6N<$g4f#q AhX4Qo diff --git a/interface/web/themes/default-304/icons/x16/inbox_plus.png b/interface/web/themes/default-304/icons/x16/inbox_plus.png deleted file mode 100644 index 5ac374579877c18ea550ac186f751f7d02169c17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmV+e0{s1nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005XNkl<ZILl-B z|NlP&C76L?1NJAeupCHY$pqqV5^*L-FT=h>7K#1I?0xU|bpHRazvus_!xR30IX>n8 zx6?EJe>*c1j=!Fq_W$$IN&i0{?EC+IZ`Xg29*|y!-3crvXB&(*z1-gNe^-0R|5MXb z@M4e}kXn!)kY0uzaV)`C`aMoQSXcdjTXVqw{XLO*F-Q$aEl3YYFT>VY=HgqkA}(EB zQuu#Et=IpJb>4U}NDW9WNDoLa!^UXlnJ+d~K0h}%>;H;UCon!TG4B7FnQ15(BnFcQ zsRii)>19|K$vhVnXvlbTgD-{wATe}xAiWH$!kHI7+uZQ~?y7Pyez~jt|AmEl|95wU zqF|6%!e+PsIx98*N3OK}57GnD%djkjY3ZZ&HUDoeD~4lm6k@?TOVt0TyekFMAUz<x z3=4ypR^3@y{{QlVJe)XmzWINxc`9HW`Z^6v>nu?FZ`I6umtm?m)3)0yO8;L6hAb|u zJwy4w<MSX4EZ)WUks-~5aay|z<57IrsF3reSOd=&5Y~BQ`ya*@Oyu0f00eA6EC$3< z1aSlRMXCGR|3NfV4@fVOz><Z5A(w3?LniAPFb(1Z0RXd|J@0>ngg5{I002ovPDHLk FV1met?hOC{ diff --git a/interface/web/themes/default-304/icons/x16/information.png b/interface/web/themes/default-304/icons/x16/information.png deleted file mode 100644 index 17ed83ff28cb6773380582fc33768ca81573b418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006*Nkl<ZILl-B z|NlP&B^XRF>uhFV*4@g$tiJ<@cS<lD>`DRRSwOrEif4hvKyn~8Ahkd}*bMOCwb;Aa zG2`Z~^zL_`il=?~Q#AF<pVZE`pX}3a+ycpg)Zj9}L)7lTq4ch|pVK;C|Br8cj)GI$ zU;j^Pef3$ycK;!eS~LSTN${HP*pl4#@^e(p!~fxx_rVwjVEoAH2mhn%9)IRB*}es& z2VsEL`c#|5i?_on?)>*FxCX~CfGieVdh5S&_{rNKJ#Yh<)K||9tGN5gJ@fp37<NiI z^<T|n-G61*HUHJUHvCs{Ukk<{wrS+SPar)A15}sqjI6%<$0hB|e~09g{|!U;{#W<j z`v1(CGyl(?J^NqHYYPfC4B7h!qz7Su^5UJL<v0IY$DR1E6LjFeR=_?m25G)_?HZg9 z!v>*;{(|%%3{aRq&nfl7XM@Po|Mepf7^L~pqem!WAgmQ|^fO2g!T`D18LIAk?^-6` z`fr+W1CBwO-@bi|A_l@zwma^D^dJn7nJ&qpG-roJ;;k>%8PEP(r9TB@kmh&q-og1G zY!G$h3!B269Uwgj1Ei)hFiA}E;#Qe^+$`zgSNr^r|LuU-FzP%Q+d=sz2@k$<DbGC) zQVY@pHvj|}*;E)9xf8wFL_7D$+wOR1miYLKL*duIAPi!I#6WT&H6XPhfNTH@5Q_t` zHZVk;8CZhr7+7;xF|ZaLhF~BYBnFaWV9*6(36LIS1DJrA2Z+UhSc(7^hpJ@)=>-6` W0uQMylt^v>0000<MNUMnLSTaGv^5j} diff --git a/interface/web/themes/default-304/icons/x16/information_frame.png b/interface/web/themes/default-304/icons/x16/information_frame.png deleted file mode 100644 index 33da5b58af802e60a0ffdaf21aafe764ede7caaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmV+e1N{7nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008YNkl<ZILlp* z-%FEG7{?EVjOATY5_BOXvx`cb#$x4+(QxF@{cvjjN>RhXG}shWmSusML<FVbg$x&X zAuCHMkfO~dOVjzP+3QeaGKUu{cjF)M?R}0qtQS7)Ip_I&4r3)HCCq3vGPBvtEEWqZ zEiFA|wOTb2WfBbs(5#^yIpk79Ej#jnOj>H3PG`sL?CeTB9>>nk4u|GoFu3AyI6BB7 z_x}fECX>nFcDqL?c>Qh-?N66bWDjv@_Kb^&#kMg#JUl`!HT;3%;$oseT6iLn2x>d$ zQPH)5*5?Vd4er4?um}6IU6ggK^WEm=28M=)Jk(Ij3<kq#yWQ^E+KQmEeHQhPqiF8` zgX-=W4nLaj_Qj>&eJ30a!)CL&sAYP+UhDJuRtG$DFt`20ot|wN9bwMlcX+OJMNrhT zjF%(dFflQ)N-fjrbk+2?np}R=K8&EyCUCTk-=WZt<DAZmtXuDqS@@Qtshi>M!oobL zWm>J)E(ijyReeU){a?7zFbAde3(gxpO40&Cp%Ai)J|xL4_i;B62!L9q(P&ypRFzMm z#Ic4;))`!|1UM9nqL@4r%8DR&{eC~FWoos$UJ#a0<D7!F`3IEM%SkAXMx+1SDJ$o> zJ3So$wM?Z_6^@O0*ZN=ikyr5*`L-yoHg0h!-re0zo{5VVANmG-aJxNg)Uv$1yfY?~ zxp#4K6*uc9aivB;!Mz0XTM|4@B=%?Ga^)g-=H`}QG@5#;WjQ%HEIT_}-`)MlyS%)C z>*Zc#7JY)MF^ZhqAr8%SM>|1Shs)LDrG{FTo}SJ!GBV@}g`%pn^TD_%#_(h?h~maK zIGH=Zp_%SPaU0~2OAWR39g{dAlgZAerKQ!V)%h<*M<+Me*MH+EbVoaK$ff3>WydAb zBoq?Ll#~>$TrO`)O-=2R=sTc`?r2AjMAkub{4cY$7I9p;F!lfd002ovPDHLkV1k`; BboBrL diff --git a/interface/web/themes/default-304/icons/x16/information_shield.png b/interface/web/themes/default-304/icons/x16/information_shield.png deleted file mode 100644 index ad5f1092c8f714c694b58a4cd38d4b9c7bfc9c5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&<XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007nNkl<ZILl>` zZAepL6vv;t71fH$h-s!s%(SL+%_*d0TVd!*NEFFLvb9o6UG^%71QNX%C}akH3B-!| zK~2p~msGM(8C$plUsm{X)hJ`P&<`4jr{`Sn?$vzY$Id<H|NDO#0RSS`I0U+hJdXZq zokV`<O(dmLAd=t32^k@eE?HN=m-Gb5wY|2?+mkGUGu`bL@9PWfHcB-;Mo<pYxyf*8 z*mvXUJX~*>gJVS_-{|h;$_+D^wcDhE*seaygIP`y?{IC^_qfu_d=pn6bC6p(!BbM} zhqThsNrm3w+CnqARZ|=~Qi1waZ+ZRirQ%0Fp{V8u<lmWq)7OR}@Nmwn8Uyp)Y04B> z?#(Pw$0-)b4zzX_RI`hw5-+SK@c!Rt-SRD>BNaroJkP24I-gqTh5!ch2iTw94yqHa z5N+y!$h0;doDb)@=BU#w6{ud+nXY`EMbT&(0A0>oh(2Wpx7!UKj|ZYocCSI5(Kkz- zTB%@PQ+a&0YutFz4Y67Mpw4{9gYwYOkob*gvil+2&^=Bat5gv2EHyZxb<j}w1+-^A zilEH0?3!Idz6W;1wG5&o6@)czmxndJr~myz;`tFsC>Z8J+3)v@--zz)-~wjRkqSZ^ zh-}Z3%DqWlqlU8YkW@6ygEGf);&*cK3@8&jMlp+yR1i{6WXif-Owj$;Dx;G%TDfI| z^$+OsKJgr-b4n?<9Ffw?Vg|G5hz0nVjVi)yJ{Qhxs%TOuA9`al27VpC`4<qJ70Mbf z-uMj7;#*xHqimxn2@@7hm?LJwTy}(Nn#T~F>Fxr5BP3YJ%2pR_5DqaE{R%si39+<M j+E?blo@gi`=%D)#2RZN+zh>^~00000NkvXXu0mjfygW^B diff --git a/interface/web/themes/default-304/icons/x16/information_small.png b/interface/web/themes/default-304/icons/x16/information_small.png deleted file mode 100644 index c5b7e49cad5c34236d7cc2ebe7348821ba742773..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`7d%}YLo7}w|M>sko>_H9qJ-3e zHM^%a-b`4oEpVRc(c6GqqAGq%7^7p3zU7zk%&Y&(c;f&38^1m^ueke9S)uR|&xIIs z^Htv-vj0Dn{lE0jwm;<_R{!p+{=LIK!6J~&V5QD&(SVY-{p<d(`=5Sp&d>D^x4zw9 z_~M^ENb7|8=J%C8eQ}?>Ve|j>@%#VXS9x=$K6k#dyyK%Ik_xtG=en03^nColTRwh& z-QW8fA0D~qP5r43mNcE(IC1^O=83z@3<czwE<4zH)GS%zvP+tQ!OZ_?s>pQlOrYNw NJYD@<);T3K0RSYxdENj3 diff --git a/interface/web/themes/default-304/icons/x16/key.png b/interface/web/themes/default-304/icons/x16/key.png deleted file mode 100644 index dd3ed88fbd664c734cc83911452837a5478a36b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ANkl<ZILn2M zUr1AN6vxlKGc+`cATS?9q^OLoqNfN(_0WSFzF4jz(e-zQp%m+3TP@ZkK{JO8Mikt! z2Zd^`XeDIP)`IDEpwa~CVn*wsn+hThd+2nIcwq$hcHqPB{LcBF4<I6Fympyj<hDt8 z?=_hT2jN?Xdo%AiQ+Naa2!vs`seUxLN1D%glwY5FFeiI4_pwb$_wST=#~EG0kW<{3 z4D5=m&OOHAz%ixwLfKf4edE}Wf48zUaSIc@)e+9<3I^K6j-}~t^+V`*wy#xi2kb&Q z!~MI5HQB}VHI*~Ef+ttSz@MCi;Tv1y!HYt)5UIU1{(I^=az<Cse_rtCXG8hb*+-aH zLilr{3%{jZsAgQaob}-HxFgRQT|sxVP?w4{$}2NLT#)bM)QiiQ3fJRw^aRd-vST82 zSmunbz<(Nw@7bU&_Q0C@nslo(Z#yva{47pJZR)d5bBcGIF%rPtQ?S8%5{?p2bFvR7 zU$!FmJmVc_{wDwmGcguq-&|rrjAy(v6s#X=ykY^rghdnhnhXSY8ljLl3%(?rE8J`I zmLmoNt}}-KoONpqvVdR0a<dkoYTH`GSise=AK;1=Bo=%h^`OHFVV-GaBoK&VV$->U zFz{pCkMs^&cR&NpHWMX;Xe1DcGNR%@1=yO*Fk;ybE%e_@R1#Z=qQaZM8Tue;)t~?O P00000NkvXXu0mjfF6j;L diff --git a/interface/web/themes/default-304/icons/x16/key__arrow.png b/interface/web/themes/default-304/icons/x16/key__arrow.png deleted file mode 100644 index e9712f11cd0e8120b2ce39246c3a20d90dcb8c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007#Nkl<ZILm#K zT}YEr7{{M?%PiE2uGEVz`k>EQl3)=n>!KSi8<<&Jma{J{LrE9mEW=hNPHl-W)M6r} zkxdIVAq%wy>e))g$)vZLwF;LBA`ZLg={#ZUT~P;qJm;L}e}3n{`vM{Y(Vj1d&dYM) zd7)gv$>0>tLvsc7DDx*E5eOZ6c|u>+ddsAvK>RXnL=P)O&x<Uvw{nezdX)L6pjju| z++$i>KliQ{J4}1T@)M!`M(yJMX2Uvhdf*~<m#?g+j5SXNQv8C3Y+26qNU68Wyw`av zP0*XPLO4P5XB8WqQ@v-sl;MCBzu-=$%=F!3!MY2}+p10qRw<V3khX6_=aDiTkm46q zrV9q2+w7ZjSEElf<HW#C9PiCXuOlC4oCP>z&+t)(15*5g(o`YdR-eRXN2~BFE5@Nm zr_olIfFss@IQdeG-R2#PGR9N^r1%Af!w`He1+rSol(w-Ry?69!4muvHanPFLZMv?o zQI9g|`aIZG`x&-Xx*_VuV1NLwCPPr+LD<cC;9*5L_&5z|PJ7f-8Lbd^cjCVS;9;VL z1kNX?NYFxi`%9WYS@X%v4>Mjhe+lLf{-TuxRI}3*QPCyC5L4!&TbbE|NHzBMTTOuA zN)kwEBf*<)-E4fW;XMyBBIMY8rfw3kVjPjy3d3uSUqIu?b^u-cPZ~);HLlJzRXm2M z9YRcg^_yH5;;KtMEI>dbaSOm1C0I!Cp|1dA)Vk5|%vMIw3t}xIsvL;4jyTsI@B;o( zA(#_(bSpG`v>TAuM&)Wq<a<jwi^4Sb?3=m}d1Xsd8#P=4QUU)jA(Rst9SJFi6wnzJ x0mu1zBWDF?*@B&U)j<cU*+Nx~hD(41KLAU0=<{R-ixB_-002ovPDHLkV1i$<MaBRC diff --git a/interface/web/themes/default-304/icons/x16/key__exclamation.png b/interface/web/themes/default-304/icons/x16/key__exclamation.png deleted file mode 100644 index 6c9a6741bb89af129fb51d487333defe6d181c57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV<T0to$yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008MNkl<ZILmdC zdq~q!6vxk<iADNP5R~*+5}Dv5>K_rLj2@uUKU!KCJ}R{^6jKQwEp?ToSwp0ulO`h- zA9FsleB@(Jw<%0<ra825nNCZ^2S#+d=a<G5yYS(hd+zssxPM$gL}*U6gSHGi)*-fY z=frZdHlf~~&M31Ruqj|IX?6j+!V`*x!F2QdNFG`YVzl(cnfnWlDd>zc{}t3Gi#)rf z$CVqO<=7(iGw0uQ)aOO+)7MH|&CA9V?8-l?q>L&_1UnG~<?*6~<<VSgr|g31Wduu; zMzTW$_3ba*Oh5YXS}DVUod|-GJ0j_Civmj%4>T3tVk%n{@%x*84&Ot{a9}5bpdgA# z)+c4_8<R!2ZkFMkF$cf&r=oQ*6<18@xH1sCP8klUbGIW1a&ItyjWWovHeQI|4Nq~n zE*dqZ0XV7(#D(5S?2`EyiW8ZCTL}Y0{dNR_BorL7Lm*E5+*dQzon{?xO~ApL>o}we zu~t8J*U;H}Ig92ODmmf13E<HcuonlzSx%M3kcC6_5lB7F-efbUfd+fU%7XkGRec@X z%K^ex06a{nNnm<=n*?fQCWF3O7HBqH(*0Vk#0mX*9qqL$281BkytqXp38->BdMeqT z-fEG2X(neeI5-#=r^So3r#a`Z;9(Hh(nNxZuH-f9Ka{g`#&$35(sUXEkI#IJK|`~P zmgXI0n*v(byaAH^1u95DRhGg$Tb1n9lqqa}boe4RHYDM&@eCUKedcNYu9UHV0$P{7 z0AhSWL4s*rI%b5j=I)w<+Nm)=G>@DTUO?46avD3UoU~0P%zI0~-vSOCr?68{{&hft zyjI9FS?^e%%iQcIH=G@J#npueLM6tuM`qPBR=g$Pe-a!y&L^EA<f=Qgc^roD`%zF< pB!L0>6VScR0WGK3meOZX@CSCK=}{;`xKjWC002ovPDHLkV1mM0S<3(b diff --git a/interface/web/themes/default-304/icons/x16/key__minus.png b/interface/web/themes/default-304/icons/x16/key__minus.png deleted file mode 100644 index f381899e56a9efcdf569cfd1b31304b8737cd5f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00071Nkl<ZILm#J zUr1AN6vxlKD=adKp2~-UNGfBq=qZAcJ=BASFJ{YV<odhBP@?&;%~o!b<g$j1h7@d! z(y+D_tpqKaO_*K>Dov1v6|IMs1tJc6=yc9)i`xzQ!RP*d_nhzVbMNn7Kty<M)xc1z zMtJ4WXbCgXmWS6`?r}y*xK#uFS4DulKp3!Tsz$xr{c}ls`s-UaW+Vq@-ZZ8Y-KBo+ zaYij+WI@;>mJfTj2A4kE#R1R$bl0ikF}G>uSlG2KJwMTcv98TQ&V(+Bphgz-Hi^yi z)1BGZz5}US^@7b~64o=ketEMj^*zy$<qQF8WWl}jqUUGEkAaKpqTbU&NQu8`RrJTy z1>_6?YGgt8Nx_wy_2rgkdoY*w;g^XH{Fty}HfhC$lpPnw%{k5xphgyS8imSuutr*( z@!~h>8csbqi}64ePKOTR+=vNdzP%D>+(rQk+&(BkPkCP8ItoQj12jf%=;QB)ZP}T@ zW=uXlhLa&f_EEbw&OOc$oP|4DfQJC^fG7yyN-ZpR9EJ*_KO?o_<kNcOHP^VO+*m*@ z017h^7NlOBVL^mz*DL<s_>UmJvA{DH@J#4B_Wch2S8%xoltfwZE@oNewWkc=K7fzH zk{Yhd0v>gH04$X<eJtRa(6yJ+*(sbe8c_|`{|I<g?*urf2R{owjoQ(yhd}Kn04F`k zL18sc#T(EMg(710@!in-dEA9G_vyDlHPzM-D+sZUE-eZig>S%3qL?VzRRV@1S{Tx8 nfD?4TgV;!{C6>uYRSA9pZxo3b%WVkr00000NkvXXu0mjf&E7Gh diff --git a/interface/web/themes/default-304/icons/x16/key__pencil.png b/interface/web/themes/default-304/icons/x16/key__pencil.png deleted file mode 100644 index 13774d4912f199d955deadacccdb8959a16d8fc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007&Nkl<ZILmdB zT}YE*6vxlA87?w}UDYlkM&Ghk1f>L~VuPmEMO&>x$!Q;!mKIv!W(!*-_|-IHl*P;o z1#7O*veI%kVLAnsCP~YZ=0(c_5nt@0({ub{e)PbP=kT2W|9A1efQaxiUkt4UV)o7? zR&X*ng|pDCpdDqF17-!R#UM`Xs@iHB>oxj*ek?)1$Atb5Sw45=MjP!Y^It(@o@jfA zWpnM+w`y#$#QDn7!@5iKE4v%bTYTevSI}7|uceGVR|LVh8JiK*Ws7pg2a5ykR+aZ| zDl=I0Yz;wkTlqHcZ}<5CWjHX$z`7v8qjMt5U%w4&E=!xMPBD8hw(M2Se+DifWjK@t z=WY><@bbK%GL4yqVXH7T`~U@?6@T;<;fOmQ1HJh;;Wgq!PliAl4rQS_B4VMSIE5v+ zYBiq8p(_04xq}1G&!DR&5eMx_IM%60r**G~G9@Vt(sVIP1?FQAdQ%5kj?!q?*A7Eq z=xq-6K0AT^c3t4<ErpAAl&Q#Mpw((g5cP#IdnaQta{{<=1Xh@|5X))sdkV4tMJm!v zZ?vQGn<or38qJ1_k	nb5&ld$0g_m~fE5`|30a9Q0P6F;jkB!}h7w>P$fpP$iR< zJ_b-t3ucRRG?9RAj<PJM+<2cg38U9gE|(jnQmOJGz|1$eu7O~hN$}a3H%W7~VPW}R z0c%T&lf;IHhr_&p&haRKyo71$NkI42Bv39c7hQt*gcu1d5zslb1K?~l*huib%ZRyZ zurDs(&IVXcz<(%&a#knrg1XTjGxEFMl+5aJ;uBUF*!%Ruus=Q$fY`J?1SAp(91IeO zIAI*wP8sNqDxg)l7EaPyuVziEJ?sFVLtvTn5B^!7n#7<M=>Px#07*qoM6N<$f+>?q Ao&W#< diff --git a/interface/web/themes/default-304/icons/x16/key__plus.png b/interface/web/themes/default-304/icons/x16/key__plus.png deleted file mode 100644 index 9e3fe414526fffa10cf1dc32c1cb85784435e525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmV;x0zdtUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007qNkl<ZILm#K zUr1AN6vxlqoM!$>Ord<}A&UOktf-fYMi%6Qh7ej-B+iyPW8w%cnA&143|!VQ;Zg>Z zJ-Dc*MV637+5+_|s5C(uD`^ES4MZIF(CM7JO=MI*_;AkeobT_$eYk*#@WP~ofhMK! z#;jBmdcqQcdo}Mk^EV(O5c(UG1tT3h9CPE1z8@cK7?8{ucxUhpw{Laujx+xh^wcYM z581almp^x6zx}AMO_w}sD^DElv2OP*OkBaiw#`n?xa$-Ui!A7_RTvkhTZ3=K<K8=3 zp}}4*Y+$&5eS4?(=kTQ<X9$Qz7Cfj{*nbBc*mXI*uj8WNUX7zRsqfcR4RVHnSY$!_ z1;HBfi=k!zJq-Co{629LXNOG~95>;jw-Fb|^dZg=5Q{8mEfw-T&LU}PrUU1t7Myxo ziJq<koOYkUx%cHbC?1kHV=EP)+87Uc%}J1FA)3~P1=cf=&|CtB-dh^ar=f=6%qt^~ zKRJh!?vmi+8)^^lIHRkH2Y8qX;3B#+06NoG1aSQnsLaKXOFRll7My&hMecdVJDoul ze)t~&P?+guf%jzv3wn8`tx|;_xH3gTlIv<g<YAQOEZ|DylvS$2LC1OkXNIJkuS2f# zJu0|X1gq&|!N<Y+CGL-0O$4}~E>c)xih~sx?d3TO_?$feP@ga3VgXko=V0v`fV*i@ z?zfW|3(r>sd<ypfRB6D$f-fVDsMkQ({$p_fwp0;XQzd5C>|u=d@;oA-KLQenl=J(b z`|Fq$sk$^<ppa(k2>J|AfF)VV@@FGgXh{K*KvY2gBqS4Ad$XYAv>FC-HbNQQvx!Ya m8W9JEcoFm}Nv_5OS?~uxAD8F#yY`L%0000<MNUMnLSTYy=s#8f diff --git a/interface/web/themes/default-304/icons/x16/key_disable.png b/interface/web/themes/default-304/icons/x16/key_disable.png deleted file mode 100644 index 72bc9f40a0bfb75a065efdcae367c6512ebed10c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzPQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004tNkl<ZILn2R zuWJHv7>B?6g)7_If+mxbaXVqdF)l2)1wjSFCc|=qT1+N?1QkJ($)W}k1Ql%tlYfTY zWVD*y`-~GDc>0Bh@8>@6dk-9^w%e`RF&d5jm`o;aAuJ>;$nM>I|DAsigTX)zhr`#| zY-X-jtB7<TK&E5Hj;)~I@4KhdsmV*NRx6TBCQTsIF=NM8(Cv1^>-9P`9*@JhT<)_{ zsoVmYju|_)f_A%|ko&#Y>zSQSC%q3HGi&FtpxJDGZ#J8NWaALb*s&Ef8V!9upMOdA z3tr*Dg6wC;j;)|xuV2+_wSau@&vLos53sD0>6o!|OrWaO>P5L+_LNGcv~<rvrens= zDS;{$iz=VbBk&1tWIAR?1=(zN9|Rh=;G~n^sS1UHy&#jx?1SKOu~-=7T_24`?FF1r zD5O%U6d>?&3r;$h%k{T&RKN)agUU2b1RnkZnQnKE3C@H|!4Z$g5j=4lhM`G!ZOzV4 u2^_+WuIs*7ESA<Z?M0sNg*!{~Pw)$Dol3hrz6x0Y0000<MNUMnLSTXy!OzM7 diff --git a/interface/web/themes/default-304/icons/x16/layout.png b/interface/web/themes/default-304/icons/x16/layout.png deleted file mode 100644 index 001a60af262f19206f427fb3672b44a480972abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmV<S015wzP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002JNkl<ZILoEe zF>1sx5CzabW8osK+kg)hNbL*cOu2x;r&77Fm5P8Q#xs+`g=@{K|BugSM8|P_0ay`x z&vc&Wx^3HUB)#wZPZANhJKTLJOhgb7BoTp`#ev>C%nW8W1TZst?>C^T!yCK>5YYv+ z)}X2(ptW`Zkp|3s0kzf;FijI`t?>qCb~lJ@psH7cQVQIC_zv71r4*!`Gng6kJP(hU wa|SKT^3BYjk<VmiF9PrZ-~k{F=1%~B|4QGW%p%e#{Qv*}07*qoM6N<$f?>#H*8l(j diff --git a/interface/web/themes/default-304/icons/x16/layout_2.png b/interface/web/themes/default-304/icons/x16/layout_2.png deleted file mode 100644 index 41266b2aa2ae3989b68667904e68723e50d43c16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmV-40n7f0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002{Nkl<ZI8U9C zJ8Hy05JX?MgaTuw1|Q1cQ|!$Y=u{IL94Rp9Gn#G(V&&CnK#N~kUDQ<fNZ<D#z&ror zi>~W#p3(RHNh{HH-K~x>;_kRR03yP=t_Q7zh!A6>jxl0phk#rwu?NiajG19(0H`Xt zR^sm415!%+u%wkJ28amLG+hRW$QCe76Dg%rz@t{;?yK|HRF!cYFB_=p7Lc2(s(NaL zs;U^r@!Y`7o;sqL{WW;pH>Jcp&zCnyDQyjgVZhz@KX-SQWjSai+?`<<s6z;-DoxV> z+i_xy2d#vv5<)=Qw*6Gqx7_dyX7(+>3-Aim+5CzX`1u9eWI{-;5X=t%0000<MNUMn GLSTZ?2Z<B_ diff --git a/interface/web/themes/default-304/icons/x16/layout_2_equal.png b/interface/web/themes/default-304/icons/x16/layout_2_equal.png deleted file mode 100644 index 695916fc8ee48341a527c802cb68fc5a4ad774c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002*Nkl<ZILnoj zJ!-@-5Jo?ZjEk^t13A<}Djy*?bD?e_2T~bGCCm~@mNm15gTZ*mi>G}vPxFI}bM6Y@ z1LxzX@B42I!|)|aIOkOMUx%iY0uh0TZ1lz$%=4_WQVIYp0%lf|ju-$mIcG34n0b># zM0mwEf?DftORw0Wz!-y+lFC*=N(r@ARdB>s!LwJ02r)*LtpY8{TC0v=twoISxC3TZ zm&nZ94xY_fYemjkWori^1c=D))*^ywnp74-SOngC5E0t8-7Tt=qB8IOa*?j<K8fi4 u>{n#w-*Fso2EZGD3xMWC{S4qPB7YAp)=GDdZuEu#0000<MNUMnLSTZgPJ4j> diff --git a/interface/web/themes/default-304/icons/x16/layout_3.png b/interface/web/themes/default-304/icons/x16/layout_3.png deleted file mode 100644 index 5e8ab93b4f022116af971cd3bcefa5cfb7796027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmV+x0qOpUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002pNkl<ZILn>W z!D<8{41nQZN9IsE*Fqnv(5Kip^Wal?EcE1|ppIkG+pvr*xSQh_4M{{3Lihqcc`bhM z-rw{RA%rRO-rrnn4OK-|0WijJ9LJQk)^M#gL}W<Jnya-UB8Uh8)>@vivq10t+{`mJ z6fnk6N|~}+E3TA6?|nEtYwlXvT1(D(%1SA?YhqcJq1{K8a~?Yokzrwv?Cjuvw%$9n z)+x(5<5Ehf>iNE^%D(SYmQupS7_ru}uIss+*4mWC7%|(neOqfkUipe5@@s%M;2m&J c-aml9f2fYGRQ)ECW&i*H07*qoM6N<$f=FzCZvX%Q diff --git a/interface/web/themes/default-304/icons/x16/layout_3_mix.png b/interface/web/themes/default-304/icons/x16/layout_3_mix.png deleted file mode 100644 index 89fb017e5d75c36620260f08cbf7c29a67cc0b87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003ONkl<ZILn=r zF;2rU6ox-LQ3ga;Bo2kdDas+bb?gl|K!%(uBN9^vBs+Qbdkhs3Zrv98P1bMw)AO_K zhGBRCp1F??`o7=V3Bxd)Wi|S~-?k!xnPFxCIOj+y6<H1E93nz1BB*L1IL)pK=6Oa{ zQB?rE_nc-me%7smobx(a%W6~w&N*U?>-eT1#z@ZjOmH|H-frDtO6e&0U4i$W5CXg1 z?)};knx<jD-@mmXghJ3X4KYSUgk@PS3c9W%gm7Mgs{W~os!EKJHiS_0Am_|H&qY=v z=X|VSnkLL_y>l~TS(YNJVP;IzL_3Zn-g~;PTbn2%MRw^SjpK;hY&Ngn`=@)pqN;v6 i-~o69+JEj(z}GimXEufvW9TaY0000<MNUMnLSTZw<&b9p diff --git a/interface/web/themes/default-304/icons/x16/layout_header.png b/interface/web/themes/default-304/icons/x16/layout_header.png deleted file mode 100644 index efb95a3d6d4bb057b4c4a637193a0195f280c772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmV+c0sj7pP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002UNkl<ZILoDz zv1-LI3`MULlc6+g;eAx0b0BlR=`9%z`6`cvP96%ja3sAULub3%@8Reo(RrSq03H~d z?{Hn$V_nzhNIJ&2ht?WmjQa?nwT94I!?tZtckc=l5su^7gNQ&?VP;(bW`>9$hzQIK zs@lE6zW_vZ18S{M)geHw^#+U>F!K#4r3?Y4X+kMw+`!EK3`ROo)!QKF40rFo19wNx z86l+vX2v|v-6f`!K+CdxG4sdBFPPa60eA!O4j^>qF95$U8+@B9O|8OM00000NkvXX Hu0mjf#Y<@K diff --git a/interface/web/themes/default-304/icons/x16/layout_header_2.png b/interface/web/themes/default-304/icons/x16/layout_header_2.png deleted file mode 100644 index 09f6832bd1ddea06c32634ede6c14b17d739c9c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003CNkl<ZILn=r zF>b>!3`M_a!9!861#+kYoqd4hOobOu0(>fu1v+UcAUP7r4n|!&QJT~Qw0x0IpCn|4 zVR!{_z`ppfIp;&$w(onYopUFfQi5~tv<Hw<0=lj{GPCBKHRr6%tbN~aw9;W_?Yi!0 zr)dH+Lqq@oM1)JN6hC=(nkI+{n0dJ@X{9Ivj4_BY-US$AW<ZP)%zOn{YqtO~#u>1F zjffCJxa)w3X24}~RaFnQP*oK|2-glo<e?#o$ghKSzs$U>@h<=~&knrzP}ODUs*3aZ zywOUbs_@>!j^hX-LS5I(a8gPe?bZ;-afE4_=8cG6_WT7A`7{8Y06YV*|E$jdzP<rR WQYSN)p)X4S0000<MNUMnLSTY-_=fZV diff --git a/interface/web/themes/default-304/icons/x16/layout_header_2_equal.png b/interface/web/themes/default-304/icons/x16/layout_header_2_equal.png deleted file mode 100644 index a0dfd6c868e1ac860783c6325f69993b19084f8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmV-90mlA`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00031Nkl<ZILnoj z!D@vt5Jj(vxF~g7cpp{h%7q{B`b{MpSAx4jKgeaFt01L`CNtB85D<+I2LcHvbLUQm z6vHsQ0=VINd^b(=RmK=^ZQFia&F=gD9RSJ@LONWD5W>1K#@vZWVvL(bMACI#mKkI2 zB7$<BXAlvXc~e0tg+~m)D!|MjqMgl0>{OsA3V83cED3n;K}1=BGnNF7swk!4oXfH# zkh`R{&bFYnhI8)R0W)VGk(sv+j`}2`G{z&A99U~1BD-0O2$p5ZGHdNBFpeXXQmCqG z_fR2(EE~shok(5RZ%V0`tABx+f2L{rEC4(Kcm_~j$d3SiMda@v#9=RMy3D6P00000 LNkvXXu0mjfQ8<8U diff --git a/interface/web/themes/default-304/icons/x16/layout_header_3.png b/interface/web/themes/default-304/icons/x16/layout_header_3.png deleted file mode 100644 index 64a48ca7ddceb2a59ad7d4640bee17b2d357fa94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmV+?0oeYDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002)Nkl<ZILn>W zv5LeX5C-7iiKI9#?ZQ6P!PR+y-Df&%QVDq~%Y&;d4%Fz3*M(zcSrf}oXZUqct?T*$ z;EHqWTbEL<^E`i@skYYMb<P>q+WVOXIcLBab7SUON~xuk%FK0HmM$~K+;mC_%nT6$ z01y$5m`*7{M8M2@v?JCuP)Z@j*kvgt=ollIxjEcx`mr++A%xInF-GXejbRv?xX&zv z&?XR(=E0uXp5Xu8n0X)BD+?h&d+$+e-RE0t#kOr-=Dmk@&Vh(9j^q9~Ip;2O&OuGn t^hrdQGk-xueiVQ=0Pg_w!TJK=_Ybk%fmCTsJ}UqK002ovPDHLkV1hmFgeCw0 diff --git a/interface/web/themes/default-304/icons/x16/layout_header_3_mix.png b/interface/web/themes/default-304/icons/x16/layout_header_3_mix.png deleted file mode 100644 index 22e67bd80d927341198e4cfd840e768370eae380..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFJdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003gNkl<ZILn=r zv1-FG5QcxrB7xAXg*;TDa~>dhi3}d{62VI*L!QcGp_7M#B<p@%2UAlwc0zri<(KZ$ z-G7p~-EMCHc32i4PDFP5{r<8fyRPe_ODUnQ>*EqYN(rc{>OfLOL`6hN>h*dZX;X`& zR#kOyF-DL?&KUq;t;Jt$Dt^wn7$b7dAUSMKX;U!?FvcK+@DyN-=>Z`Gkh}w^DvU9+ z098c@p$GiF%~}iZJ<jLz)5(y8^WKjDMNuGxfU+zvk6I{-0;kjIcvnHr88JqP2x5%0 zfc1Lax8S`Wc|dX)<D&{l!g~+bwk=e3n7OK=>$;IPXJXs7a81*|T8q_cHJF%E8fkM6 zsc9OR?RNWat$khc7jn*@2EYcu3jp`ed;#$F4Te@8Xn%v^!T<mO07*qoM6N<$f?RW$ ADF6Tf diff --git a/interface/web/themes/default-304/icons/x16/layout_header_footer.png b/interface/web/themes/default-304/icons/x16/layout_header_footer.png deleted file mode 100644 index 4a739f856ff1d9b31b252ddae4b51ade1e8556eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`S3O-ELo80uJ!9L|n!wZg@QV16 zysn!~(H{@#ICx*a85MQw=FOWoB6b)atq&0qRDB%jwC@17;)j-1tA6d<m>92hdeYH? zgq0dx$C89}o>rba|M^7i{Z$DGnx~ESt@A$jIfRwjJ9Cy1-|u~^n;Ms@c>b{9i@Y8x z%A<3%@XYOPCvDDy)OIPwO>=Ea3;?Q4lrXZ}mb;pZZCaDUgF>05>#{=)Haw}6^S`VT zdwpe7qw4k2o8M~}C!8#ldG|YR*0MmLo@uFnZ*DuQcJPw*{O$9%$EO<1ukT*=(09(n SIys;R89ZJ6T-G@yGywqIe0Ed- diff --git a/interface/web/themes/default-304/icons/x16/layout_header_footer_2.png b/interface/web/themes/default-304/icons/x16/layout_header_footer_2.png deleted file mode 100644 index 22b7d59efd63f846631d39fe8521c822e5711df2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmV-E0m1%>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00036Nkl<ZILn=r zF>1sx5JmsUszO}23G8ir00&b00QQ*{72ZnVQ@ISJaTAb)XT~W^67Q~;-SvQ)ubDSr zA4GlMzXLd6Uwv9;KGb!6+%xUHZ|yWq@ZPt30Mj%9&bdZJW@et5c@~lRbUK}BTSr7@ z=Uih`N)QpKDgeM3gG+6ze*0`n391Sa`MccGwrUeVM2Ioo1rX5!h%rJ$t^jN879hsB z0M^@#F$f{tbzqEH0GG{KmOb=@EXxo=xOSkb4~3|z{|<-<*4ndh*4nKMLI|L$s+yuG zc723#9ASrHK-YCgW`1heT8pwQTgvnN!x;0n$APMT5r7u}uK?_m^9<no2Nj0^F=X3B Q9smFU07*qoM6N<$f_{sI0{{R3 diff --git a/interface/web/themes/default-304/icons/x16/layout_header_footer_2_equal.png b/interface/web/themes/default-304/icons/x16/layout_header_footer_2_equal.png deleted file mode 100644 index 9a6ab31a69fc66fc95680c24d8612fef0e6ac71b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmV-E0m1%>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00036Nkl<ZILnoj zJ!-@-5QU$9st^}$0(%=Dz=2dQd;ss6HY)7O;4a_;xeTN+m?e_2W|U%y!DQu)2LuwI z-kYZZiLUEj0i1BWK8vF0wfFv1mgVKBx^3Gt0O(~|*29rnmgTlF##BTUy!V?$M4@S# zC^N=XAq41oo<T%l=1m7FB_1&VHv?t{5&enzi0v8(A>f>gvem#j2O^3Z?6KA0UKc4P zthG_L8pJLsrJ_$zO2JyYpMaU8LuBS{0wDyn)^`ULW4{SRp66AXriVYmIF9K1{#_5l zfV!?P-ur)xwbsb8><j=RNs>1y<;&3o%=|S?(}w`?1mGEfKA`sit|5f)A4ri495Job Qf&c&j07*qoM6N<$f=5+{IsgCw diff --git a/interface/web/themes/default-304/icons/x16/layout_header_footer_3.png b/interface/web/themes/default-304/icons/x16/layout_header_footer_3.png deleted file mode 100644 index d97d175d410ed78b1b797745c10a473c820cb049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmV+<0o(qGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002%Nkl<ZILn=r zF>1sx5JkV_sX|=13G8ir00&b00QQ*{6?P@?sayuqxCux?Gvjm%S+QVy$~XF-$AHYT zES~^wxHjL!%(uSp?^n{^`;l_a@ZOJC3UbbXb8ZlkotbxL-bG}e=lKwG&JC1Of`~v> z0RYxooMDtwf~rD99%^S;QDBTgjPVdlDS={)5Ru~XQAW?r)>?!R4zU;`=y_39RiXQe zg%C;uRV@zoiaiXBF(9IU$2r162rymO4NcQr`Uu;$f!1}!G);GAJ{2Y+v~4?@x~{*h qwI5duRQ1OIcmwbbfKKKa!0#XW)IyF?bV(@y0000<MNUMnLSTaJYkH6X diff --git a/interface/web/themes/default-304/icons/x16/layout_header_footer_3_mix.png b/interface/web/themes/default-304/icons/x16/layout_header_footer_3_mix.png deleted file mode 100644 index 4aefc407086f8aeccc557556bd52b3c242a48a35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU{v&UaSX9IJ-64et2sc#HC~qE z<+2&NDcYQ8n6?PT3wk6f-&nF?gFwy^wHr%3A0AUule)N~L!*AreyM{8j_|Ydy)T-w zNaI%j2d8f(d*dQ?YBF9H?KDW?%+Ta<mTPnTQmfyX{G)m{vvm|#Q^W3c!nwD-9z6eC zSp*XKWYb@`;&l|$_u6_ezeuKi_A<fLNUsO$UZ3JWaKBMjcdnm$-QGB*^TnKZw&nig z&p2t~tJmeUBvY#~dfL&@P|teyvMnVxa+39alU$h0d6L2ATq>QrSx0#LZC@sP8NSK4 zWo}%Yv`FJmjos0|b<+=+`p&-d>_FeNvfZ+)SMB21vgK~x&yN)y7Jc?iyirl>uiMW) p+cv#n+Oh3YKc#;D6EImFKk?>4mL1C@EP!Fg;OXk;vd$@?2>|88k|qEE diff --git a/interface/web/themes/default-304/icons/x16/layout_join.png b/interface/web/themes/default-304/icons/x16/layout_join.png deleted file mode 100644 index be491fc6370cfc0296b69f67cf4117dd15e7830a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmV-z0h0cSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003rNkl<ZILnoj zF;2rk5JmrtH)|<!S|n~j%^9d7A*G;B$vJWj4v->UDk>Tz!~v)f1*sxh7mnB7&F)Y{ zi5xtR#Bbm1(`deyR;$%LfNLmu`M!I?g^0*2mdoX%3}n98%B9Q~TQMO7hzLaF%uYn8 z>z&HF+=LL2Qc?v~RjI7YP209eDIukFHo(j$!C%(pCqay{H&oZVL3ZSW0wRKQ4TuQF z7**h01Jg7OVvMT5`#qQ$H`8_R@#pgl-tP|rZ3AY82qA=kkM*=CIJ8GF&N)?(Wf_<) z+O~!Fz9+EOg4qslkW#{EG#)(SksIfndV?4vtSwa5<)$o4h)Az%5ka08D(iBy*=)ef zu-5jDnCFGcx|}AH$&8t=w4QGtzApa8^5^}H0E__?01W<@J%H*Lb}b}@)5S2P00000 LNkvXXu0mjf83&*U diff --git a/interface/web/themes/default-304/icons/x16/layout_split.png b/interface/web/themes/default-304/icons/x16/layout_split.png deleted file mode 100644 index 986005ef864f6705a257b71be88dc70a347b57b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmV;m0ZRUfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004eNkl<ZILnog zEl5LA7>2(*7;6TjTE>ECFli7}#7$5z7{&~GPY_mb9HwhpTU%LK7zzW6#UNTtCX>lA z+_>AljQz6z&--3DaE@FD9(ee8--pBbp;D=I>>+|MZe3o)mE}BBu~-!R$4cFN^P&Y$ zg+f8h=X0LTW*X?u%ufz-s;7KDFQ(HePbL!$bcfgP9OP6_xm-?+$73E2hZ^X%Q!gwX zCN`-Vp0e4jK+*5_HPCIIJ+gGzfQ+envMfss1_SPNIvVJr@iLD_BOjcOj43;0%49O4 z+wF3z)zUz>x_{@t7xOo=C(|@VyWM8TaWv4a?A`k}kxxLDPe6}M>2zA)MBBDC(5)Rj zuynm%&(D~uC&Ms=>$+U4)ilsW<4-IdZiT<WR6Qk=NzrIDxLU1hpj$tE;~=McN+c2j zSE^Jh8tAspKRC##o?@|>Xf~T%uh%uu?Oc3ukW)Q{!{L)iBqD;?y|j4|8%O0=@>a-W f$z%DSU{B}=zHbr4>CbOi00000NkvXXu0mjf(Y?hc diff --git a/interface/web/themes/default-304/icons/x16/lifebuoy.png b/interface/web/themes/default-304/icons/x16/lifebuoy.png deleted file mode 100644 index 2bcb23d54859109bd6a05c79305771132409f502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU`q3JaSXBW51s7qF}YCY*#7qc zn`hQ1u&c)N?>@6k`W~Ahf7_+p4{~OwnjgBVcX2g3Y3z6<)M)NHh0k@OWk-Rd1;<+f zuaFJ@Vip~A+1|=Ady7=Z>h1T_-}MT~RaVS<{<-x1vy@yvmzR4kZJ4z1NqAOx(VH(B zW-aSeN^))-`okXX`o7Fe`$5nm@7+72*XyR{+)8dyUz~jSn$@Ak;2(7^i!QEs9i9C6 z@cXuj7M(6d&;HbKK0Nv2#)hqZ2|c}zYiBCS_4|u=AN_lO^X9a~iW@dB-s^MwyB%-S z<<VjPbNkiOrLSMhi*mK@ef&7NxVYGO_p<_(@KvjYIbdpT-7m}B&iCt=-8>)Psfn@I z)vw-u92>G<U|vrjZ?r@NpM~B0%V9;z%0Hbfa*mbQ-n?|_QR}bg4HGVIOyp)h&3K!A z_BRuI!@yH3(_`1K^=+9w>q%GByHKzf#MrjgJm~eUF0(KRv67NDHh=T&$eh!v+pVph zEM*deSn#^xap>G{3D*t!>U#QSy|<Z{q9E{rt=aKrkintJAUl$6ovP1hmzUjnr~k8& z(Ri+3`tjq()twhkxNg+|3Ma8+Rl<K)+g|#<WZARUUpKv%2BoP@K3Vta=cM)0QbG`K z_Ix#zTHSnU&A$n!UzYeCPulqRaKH(j73sR?&P-_q8^ZSO{r*oc+f~;+UA1a$Y3%*_ z_n-g%xpn(DHz=$PS{kPY^lwR$diCVcQNNe_F6xF)w@yubxW*>_N{Tc{#fr7kY}1m> zQg3OkZ&|;p{^hQUb+Ka0|MqNAvXP8UWxm7qoBhh<g}>v9YSMrSkHOQ`&t;ucLK6V1 Cd`I2@ diff --git a/interface/web/themes/default-304/icons/x16/lifebuoy_arrow.png b/interface/web/themes/default-304/icons/x16/lifebuoy_arrow.png deleted file mode 100644 index ab33a2deb2ae3134df17174fa1dd9106e70019e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008lNkl<ZI8Rkm zTS!x30RGQVGtFrX(sDkmhnc$JOHFD%7)nnWGd9~&YbaBjOes=W3YwRYKrm8dQj%zz z0|{4|La0G0QRd1Dw3(*cLX0V$8s75n|JK%J@Qsh}cFuoxM*6A=VK~50$e?0SGQ=~8 zCek<o0Pfe|A%iSB|CNKR*OQ`I;kZ4SySfm;wYdab4*(7g9x})VMlkTZe5Zz3tybxm z$jGj5DwTb!rp7~?nzjLOXz-9hHZTIB8q#yoFouVRE4*Is(oR(s<qHexvQFm%I5c?3 zAd3#V7*LM0TXRN4bn`sFxUsQ8M@B~6eIk*gJvi77fJ1|a46^8;i-Gu;$z1JnM#kH% z@^W8UEEbos$0KiLUjR5Xc*r1&4!Rf+z1zdJdy0!!`Jy6f6N?=&F)?zq{uv<9;30!7 zI_P3R@J7J(ua=f>d)QeALPPCEQBmX!E8X$~92z`ikVOYw-@pq2cYnoT*j_6sp+jL| z_G+n=)Fmd8C#={JC--q^@Q^_koxp%-ES&3HP^s3w8;$gpOy<bU%#^FuYBI_O>W}FN zIJAow+B^j}r)Zb)8jnuk2=O*KX`Dz%m|4xsqfV#OZ8Dk4G#ZUOFaQos+x>ad;-WOG zc5MBM-Y^h&h|1nHl5sC2WRQIp=jZ3C%jI%UD-@1rLZRJ|-SG9K`SH5S@?rCc`4P?O zpQFu-lq%|<&lc2Gn0+r&ubxD+i%BICNrla3TUya*D9_I7t*oS{@6OW31xoX$Db1ex zi_0^V%FTn0Kd-X?*OFR-f<_0#;-yK2;>XAI^q&RVh8?B;_Ris4%jUtXW<I5Jj%K~4 zbieW8WPW*02hpUFSd0k6$)Tf3B-NZsw3Z~&(z2U8XywQ_01j>6+4fJer<4kHo$qtY z)E(&Jsscvh{CDE}JGWgTvU4YhBy1On1;C-DoHzCCRo`%Ei%+2(hwd*S9KDe!^_TVl O0000<MNUMnLSTYT+k3D8 diff --git a/interface/web/themes/default-304/icons/x16/lifebuoy_exclamation.png b/interface/web/themes/default-304/icons/x16/lifebuoy_exclamation.png deleted file mode 100644 index 020a1ee6ba12e8a2f630a00485ed852945aa7e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00098Nkl<ZILlR& zT}V@57{{M?Of$_7*o9IHS{L(kNGOZaixpDc40fT_E({U;NKqkB5G|KUO~b1!n?h-d z=B(6dp%GeAPEqTq)6_N;w<%NFrfY_{dV8O>Ngeo~^YA?X-~YVlJ?B7I6#&ywrd%ck zQwmcwlRz&cJQUWxUW(6?>tp_d`P#bpNCuqa63Ok=P||4Skq#8r*uxom(CZI@1Gq&6 zTCG;R5gy*Qqfl`BDwUnq*LzS{V-IKOL9agq3&mg-iNwLs&`{a#?ymWFWhHgx=2Dwd z=@r)4!x?(eiwv?DkTS-WW(f^#cez|^dwY9yczAfdOCT^d1q5&?tg(kP^q?0RWHBIm zGLcl<($Z%4OG~}5P$(>6+ar0%PAIIghcon`7a3$RKwvmRn(X=c4p&|t)d_{hsHi9j z_+VcEU=L^LK`%1MVgPT3M_xLLi#>MstbIX2TwX*3Tw#z_LSU-@Kv|!v`A$pCIf`Cn zko5*k@JP>APL9V}SV#whgSjfP81BTy!KjkJq|U3L>4AV&r|H4|vL=ph=4X45@dpUr zhmh7)g~Iuxpny&#BpBs#xg<S39Y)wH^gRT|dx?B$;u7a^cT>wyI$gM)yp4?i5u$Yx zQ0rr3mmHay)MBx$7ZnwiWMpJWFktjD;SYBNb=$4AZq}ntlZuYr3U}yEL9KriQ#xgk z_B=4~4LjCWR#vFhYF(d`N{t`G!no1Xhm5mrNk6wOm6YYtjm3PbZ$4q~uOT=6uTjyN z1(9qh7Kub<I-SnE#qQ){`{AyrpoT|MYUZ-(*SU-I^*|||n~~8k<7e$}TS&WB_4h;a ze#*YLCD!oyBYi@ld0HxU8<f&t6B-d+T{=%q^GV(n;MFvrOh3E`9e-6vY9T`g$1o%; z1Y*v_Luz>{T-C%wL&IU{@5~{a3-3<u+rGt7+j0zbe=ql5QHx{3o!-Z!9q-CxA;<sy zof~gJ!nF$^YQ76iOjA$p!RHn=a7>0)H7qijo~mK`*?nmE10TBBkHT459{>OV07*qo IM6N<$f)Qnf+W-In diff --git a/interface/web/themes/default-304/icons/x16/lifebuoy_minus.png b/interface/web/themes/default-304/icons/x16/lifebuoy_minus.png deleted file mode 100644 index 7af080733fbf5270fa79088da28885084ba6fd90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007$Nkl<ZILl>| zUr1A77{=dkY)f66!U2^$UCfKkIS<|qVqPp9-3@l(C@&n|xQU{Ipb!&We=aJJZWNgm z6ou18gfl`RW<)5F!YXg7fuh?&glU~xI9I3d8E0ZNc*eu?KEL<uJ3EKw$BDSkaRs=% zTuv@4m$2qy8VFv^oN6baGXKEZ*d2Qv2QDUC*|lvWo6cz1ECi1XGjz}`FQF6oL6~B( znB{AA^`q}zZ}K=C&M6ZUMF<`lX6T?>UIOD?>SlEqEH5vQ=JWa8KVxHx90(|Tot-7Y zBf|_Gbishd0_Q6KX=$VJu`J6wM@L6WB9X|>3qoo}r%OWc$S^|(T`*v=!1}J0UEg!N zKOB#YlweU5hxqN0ruY{Gj|?+(&;<h)3xv(HY$n&+dmsmcN?a6E_4V}<sj#|$kYR=n zx?sR!f#$u2Jv|s4Eav!G7b+@}!I~Pn%%OX#;E`d54!U5#mKMC#uxI-{J;lTRer2hu zDmiYk(2eG1ddWcu9vNonpbMtFKzL<f54XME!ykQp%6dyn%H#1!9UUFC!eIy=8D{99 z3#NPoYh0pRYc|`bgRU+mola*51_p+FKA%)x0FMkabkGG;zKPDLi`;X1{R{rt+1lDt zGMP;Fqr;JUV=^V7=LSP=(QYrqB}sYG*jSij>|0bvpQ9F<Ej>ulZmQ!KvY5^0(Re(* zyYKTUGCylR6e=lJTdVx?`~Op<l2Rv+vifgXB3kXrf++58I2=E}w736;?h8WUwq9Sj z$(S4>+6)t|hZ$|$ZKBuYb5R49m<-f(!A@;g+vrNfPLq?Bv^d3R6@o{G89Kac0|ORU y)o^qE^y@r5OfCLPWUe|x4G=uC)2}lauzvwZSfs{oL<JcD0000<MNUMnLSTY94M8~o diff --git a/interface/web/themes/default-304/icons/x16/lifebuoy_pencil.png b/interface/web/themes/default-304/icons/x16/lifebuoy_pencil.png deleted file mode 100644 index bf2278644af1a7e0b93d404175e3255a5a0950a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmV+e1N{7nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008YNkl<ZILlR& zYe-XJ9LC@Gpu;pTF~U)k8o`!s!#<5-Rx7M8Hkja8f`(9TUhqPpAPTPf5;H$UmT3k? zp*fOpf+&dVVp&+Qt{@G(Z4*&cnr#!!xA&PlVS{Hp{GaFd-_Co^A$`q+a2?>Xa+$dF zTq-W<gn<eWd~BwVb*wSwKRC|mP^WX?j3=93pGl_eeu4Ht@R%V(2VHRq`3HB~iPPy+ zE~KVD`DHSBHtqHm*4nxS!DEID9dyMdFs9)WnvP&(WTZY63e9gfHL;-8$`%U?qk_i_ z89L~K0gDCtcl@vUl9QhXgTc9tjSV(7HWuiUO1+)&@g4{sGi2zX3kEC}s3x=Njm6yD zFPn9BQCKdQ*YM-f-s4{oJZ8wyK^F{IERcTNOFLJ}%2tCm8*|C!UYSg$B{4X*fMA9U z9dyBf#RB28K>Js#tG8D8wGJdCcx-8D#KNJjnBXx(hR(9Z^5>^O{cq#x+311~0)4Sm zTDrAXS;>YI6FtpJCApcEMMgOY!DEJOs=S;H<>hTNyPXYC`YL(}FO%rw8Ix&ky`qAB z)M&g$qfuK>P(a)qhTt)KZII1AFDhc;aG2Fg(|&aCBl*!obZN=0iOkHY)#762^Z5c* zRaG@+vso)HfN#8Z(&6qu9SH{-SglI6?8ufp5D!t`YaqGLB$6TinVX)TW`4gv@KvYt zj;Ew}p!er8W<~hXZB3-}kT4ELyp5*b5|Yk;NU2aL>Rm3^{F2$sg8V!}jg4%<ahbho zIm`fewWuS<k4f&J3r2j9qK|UyZYewB;@ksr`TQrH?)P`2etXouKMFszB}DEXp_Ay4 zop)&GQ8pXML70>za`c3n<TT`viydmx*0zTXwx1%iY<-Hg+350pBk4hg4)11y0gGh< zHyOKM=k}{abLl)$@Qhu#KnH6rG#|6wuQM31e*v@GsIAD;V3Pm<002ovPDHLkV1m(a Ba%%tp diff --git a/interface/web/themes/default-304/icons/x16/lifebuoy_plus.png b/interface/web/themes/default-304/icons/x16/lifebuoy_plus.png deleted file mode 100644 index d41f5b48bdde521dcbafdbe0a1118cc6ff52cf41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmV<P0u23$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008INkl<ZILl>| zT}V@59LC>wOtXEd3~}k{Vg)lj8zREMW}qnDgf+s0d0}{wQxug14N=mH=mVvji6{j{ zp}B}~K`4ZVh!QERuZwCl(M^%TW}O;3t+)3XXHqnH#>4Y}e*d%g>>M)DM+jFAmy65E z<>1QWGA@=;6$Gzj4yEH#n15ik=eC&5fpT9Vy|SXG!yy$NgW!>2h7P*PC1fAI-%mUq zk7Xl0{o!|~)3@8-A7O)odk{P_%+NtMxdg^JRZp`qn4X^Qip64Uzk7R`>~gWq+S-KR zkzs}ox?sR!fn$OHw4h%9NS5W*ot+&vGc&V3VKn+jQ&M~oJTlDCK^F{IEXaFPNUv^I zR=(Tq>`cIdAhh$_V;kaM5Ii!>&_NdrSS&Dp(9zLIQ&UuKY-C<R@S98~8&P0o0YQct zI_QD{iv_B;D*80q*0vYnXPrz-^EGB<kQxr%RRoU=Gjz}e12(bXwTeCqH#F>RwY0D) zjmFn!v5;#81>_|MA$Vk%p@S}%<O1U>Eq$=!bZ-4<Ze~kXtG}wM%2r)nO=dX^!6Q3$ zF)LDZ&%$c1i`!t5N67Qq$j!z4{7=!kIu;BD*IQd#+a*b|B^SUW6DN<yFGM=o(L1JX zFv*+f7%wB0k5f}$@Xu->5MZHDX#Kt2?w>ape9-BZtcdueByRIKm=t!goEsV6v?H0H zi{1LM#Dg?mPqO)iEM~L0%j@;7g(Zo}{H(E_o`i}9kFfHMv;RrwPWSIW%F4fG8Bwce zCk0_`*>3;&rJ~{&bfzgcZtl*EAG)NMt*a*(889r-0mHKWmS&DfWh56%3|exmL?or% zrR3a*NZjs&<oOUK3lKaq&1LP^oPfw^pY9_Vu(+y<o5O#<&chwVdj2FaYYvcH2p(B+ lhk8ucoZ`24sOP|d{R4*mrMF;)cIp5C002ovPDHLkV1jL>Wx)Ud diff --git a/interface/web/themes/default-304/icons/x16/light_bulb.png b/interface/web/themes/default-304/icons/x16/light_bulb.png deleted file mode 100644 index ff6feafc907b8b69bab4173d9977ee0e7faa87e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00078Nkl<ZILmd9 zT}V@57{{NrF2ZgqDe^8d`m(_ax)T~$7v@zE5z?pRyinKB&=ootiLMW}X&)}NmgLM9 zEuF(O${PvVMPqC@&$e^UYC5+$+D=C%b#;2))rr!x2Y&FJ_kI7r=Q$t<0uV;^@Ryez zupc>vea#DGq#aJ%+u*>^b%3WWzY%k=Mj%6uP4yjYUYNf>!GCvoms8fyA#bbO)my52 zrh^I$%OnLj0dP{;+rC3BKYw`GT<$%~^KYnFOdkja&(i7TLDp&6*WTX@%EwI-g6B7Y zP#up9Os}rad|6qU4DtK~6_0lX{QgQR9KI4|=k9%Yq=njtS_y%z6$qMKZieRh@q9Rw z84j}S)qu};JVa3!XpVbLTN<FvTrVLQxCVr#Y{o$?E_Tk5$t3LeSIr|4hS4xwc8t1H z2m0G;2?4G~IPaU)jI*rvD_NUN4g^j{aD6(Nw8VTL4U?TUphngUdK&?H8lcpwD>kGO zPsqwFMV+G=rjd!qjnVA4v9L+Iz5C`R*lW00Kw!atGuA@o@ZBRlT-LFKzriLFrYO(5 zmWGT+A7HSGge3*HE`x|1r)a#h9aHJ_;6ggxA0s`6G>E*QK)m>a(rzj@WwWEnOlBlW zdUE#fn{@(}@;|}muDYUbj(e5jI7f=~<V?KZwNpYM)|nGKpuV~c6bgmf?RE=hvssYK z<yJC)AXY&EDV0i<7cdMhIGykE0$5X0f(^(fWGhla1Rl>P!Dh3If)ZpKQbgWL3FOEY uWH+Le$z<ioG!nq?3gj@d2PsB2in(7)!2TJZNxp>u0000<MNUMnLSTaD?JRfz diff --git a/interface/web/themes/default-304/icons/x16/light_bulb__arrow.png b/interface/web/themes/default-304/icons/x16/light_bulb__arrow.png deleted file mode 100644 index 563310a894862e323c6845f05b18703a84a2e748..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007`Nkl<ZILmdA zZAepL6vxk6MHq!8g?<PkBPv~3Bua=5st;y_Mi|(#5-mtwlHyBc8kG*B`C86&h~?`f zOI@i^Lij~tt+7$w&E0Fh%xw*~b!9f`!_&FaHaG3Sk9+QO?*Di0y+8;7j;{OQrMnCc zA}QEsbRr$4aH0Jk9Exu?Hzvp}D!htf>!;vIr4}GSz(W#-8V={rPSg#szxvfbt+FqA zb&;~aHoQ2#PHSj15rSb=OdTWg6W|8GO%a0)k%i0damMBP$gu1iDqo>oIQ#6AJ6Sfi zyeCU;y7ZbR)iZ=(SS5I@5qSl#?f^%cX|ic}X=&ug;^KQf%MMWIdYM0xAB1G+2uc0w zqd-qcc*&^BD`+VK4zbHMVr1FAm9X93_C2#fz7Tu&<?j=v9q!{LJ<BnzG)Ykt5_<EU zDlBKv_XbS`z;WAQS5R|vkG`2q6*`8wrPFGYCXh**7Sqv%UGB)wglrRas<x+hi%{bG z2ha0><FaN{+{Z9^(^_pJrO}+y>vU%(4Temk#Zo<Uv7*%yeE#Y5=9Fd;O2AK0n+s5r z1L3mbkaDY8uBWJUhN479n$D$7Cdrgz;jKZMx2y8ORXDIIxe3-4RA&Q7vLLbT$*~%z zLott^!I;g`DVFV@Z<R#XmtTP-1lAQiyapclxJ9fUEgQ1gnrCgc7c*RsK{3MT1gr51 z0tQj-(m1KZ(PgpQJ1kt!odt&d1i~o4!Pbf!L6uHtkJaf^Sh=1%^UU{#g0DORPo<vT z4cTcCAP@+yE0s!8RaHg!e7=lZz_F$R1zZV*!W98c8%b~PhZO<*uT}{*AX|_fNEjy= zA0HzvE$tpb7_t)y`uFS_0UrrQ_90O`9xo0VMs#?85;=<OM?#Q|p8Q{oj?z@kZ$T#j O0000<MNUMnLSTYmH%$ou diff --git a/interface/web/themes/default-304/icons/x16/light_bulb__exclamation.png b/interface/web/themes/default-304/icons/x16/light_bulb__exclamation.png deleted file mode 100644 index c82a99c72d97421fcc3bf95aeb6d1d8830d1e7e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmV<L0ucR)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008ENkl<ZILmd= zdq`7J9KiA4aRy=ql@JIPk_Dy-_5vfJkx2MQQPBEB$SmlEHO$^&YE)_nniaX6wlrV4 zbWZ0pvqE#urm2^;E#1)hm}|DpYf}s5bk1;dmLB+U&%O8D@45E^#u%uwByf3?41vTk zGCxyFl-z~m?}R8(S%btxECEjNPXG}I8ghcJ4y&Kmu#?r@KTLuyjq*yZykbq)lsR{z zOSY=uOEvN$fN}+j69LFh!Sy*iZv38A=<W7qJ<Cco2163l*BL%Gq>7oHvx{-RBI0XD z6*?@JAfQ}<*LQ%59_<%4PEWTCPEFNmS++(qGV*}wZ1S^B8q?=_JRY_fl76*Uc;vT< zkteYj5ZwfdZ@0G$u&mVau*FjJP2I!OGi_lrlOu^3$a16R0#?=s$Ul~$h!3T10pT^E z60DYTx~pn*G?mfm_{`_p&DKG6%)FX8gllEjG1JS%y^8%4%|%GiREUr(@H`%<lRd3` zsa_vH)YliK>1^9O)L!R5GpId?b*kNtH=swIY7hSOcCEbbCEDi-Jh=>zeF*{tw|r7e z#(b?t6QggD__G7b?Q^F7AZ+>`i0wabJC2lA?q`y|KzU07kK+K+&q7pD#;$CewS4S- zRTx{Dw`o=?+V-a)!`qmj3hGynpxvo31D?48_fLZp=Uy!EyIYeR%;vmdvpLs5=P9Rv zpP2w0;Y0GT7Ldr|Pb3T6g%)RqXIiag;}%QFIGxjL^xldAZs?N0>eTbzX*QeKWV4l< z=$u}o_tGu`9En&a;2b9+H$q%=FocAJoRi69I4dg)b2uCU-GFi*M<bUB(81+$9RZzg z09RHvIRdcKa0_@4Uc`FBmj)Dy4lEKCI|IJN2Euz`?SBCdv5we6gd&8(iAI7U=j5wl hC$W|AAv~SW{{;f1+ttnbJ^=s#002ovPDHLkV1mm*VM_o2 diff --git a/interface/web/themes/default-304/icons/x16/light_bulb__minus.png b/interface/web/themes/default-304/icons/x16/light_bulb__minus.png deleted file mode 100644 index 4cae1dcde99fd14849674efac125829744995882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007dNkl<ZILmdB zUr1AN6vxk6MOZ;gij<%~mXsz~&{IMK>%n}8B6^V0lF|orjfz}WbCswRY-*A#i)qb& z3ry#*8R3fr2_<7Az58>oHN9?Yv|X=E-P7&-R$KFG2R?A_@7(X_+&>@)0uXxCkf65) z4j^Z+FYQLU?!&pxdvLJh4uJ6(fC>K4jetlXL5^Envu;jLJ{{!e%;P@;`mfIMDvP-} zL)ET=d=yAl72pQIP1)~T58aL~jWLnPM~3I$QC_dwVLiKN&XTn=+ACYncCUj841OVW z0X$C#-c$pjh;_FOFD#6FpPwIc^86shvUQHv`!_Ex78eU*^e9OP3{^l-L?R;|o*#&X zLm}e?!(4Z?pHAm=nX;vp>|N1^n}F3|kWica1Z}r~a3dTtQ8P2O-^gYXw%ZFQ5jRaM zXfE7OJuV0J-E;ul2b$z>@JtDWi?&h40K+JM*zE<B&33}+aGY|xTvt4Pf1}s-Ni$Si z3S|gXr-=m3l>klGAVaT8)dYO6oD@~eP}BtvO;^$^+b|XW)$h_Ox79zm1eux=4414T zXsiHexC#ZvCr6sNuxS=wgYo&aQ#@~;?PxgKf}z4hSS)yS8RAHBi(-7V#u^O1oDK$G zcu9`|1tMK0C`l5C2DzQuJZ(7K;}3<p{G=ym;_xzoJa^e(V_kVlJ;%KbaGWVXdU6(@ z@7@9bDlUlE`IFnBq9_}3a&pQn7K@<M=>(}%swWEwD@rUNC6~)%0-E*+eSIHd0{CAg z3DzJR5E+t21Y={L1%sh8F2FwzTalE%_pT5~kuAtxBv&Gl<RQa|1F!Ru!^l1)6<Hh4 Z{{}Z&t$trEMD_px002ovPDHLkV1mUdEh+#2 diff --git a/interface/web/themes/default-304/icons/x16/light_bulb__pencil.png b/interface/web/themes/default-304/icons/x16/light_bulb__pencil.png deleted file mode 100644 index 5864514fe8f21fb978a52567a62880ff988eb66d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmV;@0xkWCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007+Nkl<ZILmd8 zT}YE*6vxloyb!xs&5ZO)riC?)l>{nAD@hRR!YmV^FCinWDHW;JbdsnT%rsHUk7=pX z1<G`k%P_)_mL}!MHqtknpL4aXSLf{N?L4D*xrqmUaGvKp|KE9lWmzC}7J`SaB8Wgz zu+LN>9WprGeh>Dx766=0ONAzpD3+$Eo?(iTfRBJej`Y{<yE*gqQ6KZWcWlX0|Isv- zr|qo{%WuhtgtRlKcIU*z$XL0Y)lk%1j{r9SZW6t$i@g13O;0<WuW5$qF`CVVhKY&v zN$XN0t$iHYoSt&H+~snyi6J2hB|xG_@azr{GUmQD=vG$;r<a#sm>8zdI5$^n7#~kE zejZ6$7*K`(bj=sALZMJ55D4}+0v0Dw<^e(KbPi53jK&?d+1e&(I>+$gU9@?iE5u2{ zHFqic<T3xFd_Et%1P!-<aKmm>8)s)rzL3o%JUSdVty2ZL!(DX|&Wdbkxti(+$#MQr z9lcIan+t?<pN6Cwn$G<}zO5gMrFE(u?r>+VaINp@i8m#gkc9w;M^Jqopz0cg)#nGw zEelO1qwzegX%^Yo6%(tf4RsktioYvzgUX68!XEhr01hv~!)$=^%aGLe;9!-*uAV1j zg)DMqe6-?MYx$uX3?#1)dkOAe0uCN-k&X=&^;@ltGgj*pGwJcM6ya?u@EM5P74ZtY zy>roK>sTZ`x$_Ns2_#~#!Pe3%0c8%ybBn{Fwve9Oar4k!@V__#S82z0LUx7-qN1X* zv|24&Sy{>Qc)WVDfUu!_1*9YriCZu=HOY2&zj6y;vsx$Eg7_obkzgXw>)*3VWjiMb zMg&N}zqcC%JY*XpM8p(D#Unbzfae6{01}P_B7R){FNRUDOQ8P|asU7T07*qoM6N<$ Eg14<n;Q#;t diff --git a/interface/web/themes/default-304/icons/x16/light_bulb__plus.png b/interface/web/themes/default-304/icons/x16/light_bulb__plus.png deleted file mode 100644 index 7496b6d66889237ba46cd82fc98b3f634ba2a6d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmV;(0yq7MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007yNkl<ZILmdD zT}V@57{{NrtS}RE8Yx|bmgMHZg6@na)rENxiFF};V^-MK`c$ISFmzDOkIHW|$#22Z zjnW8jyh&JNY?Nnn=a|#Et<g4*%(ko3^NzN;X%GB3&w1bT|2^j%c!A?MAPiJMh`~xY zfSktuN<Y%~7z%qIK_(0)w<4Orbs!0#GZ7$4z(bCXHw*7B%)C^w%VXMKj+SpmZJBzk zF}*ytTVN`7-RGbuNdw)2NC8d&oFw|xob|x(n`XS;FAU4Rr!1BVLxC!5SvV~6Cv_%U z&p1ms3~B;&B({bG?;Zl7$U56TvAR0>b7keDk!4ks)mmfN|2FkcuC0KJ23{v<LV~U` zAjrJlNi)li2Er~^&ku&VWjNKJ=E-Q=;}g9R`m-!YICvhf3GgC5{08m!fN;m{8ln~# zpMEEkNm#GXpFw76T1E?-GJUCYA`YtKG@#f4C<*_ACOHt!>!xI*3?rY{>+>j`?zqul zI5}%F6`Sq$dP`w*u08I0%sfc9w8HJJk%C4kK*LQ)Zz&g4Ic%Lqin_p1)HyRvOKGcB zG3WmM!K9QY*FL!f8E_*8HWbvC0w}IRUeB{b4IcN<5`G3_vnl6Tc5JCzarjl$MaV~B zLqYXr2*SrHGVN65xYOCO;B>ZGNRL4o!Y6{YgalC=*}cjfrQ1DVce(oPq$g|9;Rt~w zJ7Qyd&9&HCk7wB7@eDagPu7C_dv`;)f`VY3J+TW)i$ow6i%ZmMHCI<x$MO067BYaa zuA&8`BoawLK+|S!WaM)|0RO8sf=$RaWG9kB1k=-Bxvs9>pdbao(*v>po?R#4BMC?v ulFj4sa*zqcfcM9cgUCJvk0ERh=Klis8?p>P*BB`P0000<MNUMnLSTYQAV@s` diff --git a/interface/web/themes/default-304/icons/x16/light_bulb_off.png b/interface/web/themes/default-304/icons/x16/light_bulb_off.png deleted file mode 100644 index 496925d75d999e39bb5c70d466c4cf7d57260013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007cNkl<ZILmdC zT}YZy7{`yfi)~l?fFS5<Y!HdCT?Qk9-3Jkhlu(o#n_$ktNOu!6*%uQ<2xc%-L$g6j z`7yG+TWu~=*IFuMWtr7$IX_C9PImL|IkFd`*FErq^Pcnkf6sa0Ac~?8#%i@zvDs{B za&oc>=$M$8=(SiZy=Jqy!(cEpjf{*SwOU<;&Y?2`7KB>ep7*lt<enpyFZp8o1!6fG zw^?oP9_n<uRtU3d3XDc0GMP-xGfvl|lk%VS^l>Gc%#=dDSk^lg*!OItiov%AqfDt( zHV+LAF$JTeqe!pU^R|<uD^sYfk-75nUbg&gX){Nd7k2FK?+3HtwYWnrm-7Y(2blt` zR*N(mjVO0gi9)a%-Z(f}oC~KtW1kXJjvzU+mn{Vc1_tg*Bod}TrBb2c;o*L0!c#xu z$#daD&-mx0V|*cL_pTm#$lR|*kx0}J#S|zM3Ix|{Cww6j5lJuLYvai{>|9PcS9gwm z^I!ZHp-|Y~-QCR;$Ye4kl}a1siYMaD{k(rVM7r$(avCPPL-9O8W(vUvVzHRd=Qjei z1@M2UudlD=+4Gl*-ApMQ*vx%cNgNTWqu<e|N|l1g<F(*$O+i;z7fqc&Am}9Keb)6< z(H|p=U-25koj@IcFbn~G@Q)iWUcG+2lPUd3{4A~DHQqbj!w_&doYR5}Jv}}5ceCXP zJf<*S<30MkzP_F*psTH|t=h!pa__lZE(+cT#b&eL-~kxA{wts*Sg^Gfr|fobRe;V^ zEkPY{9=HrNU_l_TM2(GEXh8#T1-OWNYYEuECEyxxlf`1)24;Z>eBS|X0oQ@6z&Sei Y7co^N^|v~Qa{vGU07*qoM6N<$f~s#l`v3p{ diff --git a/interface/web/themes/default-304/icons/x16/light_bulb_small.png b/interface/web/themes/default-304/icons/x16/light_bulb_small.png deleted file mode 100644 index df440bcc74bf5ca510ce80d6a322722cc2fa0223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmV<T00{qyP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002KNkl<ZILl-B z|NlP&C75Aw8nB{{fp=v+gWvL6hRmfk3_<hD8Td#t0H`VO_PM(0Z{EzidT5*R%-JOj zkt7)~uZ*D>r1|mV`YTtj2H&2L!%#<(0aNlB;`VPfTLRL2Y)|NlmSl!hk__lfV^E!3 zF53R$MgRSYr4pSD@eFDt8344A0jLRRz@+;i8i+}Yh0xGY1|1!pv{kEC{paT9p2EOD xrUB>AUnbuGZ6IJ|WIP1aYeBLB!yqq^f&u3xz442_FmC_=002ovPDHLkV1gu=Yh(Zb diff --git a/interface/web/themes/default-304/icons/x16/light_bulb_small_off.png b/interface/web/themes/default-304/icons/x16/light_bulb_small_off.png deleted file mode 100644 index d28c98ee6d56b57059a411d12b5c243e48dea6d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmV<X00jSuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002ONkl<ZILl-B z|NlP&C75Aw8nA5HGTs#{R`@MhvLtQ({P});eSN$n8359B{>rV1*PnbkGJE}zrk0i# zKavdS?(R+lX+C=6&F&RPA8*LZ%S$84fYQ=Zzey|hwy!+;X#J8+2fJfpVn}mAa&oe4 zZb5O@h5H}&W#;5%hlPd7l4L+cL<B=<XlUA{hadKXXdosn7C;(wbac{Ity=Y;o11$I z0|Ntj2An^CnS2AZfq;>b@eok21<3{sgS<cr1^`qt#(PwI2R8r!002ovPDHLkV1mJt BXN&*< diff --git a/interface/web/themes/default-304/icons/x16/lightning.png b/interface/web/themes/default-304/icons/x16/lightning.png deleted file mode 100644 index be7e052a78fddee530a86072b94fef8de06378c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006dNkl<ZILoEa zPe{{Y7{Kx8`ArE5578psAqXNPjCQE#QeCP;^ao11cn_mX1qDT{)<9&Ce-Ni>>D1Yr zo9>S;%eFP$R&%rFC?c|%xrVxMv*|)D_V)aiI|T2#^uPz+_l4*C;|Gi}_#b~=f;P<A zG(LdFf8hqkESMFr;_0c-nE+d{vP`;%=owqJv&3vea=1(4^cV#>H}I+-MS|aqnslOd zVJ&`_t<5XguS5-7h}CA7iJSubU+|g`d?q~j*1gZYnrvpv(QE9-yo$wVsu!PiN?hWy zvs-`>L!Q8h0b$gD_vRuuqKjXyveegGEH<h9-rppQI&^~kg&rY?8*n|w?LM<~IQ^|Q zlZaeoOS39QZ-X5C!1FG=JUL$eaXGGLsn{K&$XcRvGOAed^hsR~9Udk8fW1xPHfaP; zca89}Lyi7OsDi!s9cQ23RQz-qwtAmxv79~vc>_<{C17qA!16%Y?>3bLro$)Mbof-p zZ7c~6Jj6@(HiRMVAKbv;BY^@asth@HeV+Spn0YO-cXYpPZ9%lPB8aN4=Lz)GLsoAC zbj*Zzr-DPpQ*^HHYlK1yWEc0AB8bBc=<b6^X3`Y+C!E`2bnevGL6PzbK-v0YZn%N7 z#{k-^;e2mn;cKlLZ8s~Sc+XDY4mUuvxk(9iEh=!FI{}C2E*0NM5!pyKkOCs)3+$jk s@W=tUK<6@2D!vgJ*|HuIBa+<CZzKpXJ%zQhPyhe`07*qoM6N<$g8l*@EC2ui diff --git a/interface/web/themes/default-304/icons/x16/lightning__arrow.png b/interface/web/themes/default-304/icons/x16/lightning__arrow.png deleted file mode 100644 index 58d746438837632aa880a7195d28380411ee8e2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmV;w0zmzVP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007pNkl<ZILoEZ zT}V@57{Kx8JyU|rATm-ff(WV$Q!g^TFukcRqVL2mHWa!D%We`0jIc~X8KuTbooRl} zkLlF;m85e`=W1=o&1FPoQ`3giaGD>X7Ct>^FyffdMF)Po@AIC${~bU?_#dLd+QxhW z_;%L#4<HZ)-e{SZrIno?wV$!zN-M4}*ONNL)lT$GDdxJXCB4Q*F4FgBqQL8BCg991 ztZ>=$barj#F0M^y;xA7g&bsowmq{cAVAH^WhJi`Ljtm<j46Ad+xHOrDKc=&BW+Hd~ zMU_M^T<)#mpij+#sfl@s0)1)*{c3j4?YucT|K$cQe7%LPk*x2{MO?p5#YMiXW3Z7Z zps!_nOf5m(%ir?XJ<cn*IF*fb*0Blj5e0gxS?UO%@M&pAjtj0kB-3k=_H&b&E5@cE zy-vmA3HXQtozEl&O(AEj$>UyC%9+_|m*RWVar|tP{?w~?4U|;GCL~vAA->EFF^|U} zJm;-A@Vs0CEyWyYmE2*2Cd4xCIEmwqQ|pGt5NmrWyBb$IrKHO|t+Gu69c3H^m>|Wj z+dt<1a1;l$q3>wEou)`-bct8G5QQ~bF)I5jQ2z+L8Wd1D;W)Tp?Ft^fB!A$H$Z-tP zkNJS)2433a#DWP#VLo(!NG1xX9)ciLQ|M<N>fP<4eN~)l%$+-qczGBx(f&vJN5p*@ zMqU&+dkmmF7cMqD@gJ;^v$l*B2oAa4r3}8-$qR%ph^}<vc^jfI(>w7O(6gf`3kpiI zL3iN<#LyfhoRL7XHBee>3+qD+l+_JxPg2V$0viK+DPWC@f<)SfkpsdR2_-xIV$;k0 l&z0C{P1+Kk0NbLZ@EZ(LKnwMX(Ifx>002ovPDHLkV1ls6Mw9>m diff --git a/interface/web/themes/default-304/icons/x16/lightning__exclamation.png b/interface/web/themes/default-304/icons/x16/lightning__exclamation.png deleted file mode 100644 index 52b49c7d8e2f87853ae63c5aebad277a7a81314b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007!Nkl<ZILoDz z%S%*o6vw~6-@SL9cbw5tXH?X5C{f5ZMv93NNrVb+TGT3V(M}?5QBbQW$W8x2Em|cM zS=MF>DO!lHp%!LR1DZDZm~kF9bLaPJA(D<piw+#lIg9Uy!+8*;6#mEby~Xqkx|_NQ z!J~g@FB||!xf2P&8Gm(OZC&HQNhPuX6o_7gMEu*<bolD5)1ihOc7?wIC?Pl>sO<}} z)EuBBsNq9$E4DTBc6b)R5P-<8hVBIj2}p?+cX4x*PDDxGN`b>bJd;mOzZsqbFr-lx zkrK$W9pBf15C8#s%c{?XvZ)17&52}6rY6HTKNfj#P196lx6^$7kRb|z8oSfq>M5$I zvQqQVY$aHjy8Yhg1pwUHv#{Pnw;%-i%B#DMD8-2GsDP3TEuFV|2ndq#PjWRnz9~fh zfe?Q*WbYlkdZ<rib4s&v&^TB0boZrG)~_`f4nL2tj3*o0?%Nh82cJpFuK>s$7$PC) z(kMFIZVcAe2dPFAaG7?s{(WMlIMB*mu2PRT(A6j;y14+jC;&*Q04OM>TD(3_nZusO zN_2LfW!I8{nzPP}m!F`tqWzc@q+f98f)@ZX841f$U`)07%cy@jx)|MD|MAmT-kgI- zdq+n{k<G-sHdkE}7wBY#0L}r<QAstuA-<7Ff0>VcaM-cr4IU4zCZ;g{@;WxG&oD}Y zM>)p@#z6J~MqdMrp-n1cL}u1zOp`oynxzfUR{S=)fu7zGxb!qk)AAb*^91K;-3NFc zMsdzU$5xyr#=`0@W9TohEDAYk45qP-?ado7jcu4l2Ei(CJ!2Tq3qH&Tp#AX}M&3;! wQ(vRBc;f3ap;)4T0=XwCfg%J7fT9$+-@q3p&RB{>M*si-07*qoM6N<$f?AhAb^rhX diff --git a/interface/web/themes/default-304/icons/x16/lightning__minus.png b/interface/web/themes/default-304/icons/x16/lightning__minus.png deleted file mode 100644 index f5d04caf25c843ac2adef4a993a73fa97bd716e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006?Nkl<ZI8UX{ zTS(JU9KiA4@5~4aAEHINhal(*K|WOU(&eFg2s0?@A;HHm>ZKlnF09#l5Ft&ZIlIi; zbeqm?-pXuS^D<l8YK<Zy)66y0g_})RYO&Mrj28S?(L;mJIOlMF-}48~Is6aF#@C5y zEB#&A_75OP0#9w2;_bjAV}SxMU+Cb;gpn9HU+m%0$?8~Nlgu&L#`4mSNdiwSC@_x| zHHqk*nWcz|FHI}?_h<#530J0uNgf4$eXS%gWJYkCao0=NcGqG|%jZMq`Il)mk4%)! zK5UdZ#jvB9LBENCyB$*`fqoOhfC;Znja~@NemKYDA20FnNa<%w4I8lQS>9s<LMBPT z*@ElbR(W6IQ)MzbdWz3YsyUr?|ADxhA_+Wd!ZRcO!ngC0avl#~CCZdJTE{}lg~4{Y z)2_#T1kxmd9-Yi(*090m3O3wOj-Js#5r6GI$lpCL`sOsP8S1UaLV5&xFC$pDA{YRq zf%|nbuxc6DYS|8#IoCTLJj};~`AJt>uCMDZp6<~hSZJ`7=7iq@-S-#;P$&u5H@%;F zvxg7a6t8H1#ZrKn9{g*-SOqDq)zB~z+!FUa$Qh$`m2o5J=(0ak3qY+TpuYiv!mP>i zyl|`y)4H+oEM#lx^4H>Go=Kcb0!I%3)Rn>U)?3S-)t6)E#S+NL-vDr(UQ*HJOyXP; zpx>&RQn-0r4fbP)U^ngM;*4aI6=XTdBJ3pnsl-G^U_AwVdw0SKT5ltp#TikM)jvZb dA`_SQlOLMg3V2VZm}LL}002ovPDHLkV1h6GG5`Po diff --git a/interface/web/themes/default-304/icons/x16/lightning__pencil.png b/interface/web/themes/default-304/icons/x16/lightning__pencil.png deleted file mode 100644 index e9eb9c9b6c90cbbf29c3eb09ef9b39160a42e8f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007cNkl<ZILm#~ zTS${(7{Kx8`KBa=SZ1WVC>)lN7P~00i_${8SXofBo1kkWp%S_f)D$Bu$OGc}*qqJ7 z)||(*IS&&Fr`f=uG*q-z3Tg*!X5rKGEjMQ_ANa%jy}a-5gO3je5Thm#_2pq<r{dz` z;6*ipr3qoEdHaaS5f~7ADJ_j|MMR`1mCBHHU>6^1*e(}P2@n$_m1f!Pc2X!537sm8 z95i6;#K^@#S~1YtaxJGJ`q@egpYj$vt0i6L20`uu$^gLM-~YHwCQGq@Orpj@Y%|xR zetDsEeswO5R%cV`_d*uU+p-;(IXMHc3GnmtgV=LEXY*6hBqALu-}%|GJG3;DNIzyX zXl^?5ONUBg5-)ev2+&*S0XQG!0}m4+y7WFyiilY!qYtCk$u^$;^;x0NXH*OFZViGn z7hrmd?j2~U*gdQ(K12>gA4;8-*v<Pb|Fi*!U)`;n<3q}^vEc;L76lV6y`#RmDEe-@ zM~gG5D`s7Q$*9IiZUbnmlDKNEko0H^1anQ6Fp!swZ?cmP@(G~#ude+v)$QwlUWH2W zMVo+jzUZv2QUdxS0UC>i6Fu6X!6~bPrmPp%dK!W(&1HC_wF3Fv-#h{><pKjJ7C&M< zJo)+UY3gs3j`DM|p#-t16hZ94T{oaMcWd=|@MPM0<eQ~EaDvylx_t0vz;W?dD1taH zK>c`2Qf-0P%hz4|ZM;@#a=<tJHbD6LMd!Ex_qi0!zjh{Esn7Qwu6l$`N%0VPGz2`3 zM}TKfVLIfLWPtH<3`FpAfVju`ayz*loEInj4+v(!a^@sl<#jk0D(-PoZtprIA`&O? Y2Z^P;VMdMimjD0&07*qoM6N<$f=7x#MF0Q* diff --git a/interface/web/themes/default-304/icons/x16/lightning__plus.png b/interface/web/themes/default-304/icons/x16/lightning__plus.png deleted file mode 100644 index 00980e1afbb16969433fb49ee5f2c2d0634ca7af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmV;Y0$BZtP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007RNkl<ZILoEe zTS!xJ9KiA4|7<HT9j23X4?!;#Dd<B*Jy--~5M9lJ@HIr~si2^!mF`7`SH#P_t<9O6 zPUp4Awlyy++m16SA~G*+jd{V%yo6f#>wgZMhqHtpdiZdD{~zc7-ChnLBK!~0!P89y zyVxGm_7A`j1>SWMp1X@&m>Rq2#`P}TS~F2Ch#P$v3RZ;sn<Vz3HYQE@F;U=c2jMUy zR#LSVs$1Nge}bEHD*PQP!Nou+f0;_70oXP$Y$4#XkfR@*sm_gX4X*m{;LkZV&ie|N zUK%70?y|j^fdMlEu6Du`1qRFn2F;{kcJiKo>Dz5w{{8?16Zt<ns+mEXkx6^qLLibT z;CM#%x~z)+wT05H&}0s-1l34)z1skRDDbL@+?rsszO2q`a5?apQt?*k9QLc$huRem zn~|KPKp+bAHA<Y8DrTs;gn6Uakdeu;Z2aUpgI~SbzZ~X-VU1x&R;no$z?=YJQUEl> zi387d60p`V(5Yn(J1t4>nelTtGk$){*_Pz#sV8~#qLyO$=XQbK28IR*CwI)Ye|q+F zIu3U#KhpEV8x2tej0*N<=q_?k(8vEBFqH$ZwF30M@q^2r7l~7JE>EtLH`13`&b5Uc z6lSQ8(~1JdV&Et(Rnn37_B{bQ8y=NOW1upYJr&HvNZei&xO5soR|r>ID`lfkHKhA~ zE+ig0D+MT)YoSQaa#DQhD9rp`^ko6;uFi+DS~b`*GvF9KE4UpMLq$PBv{yNujG&Gl zg+jV2l0#%*9}Rd;9D(a}PN5EPJ4#8#!)2Kc@?>7PBCCbt^q*zygg+*N86T871H=FT N002ovPDHLkV1kM}H$nga diff --git a/interface/web/themes/default-304/icons/x16/lightning_disable.png b/interface/web/themes/default-304/icons/x16/lightning_disable.png deleted file mode 100644 index 94e24a0bc71117e205fe220ad9173f07dae7a475..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmV+^0@nSBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005-Nkl<ZILoDw z&5KfD6o+3cl8Fiif<PQnauYEPX*DxNQxrtZkPX9V!X3Mg$h&eOexPmyMFc+<iYWLk zil4X=*Y5Ox5Zt(Mp-UHTMC^A(VS=~Wbl`z=&gDGky@#w;EAl`5RWurnE#hXgNpFKG zs8*|MYPH&{e!qW(-Z$`N!|7x)`Bksi1%ZSqD3wYAqH?*cn@*=c(Nlug;CMV9YcrV) z#diq=>|e;|^Q2HHJZrbxzfpez2jFlt8eN7$AsUazCAnOV6pKZ+AeBmybUJ-D7z{2p z!*7Pe;f2%bq>)HOl1wJa7N#JPNbF*Rak*Tcpnf4d9X-l`Er>>=AA7ytCGrp8-G;Z| zXf~UD#|;dzSnN4q3p5%Hy$O0MpqS6+C)sS44~N4CSVC?S5QD)$TrSrhwsGj~FBXeK z9G3I@{qF;T00{<z1P5gcc%CO7k4NCR+wGnUFQ`;1TGU^?Ua!dK^AQ1~(a09qY_>HH zheM0&e{Qu}=g5D!-R`>(tOw<CIT3;>Fq_Q+kL`B*b*IxgL$0w{EMku1h)gCUH-jlq zDwV`!GQG4~tvsdlO08BuluD(96-)tQ2is2ddi}LZrP@RNK<EK6xDW1uJ3#a=!LClH rqY8y$ANf=8MCgG>8<}`3+0Og{eOxo0qef=Q00000NkvXXu0mjfdII!r diff --git a/interface/web/themes/default-304/icons/x16/lightning_small.png b/interface/web/themes/default-304/icons/x16/lightning_small.png deleted file mode 100644 index df0a425d5ec039f637315c3694da47c45fcde99c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002@Nkl<ZILl-B z|NlP&C75CG8E|?NBM9@H+03{G8Sh%myq72gj;~{6II*5F>cJ_?bN}D9{Rd&7=6yiy zOq2nKRx<J&UCXla+mr0Czh71SUp<xS@Q#Jd&ij@z5$A=yOBrLY9n`t_?P==&TgQxV z?OVpU1%`<-VBHL+!wb6^kI!mhJpJim@P82Av4C;=&V`H)L>aJt1{1^j>5SS3RtcVb zf6wjzrdf=;H_v8t0vbY`7nb!iFszu!5VL2w@Wqvr7!IzQ%-{?(gn?)S7IZRz@FXBU zwy=xA6=(<pNe0YpW&q(+vsxJ3L57iRz%a-Qq+$RQgSxuMjBPLg0000<MNUMnLSTaa ChKg7K diff --git a/interface/web/themes/default-304/icons/x16/loading.gif b/interface/web/themes/default-304/icons/x16/loading.gif deleted file mode 100644 index 19afda1a39b4543b4745fe34a973988b77787f4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1460 zcmZ9LYfuws7=^#xY+w^2ECJ)98QhSI!A1xeYZ%(;5<*BQNI+95RGV-SO0^TJRysrN z=0Ywu2vRSolp&xMZDjzR798zt5D|J2tkzM+YGBkVc3P%R75!sZXr`Bc-=FV2@AIB> zvJE<Qngs(GcoYRDCMI_5*Z}}AnM?x%12Hi%EiEl7m1=r=+U0U-wOX-QeC*h<ii!#r zi#0ntD|#NWCTrc=%nV~zYLb!#F+W955rhk#0|oPDhGGC9H8Z2`swLZ}!v&-r7!M<8 z#FS^G3o1*Hywqy&q&hAs>ptg^zYzUaQfRMHPpLTdW5y1myP)1)d}iZGC%vL8L&D`& zey8Rrc=r$<-QJTXrfswm+{uqYSx{8iI$)IoNbKe#Wl{t&MZegB%>_~OTSU!mv0-NP zspeD98tDOq-DwE#Q_~4pXSt$YWW9okFIYI5{RUP5Qi`yW)7KoAQKaZww`IJF>|A>O z{%VUntb|VXn+YC|dM3Z70>~p%%=oZ$t53A`W8uDP@&6PtMj9Z+jACv_(aXmLnrvAb z>qn8pvktzJ5<}_(0V=0i2sfdx=7|=r1ng5Be{Uf-iEqCIM(VnK)Eh$|(P#GRI&Q2& zP!xW4qFDm02<1!pJ{Xnu<dd<r3I7G0KQjZExZqqWp}HE6JQfzaRe0(`Z8j>0^#&G^ zW5#z;xZOS-P5dl#)_ZCp`aRTc3t+3b?C`3}mJN&TGd6xTd?}M0?9+ZwaqF(~Ox#zT zQ+Xv*KmERJ=b{iG8ZtJL0n}lmUQK&ZWFj(l^O}e)XTz7{G=>Fi8|uDm>XdCRT888C z_mmL6yWNqzX`r0@&0&Nph)$tTH0}x>s*6jmCt455LZc%?qhDlZ^Z4ik)PG&%GIBS7 zay>2ee(j4J2XdnX4}dlcJ6xmSdXqEAT#T{>>1KfA&cX2qpj+p&D2<Zt>pn}bTqVE3 z37S0{6Z36^e8`l}&L}kMD{+{`Hx|T3z>6d}fVado?hGyPcU<PL`8H!7XfNVBeUmy_ z92l%~CFFPw%Xyn>c$T<^BX{`b%7#JU=r=Fs?QRyAsunx;_Z?RY;V(uB??^Rb*R7AO zQXn2zuxB~Shri5sT9-6zbJJ6vlNc+!EH<RcKtljx;xZSQaRY^k_KmJET-2VgAs|(o zqiabJ&ZR(R;SUdSVW4HJ_iB|M#aErrt1`ZxgLO^vW)KB(ZV%a{mkT^j5*kVpg#Cu~ zuw%KN%w`dNwlc!<?n=FGu9yEbVjj`VAYvUw#Rw%`f3GIq?8LJZI89rW0ljz6QC->X zmdQVGvJ`Cv@W?@D4`D8jr8LC#yx4l@ut*J%2v(<`#03ky0YkbFH;p#-k^RxE@Uh7^ zg%a*7BK_)rF#?8hz7%gU#x`Y9)$d4eO#Hcp-VPls^96?_NXOCGhpMbwRBpb|-VT>5 znRaK|WGSbGy_}93YmUGkR_ebm4MPVB!ZOZdvHf%x73onWSV6Rae_>|$ri4#~1m}zl z2{N@XEIm=1V1zExSsabMwabYu&EVcfdQ61!Gx>_T#~4Y|1#%>n91af{&DMQTqRgOb zZ*&lpkw>{)5_1zKah0?~>e+ZUyR<>6&Ui8$+*bD*uLA#{;=GL;XAFhZ*;#&X-vI|* zSNH_jgV4ypk>OgAVv}0y`c?nFe3#Q51`vVX-#s!B9oBYJLC9-y&S27BQUzzZY=ZPW et`q6Ee0W;o$?RN2DyQ3A+H)(LB)n8cGW{>_T-+J} diff --git a/interface/web/themes/default-304/icons/x16/lock.png b/interface/web/themes/default-304/icons/x16/lock.png deleted file mode 100644 index 755dd0b1408d8ab02d7e278d55010016bbbbebbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005^Nkl<ZI8UY0 zUr1AN6bJD0yFci`mmsKz=*6Cs9t!L=f*$I5tQM@W?c$_*ShUQh8Aj?fr*uoht;7;i z%ciE-oGtcJUC3ghLdiskW`7hBgFxfk@7$*3GFWxt1Bdf(XWUBw=zmauskY8wnWU$c za!<TcdX?G?FXy<H-Tzx+;DX$nsNd20`BlYCa-ifB<Ct??%kHNxua>PW{lfpDFR*XC z=9p+=9CMCq+5Hsp$u(h*#+uVFuY5P$o1Qcr7sNQ`9M`y~=bWTR8T9P3w8WL(^O71* zh`aBiJ{T_1cdJ-XwL>jX@l>o7T;pFIu8=fx>8D>8c%tPpc=agV?>?)AT6FO+<Pn`! zb}~7>=@Nrni}<uwwczwd3+nK(1IyDPe4R8fKU$C3=T(?|>_jT+#B9QeMbnApi6W>4 zjT<g7yL5~`C`K}J3S+%z@TR8(@vsevHXF<i8^*eANDVpuyx^ZM7%rC<_5TC8UZ6gx z;Lt@$jPB^#s_I-X2)VUD*sWf<Lit+-`43yJ<$8htkO(T)to3Z)Ea+sRXv175R?_$I zO<l1xVPN5P9a1qJ?-M${m^zk{I#%B5;9j0teYPmO_UBW(V>k7?3hB1*ptxRR7dMO| y(QYrG5hccsWE|K@Ej*K%r95RDAM%%YChrI6P29GW>9aTh0000<MNUMnLSTZA=oM}N diff --git a/interface/web/themes/default-304/icons/x16/lock__arrow.png b/interface/web/themes/default-304/icons/x16/lock__arrow.png deleted file mode 100644 index 51b923d5851685deda4afc725145e05688fa041d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00074Nkl<ZILoDv zTS${}7{=fKJ{0mMD3Xe9q+6|vf@OC`)I}s1&5_Cq)8*FTV&yzE&6qjewA3widC07R zhqS3p%xTsts<EbRG>LK@pwy%YDF`f{zQ3)LE_TreKX`eb_kI4)M*!%5p#FTxUknrq zbhAX*G+H8PL@GjPxW>K3`%45zfw0+Cxvp{cQSmFEL;a4!XRdK?NkFGYvY5iD2fDX? z#w}0E(^(CN&s^i);(fAfg<mwQB%J!Gho#>v+0i%7?q|f|GuODscY1OKx)y?NofZ}t z73s|rsQLiA{A@@IOBU<1<}fm(i2>sLd^jK6<F7i41sXZ^gFgdQLq)>5vVGLvbzIWa zpk&=mD%PQwlbg?VS!{rNcCDmQ3^*Dtz=Rna=3g}7^MnN-yp@=~ugAo71%g8gOuH1A zb1N_($b=YB9X7z-sf71x4t(|_@b@0Wc#j&R%`&)JWpLYM@OQ}&98CLnK%@p`_I_k{ zcu`uZ8a!##kXC<~$XO&TApXBGQUkg5F05~Woi+Dnq~>7827{02qEhk`L%0T-3pVVj zbz-mCiNxGSq<2rE`ZXXPdlJr!XHeWKM!H=KRE2A>yFGyNmq4Z;NFDpliKoE&f;%4K z-`eGj4oX=o-gn^Z)D?UYTYL&w@Nvw9L#8?;>1^0mWW(0HW=JnhBE<`=Ry#Z^Qz|m} z{R)xzq&R9z+erOcQfkreVCHf;J8#KkZSn*f5gF#JkyXvb-v(k+YiE}wD)U0O6eAML qi$o$ixxOVTx#4ltc70ChCgwZ37V~0h)ZP660000<MNUMnLSTa0^ENdA diff --git a/interface/web/themes/default-304/icons/x16/lock__exclamation.png b/interface/web/themes/default-304/icons/x16/lock__exclamation.png deleted file mode 100644 index 6574515db6fecab273a38158807a444a567400cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ONkl<ZILoDy zTS!z<7=`yfJ9-Er2<jnxP%EeidQdPSuoCQ{M;jyq4Kh*59t<ZHHO11&tQ05H951Qi z{jL*@qcfUfUP(ut%*>?0QNyrEDl%64pDb#em*~L9Ui|An>#PHt0bu_FYmHO>LZ2X5 zSBmg5rHB~G%?)B`MxOKjra^nW@b1ZSD||PSJU`wZwM>wv8F`xmYGM>;670_s7g{op zPHN8a9D+2>$aCIjO=|I*qDY0fZy&h+U3+oslRKfD5u|BG9_=*53f8y*Gp7m%CQ0*E z!LrZu@)?5~+A!Wy5W!hSunds;l`#(F(N{Z?1?#-_lRpC@4N2l|`dL<0dqvUZhx2+} zB(F{jVuPgf!nmHiCbd#11EO68+``f$e4Eo@&8o%w(JU<Xr@`75g4c!+%o>kjy2BmI zLw=9}*)9VHYr-*F7lHAnORzLw#`A_Kn2J<*S{jJq#=ZEsSbz!rei&0l?msoKKK94_ zhzjd#wOAMrM0bv8?n;yQMZ!9ggai5inXVh0L2s2OR&5%nR4S~#O+`<MGSOShw@4T( z30HoR;i|z{O8}<Ke)wQZl=qgw{vrbX_3jJiD(-KplmQ;QI7>Y3;I^v<oe%e6&Jqf% z<rLc6VqqCOj?q5f&&CR#Zz$t3K|XtSaCX6mmtv(F>-GwKku5$=X<_S)#z5;qyqP|U z*-0-)13G6Xz0qB_y<cC<ed+z3lEWuFSXuB9)*9x+iq!!;R};kVRciQ*#q9ZYY32}? zULL^OO1$GFruy7gDsy-_1#FY-rXtQ1-e3<T!>-V!v!T*VmiGf!)&jNw7<2>x0000< KMNUMnLSTZCKsfXO diff --git a/interface/web/themes/default-304/icons/x16/lock__minus.png b/interface/web/themes/default-304/icons/x16/lock__minus.png deleted file mode 100644 index 1326f4c3bcb74c9807f3e5db28d14b1ca93e307b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006UNkl<ZILoDy zUr3W-6vof{eGnl*l&g#ALc6Jz(M5q>7C|@F<ybBFinWH5>SEC{QCk>kYH74|!&zo& zO-rY1Bj<Fnn`)GWl3o;xZrb`wL{VVz^q#e%HU~*B{NQk&bDr<{cwYiQ{{saol)ng7 zsx;<Q*GHYIU2-~uoqMch&*wCP$J7n6rseH#9@e~=2$sKQxaJ;fIR?FUC7a6Ry{eZ( z4I7`-?-u76uDQor_B{C=>Tf!13e%RnfAYI)|GeR|djv6DbB{Hi=|7^<KnA*VLQNBu z3?5afWv{sMH0*%OB8EI=g6d4tK-SM96=03OI#Q$3=<%QYX<!RitIel&(e=K=iq~xw zH@!CDt2I)b>sE^hvF3Lu?b6`jYzB>Z)s30wUVNT*;r)0MQg>@HeM>_ktRWTC@G-7o zX37j{&@!t*yw{5H8)caAAHd|`Aw2FcN3_F$Sf>H;ZUZL!3`pEI<u{mXg1{zu3nSHP z8u|YX|C&HPsOEtpLDxv0OIGC<b@>vEZC{1p%0h(ng&1C=L(c+A$>j$<L>?+$BB*Lx znlt$lTrOIKFPfHvTbghPTDDNozEaVNcRqYeUd30L;?tB1A09O#5wXIzLyuOy4sEM- z@RaCKHJ{!(<+7O*$g@~dvbmVLOzS9MDW!{!t>S#WQCx7DMVE0cjY=ZS&J0^tkehch jyHp@q%0cD`?-cw1{~6eE*@pVP00000NkvXXu0mjf8^aq9 diff --git a/interface/web/themes/default-304/icons/x16/lock__pencil.png b/interface/web/themes/default-304/icons/x16/lock__pencil.png deleted file mode 100644 index 1e6581d84e5a9b60d39ed75ae38d4dc8ec83af51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4w<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00079Nkl<ZILoDw zT}YE*6vxkbUl8&p7?iMtu<Oc;0)uW8V_*t_Fmy&MYAz?)h0**#Wntt;=2xq<%@6zl zr=?Dt&@`u$RvTodq*!4TrB>uc7z;E`&w0~GT|xA~kN0r?=l_4s^8yjU{{a2D(gp_d zWf-=|2Rs%zTTr$}HuqTDJin#k%99UzD<W;5o)o>AbY*^IxaJ;fTLL<>rOo6oJT92; zD?jwS^f=ZqTyu}L-)9F8i-2CU{EG&Y#N1l&U;b`Q54&G^5`p2Gd#v$H_eB|=MM~gD z1Q@v_D|iIX92u%lVe3n`nXCrvtIt3vNfQC0el?U!tSL7a$?#T~HwT#9g>uyu9dvYE zknD9vylXe1qc{ZuT;DX{0BgNw$tD7_LIqr<5AC$_+D>0*th6*<L5q)yY381u=G=N( z^y=wLKu;^vr^$OF%rS@9<3o(y5D@4z()gVWn(RGCQ_k}=(Va=21}%A;wG?RA(o~oD zcIv41Sd@<}7IGqv{?i8UMia<sOQm2iNE)@evI#%~gN3q!cz^ldHh9<?NA3nS1?Tff z7a!qMsZ{&zAWoA}TBqbs8%(<rXrwJtG51*2RGlt$B*$!n`e^YJqjn$^Br04BwZU*> z9Jy})yt%C`g8UsvsNg782^6n#)Y}ox#9%XhcF^iV8+{X7EKghM{a6k?XxXipyJ~jP ztUHlbUl@sJ*|UCBg1vE3(2^Dn{e~E5G;8pBX$sz`HQ@v;&r)d?E}e~sr>Xm3h>70= vb?jO5LbzZjFA@SWBw>GYEGC7}*c1K(f-c?VRMdU;00000NkvXXu0mjfwI(gq diff --git a/interface/web/themes/default-304/icons/x16/lock__plus.png b/interface/web/themes/default-304/icons/x16/lock__plus.png deleted file mode 100644 index 351141a82640ac9f490b4740175ff6b52de7769a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmV-^0)hRBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006-Nkl<ZILoDv zUr3W-6vof{eYA@$rYtIu2nRtI8s;Ccn=ZWRrn_K_Cd{(+;YM{~I8D?PBTdbeX1X^2 zuv+CTn={4cY_XeaEUQU+Q7CoMW-AFP2rN$TnJa2KcF_wz-ots$dEVy*M1=nV#%qLs zn5-4yQKMMsZxkyzml9M`kF@0Z4ULI&Vo{)Dmo4_Z;azyb^pT*NdZcYIa8(M))JC4x zeekp$c->mcx(TYOM_TecxXt1p`i%n78+mr&r{$#VVP_cwf@<oKMl+*TBHT{^kDJ6e ze$H662wlh6jW=F1S`5r%tzgii;|9Eb>#IT1=+)^45oXS>^S6P~TQ6R@cogo8oE7YS z61!(Nvf*Ye1gXAeV3VY|&4P^^oZif!9haTBwq(a|3l?0N?ZD`hW?Xon$3?FmqX9jx z2KBf$Uyj_MYg2=uOTyW^6&QA(!nv_C_;S>Q{(cPxhBO#-YH)5ugNswT)CTDi9G@z} zLeCy7xt<X=bt|B(QvontFUH~jZ%daT=aw1`D^<92P_--@QUUaH1|{J)EvXXdTm_it zRAc^aHELoKZtKmA^5qcNRaQ`MXHa)I&gE1I_V(?@lE{$_Ku=}}=wxLuI8n@o@bfVK zh}^{QJjK^}3x0Xgj*C7COC1Hc-<pm2wrtFOe-M>TTR%aEG6W`tmG=2ZAh$#f4qYCM z8;W7Te286b)v_K-Idf?D!3@VoD68bFSxY&nsFufQC$S51&JGHa7Ncwcq%E)F_xg_f Y7ZAwWaJLF{6951J07*qoM6N<$f?NA1RR910 diff --git a/interface/web/themes/default-304/icons/x16/lock_disable.png b/interface/web/themes/default-304/icons/x16/lock_disable.png deleted file mode 100644 index 7d7881599425646001d03024fe5c8a44306f557c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004(Nkl<ZILoDx zKWoBJ6vgl2Qrfj32%TDJq3F`ZQKXbm+ky!JK?}CYAPPFD2nvD<E;=cq!9Q3;U0ek5 z1NbGJ{33$AC-@}QAuSF3c$ag}dGEd#+U<7qAE@1K|DfCL(s(?+o=he(qwSHQp?B;* z5e&mXII>=^UzW?I3{XQu?_`5ot#(Xsv)Mcqi^ZU#C;@;P8hXcmYBU-q&1RGG`8@d8 zZnqDrs(x~q0BUIH!2_?z;l3u*=@jErEEd!Gac()N!w68bc8?xB@QU1_;5!Dmq33eB zFRbZw+FY%*=)rr~U^pBKaEiqEY>?m;IqQq!v{b*}e;<uT>TEW9T`U$-r_<4_+G@2@ z;XV9?dc7{d1YYLO1~0rKN2O9pptoABRJB@-a6{qxc`z6}mdj<$s?Fzf8D5d2Y&I*v z1Rmzf1`oU<M=qC(;_*1ZuBl`)8O~%fa-mR=DwT>akw|D(t=H?l!HW#C=I3-eDH@Gp z0ylGGgBxCC#COJA`u+Z3C=}9v1H8!Wv*cjTnTtPyjN=<l>H7fyoIF4P0000<MNUMn GLSTY8;nzU` diff --git a/interface/web/themes/default-304/icons/x16/lock_small.png b/interface/web/themes/default-304/icons/x16/lock_small.png deleted file mode 100644 index c2378e9788a3c21bcaa1dee2e68ec41e25c2a137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmV-30nGl1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002`Nkl<ZILl-B z|NlP&C75CG8L+>BnPFx+BM659@oFdru^F~kGZSaP`ZBN~tLJ1gGV~{a4O_h=kBMjl zGPhMRPX=k4m(94mC4%83h`ltQX&KOf0%8p4`S)VU|8F;^{(pVC<NuAVasQtkjQjun zQqq5*0h5U`;Pk4r{}<P1|G%^$_y2*pq5n@V3H^U_OB8Vi?5t+)!sUWZWy})^8Zaf6 zsRNe_CPXv!5Hujyj&b_GH!J@Cd^q?2r^^%m-`|_||MkhV|39v!{m-#woI%il7(<4} zbSuU=^?r<#CMPn^i_l}(3B)@h^%%BC=`*wsfuu}#0{{R3zF|ihe5C*Y002ovPDHLk FV1k&mj2!>~ diff --git a/interface/web/themes/default-304/icons/x16/lock_unlock.png b/interface/web/themes/default-304/icons/x16/lock_unlock.png deleted file mode 100644 index 3cd7b7b2986a92e889c55474f49c162444e57496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 575 zcmV-F0>J%=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00068Nkl<ZILoDy zUr1AN6vxl+{-B3mf}kF%7kiAN2LpSJz=wPuvjw*@cXgvACYaj%6NcK<rgbI5tz>33 ztytQ^Khwot$_xHsl0wKNh-UvJL?O^PopW&`!D#3YKHS4O_xIt;xfc)-b^^S)At6c( zS4kKsSD>#{F`p@3S4tSGmD$l+=^}1z;Nl+7{woMq$P=;VL!I9ysz1iV&aVvD+~e7n zg2z`C=yj#3Ouln}?)RL0-*`^6F<f(xXIl!oOBC=s35UtO<oM0sx_#Hs?ehW{uDQpv ze+qmK0Sz_*trtZ1e54%pLebBOLf0fvUC;eH7ezXOg9Kg@w3EO`f&dAEbyhIy&%)Di zTOM|3;(4e{=^Uw+SAryJQB8SziB0&W2iF#SxH_lf(quC(zOBQ#S1KlkRa}gzxNNAn zHd}xsXdSJQaKA{|EHHXCoP1V{@z7<Qd0B$fFPs?lTQJsTL8HflGkq3J4BFBH<_Rr( z+X+&@NR_!jPo@dz=kX3+myiM;Y6{bkX#$^J@%ZiZd5I$jX$S5+!L($Wz<ow|3CP+< zm-!snBj8ew=)xaCTu(m2UzB2HR>z-HO_+#i_$j90cSFOKxQ6Q=G~{>r&fh2dR2Bqm z$6=r_2OgB=io1<g(XJPWfb|%R5)meUgVTqhgYOVWiM?isZL*)({RbaM+GY)On}q-X N002ovPDHLkV1k4}36cN+ diff --git a/interface/web/themes/default-304/icons/x16/logout.png b/interface/web/themes/default-304/icons/x16/logout.png deleted file mode 100644 index 3fa077ee240bc809cf29b1d8199f2dcaebe43dfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008%Nkl<ZILoDz zTS(JU9LIlimb>XN7a372mnDVsmfhGwdMhh?h;mUDf%&X63w;o}Um#1Y$TIU1wKCH# zYB{r2^Fmr8Wz*O~_n%Hn-Ml1it8d2<E9tQVpYw9g_j7*m`yB#6|ATkCLqxY3<&2v| z5#@ZpE7gi6{S6xvT=g4NE}eX#{o*YD8z+e(kFh&Bj3Y$<3QCC5^sD10t>q<f_j4F{ z+Xh=*9bC1K@%gY8x@8J?E>RW}_|Fhbhs#*Fb;owNzYJn}IeUB2bh8An3JWn<Tntp+ z$M=)RQ4^yC3uny`u<#1~n)oUAklh;|?&ttlRRycjh(3lXGZR*=7LN1`xDM<`@%(w7 zbfQ?Fpq$6MY}4KHhCfwQpuMOFt=ZY&3<hwGjd-Qe;9Y4c+LDqmmAD1naj`hW_q*p4 zR4)u2@RVJ^$n!dMS3dBT-?}daoL&zb<E2`SQHurU$4~G<z6j=+6*wUca`*)GYhqk3 zjS5|BqcCD0g1MjoT!t3**RNr3ZpNpWSeVidV#4V}eN;4zvLNKk=6HO9r}5FQ@vU+A zm=KTQJ`O$m_MksyH+ruXF|MO$`BHR5DdDsaz>u^Z&xNy)7cBiF&?y!Ve%+}?PizDn z;}hsg+>91~f^ohW2ALQ&JVJ{~jme2gyjZ&q4Wa<#ibZ2SL4iO}Y)ak)i+m1-YM-$# zbfSI10yMDWT81G+hN0#bjI_N$jW7U@LV}RW=RfiZ&Jro_u3YZ6ZBwB;A`D|)CX8D9 zz~x_pH7_4dvjyL*9GW7PXbcqMbfEZ$hG@M{aGnjtQ6lZbRnf4hBGD5r$KaVW7&SJ* z!CtoKUqqWC3<i+^SEYeSCOWp4i02dJF~M;*p4n`~uZPKhzEp;zBQzNA=StBTEP-)0 zA5~%jPD@17;ZwVaL@9qy;<Vtz?@y9JwCYemfbJCQ^LeSnb50`k<Ol_0ss8-xokS`o gAXYxj5d06n086V{^e&XkWdHyG07*qoM6N<$g2p6rDgXcg diff --git a/interface/web/themes/default-304/icons/x16/magnet.png b/interface/web/themes/default-304/icons/x16/magnet.png deleted file mode 100644 index f83b48c0bd2d3298bbcaeb45ae990b25d592b881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006DNkl<ZILmd8 zO=uHQ6oqdfKVxAuF`?Q@T%{ShNT5g(g9wu1N(xDFApwI@Vok;PTSOF8TnOUAg`k2U z5o?Xh(nX;lXrO|;g%Pbn?Z!sw##Pqgde3xT#|#+w;BdclUWQ&0k!D_K5}9v^%0feE zIUtwe=Ktvf@;or~+UI-q;ZSCM^Xj>7_wJ1zK*kLYo&P;x&iQ<Et0zjEe`YW6uS%s4 z+~Ckbcl&{c!wdPu_XiKG|E|~g>*Qqb@#yHr^uRzHAmavy4!U|r&s`d8XHRuMO-%69 zk&%rm(f!jz`v5X-aOj|`cl6Aq^<!qLw=zD?*9@b5erreo88<j|(A7J7;-bD)EBrQ} z=Sz|=ZVhdaaf4f(I?3qj9X)bUpUcO2d2EblB@5(1!J&h$-qAxB^`&@>-&q!4mn@J6 z1&0p0dPfgj)Y{P_tm1LLDOn&73Jx7~^^WejsGo=P{C#kcZ%G!&gMvc`UA?1HsbrJO z<*My=o14vLmVBj9C=e(Xi#FM8_KZ@B7ZzH5p2FcUWilB`Bof;XSe8{!r_*GbrtM`w z$z-ysACO#6rBb%He}-Y8SnqT?ytuf+u~_VKC=??7gO5g|wqIKM$dO2-&xeJ0Fc_@) z{r=m5K;VwZn%wpayM>*?koakjj|;o(KXAexVOZEJ#GKm>$KzY0jvIEm@Wx-xtRZ9y SuFc*60000<MNUMnLSTa7pcd=^ diff --git a/interface/web/themes/default-304/icons/x16/magnet__arrow.png b/interface/web/themes/default-304/icons/x16/magnet__arrow.png deleted file mode 100644 index f366db3a0afdc3f161781ff6d613865bf5b6d80b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmV;y0zUnTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007rNkl<ZI8R-U zYe<t}6vxlN%bPHpZJ0|INYf#;mDZdRSxve?NSj&7T(b+yOSNu_Nr8rh5ki7OYKAPd zTF{5gNDw3&7{o(4yJO4nQu|V0_AQaqIqRLnJ@A7+=YQdW0RV{dknjO09|JfDFX5MA z?bzKj+qd&xNEG+|au#;YfT?XNR+a~}j}(drueY0nq53o7aO>42hBe>zx4it*vw%ot zVd?ztj2}=ADinjCD(s=(4d-#e<%)2naR3iBkK*ChG0dy#U95Z(#Ew}+DhuO{Nhf%z z%-p9hzAD@r{OPI1k7Z>`cXD&*s#8(|*51J4%^!#--y<G*7o+|w;)W)_fPN~=c&BTQ zhbK!*u_rrw&JA$u1VCnH&C~v@WBs8muDgHpo!w~h2GRZ&F{AFe(4Kwaggz?E_`lVi zTAC;+!A406oTD<0fVSotRA@J5@-6>pCvF-?)R(r0Q(ZnMjR17RGUBt_g=0lUc#-r4 zy3q*i-R1z+d^@<W9ygcY#;UC1nKDy3RG2FPx?mYG<tWF|ygY0mO+XxiJ<f18+JlZ5 z;)Cq~jvEZvM4Es&1bdv}Y_tdMF~szqT_|)qyhfUUI0So~;cT=AZ85~`jw1Y$o{r6= z35Y|m#~IE>dtkTQBUmgJcOVczpKlaNU$$DUz}RfI2n7WNr-cwWG~{35gG!|Wv)K%K zy?%MXU@&-0CKD)?%7{+|$jQlZM+ZoIj7DR`k330|IOv(5pU2_h3Djsbmy(l{|C_R} zR;wfa$jBQ^OG{hfs|a0EQc`U~LPASoV&Zi&Yw5P0SVN=|TJo#od>yfx2P9dnCDsuc nghsxtl70TGTJ|`@S@xxWy(&!Ysf%ya00000NkvXXu0mjfIW9{f diff --git a/interface/web/themes/default-304/icons/x16/magnet__exclamation.png b/interface/web/themes/default-304/icons/x16/magnet__exclamation.png deleted file mode 100644 index 723c3b861fdb7fcce8b8bc6a7db1bb6680b144c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmV+e1N{7nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008YNkl<ZILlp- zZAepL6vxjKQ>U<U`BGY|52?#YL2TNHKpf(Skenomkr-*ZBBe}3GAtr`u_(|`$$Udo zQ?$%VvNBt3q?c%#?~P2CI#9^gzJzi*&-H5Ah2MStoZmU;K3u2+fE5~uCIH1lfMlYE zFiO;P9buKiBi1H7VW|YH0RJuUYh>(!d7s8Qd+wCOaryibXF4~-(Ocy6^T)Tl&c0Sz zQ(rri6Tta*fuf$V`k^HK?0jxEeoskR#hRzX$yZ6Z=xoNJ_NZBN3)7q17;vBlmZ_y{ zzug;doz61gU_!!DX>jmVhKGm6pz!E_UZ`{~e7%N=iHSHjTCmttx~}tGGm{YjRj^9U zcxI~OQ(PRD2L?{11Kc<Uu%$Yi9e&@qduqW}fYgRFBbjKb+CKB9k?Fb{Xh8+6V*GOQ z_>xJd!#ug%a+-!;)H3$6j+IRe9i1B<h{dNJxj0~n!jIkB-@MK}l+mz+Fr1!(ueDk{ zL%H}MgJ+dYYi#u~PmD&Rbue7K0Y9ySd$6ZPVdfr6s45}!Cm+JDurSQ!3*s0&E@u^E zA9mR7<Gav4wiBK6`QphLHE*?Z4|ix-Liiki0DIJG%%^-imVRszlvG~_6Q?X2el_H{ zW6K34-lxoK+`~;8mJr5cqEJw&uz)fF)CBjg(CyLyc#S*W!+T59mOWhki!ixgizB|i zSV)<GTe{_8o_UQs-otzOOmPgo^m@HWWMpKz#bUvxrY@wM6CE85ocQ>7k%)+h6M`UM zd%JOs2TxB=&}cLe5D>7sK&@71g@%TLLZJ{n4M0#(Q2NRO%2^>HA)*%_xm?a0vurjS zc66A~+uQrBo0}V~JluPEd5ONWvlo?0<r?ovs9arL4KkVRqKk{mC6WfJZ6h`k>j^*d z8UJ||u|fQR6gCn5#Ad=<s<}&^-_=WU{!%aZ@;`%;ZmBzA-?0Dy002ovPDHLkV1iaq BZ!Q1; diff --git a/interface/web/themes/default-304/icons/x16/magnet__minus.png b/interface/web/themes/default-304/icons/x16/magnet__minus.png deleted file mode 100644 index 066f2563ed763d14b61bf65f79134ea808ee6ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006vNkl<ZILmd9 zU1(Bq7{*`0>1klov~4cz$|<{07@;N+grln%=;$JZq!_j=vd<Aw(4s{UU5p5F5QNcI z?yfOnFp5f85PvA6R<L%{EOxVQya)<;d*0JIlO5>54<6p<!@u;1h)f=X3XyAuC=1G< zY9Kl*9-tWm$&+Qk|HNjSezPaGvUcHQqjCLmQxGjT@i5^3-+*h%W}8|%lv!IJJ<Z>9 zxeZ>1Lj0_|i=TQr{-E>|yaQ^QXp+h(3lH(c*SmME{3sUq)6h`!USHqpNPBxtC~4a7 zUl_7d!U#P;*`U09{7B>d;2=--_O9lMZXG4sAzUJQegh*DZa3fA?rn|}t&gERE-$!` zvO)FhiQ(qrzyM#=wAv{YF+zf9xrrwk$zp&6Dz#9b^ErNzO!8UiGyjS@qU9#u((qyZ z>C(9^19w}f57~pf(BIFa(10u`@gyTzvquvx)W`GzeiaTg{<8vPL5U|B$(lX=83t;3 z|2|fM0AGOyWI>518OfSGy4gZ~+neMsot=CY8juAgo@69z_9&Cd=p+(}e63dFN@ane z&!<u;64L3kPCOnzrj+8@+3F^r+-^6;VlfH^gBt_kaJU$aM#<%J={^b+3Wf6K0CX`D ziRixmX__X%V!dAHxw%F5`F!V`PA8e4_+GD9_vh!|vd81u<hwz@;cyh}cKcXcTiZ35 z1>AOmZD1?#!ymEu0nnlUfFZg-59kIy<F>`{<*i=B>oKz8YkvVXCnl?(y-VT%0000< KMNUMnLSTZmJt?~Y diff --git a/interface/web/themes/default-304/icons/x16/magnet__pencil.png b/interface/web/themes/default-304/icons/x16/magnet__pencil.png deleted file mode 100644 index 83894aff6dc3bf5a6830b4df311e2ed95460bd4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007>Nkl<ZILlp< zUr3W-6vodB{#nLqZo_gi5z<W)2P#v?GKZ27VL1s3p=HVPPdLdmmCP1i2$d01SfI!x zEt5#aK$0XAjOs&Ll>ITgNE2_o$zV5)(>Y)JTKd8d9?tVT=Y9G3;2r=d+$V+s)DHp5 z2_G>Vf^|82&Dq(|m!59>CdA`8Asnz}LHq+DhF;pOOKXj1H#Ryh1{u~oWA8#%mc2eN z?-F{wI3~o*{|nTELJTe(cdo5B)#DGBYZE-1uidxan40<~5C~wg!EmD=pcs5qW(Meq zFY>aNRy{TNp{y*}la{tz6%*rUSkJo)g3qrdVPLft9R|aQR;#u2QV;sW_!g@xHr|$$ z;N6szWjDapQveAqX(FM+E(RaAZVzyIs3rb)ccK_Orcyy4FX#<3`?a<*I9F7J%_^0@ zj><h108a-*!J}^RjLSZc7GE`#1Uakp;7%CnquYhkHXEKJ-Q}Q<+771C9`S_BU8lv* z(Sv(&q4ETBR_Vd5Fw(p7qd1kBiA|(CZ2;XK;l*E{@pikIZrcN2*y9Xml^)y-BfT#@ zgfnI{wvx^V`C#=CG17ce?B^MKoZ+m}gX>|W#RCqMj7DrD?fSa_styZiFbm)rdz|5{ z(u2-0()WBDeu|63%cKcNBI@h{So4fM&Tv-gfz#=f$<57m`~7|#9-czd=L-u9fhjF5 zmC4D;IU`9Dj*ri7@<F4~fYoY+<mBXk3(RJ-$6~R7TCJ9SDuBskaw`i+donUIWM4ii z`Y9;rSy@@ZiHSMX>-7!M(b1qB_H{a)>`zX<#@N`{O}>UOMny%{L_|b*BO@cPkXb{s zL_$mKAmYid+Tt6Do$>`Cv5PPey9s@0wk_oITXiAN5X!Qz`U9JGK<JS#___c9002ov JPDHLkV1mbvQIr4x diff --git a/interface/web/themes/default-304/icons/x16/magnet__plus.png b/interface/web/themes/default-304/icons/x16/magnet__plus.png deleted file mode 100644 index f0d7ee5c3e02e7d2edee3355163577e8262828b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmV;Z0$2TsP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007SNkl<ZI8SAh zTS!xJ9LImFU5>-qF2~DO^Jy2&v_?#`5K5_+6gDX;3n^+|iq_R43#<%+P$)=hu!w~# z*Q59#NI?w@;t#dx1}1@838F81GvwFrcRbs09r(bP-}l0KI0uFSAj1nH0bqIw&_=|F zqzdacZCs8*qF4|S7?A;<SaW4{z&@hUJb$;#KRti>Ogi0veT8Aox3WRY(y65$gkf1g z%=X`aDX!7Pza9?GFZP_nU+wK#j@|L$wjnoGJShKraG?X&MXevGEFfx)K#a=FGkV3h zJGM{%4tL|1*4C9rm6fxdMq`R`-Y#C=^QRT_fg!Vir&LynO?4ele{5;Nh}%6I0=Rbq zU?bx`TJUO9uXTBIp98ndG+;?@;UWwa2^cJjK$OZV$searu1q#H;Z;dWouwj;0K=MZ z6<12p@v{o;VPo3RUkEe;@EEd)Z=rU4U0;tENS|LVDzN5T^C1UTb(P}IChfwJt?QwA zp8?<@WD%d*4&a2(hdrbT$V0Hl8O~;Ua6gCm9N3R<yk5LUnt(h6dz|5HrUwH##MIv1 zD4b5bL7IR(1bdv}Y^DcybBLLSdi-8ef_<b3$V0Hl8O~;U5DW$t>gwu3sZ<IRi3ucq zsj;yUm_Q()P+MEuA%wuu(c~H*%w{wA{eEz{T-gDy*Bh>>sR5J8r1(?-kH-_r43G|2 zS63^(@<@`z!SLMN9FC1mqAbf74F<!isrojXP4UOa-=oE1S>u}tr(Un`)@rpkbvoTG zGP~(kPSD>1^tFJU{LVbzNo?Q&Nfo7pgD4|p^;V$z{H`|D;|yonm;M2ga4TiDf|(Wo O0000<MNUMnLSTZu6FCO} diff --git a/interface/web/themes/default-304/icons/x16/magnet_disable.png b/interface/web/themes/default-304/icons/x16/magnet_disable.png deleted file mode 100644 index 8ab9c3dd65727ef04ea60841f5318dfaf3d37dad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmV;_0W1EAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004-Nkl<ZILm#I zJ!`^H6o${x+AnLjU<AQIv9zS%P}*V(A{7dDQ4yroV3s(!IXSvH>Exh`f{6YFNB@F< z!No1BIN0-sdrA<@g$FL@ecqFBX*?d2Fr7|mKA#5`i-o}y7)yb>feenfLq`jOv)Qb) zTCIM!+iiZo-+uz!F+&FD)PlfdGAXUs>(b$HNHeJ;(#YVz{a-K~4qZm0k+EDZe^`8T z94FQ9_rFcktOMLJLk0(~^k^^`2!+jN^Tm?U>-F;GayiF@6gkY0!GSA1;y|!=yWKlW z54BpYu8O1xVTKG2T<KA_+ZAjUUYR5pY)@H0o@8F&N{>37jsW4AiTf;w!+|S3YPZ{h ztzJ9kvmgcsuJowYY6%dYn5fT!C>*%bqh_-yKzL*#J_{mn;7X4gjfP+|AK=si$(8H& zNY{0;EDPWZ_lzbBG);5y{DB4sE;{JCCmaq_wOW-oNI*tWj#`2|0S7KRaxR&>Y&Ki0 zR4O*eWHLp}m@Adv@~j{^T$LlEb9D(qRNSZ;vNPs_x%N0g$^QT;JgZw_d`hVR0000< KMNUMnLSTZ-b<BSN diff --git a/interface/web/themes/default-304/icons/x16/magnet_small.png b/interface/web/themes/default-304/icons/x16/magnet_small.png deleted file mode 100644 index 061e36a4cbc3cecd7c16e27cfe6ab6a00d1a54fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`uRUEHLo7}w|M>sko>_H9;s?nM zJ&lcttjx`yyx7|86zn*T)+!iIka1+5#w5D#*~44a%6ea(9)EVqUV$g6`G`Xi3vUF+ zmbXz(H%>49DEOZH#}B<`gAQIH=97XZ31$~gZr?oV-<5*G*mJ1~8`u&Bq*d4^DQ6rA zVQVv<ez^JHbjFuS3+6lS;L!pJJIDuIj7{JDf2)I3hvWhYoontrj8RchE7|$x{8+zo zWn^An-nj>lA2%zxU0_gDT=-^l`ucz3f`XdUCQV8T2nk7H*z_=og*PER-9ITYF_ZP8 ojEoFVOiYYMlCy&5<+}_F!P@Op=hgqe5A-&Jr>mdKI;Vst09tTyzW@LL diff --git a/interface/web/themes/default-304/icons/x16/magnifier.png b/interface/web/themes/default-304/icons/x16/magnifier.png deleted file mode 100644 index 02e7e67f81846ff7dd79d345d918fe1116ea5938..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006tNkl<ZILl-3 z^YdfCh64iw8A3ur1VckZ9e_9rh*P1o14tYs4^qc~#{k8+gyf_ti#K*3z4~<hgI8aU z-+cUb>!LN=`at3!d9VRKK0X-O*Vk7tDmFf4-NCC1kKA~D=+T>RXP><Nb`FF=>>Vd= zE{Tp!NCBy1@bvV=hMgzOU)#6)(u)IEAAdRy(+tDco_snneaVK2AaxAR&RB86w$l&R zfDFKe4_<n*38ap}&dv@S&fj<C<vy5VbQb{e*^{^59tEjmu&}VehEw;Pf3y**`7AaA zPThFE1Eh|@(9jSY_MAL-#f*JdULC&w^2=#-10KEpdT!pbwR1u07@VA(7#tiNz)rWd zwPmoev0*SbH&=0SbFVsb@!r0h&px9V@cjMvOP6mx*kNsBTcW0>CW2vrwY9Z8(2(M_ zYuEqR(9&+7G=1*U$1mO<dHeb2wI{FMADy>g@k$L1&00Z0L2WrXIR+F1fEu;j+}vw+ z?AY^PR8+K?g@r{6h(m$65{TQOG>9+8$H&KjVgS%~i@?C(wj)Q*{8v;|>H#WJ1!4wV zn2U>xfrEpC0cN{TLPE-fix=<y*V8kY3RGas%*@Qd$jHdR#KeSwQ2@vpz(6axb?eoC zdwb`3K+P^7jidk$pnqLNL_}JEnzMm?eIV8WVhtcx0b+R|mIh)mAQl8-9*`a&W(8uf zb69{_9EhcWSQ3aOpnOpv76xJgAm#&NZXo6aVs@xzW*}w+0K>CjWKU!t{{R3007*qo IM6N<$f}~v>iU0rr diff --git a/interface/web/themes/default-304/icons/x16/magnifier__arrow.png b/interface/web/themes/default-304/icons/x16/magnifier__arrow.png deleted file mode 100644 index 65cd5c532d7129c8044d313954b7760b06ad39e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmV;{0xA88P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007=Nkl<ZILmd? zUrbU_90%}2khPpGCY1e|&N6jsl+^|spiG#K4avKt2SFjjhw7n+e6c@IrPOMUw5H~? zEOM<RvrWgQW05#50R_d0PDA{!P@9^qr_=8^n5o3}8TWV2@Atju-d&WGl!W+vK9bAj zTTm2*^7HeV3WY)h3P4HlUqsf)KIz*r_)kE5k>*PA)7Nc}dfc<E-ler(&vc;uRZB-D zStt7&0Wz6vhuqv;W<jA^`@!OFvW_l)@%h*7Gl6vnL9R`G9)q$_qa}SvDwT#K*1s@T zcDfcmyQf!rL&G5>Gb?>HhL2B39}<hh(scBDTS&nFSX?uoNFU0`$Oz|#d3ezrYTkYV zVE;NE=plWG$K!=l(ly{~3l7`E1$-NwH<3P+o}M0#w7TJKt$BE<`}^Wr|Mmdi@-IhY zv$28np{%SdBoc`>jxH1mkw73oTrM|3lAUwQ>YOxt=2o`^%>VrD8uEBee1WhuF)@*~ zBLF_CI0(6EG`8a8lvG_+O~ae%g@84%`e)>Br{6DsIrZcG<%;)ACNniQHWqCOfWegP z?3_C$Qx|5l+4mR>MhZ}XGN3zK-Zxt}i!rxq+{vw;RB?2!%>cMNkD@MCSgkf3AAkHY z44jOSTt%nK2kW5GMntOL*_6f!toLC|YS>eS?k>}4w0fs=0&_TLp26@rI-QPAlyxJa zVQTJy7vtg~j4usrD)nFt`!+<L172F`*w_-z%oI1mu!KgVA@bXEjDw=7hjlU6+HC|m z0k>%aQx1$t4SOomw-=sQ!eX)R!|-*ePlGg&3=%*bI0_C%DGh^Z7L21*&5nJN+iF<b zMFJS$5I6!3gP35=2GQUE*bgEj@}Af4&Z~DsT&OLAnht1x0ia^ERiOLOH~;_u07*qo IM6N<$f;!4na{vGU diff --git a/interface/web/themes/default-304/icons/x16/magnifier__exclamation.png b/interface/web/themes/default-304/icons/x16/magnifier__exclamation.png deleted file mode 100644 index 037be024fecf3b9398603cc4de3fea838d782a0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV<T0to$yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008MNkl<ZILmdC zT}YEr7{||>yXdB1u+ax$n58nsGy@mgbZp`nOkwCE7S^x{K^I<R7lm|_Xkmz@;V#^y zHA~X@5oyC@X-?nyS#!Q~Q_MA2wz(;pT2OF0&zO|CUik66=Xw7B|2gO7Majv@NFWfP z!otE`D3wZ7TwKgnsZ?Tunot(4V(7yhbbE|{1teV3Tq$jQ(o;LaeCqNBH)+puxYyXx zR|kEVM*<WI#U2U@3fStB%i7K%=CRGa`qmfPp7MvcrvZ4k*gd9;B^oX0kX$a0g|xoK zT=#nB%OJD7LGPG%aQQdvO{VS#phHq=Of-EH-VO-(A44<#7obBqIXST?x6THvJK}#& zK$sd^2#<gc@%j8%lnuP|^+e56u>!{3D;Ch9%*@PK$Q$%+I_qq3cqy<s0j334!$+r0 zwhq;|x;1ThYSx1eNhA^^7K<ZC7l}kjC={aX?Cg_y`LbI!#|NwD^S6oR)$n_UE?V1M zYyHXCRqHczu6}_~RFRaF#Mu)-eyZan<ht41g;RK`H4mHgt!`&C<8zgN|FzYQ8M}H- ztL7NlY<6mVd_39}K#aWnd|9Q%GJv^U?j073#XER_bwO7ZHyQ9&{~&)M4ldo^9x&}| zwY5_$!k+-LJ71|Rs<zoCaYDk0`^0>z^n4r|Y@?(OYX<$*Ux^Vyc*T7cPrgc|q5tL? z35f2l&}g*v4#y%+PtSNn%vopBSg7AfQ3EDQ=XI5Y=A1Iz`|<{MI>gv9CI~?v<_PXV zK3c{6d=Tg6N)5!EN0B}}eFo~>a3`1cdL(#}$%>o+>LPO%4|N=%VGg?e<i2?v4yTHk zuaWg>LK-2ZxrTZ^H<}m<Ebwq(J_T=uZ$>KMp^pW-b(9_gScF4_ql6=b!_hTYUxRdn pal)A4F0x0VTY!6L)L4ree*@oH%uFu@MTr0a002ovPDHLkV1ixZW%d97 diff --git a/interface/web/themes/default-304/icons/x16/magnifier__minus.png b/interface/web/themes/default-304/icons/x16/magnifier__minus.png deleted file mode 100644 index a6bccdd05a04e836429c68e6710747d0865c826c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmV;C0&e|@P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00075Nkl<ZILmd? zTWC^o90%~fm#8QrN!JY=j-}?tN_tT6GEs2|Do9GOn8|WaJ@n9Cih`(U55-tFwjQ+0 z)+(5-1r4DgZ7Ew#7up<iQHfgHTr$|!Mo;$r52d_x;KT9!&-eTLpCgBeL?WV4D2T;k zDPpx+iOpu?*zI-=G(%hdtfA}lKFyUC{}~`~I8V3U?H#%ijC~(WWY)&xsqE{=1H+wk zo!;LZU^1D?n9XKRbIU2$i_zGl!0ggk^5=Ruon4=z=x^UdyzgX-(?xT{Xf#%$>w4hr zd=p)G8%wQ>7s>@Q>6MA@zL&RXj_7n1Ifo|`19ZUuj7HP1XpX4W>PpV~rx*Q&aOo33 z`2FW>kmiV7F0Z6*<YRIuUk+Cq@L_h|M{`6fl~!WB<9^oTpU%AdwzxJ~Iv~09Ys%B_ zb<-TtYPCe8(QH1tN~I!7rIN^GvRb{N=|Uj#)gS+{S~OsOc_aEMp71G@s&=7J$SoUy zkE$9&&Uw9qIkBX!<94_ENopY*$gcjLNoSUWo`=29#p1)4I2=wLpU)>n15lJ03{4k( zzL6Y{$GggAvn61M^U#q$+fOi=RaaOn@|2Lj1F*Z?YCV2E5D4W2f|{EM9s*L2U_T-E z5e}82>xJD-PN%CY68VyAXgGQg#bYcK#S8}N!6p#ea5!?M=sKbAfj_N%ZZ4B+Y}9#B z)-zBn95v92oh~C>imublHoUK%%jI4}`3$a)Ks|_|7OLSOQ~?Ke(hh6^CLO?ry>I~b r!@m4A5B9)r*abUaJ8aFDS-|)MAxDFl-enuX00000NkvXXu0mjf7EU{> diff --git a/interface/web/themes/default-304/icons/x16/magnifier__pencil.png b/interface/web/themes/default-304/icons/x16/magnifier__pencil.png deleted file mode 100644 index 10a668d4f50db46c5a81516f2dda345ec5a7c164..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007oNkl<ZILl*D zS664Swzg*Q^YcT&fq{VxAt51xp`oD;KpX|csZiPhBo2}Xsl(8SWPoB^LUPiS#T&bi zUVXa$!K*LFZ$5szb<vt_eIRj=JlFsqA0G_t>+35R6&s(j?%>shM{c}6^ytmEvrpcB zI|srb_Kp)bmqf=Vq=3{hczSwb!_E`tukG7?>BWJok3SuUX@=ozPd=TPzGTBhkU9ou zXRJ73+vx{uKnCE#2QNL@1X9OfXJ>~E=kL4navw}Fx(k5#?8)12kAl=OSXfwK!>N1D zKiUY@d={Glr*1so0aC|cXlRHHdrqFaV#dBJuMXdT`Q<da0S~tBxp7HD>tU&kOd*4l zlM{o3g9F&<wzjqmHa0d4=H})qE^h8sM=svmck|h26a&s*yL)|Mb=~d%4GsU-F)<y( zFaVgS<bj41uU)(TzlN4}`=se}mp*>+_Q>1MKd;@sx$$OMdBwT!-@pHNl8{(5pMk** z#Q>m2EjKs!njJg#{1+7!ZDwI%(E{R7Ag;7CV_7<-f$7HgXO;gI6cjpzgoO0wFaQC} z0HEy_fq}toM~<BNuc)Zh1JtCdr_9Wd5W>u`YZ0UUhUtu3L7J!5G4Atq;&9~W=VvGd z83482Cm|ta!o`bs|Lf@)Oa*E-W@ct)SXs}2p}Dh&!NtRdg#oCB0Sx5i<UoN|a_iQs z|MvFI^MDdAjEsz6x#e{XYRH<?!x&tYWEe022hhJRA|fI!K+V}ezCIA^0I^1W0^_9r zUvB=NP|0{S(3v3^C?*KRJRm(l%nHOzAOk>d5eH%^AeIDT2`FC_i2tYhGH!_XW^@Iz kxq+Ayh}of<nSq!Q02iv29IT4!oB#j-07*qoM6N<$g1DMY<NyEw diff --git a/interface/web/themes/default-304/icons/x16/magnifier__plus.png b/interface/web/themes/default-304/icons/x16/magnifier__plus.png deleted file mode 100644 index 75163988e7ff42e9cee56c3ebf3b7841d8ac82d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007kNkl<ZILl*D zS664Swzg*Q^YcT&fq{VxAt51xp`oD;KpX|csZiPhBo2}Xsl(8SWPoB^LUPiS#T&bi zUVXa$!K*LFZ$5szb<vt_eIRj=JlFsqA0G_t>+35R6&s(j?%>shM{c}6^ytmEvrpcB zI|srb_Kp)bmqf=Vq=3{hczSwb!_E`tukG7?>BWJok3SuUX@=ozPd=TPzGTBhkU9ou zXRJ73+vx{uKnCE#2QNL@1X9OfXJ>~E=kL4navw}Fx(k5#?8)12kAl=OSXfwK!>N1D zKiUY@d={Glr*1so0aC|cXlRHHdrqFaV#dBJuMXdT`Q<da0gqmPJvVRJ+PNTg3{Fl? z3=R$sV5i&K+A`SK*f5xzo2$6ExmO*zcyHg$XP;3Fc>ezTrOP)T?69`6Em2cb6TvV5 zn5g7|h7_+|yZ*n1mUjE3>2sGpe)0Cm+s{9*g&oRxBe6>R9cPvJSwTTTZ8<qP1{4E; z8nxWq+-r91*z;dhRJ56eg+&X9LxH#wh}#(^3q4JFSNfk}p~yw%Dgg$Dxk3m7fVNu% z1_rksIdbN|qM}j{P=hKEGcap$Ffhy!nh8{V282Ujr~QYq!QxQceG(E<CS1ID_rIQ= z!Bn6|V`gS%21a#O28O8uAbiI0dC-4!3=(Gm`2!eeCAV(9`fqRVJP)YZg^`hw0S;7H z7#Om+XEOBgodIE;N4EcAY_K>GZ~*=5A|fKv0@R!h<m&^m4iIaAv;(m`5K9BG7(*k^ z1*!Ym{~4Ni&H?#A=P@vW3;<feAP&S*Kr9Kw5>UP<5DNn_&<_lJK+MgM!#0~CgY_Ik gF54_1pBac50W!Fd%N+T9`v3p{07*qoM6N<$f{S)H2mk;8 diff --git a/interface/web/themes/default-304/icons/x16/magnifier_left.png b/interface/web/themes/default-304/icons/x16/magnifier_left.png deleted file mode 100644 index 7a8557f4cd64d7b480670b2dc01f5b4ee0bceaa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006(Nkl<ZILnRG zU1(Ba7zgmj4<dyWOI8UPMRUU-&;*Yk$d)6JJcgh*Yb)8uRTte<5LB0a!fF+)E?l*( zC~&m}4xu4glerBIWG*GBp{M3tGT7FlD|?<g#&%lKfgkUA-{*P%=Y1~@csw5PdcEND z`BZ+tzX3I)PJV2lb*fX}S~i;v)M_;VAF$_mpuO!*|M2yA=F{`p(#m+QP!9KnM!IO7 z>cW63U|Ckx+<KzpSuFE#EW7YJ|7A7Fl~+@Q-Xn?Jz_Hdq2lct#ZV&>O%jLXzf3WLi zy7($nSQ@WxuA1SN5<LS$-PDIb2%Ju5U}S1GL;-&jOLH%%4}lOk9F9}b>G^22S$G1J zoOoZ3Qy&5$U>K%z^lg5a-<;eiU@|)wp*{pcU@#b5w}VgaMyE?}KF+U92?O#AUsJu0 z2ZPjyKnQd?otm-QPLEE!8_IoNUKcR8_${6Nz$KhbhtHc#rhW89i^T#~s}<~a`>!i# zwOUZARQqdn^%rjS1RoWO<+1Ye_ZhCV81H@1|Fo{I{#qy$s+i5@GidjQ0Sbizq*7@O z@}qO;GC$H>uT&~8g~O3bW8<NVcnbZx04#!BE~kKhsnuvSH)63wg=LRk!Ba551J*ub zvG@-nkq9Ib356WQ>)cDFa+Q{rKsTO(rI7!A_@E|+vGrxM#fs5rJWE&qSwj-E3CWQX zZ9_ZIF0>cvkRBbtkdrc*>?&UU2+lRt05OvCA)EQ2EqvHkg#RtnpzUZUzmX_@0GO~{ UfG)9LbpQYW07*qoM6N<$f-}7%WB>pF diff --git a/interface/web/themes/default-304/icons/x16/magnifier_medium.png b/interface/web/themes/default-304/icons/x16/magnifier_medium.png deleted file mode 100644 index 7dae0e12239f84486d6f536b136284a3cf3bb60a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzPQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004tNkl<ZILl-B z|NlP&C76L~2Ke~+z_Fj7A45=35PL{Sh$#?90C5VGHU)`;<OvzT9uN@V-#TG--S$)W zR@{F6`N*Za&o^{Vnp+1F2gzd?;O*^=jLn;RXVmY$^kUzI2k(zPdHd}g2w!^m;b_~0 zSq&h03<F$UU6FCzrsKC)01Y^Rj`y6qzYZjiVSt^T9Wu__clpIWkcNv7KOBd-;O4W> zr%v2{a}*?xVSt5&1st23n+I+=dTl$%0GMVNK5^~wRx>lRWUK}NHG;8`k&$I(L;KXD zH(wun^yb@HnC6!seq8S8oz$<Vr)P^{fW5sv*!i}$wtPTClGd-^_&>j-a^9sI_m02$ z^yBJ-r>_n*wX{ta6BA2PRaNE0Wq>HqC7FBn9RAPA$yv<G%IXNji9p;2#HB#&&IJTO z0~oLwAZ=-BnSc89_5a-5+|?{BEJ8pH3?K|-!!b}l16Bj9t*wi0-hA<&kB_ers89-| um?Q)A_4WM(1qEAyiWFgrNitx-aw7m7HYU3&wvZJ70000<MNUMnLSTY<0MC;E diff --git a/interface/web/themes/default-304/icons/x16/magnifier_medium_left.png b/interface/web/themes/default-304/icons/x16/magnifier_medium_left.png deleted file mode 100644 index 81c4089dfeeafd2c2f7c7bf924df1d2e9711e0f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmV;&0XY7NP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004wNkl<ZILl-B z|NlP&C76L~2Kf2;F$4t#v4@0&m;!MG5T`(CQ;;}F-p9uWj<FfQ9uN@V-#TG--S$)W zR@{F6`N*Za&o^{Vnp+1F2g&0#z}wr~ys39a{q9RI_FZ`J{@9bZ-_C*XrH3DmwoRDT z0Fnn{1{lULz}3|?ZqxDGD}V+ZK*xK|-CqZi2Vw>o#xTIn&Mt4?<rn)v8ZJKka2)1> zo6kO<I&u5WQII?kGr%y00cK`q$ve;7T?aA%rWuA0oxii!+}u3S!oq?9hA|A#)6=u9 zYwPVkdh^ZEM{mBJg=v2A;ro@Q_MRDrhK80VCMFD~rlw$wVSuWtDyNv3SW;<K!{l2J zp6`3}>BrR@cOIUuuB~6RX3e_)Km$^NuHd({v}CZdvchTr0~Zjmva-4ZaVZeD0dXP_ zJA(K-cI^9aWMq^LG(ZfW0SqiGEN~3e2*yCR5Rk4te*DsZpf?JE21t`?00>L5v9YyY xzy9PuFbqn`F#v=W+1c4URa8`hsGph0#Q@70C363%4hsMP002ovPDHLkV1f#L(9{3` diff --git a/interface/web/themes/default-304/icons/x16/magnifier_small.png b/interface/web/themes/default-304/icons/x16/magnifier_small.png deleted file mode 100644 index 08fdd8c61ccfd8e4b19eb843b2ba7acba2af60dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmV+|0n+}7P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002=Nkl<ZILl-B z|NlP&C75Aw8Q|~l566LlfovfmAyz<~0L4}yF}w!&`uZYcn})6_)sJ3%-Uh;r-BW8o zVt5U3adAP$>ANmGTebVrivu8h`1;EYAThiK*xK4MSXx@baQ30AFV;VK`|TVEpS$;V z8%T_x3mhCA80_usS&WU1lgevbx?X?ycJR%|Z-?ue+k3UNv|NZWfE#F2^u~>w|8sG1 z6#{V`6#Ga?NpTP|Km_QGv?E8({^#W6%w}O>VFh9a7zP@EKN@XpY>KX5fA*h`kFNr# zffrdbQ3e<o7)0^&^S1#NOQLHg%79^z7s$Z?kgaZn#l-$~00000NkvXXu0mjfUI~K9 diff --git a/interface/web/themes/default-304/icons/x16/magnifier_zoom.png b/interface/web/themes/default-304/icons/x16/magnifier_zoom.png deleted file mode 100644 index d9013037f5548c1d5199ba478f923234b794e76a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007mNkl<ZILnpM zT}V@L6aeu5+M=Qlid>&CnOKbyEB7#SpRKV9OkDPm6=CH=C4}I5>Eodi6G{-G=;f*p zMNkBNP%SrXOta}W=f>1r&FgG!Zc}S>Ew>T3b7Tf<>!Axj&i$YNIp@#)Us6#&L~^OV z>?NlgLxS3-DGJaanT{0ZaUbi*zXlw=L~D*;_0rcnzM5b4O?Q3{#LVwqQDe)aU_a(@ ze|~`atS!rd^L9b`1t)#)xmVZoF>DG(=G@VEDiDq)K21!;ZS8M-orho_>qyxNV=h#E zi^HsUP8x^4L_c6N<QR;;>G;5~FKX7dIxSd7iYi{@LQ}6jI_ucXpeGm`pNS>ELyp0S zYs^2?j~lR#6sn)(l6-3q7_k`MnZHHiDS!8HxEJe4f$C{4bcb$Ck0)VqBK2z)aty}# zyND#*kGs4ktRveF>T;p#ZrW{Ku244}j9IV=a)0h%BK%{Z;g-XRbwsID5`{uRWHK3% zN~J_1kr0vcTv^Fs(`5V0aoebW)`GXc@D~E#embAM3-t?+^wGtYy@IR(VzD?MhBP$a zF)(G-gQ08p{mwqutR*lrH_|^8vo^N{hb1T7w5WPSv%AVlG6q27cC~u{6`jt&aJk$Y zTlX}|_MQn)fCkBQq~xc3g3@E7Bx3-aUaHYlHTCpZ89u+@HiyI6QXte4Wo;-63?MsH z56DWckSv^DUQ<)s>Tr0N;^JL*p;^dgvk8mEBK(qzSu!3Tk4Hozk=E@FF>?97HfUC1 z<NrKM;d@nid3lY{TnFo&pa=*+A;<@t!8))8tiT?y7%aj89Izg20vo}G^qLFSg4JLZ iSPqtfCFy21VEqP<-mpm)T^3~k0000<MNUMnLSTaPj6|FO diff --git a/interface/web/themes/default-304/icons/x16/magnifier_zoom_actual.png b/interface/web/themes/default-304/icons/x16/magnifier_zoom_actual.png deleted file mode 100644 index b01ae0b1dd38544b54281d4e0dd4642c14ffc356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007vNkl<ZILnpL zYiLqo7zgmzG%C7Kq+P)=SxstK%@3~WbeUMe8rk+CyRm8?Dj^121YJH<vIaF6MA4VC z?L!e1K^H1_VaaAgoz5w{l(n6?*_=lm%Q;C$oSr8%5dG4DA209oKF|L>=a9k@1Cdv^ zlghf04Eh^Ba^A>@Ya7E9pg}UVQdq}x?8_QVJ8_-Xox0_t@3jB0zPCj>zXxL0&%;r3 z^Yfq`>v;Y*Kzq@d<?v;fxZ;Y3e*DH~vU~~k&MzisqVc6bD4O^-6^=XGKKeV4!a4Sl z($nT#sJdpiwaYVWo{q$Q2BV9G8jB(RNPKYAAGJ2Lcm}YK6ji>>g{D4?n=rsJF*h_9 zOU^@$9S_DPv4);?O?G1+DbT*mCE4K$nA6R8Gt~aQ0dV$>hWfFOh%~Qqq1#OpT{s;2 zneZl-elI|c#TEYp2E6F;^<p0>JYvd)GTd`Hdxn|5a5OP}=9-;_8jCBw#Z+i<u>QW= zgMCD;R+IAba-vi!Nm*GLQ79BdroL2Ke7twI?cJo4W){bAC@m68OuYWY*rnArT5_yk zoE0FK%kv<lzUg5%TdE&oZa<mv*oGGd0&~B{>?1KpQ)_Tkan?)A^kcexRSuF70E4@< z+Cw)@rfyas5Zv9l->5urAwU5dBvUJ;I_DRcocu~M0^s%%ovy0UVsWtf`Jx9r9&d+8 z+CbE`Ocn?ryERYAT7i_LZ?CASscmt)$61MF?;{wNa=Bc>;c!TP@zpFDk5DKiGMTKw z>t$G#>R>AjYjE&?o|W*u8a|(Igkb~h_kbcG1_dAwYzLdb2CxQaz;dt*19)IF*ao(O rEvdZ#Yy|7UI<Ok70xMF(T)_DQ(yXwRc7uF*00000NkvXXu0mjfK*dU3 diff --git a/interface/web/themes/default-304/icons/x16/magnifier_zoom_fit.png b/interface/web/themes/default-304/icons/x16/magnifier_zoom_fit.png deleted file mode 100644 index 278c77d0d7508d399cc20d823e10201209db432a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 687 zcmV;g0#N;lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ZNkl<ZI8T+) zT}V@L6aetEwy5ZXBG)G<8<wMFm3x@&%eBTTFlp&Ss|YI}Dj@{zrH_Ydm{5WcK`&Q) zC<Mcoz*sqCER{`XwlS4fb~jP4o12=Ordx44$21t*OBa5ebMF6~^WO&)6jy_~q6Nxo zhSFH>h2WYsBCD#8GKfXV)yU9$I;Xyj!8I4|vgS(<LhPfK30H?Z_Td|saP|1-9gVHw zK6+2*D+^3F1~Qz!H7F~+?PFW*oGUoJ5S&{`PR=i;I6`?_*Ocolo>L#FE<3VeY8t(+ z(QqP&IZvXq%PWzL#}>!xntc7#2Zd#CvtgNcqc&QAIX{y~&QVU0YRX@C2JO@b`KCA7 zB;OBm4r&a?e)9Cu@zzfiss6E;n*2CC-AjESHMVENw%ERR(gMu+<<##u4O66=7PNJR zoYV&eXKdLp)lUWo@CO{joF|dk(n=(=i6mG1)a#=@Fc=J=*Xu#2(}7m21&u}nO2bW6 z(Rt@oyM5woG`{@rA0UaPUy%-H)UT*;v+{GjvWx|4wK@-%)HXb~^D4{d$itVDKDR&K z&&@22^bI9E4b9<U&6NPFw2YXKm3ts<0S+EAnNHoe+3dVnEPj0OxK(%JI>#UuC08R; za&=r*eDMpUEx_B0&F1p@?rsk+kw~A3M4|&yMI9KbA{lT295%j!tzreN-CkN*S=HqA zj`DK((HA(Z5DJAL5C}k0bSFdFlbf3hN~N+c5Qy+4B`2G4*hqu_^K8WLYs|^XvEpzw z)<;kwlA(N*hxVggXb0LtGiW_pM+-z~H`<5xqCKm%80|#c(KfUhZ9*I1@30UF{s5qy VulAr^vd;hj002ovPDHLkV1g7_KuiDt diff --git a/interface/web/themes/default-304/icons/x16/magnifier_zoom_out.png b/interface/web/themes/default-304/icons/x16/magnifier_zoom_out.png deleted file mode 100644 index 8cd83545dfd87572956243e2a3872539d660085c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ONkl<ZILnpL zTWC^o90%~fX;gHfXm*7SWi_d>YCdS*GqHj-X4^wn#Hu}1gBZ+Sx;#{}1~nK&(aYI< zD1svBLUo$5#Mx4(+mz{=<c=<z^SCYM%*s8Se*aL&%S#77oOAyF@AvoT98@K4Mbah{ zs&Dh>(O-?AvqoCb(lJW_3S_c(0<YtJoGU8k9KS;8PF{~tH%;FhZ=7>|Ut%f8$FZcf z>q*>&*YW<}0owDPB8M-I2<k5Rs0S}2r2TWkHZ_~}MCa1O7=G@37wtO=`#6Urr>vzA zZCzf6**9bLe@%YMm2(2oq{Gnd8^SqMUH_^Sig+6$-IMd9p?E4>2(Ldjhb=gVDz(o_ z$-EzlS#cPinL-QcrRjk{Vi4yLU-P^a%0y0@@kuzGOfSX$m00*4eA*we;T)<uLY6|b z-X8JvkI@5EJT+AK52g}7hTHFWeK?2IYBf@+R7jyvAh}$QWHK2NsV_)skJ)B=Uxz&t z(~EfnV&8xIUVNZk!X_tG(=aF~8X%QQD_}@_=RFG}(T~zM9!~q5V~azv`CsEMf6Cq2 z6A#Ev2Pu($T(_^$jq(OSahFzm=o(2{7%rE4Yv+EW;=s8W0Vt5k-U;QIs6c#T0_6>W z)5SVnV~5@DW_UdQT@Ht{gD*57bqiet2B6)VM`$fqh;pabH8;0(d%Yp1re^PbC=1za zHe#_@h*x{LNZwUmUXDZ}ks%nQ8Kv@I50o{y_&?W5_+Cv}S(y>at?<4FR09F11QlRA z*aS9!HMj$ogJpOC2W$r0z*ev&`_2U$!FsR`tOl#Vifow;SbqTej<T$5b_96<0000< KMNUMnLSTZM3o}6g diff --git a/interface/web/themes/default-304/icons/x16/mail.png b/interface/web/themes/default-304/icons/x16/mail.png deleted file mode 100644 index 7f7a6ca4c934392541726e840dd85af9687c159c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004ENkl<ZILoDz zze_?<7>2*8F`69u6QtR{pfM*K-GVZ+qL3OAS{xmnoLn4S8X8(645TCwK?n`QEH8;a zuh>nmT$QiyJs?~n#Pq<!cYeIjIfrw(#LTn|wDbm-$)sD@T@W{2Bocd1r4oM)20U*= z77koGkH>x8exDx-1=bCNN0Z4+kU<s>Tsn!xe3mRUdp*9-=T$XFqd&1{;J_t+G`eq& z$7~FT{MqU7Z8oba#&&+M!GTLVk%<4>vRIcZf%j&UZ!#HGXU)NZOWtt!pesAp<yzpQ z-R8$)k+0Kfey!CM=wl9R(;OVQv>gf^woQ{YUFUM6p<WlYP_6P+Dy2Z*zJ@FuxU>}v z9@XVaFLDxI7xk^xQsgTY#dK`Xz=2DffxvM^cEsyGYZ{m2gjpbiEF8GB;qjc_<#Jq> z*VW`3&jYe>;L@to>0NWV&K3bKNm~&d!umgPD0kVv@dqGT@c9X^;-dfn002ovPDHLk FV1fpWwk-ev diff --git a/interface/web/themes/default-304/icons/x16/mail__arrow.png b/interface/web/themes/default-304/icons/x16/mail__arrow.png deleted file mode 100644 index 43451749864a8e641910cff2ba40a22234492c77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005tNkl<ZILoDx zT}YEr9L5hs-dIu>8F=lD;$;|J=Vj8SA)*7J{LYGODWc$w7eWdm-Z(!nWR&=U2&oWZ zAtu6DyeQKaYr0p*oO8pbPB!K7JO`yAexV0`Jm>t+|M#B5c?AG*9mKUi&^R!VEh)Vs z*`nTREt_*X@o#q*mmTb-Ls!)H^_7Qqb}-{`AQ%oKc5rYm>|rk*y5g<HQXZ8X{;e&1 z*EE%pSnO2dd+5*=l^q=wk^Oyy_x7;1xrwhfn@X<ZIk`uNu6WVXQn?+CA}Fs!mi>N= z&(5kmuSSQiFf}#349PG0<h963Ab_8Xix``p#viX&!8vQ(JMN=HS3GNIcom35pa+9+ zt*@)sWjZ__j7&`_IA^Wqiw8wRK77^!phH(YF`Hle<dv4>Nqk-A-;E80=5{NN*ZI~J zbgn_=;6ey=MOIbS8@D{2ue+e@aLSY7c{l8Y(c(}%sGmULunTP-Ag6l?kLr5*MMiFJ z^*6g6F8R8;{KqFTjC#?$3_PC)@_zlt{2NGpKdFnP^mNmm%*>jzxR?K7?tby7RgzfP zyZZ2>3r0J@_1(v%twN3jNwOs6B5oJ-YZ*TP<}G7;$&q`xaU<=iNHBJH-ZXUCWSSBU b?W%qV3IojW&~;5x00000NkvXXu0mjfy}<o4 diff --git a/interface/web/themes/default-304/icons/x16/mail__exclamation.png b/interface/web/themes/default-304/icons/x16/mail__exclamation.png deleted file mode 100644 index bf0344eabcc1da68538754b0c74d52ba6d3de1e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006TNkl<ZILoDy zT}V@57{?!Px{M&`!n*6C7|~7Pbwn`&jc^Vx(r$!WYF}nWxah_UBd=sZS=0(dERm?z zO^glJChD4uxt+Or+L!4z&o;I>C)?!T`<$yK8j%Nn{5kLY{NDHBIfnqyUZ6c6@OWaP zMR4^$X`z9!v1>D-5DFU`_}7PP*<qI+n9YV<sRU;rfNZgd>ekj@;To=Ghh4feI%=qh zjdVT_yVt8`xmw+k`WklFrEZhydbw6ZadQ*DG8uexyVd0PdbaPe!!C6V4|lIuD#(hK zm}okUuhY|N*00&@kKl7&M11Lmy2cK>)G;{NlM^Q<MO#cvQQ(p!d~!GtURhE3?66|S z-ir0yIHb8wtme{Shh1tj8gD4&G7{M=<Wx$XE@vPf$CS;c;+cPmsJ{=j(g#EXw-FAH zgB^CMxxfErQnVBlH}P~if3B^mcq0+P66T$q$fri2*Xxm89>S0Bmys+Lz%HHZ?Y$Kd zxASxt5($LF?e#1KC*hyHg8Z^k{C0%ZpaHYCX2>xM*rgLXU7ywCfh?w*5a0Mu3Yc?r zA-329$)|<o%RTtKXW(^TfYqYM$u`|x+ON@c9B68~zZ2)%k3E}u+Zc;3o`vi`rFOt6 z`%h!?&B2)V(%}KIM*9SZ1dZEyHPrB4avfDtVGUBD<0xews>w*MBg)6;4X<gpr&UYz i?kSnfPsp_!y#E_Yx#A;OpX@#W0000<MNUMnLSTXi`XYb; diff --git a/interface/web/themes/default-304/icons/x16/mail__minus.png b/interface/web/themes/default-304/icons/x16/mail__minus.png deleted file mode 100644 index 274713683e92dec0aac6e3313a8edce56938f279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmV;&0XY7NP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004wNkl<ZILoDz zy-Pw-6u|GI;1anwG&?=QkHx>BF(+FBaS6)Iib85gXc1a$b8>Q#5JJeHrNTf=1QCSL zFwF9m`1!<4pZLM)o(sa`AyRqa$GIQpckbmp9svL{4`l8Fr=gIUviVQU<Rlo}O6K$M z)$74;2j-%KE;$Ya?5%DW;@K<+oem7g<C$O%=AwfxIq>`K1A0(vx8Wg^VNo0ory|Wk z2VLUu`L@N;2s-^fd^VeKn@X{WYbo+GbkHRmUa#YOFaUu*33;p4;3kn^an>F>=n|{P zv(us#EA&~&d!qr5xg11dF?cDL892v1Je%a9gDzQfyLTI+2)rObp;~3##h5LXARLV{ za4tQ=Ty)SSt1j1Gg+A$--h|!7_*$<sGQ}cevX<tcgDzQdI`@mTB6jzQ=OIsTkaK6V zK}4@-T<LUh$#HOPFu<8s8z;*a%i(=G4F%d=o_^zLTo{cY(js!sRVtn=aGZ6~WICFK xRjp3Cl*$h|>k37f(4nMgC`*4t!`ylQ#vib@<a2`a(Ov)m002ovPDHLkV1nhR&YA!K diff --git a/interface/web/themes/default-304/icons/x16/mail__pencil.png b/interface/web/themes/default-304/icons/x16/mail__pencil.png deleted file mode 100644 index 47e552d8189a6009ec5f538bee6d02d332aaa97e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcmV+>0@?kEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005)Nkl<ZILoDx zUnuKg7{}k;NG`N17w6KY<5F%EH{@L4EOSS>nApKNCt9?QnxYVL%Ae#<+{~Ypa86vH z5hJyxopv@hGc1dl$r*my=<9vn&c*sQ5^sHap5OaCpZ9%xehdJ65A59s7^bHSIhAju zko_<kt9D#2{JXouYZvvBLoRC^AJ<;p-oor~AQTQG`uO-F)I+`Gkjv_ZhO`l02wY!d z&1Mr(ibmrS+d~eyth%r7i}dh-@clhbFE6odv4}|DvB+!Wkjpe(UDY>{2txcx#8DuC z#qDhopW6$puj5puLPu%oPgd62T64uuJmb$Ij)OsLIh|P8*nr#b7f?=nRI|I?_}$wJ zG&f^XsdTfFrlzk!NrEpFg6I5POqZhL<OH)OlYnyCGh2)po0x#a`v>%T)D;!=vjUy& z+Zlh>9>0mEOY!jHLSXZH1(g5Y|Apn*Tu6RB3~g=L+}#DaEVs7yyO-Zi)3y72aPgbu z{Bh1>WiC(1#=$JiEscU4a#^}sUB7Cz!o#QQ<NsKW!?Og_!Y3h5jpV>;UlhIMkjs+O z(#n*XnGNyC$p6?m(4MqMa*HnUAgdsCIJQnM<12xa!ucSlMWg7(%|3ec3bRJdie>eb o|L%(m+Ruua#&Sh=g*tx26Jj>O*L4#W&Hw-a07*qoM6N<$f@hNzg8%>k diff --git a/interface/web/themes/default-304/icons/x16/mail__plus.png b/interface/web/themes/default-304/icons/x16/mail__plus.png deleted file mode 100644 index 9e7e259dfc19351c2a443991691b243cb5d44d54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmV<Q0So?#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005INkl<ZILoDx z%`2>77{>2}%_+%(nt$LFLsnujq%4nxud<jOF&K2@V?jA}EXl@(m5rh_#ll9SG^8dq zrJ)hSyvNtfc*Pt>Gjw^bCsRU0JoW2(KJMT9Jl(GVknbSh{=o3uT(zR*i&V?t%uMT+ z-;bNSJA8JqmJVGRn4WfA-QL3O^TCWpk$8Me32RtOhpzmdnsUU|LFoD#YhJI;SR(N* zFKg(~mG+5=w%Ef1qWAYWxxB=($D@<$m%KisLsyzcN8A6$<1p2e$WbVSrOi#9srKm5 z75m6Y$Cdixxq22kjzqAryNkv3b?l#>YB=W}&ysa?=t}+2P-i3-gJGIDxVX^WW%`0a zxK>v+oO7>cr5S}w6|lRVphH)F_4an1t0(QLo7i3EVK}Vu1_GMo+PYAVX0uNx9lBEG zban^S?d<N3VZg6$dQIc91J-$)rXk#dpR=VXbd@7-tk^Bqy1Jf~?QI;W?i%VJzemxm z4V7oLZ^#(WGbAfN-=1Ak(w~a-Zp&8M-<*HM8nhufPix9@i5i)TT!rOB{`~M-0tH|` qJ9Ixe%F;zTGbg1j!=saHHJ$+2Q?`g<QO=D30000<MNUMnLSTZ8^ZY#k diff --git a/interface/web/themes/default-304/icons/x16/mail_open.png b/interface/web/themes/default-304/icons/x16/mail_open.png deleted file mode 100644 index 634b83f282a6c1b49802094c4d59aeb26af51bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007JNkl<ZILn=l zJxmjE7>ED4fkC4#MiUkjCw4}6!oq|uCMH1QqF5LtexM)~Or=mL;Ufw~0r4Y#4%&&v zs0ArnzS{z=*w)rw+iQ=~7Orsc^Z(vJIuN2>^5m}X`#f*iLc72gO#*XsJRJgC>J-?r zSzs$>q0rkUR1)+}Gun|uE;ZD$eGVMwa=Cx_RBOgv?<DA(X0$u#z)`*|^Yx!>S#ws8 z@5nFIo!C=oB%iA^qa8Wq<{vo3f0TH7k2Oi-l{Pg#s;JQs<idkcepxsJ$b~G}7Kfn5 zM-<6kVI!9sYS~<yP$`a`v#Qadj2eBS$(#NM$gcJx<LgGo%lXlRjh}r`g8kTz4D(}; zGLf;fR%%(Zxu(`J`wYpzFc&O5>_d9RjFiWOHCG$tMI+YS?O0#x&<<|;A0n~(7>=1y zP|GfwOqWvYBJ7ic5Iucd?1a3~ip1<a#HX7Pcix3G(}LujK|2(2_2A3I0H~psRTvDH z)!khr<S=X>yAgC6A@MLa)d+F&HpH*D5Op*l{#_6MHv`6OUEB?U8fw{jy}nveRb+EH zL=!<+tw#9lO%Nw;;<x=e!kozX4R}8{;KTd-h)My?rG{EoUSEGDv$X{|o7Gqjxbg0_ z9&cVYavJt{`|1vs{jNQa8fsZtU7b!=6o{!50+NI&uNNU%Mv~9+p&9MSA(t9zS&2?p z6W`c?R}?Yf@o4X0BC#*|4mH%WGgVc!et!Ma{5)Kt5PY%NfsjKkHPo`xrKMMG)6-bx z{}4*2{|a)cp_UykD!Oo_xcJ)tKrQ1>0p|p#@E@V3;12*po|=P`)q?;4002ovPDHLk FV1ie`JQx4~ diff --git a/interface/web/themes/default-304/icons/x16/mail_open_document.png b/interface/web/themes/default-304/icons/x16/mail_open_document.png deleted file mode 100644 index c9277d472a810915ac01dc115f22fb2586c9096e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006sNkl<ZILn=q zT}V@57{_1Eg%?F#MtIqk(M{lG_u`FL*-a2Msi3S)BJo1#V<bt~V1q%p%nzn+yVUKJ zv8atmw}C4+Gh0~G({`NGeYj7ZK0W_k$e=0Jf!}uap8xOvKIfc?`!<^Z5A1gF(BY_J z9Dgdl8KuUENzwqEV{Kr<C<3O_;)_8NVJ7rU5~8M{jk)o}X1Qw_>v`^&)Xu#7V2%Qu zW6fmkJO4)kKJ0_-LT`PcE9~u2c4voD<uWCTMf#P?(dza#MYCD*hC(zkdQ*OHKBwV= zleGoM_(#jg&^2d{<*j_4k}SqE8Tye-(z2@3Vk}1T>@4AM%6(tG=CejPaK+~VNu#<i z$zI=Zxv;xS=|Z7yiPhygV9frg9Cx?NaK&SzuFLmnlHPb<Qn6B@ERTLz2`0hq%y@># z7aS+J;<~|bE0a}eWZFU-d@)xl9bK}%PQz1!1P89T+TY(<+21E6p^zsWCN-5hv?RQ? zMy_D6nuP;bT-NJvmw5C%o;*+B=0Lno$qMg0<@Zx8ovvo#z!evJd+*@sr#J*6Jm%{_ zfL?J}W?ViWIp^kRn%}~5JbsXa16Q<lcWYC;o5~|b`9A%T2q`?l7O&NUHC#gmSvYV- zi&m@K;4!iD$EBs}_v+?mU1~FM;ED?!9bG@U-LtSji;6<u6Nw{123a_8#hKRDdvE9G zX@z%C_;33+APWbsINsEB<wSFH&;I~d@X^4WVjBMuI1Rr6OJ>J>Wg2$K00000NkvXX Hu0mjf2$e7| diff --git a/interface/web/themes/default-304/icons/x16/mail_open_film.png b/interface/web/themes/default-304/icons/x16/mail_open_film.png deleted file mode 100644 index 3174aab5f884639d6872e272835ded7fb54b7da4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007gNkl<ZILn=m zT}V@59EacSV)TJG5nX6RA7Ez4Brl=@O-j+ix=5jdLWKzY&N4Bn$fQ=;bQ3{n3&WaP zD708DKe9zMwcPw@=vqX|z-ii8rl_dD&hLQYMMU+&bI#%YKhJw!(cIiDNJ~qLj6$Ih z>w*;GlTI1z(JRvkzq!ZRlDE`}6$iYQz$%r(ylK6{9=UC`J1#oZPx#F}&gjrxKA``u zQrI7!7FMejToGGT?y4s}&^I`tt9PQJ&H=5d8|5YkA~vhsbm+2S%g36JT4lV&VgX4? zh+3$8+zm}_2X5AMpw##lMU`zxy;v{Jb}cM<Y}kt4GG&^tHRZY4Y?g0u=%5<63>~<v zv*CKR4b>(a3bbY<XV=OzF1jPF$<Nt}QeAFdXHOj(8XM8n)P%U0o$_^WOV`%de}JLx z4K&79<X5~xTy(hX(Cu_S0$XuLtIY`f@S)0NLSSkNv3s}UL`tGe;(^^z?+Af9JOq*9 z8?k>+sO-qD)UXw)8cpW>;v$AeMo?Z;gV-1~O76RG)!@Q8eJ`@KPMOTIZh1zBE*rMu zWJyWZ%=|p2W@j-vF^t2<kD~NJKdu=EamnCD(Y-+wR=bd2`CghG!RYvq?6P4ijujVY z|D2nHU%DD;@3P~(?j>@yFL3t8Q)JwEhQcZft{AOo@3b#_Y}ksVf`T0X%nW>i0EWiL z(dF^L>-Xckw6_xOaYlzO8@3`oCnxvY^fWv^AKncN$nW8aiQlr)VZ&DJOHa@HDxGfY z>x0Yd#pkiHKSGBt8@6I=Lc)bMhXY@vKX@l6{|dTn*ow7bVW)zkq6+^9wnADei479L c{|Fn^FA11@tN+akw*UYD07*qoM6N<$f-rkiGXMYp diff --git a/interface/web/themes/default-304/icons/x16/mail_open_image.png b/interface/web/themes/default-304/icons/x16/mail_open_image.png deleted file mode 100644 index 2ac1a42b1611368061e8e4274c067d033e494d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007QNkl<ZILn=p zUr19?9LEoP@S&*Q6nyL@>!}cW=^={{BYe^xibN+Q(VuCS_#kPDG?iRTM79)L!*w?W z|2#M?w#?;ZlQ6fblU)~c%^Fi%rjzNW-_GwMAz^<HeC|2??)URM=bp<v%`!HvlCfEi z_lb<v8VyWsXktFKEM07o$q8Ch?O}JfM2*SB9teU2`?-Pgh33jreWj*bP`n%&Yh55{ zO*N&^Ue4u`YNIiCzXpeSgWN9NjUn){^9yKHKi8HD+C0gn#{u3T+uL@ecG)hs+9q^~ z#P&AwJAe`aDAWV@dV%_3U{nO?UAv}ekQ{QE>#<B8wp=#PPV3eu-W$+0)QNGQ4;2PI zbT$wA-uYp2`q9hhG2bV|5(!vr+Re|Fd^5SMUR_$|oDwkN(Bn@>?{T^ijmI(Ystr!Q z8M*AbN_BJfTNrwCCsx+h;Oa}=B@OO@UHa3cqpPeQ%r7rP)6)ua$Yn(h4Y!gzJ6K#= z#A}ZSP333d>OYR)n`4N$PUCCf0zz+3NJlr>?HG2u5ex@G4!P`VUES??GKtvcCc>+$ zD7<zNl?A7utI5Ee;}YVr61WFXBCxW8yUjHaKl-ICIpngus;WEdTU&_6ViF#o9gUB& z(5TEpi~1Zoo}EWiLl*iS4orzNKXT-d%W^9!6m&7P`vU*I2~k8S8pRi0+Y8m`9c3s> z4!JB_p(tJ2*nk)gW8CYN<{&@re(cSVLoPd0TwE65-ADQ5%!ERik3@b8WhhGyx$J08 z&VB3TBtGyRLi{)W4U{E^Ty`)cqu@|xX664tF5@GGlgdf|N61O}4!U)y7K@rtHvj+t M07*qoM6N<$f&=b7i2wiq diff --git a/interface/web/themes/default-304/icons/x16/mail_small.png b/interface/web/themes/default-304/icons/x16/mail_small.png deleted file mode 100644 index 318490b36408923bf4a7b200b38a0cc144cdf78f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ydu{YLo7}w|M>sko>_H9;ta`v z?Mbcqe@{)#++pA$x1RASw|JV&-m<s<_t*b7Fz}F3>A&7^C-bt={C(Bm>)-Dz{=fh4 zFV^D<b`Y5(>(;&Tci=UjZ}W5i*BcxE=kKdwybP0^Fl*MG>-YEnuV>lv_Rrqx|JUE% z=U?VnGr<C6PhMr^&-IOFwyd{$`WzoARPJG0QB~c3diSnr4-P5(d^k^t{RjhtU*~71 UAldvZpu-tFUHx3vIVCg!0L-&y?EnA( diff --git a/interface/web/themes/default-304/icons/x16/mails.png b/interface/web/themes/default-304/icons/x16/mails.png deleted file mode 100644 index 5e7b08db8d5e662706b5c69ee0edade7ccda2013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004?Nkl<ZILoDw zJxGF46o&6sQ$r9`n_H7(L{p1{gG;y-xI|f$Amox!4X&<kB7ulXAWenjkeTR^KWO=b zL_(sN`r$7s(&@gRDfUN67ak7h-1j^BTt-CfKd>XaeaNxHq2O$efkOQ7z-k?^6-cG1 z+HBG*U;h)hM-F-Xs<>p|YzAtf(V&}noJzGCb$h)pV2*p_kQW!6IGya!W@Ec1({`JO z@`6B~P>AxC3N<^OA?U?9zef)F58gV9#de!clQ)qdcQi_;S6AeYMEX6i=>5qg30$Gk z?b3$PxHGo*WjIWQYL$d`o7N46-LbuG*VmLO6zHYZqE)?qZ)|U;&qv-^jGlNe*J?Ek z9`J!zwpgT#KtQbD^~kw`L3%8g#idIsm6pK+KJdzxO62DccJB4k9e+$z^q3F4SJZ0P z%<{4hOiQI}3?A@-7aj@qKAWX8k4LPdbL8Y2jh-<!&za*)GI+oTUJtn(W%%Fy4CbTW zi%KOM9(ce9UeERVkBoYA*n&*fUjUDR(_cV-N+Mwca3(mj?_R&r_Z~TKQB}OMY6kWL P00000NkvXXu0mjf{U_c< diff --git a/interface/web/themes/default-304/icons/x16/mails_arrow.png b/interface/web/themes/default-304/icons/x16/mails_arrow.png deleted file mode 100644 index 49988fa7679584f0dfe8a00ebfae4969a402bf07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00066Nkl<ZILoDw zUr1A77{<Sw>?$vUz`E@sh_ss^@v1JnShXMtJS9a~$qWYDMH#D$6;cRYDOomzade|U zcoD{M(58)D%rnPKooP7PVZ)|}=_YeXPv3JQD=cbs;K$4Rz3+L>`F#R__#cF8XlR?e zKA%O>Rs|OG#oJ!*cdkWKDHKX2e39{gf^+V1pI<dY9R2;|x=}1*Y-$SmwKY_>wsydC z&bh~ZGvJ=zFYc(Su=VuZD9fd+VIZh!$gZxUw7Izrd-Gh*xySuqyqzA8`hIQ>;h7l( z5(x~9jv_EQ`K_0gePnhPhEyn4D!AI+-Cni#+jtzgLIFm(48`rXRqd^YLYU9x@Ofhc z=Q=w(s`mDek0YE+Vo~;|?Dm_29`vDCdU+Wm(WqH}*FOjwIIk|j6U&;RjjgSAK@a-S zE1l0HA}?$>9L9vaOjh<h=lr5i#}gem_DIVdYI``ix1pg$(1Sko;w7<uNT=~47&NQn z)kj!*ld$$pqtO*W%gY5kUIOaf6N$sF$Yntf`p|1y*D)`D_h-($*3q>HTuB1W@gF!+ zz`<K%F+mUdd|FvSW_^7J9o_^^-Vfn~`yGxthjDyh0agvDYkw2lZyQkrJ@z#<Isb*) z3r{mgLcktnFjjlXr^pb&XSbwIa^P>&obG+T>ujG^V|}K`5W#@2YRuWmR58aq00000 LNkvXXu0mjfa`6og diff --git a/interface/web/themes/default-304/icons/x16/mails_exclamation.png b/interface/web/themes/default-304/icons/x16/mails_exclamation.png deleted file mode 100644 index 552882964faeab652bc946d71093172140147c4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006&Nkl<ZILoDy zT}V@57{}jT)lE=A5Ykl;L>J!FMH)nOBN1K{48kJ2h+1O7s1c_0#e_caMnd{pOBtqS z7lW)Ao7K$iY_#dzjyq>+I#RY{n`@uUG5YsDCo=5=lrDZeJn#EI&-?yf4g<jc2X?im zXNhaQy|tV(YoJ#B@QTIqle2;>Bc0FV8z28KXrFSFr&HA-mrN!?m&)ZZ6bd1c$)Hp& z{{gMjKIJH{4!GXe$6C6(Sz|}Xxgrn6QYkq6e#90QkY8L}f_inG?^BNQE4&S6bN6s0 z0%tf3TOfc=yB)UC(H}jp)Vm}JDXx$!m2kSPtzpgHZ$?HCPp6S87IDI8Y+SXsTWCet za|8qSCQQcT_);j~Xmj)VRe2Bk1c*W%3SXb$t?e*|#(bFJ`9pgB1x6m^LtfGOdAt?` zwJz^Pu@j#q1Iqd55dAuYB#V03-uikyBM<T+uV^9x7k@CT(+MAcOscN&5CX1~$SCd5 zYPC?NZ<I{!8@(0#t1fS@tUS)hgM7$~9*L?LjiTS-P^&1t-~;NAo^9d(EkjJwVc5Fe zZ@j2E#{2b*Jjllx3}Sq44wL-azfj<LcM4It0pVZ`23{Hv3>-kfvoB${Xzts(G#W-8 z<nt++#B4UZ0(sgF?_dpP<b#+JcdIv`IwkJG`~D5?S5Gumj6AkfR~!DuotvAyV;^>8 zm5E(YB0G^!HmQ}6-P;uF1I=STl&#}z<y8F6qgM8i^Km)mTTFO*o4JUtyX@X~NCw|4 Tg%$ii00000NkvXXu0mjfJ1Zz0 diff --git a/interface/web/themes/default-304/icons/x16/mails_minus.png b/interface/web/themes/default-304/icons/x16/mails_minus.png deleted file mode 100644 index cb3ec83d4812518986503fdc7ab18fa44bba8a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ZNkl<ZILoDw zy-S->6voe{h?5{_{{xpOPDMJnI=FNa6<tD`iWUNjSc`SYSSLXg2~tc$41y?@iX=ng z2NC=VYW+ZpL4!e~FVV!tAbonCw?t}HF!;ic!@2jl=f1xy0OUDHkH>S%r?IhG<xLLM zng>6)Tv^_Rc6X6TrSMzFKL+=iW1hE~L)x8AVl$FS%x!KWesO`!&CNZy&VA;XHwW~3 zz4FoRmezrRcWDhB8wUKVt2jPCN9y|e7WU@4?lZ^y9q*2j5%<F09)jE3m<@;V#plE9 z`ug8qEBnQr9T=*R%w%Bg>ubr`duDA7u|xt!I*mq$qcvx5cOZcMSPZ9ES9sms-IlYr zcYYqhjSU=VUt_nw7kbc#UXha%d=G`p`cTi@#L^Oeo}HOPUp6<}g&y>wS0o<CqCVJU zFo+d>Ojh<>&w5weY!k&*RUM?rVrdY1(1%`pB-X7+1mk|cS=mq5)nTf<9N#J{;VdkS zj*5g`%2$zLp$C2F^&=X^zW(n2xGWa@YHGU2pvbb&gFf^+y1aalajO;m6&3hgR)(&E zg2P@tNE{+VLXWJ|Q((ScL^>56Vt#o_iSptJlq&hJ{u%HGu3Wz1kGL$I00000NkvXX Hu0mjfDMj^q diff --git a/interface/web/themes/default-304/icons/x16/mails_pencil.png b/interface/web/themes/default-304/icons/x16/mails_pencil.png deleted file mode 100644 index 63a8507c015b3f4bf049c9da2f3bc7dfdf8792de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0<iswP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ONkl<ZILoDw zQAkr^6vsd5p?XP5g6bg<dI%r%wI)dqEfX|{&{K*8QcFx&w1=A2sPz&^1SX=G2s)=o znhjUWi+C*=L{o9)Hr8-4bJ+AU-P|0~zwdn0p|l=`2YwvR`TpnJ`#%f-+YjuK#ggW6 ze}4t%W)@V4!3RA(JKS=3Jcz_%_`}!#4|*pZ>FKLt$-T}_LaRihm~^=iURy(QYwI7V zPw%87y;xuz7+_6iGizvVy`A8qB}IYcbYf|B6|v3DG*pW|e<vO3_xRR#b(ueVy^!bU zVV|8v_t+ThGc&20XR4>%ZYbPBG?_$Qb8~&xzTZzzBNT~1NhDBhGBsrF+dMG=@8~Fg zR#xJnM)NXj-><D!bel|o(TLvMTpuGJ<cE9(mX~33I7H4=2ZIuxwX`4}kK>6}iyD=x zjgb%XL%ssxFsAsy-pVq*@?%n_n)*NdHptd8#DCq#>4Jg}c|}DpjujSOXH^Eno!=W9 z@P$I+NR+<?0vMDek*WUlr5DnWS`0ro9Q9u=KA>TYo#Y&1WjbBs0{17+&EfmvB7FRJ zcjI!8;NzQ1V%XAAf*W^BUzJ`v&(d+OwpK?+@~^BQxW2vz&w>-<BUi+5U;70N+uA^S z4m+z>rxuWp<0_Rt6ZJKDc0@gRsz2;2xq7CZdZa&+pU-xnILJA{Ih6s_mFK*xx|mbG dU8j8SioZg2xU<Y~pk4p~002ovPDHLkV1gGo6Egq+ diff --git a/interface/web/themes/default-304/icons/x16/mails_plus.png b/interface/web/themes/default-304/icons/x16/mails_plus.png deleted file mode 100644 index a3f2802dcb0be9521ee4382e3ef0b6a012f7cd59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcmV+>0@?kEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005)Nkl<ZILoDw zPe_w-7{?!k^kR}iAYOwmnsw-46QR0!@SxJEND4EJ84lc~MFo2B(2fdAOamJ_gz6xb zIKlac1#3F|FH$Wg8#?zg-DD2w+wc1mh0>_e3m+c7zvp?M_x=0?fcy{gWMJTkr-Or4 ziiQlR(l0*h??2?ecVz|fWD-Br`ai)w=Qz)=>Lsl`J*3e{Brq{QkLdO`();_z;5qx8 z<Gfz*%;l2DPN$f=x|&jIC~O#T`~3*VVo2`o9l@;6RiAU5|Ha$d+v}WKU4>_92_u03 zUX6}oWOnu-tI9mRybMDrB+_Zr+wBiB_Wm$4gGf9MBbCCf_I7i|-p=uHtVJT&+}%Zu z&DNZ;w`+0|p1C=EQ@PS&c_{Rt550mL8+h;a>UvVX^Qi^r-d;iN*gd_ptgg-?^q>#D zg3&0Z)rGzDc<@<WCMz?~*}pV=9rZCQvK)n>vnG?ZptSU+(1Sko;w7;z1cMlIyLDx* z9=?l`p$c4la}_r>8z3+81DfuFZlMQ#=(V`Mjy3hWzf=6W9M{4%$B@o5KA{JFzHDtF zw6k*}w?CS3q0fZ#j>{<dUIBTY=hN8p96}HJ{0mvO{7})?Vn|!APdZMES|WUM6orbS oztWWbQW{VBr8(OnmK?p{C&nqlr3Egfj{pDw07*qoM6N<$f?P@tUH||9 diff --git a/interface/web/themes/default-304/icons/x16/mails_stack.png b/interface/web/themes/default-304/icons/x16/mails_stack.png deleted file mode 100644 index d81d95d697f46745c730e33709733ac62af932a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004XNkl<ZILoDz z%}WAN6vf}J+)5DjSGWmU<bP1x5DFxO3X6!Ojf-aO+FdR+)J?T<Q;;@<5eQEBkqC{1 z4Tz=U7o#EF-gy+wq>$)?A9K0qzH_(_h7l2)1|~(L>?9oi{YD~dyxtxQK5H@n-e7R& zzEGfMw@aTqVieFYgV~{EZzvR!^LYx(GTmmg^iV9CK<_-6q<W`AM}ffZM9Ei*Li%7p zZol6>Q8Emg{XT8^e0vim!>Fd~v@S{e412&;&SdDl)uInRU<5sA#^lpjj9wZITJ?Ai z81{gxR<F}_Dn(kYM(titfLippW=uYd$LS`WrWKd#kYNwFzO~zwFPACChtx_%fEqn$ z#^hzE^K#y9Kc2JMHW~JSt6Hs!$5K?4E)od=YV@EPlb0M0i7~dwu`uib*SlPfo-~b~ z`S4?@BtVTGw7<!-Rx1++d%#uYd%p6A8U?hW<e$UcHsCrArewpJ;VgVR|A%Gh_O!qA Y7iVp(qmzyE4gdfE07*qoM6N<$f-z{sng9R* diff --git a/interface/web/themes/default-304/icons/x16/media_player.png b/interface/web/themes/default-304/icons/x16/media_player.png deleted file mode 100644 index b35317b898ad629cf702fb22e6b679b123bd23ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3P85aSX9I-8#{?BPdX!?ffa% z&Dt|0*i>BZn5Y;|e0WIWpn;HcNJi9^RT{JEdS)a<ZRyaw^~7k))W!wfE6t3qIQ@~H z?fEf3rbDS?(c(vH2d8##|1D>=y6xE^=JwCF=O50iZax28_{jV3(k9nT-_2)`ZGP2q z{dMS_byu_6n-4Plt@|HgvDi7h^w8sv8gc<0Zi_pPKkjf*;%Gm-V{--Dxuu&o%r{rq zP!}ub1XT03Ok3_-mF=B7|5)E2zrW+xvhJzr?KdK#jy!#u%JP2Q!;`w^FD``6E!Y{; z<v!PsePIB{(jd;edE%RI@_gUId`&O*$h&I!GP`;P*<GuI{gwxByqLHBzvY9sTe&l? zZ~hT^$JJ;iSc<RR`QwhOS&9-or`}KSP?>Q0slbjRzWLkYAOG&pzwz^vXvvFJemCBh z9lh+fxUp#GpLme18*b)wIqZ#dUl=eUT!OEC#`)($>vkTO1X&ffI`re7sI^J;_3{6- z+T7jU;WA>~t{<D$1Jyn~o;>4Zib_mzzp+(GsCrm<xajPoNrE?X#4f)SS$vUWs+a2_ z)9;X=$}r*DeA6dRPDVyys@KW*qX{;0-aDSjrI)<el&CGgH%{M2?Xvbg!<jxxbNv?I z%t<nu=>e4vJg?d7`u1ke(Ink_#rgT~L191r?ESDg*CH;yEHM`o6WeBTZ|(uHShJk} a3?~$|?{8eBxdND27(8A5T-G@yGywo~%o=?F diff --git a/interface/web/themes/default-304/icons/x16/media_player__arrow.png b/interface/web/themes/default-304/icons/x16/media_player__arrow.png deleted file mode 100644 index cf012c86d84ea366b143bf5b65e231b20cb0cd6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007mNkl<ZILn2R zK}ge49LL`w7ASNmu!bOE;-%#(tJxsUfiX!IW1D4-qM$HSYbHi{h={eKa6yOK3}MA! z9_G4?QP6NsP1~Ps&OvKyF*diUcuDZ&;oJZBr$>jZ9(>^O-ski9zxQWGqmdCNlc`pu zOXS*rAg7jh%wRBZ&L<Ly#Zsw+VzIa-v_}rPykmO3p3_Z&+wI2q_&8iH7o1KfE>`V= zR=yjW{k5=kwM&PP%R8pi={VO5g#yl4Kg00y2U;HHp}4h(UU?OcRae7)sTKX_bRdUZ z-m#934$h5SE(eFhfoL>}d_IqjjSXBC4`@Ad2!SU?c;AeG9CCTbv|25vH=E7=aloTf z4ag?L_#^}n4EjM1xx8a-ZEc*sOeO=n-7dX@-|xrt^fW9@dogOgkM|$m!8_ptIpp$= zX*3$n%~UFdSS<EW$RU?^thu?FV@W2Hh(sdN6_%HmvAMY^L33K8J#xt99aF2-oPmXf z1<cLONxzE1a=9!)b6OkneS_JvgcCg@ZguwvJ9^p1m`bJM4ALjg&dy4YN8!}elmyLb z%{Z2ZqX;xTjTTfdzMC6t3C0>58#zOQARrtLV|{%cD=RCA$K&XK8;5c93p!t?aPYPd z7ra?K&jVsC9I(dCtgfz(DV0j%&iwp5CMPGQUqy$kuC7AwE8=kuxUvXz#(p#S71(z- zEHD~1H8rfhzJ8eQ9}ET&3WbnPr?IxShQ6@~S{{6adN=^(zywsTEc8)ePmf=a_Xf<= zSBO-JW60z2WatfMW@fhJu*C~S2-snIwN!C(p#N9Pc8VxuGTG_M%F25pw!g9ccu!o` i{;asI;jEP!YJUP+1v<<?hjG#X0000<MNUMnLSTY+OGu3X diff --git a/interface/web/themes/default-304/icons/x16/media_player__exclamation.png b/interface/web/themes/default-304/icons/x16/media_player__exclamation.png deleted file mode 100644 index 08e2647eeb1ccae8fa03a246f2a2659c12f23481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmV<40wMj0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007|Nkl<ZILm#L z&1+m$7{-71+;itElbLDmrSlQm+7Fu|F@tEZx^WibLIpwMqMM={*KP_1gpidBQ9%$v z@DDIq6j66#7K$K6vr!UBXoeWtvG;^z(wWTM%=ze|Cd}00vpk3QInVEX-{Z~A%>m$f z-UZ-!V4VNgec)H;+-(5qoCCl)cXeT5VLpnY>Ep9U<#`@TsXrDM7e53Z8dz(O?+Z~B zO|Pu1Af=?=?~^16KYuXKJzsJ(F-Co6iW?t)HEpde92ZGr%*g}B7?zq(A}6L$s?F|h zn}+YRE+p5UJI7WMV2r^S<DD1`B@o6KUX50nos~pUL>OM+y{}=cdYUUwg`BOvh%p9h ztvE5zT8|`nROg?r@ct*Caj)MYePA)hptbfMi(swg@bHkewKYnm62)SX_~3vazxjc) zv(M1!IL@50qX<I=!WcuN(HKc^{fnCqr*!x&k@$&0`(=zVk3|q#YqZw*zE7=IBMd_T zRD6fK>%VcSex0p9ZxZ-Px|jH)MOtg`-wso$R0zWmr4&jjq+KPdTw*MjVf<8;nai!q z*>sO=x;Khot;JePu~<YY#m2@4U@5W0`71AQ?d>JL{PbDsQ}N6jjoT8?!wJN30%Ht9 z2nvM)S^qCmX&-y^56jET^gB(;<!V_QUK(f+?RNV=2yq;f&1R|9s`y90kSi6qvv-T{ zzq^4-)+tR!k=DF57~qM`%}w_9_UQF`(m98<mYtm)TCEn{{oir!E|xV?Lh;(`ACZ&y znK+f?f=s@yHCF|Y+uq(jy}!RdXf~UhnM?*LC2<_HzWO=i`CYQ2MLy`#-JK^Nbjb%D z%9F*5$r0~*zywfBrBdgDAgB+2=Xc&rUU_2DmWTI32y7~FT`66%^*6U30Bj#!8p10y Q<NyEw07*qoM6N<$f+-PRFaQ7m diff --git a/interface/web/themes/default-304/icons/x16/media_player__minus.png b/interface/web/themes/default-304/icons/x16/media_player__minus.png deleted file mode 100644 index 8fc1828304a46982d2d556fdcfc1245fa51b7229..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006=Nkl<ZILnQb zKWI}?6vlt=<)xOU=9RpcU=x~Ru~ekC2nLH&X2GqXF5;kTDFwlTP&zs3kU<9#w3{yC zE_QM0P(%<@Z17JAQPP(oF|_$}&%F*Mu_?89rprCt?|#3JbFBIKc>pZSngA{VCpo@; z0~^MeuK<oQ1^{Es+{((zvhVxT-MhnOSr$PMd|F*yeE{qWXsx^bsPFsJ>+9<{jzhEA zq}6Ki{{AwRkV88bVRmMUyAPjDYptW*M~;Z}J`fRJeV@dMO%Vh&s?{3VP>3zt;l{;r zzO}-L2qI$j1P(Z`MT9H<2QnE4-}mvn2^L>MWHiCqa~|o@%ZLbCYr7|)l<ISExK5ux z#l1&4D$NEb>KYM2DP<jrptWXqcb9xV&&bFKuIsW>uk-HBThf^eG#ZAnG2M@FK)@Ce zve|5(gPTuY_s)qp-3*RIu$59Mr3i&WB$G)z&jX-Ztx_(RyY^8^{W}8@A(cwuc^*L! z0O0#RT5F2MVqXSxrBXkF)*7ufuImy60o&W#J^QZf((Q|geJ!77v|jH==sFM)Y}+Op z-Jh4wOG~u!dG_}9ux*>$g~H-+r*qxFrc<lch(scN2s=AF#N%<2$s_<@wzjxBGxImu zOeO`SUaYO*6bc2>=`@3bgN`u<tu>`m2@xR{iviG{oaFJw2F4g{+vZoHP##k1rvsZ7 zFa!)I5{X;6T<%Ufoj!BiG8K!(!otGB(@LfC9B5cT3`h<P42*}v;o1LL=T4{dvE6R} b0Lp&=T;D!$sk$fD00000NkvXXu0mjf1?(vx diff --git a/interface/web/themes/default-304/icons/x16/media_player__pencil.png b/interface/web/themes/default-304/icons/x16/media_player__pencil.png deleted file mode 100644 index 73441b4189ea787b64f7943b5b5585a70df4ebef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007$Nkl<ZILn2R zT}YEr9EZ<KV32ncj44Pi6)aKOq{S{QN3(^pkZq7%)J2#@RvKYs7YSh@gbN{Z7TAP= zB7V}+cCnoM$mQ^J#oAh|iSy$wNp|7IulIlGKv2|y2M*_bp2Pe8UuLmb7-6+qRWc1S zSN;PzD$y~s*(|uQva+(8PN%WHzW!I}89C&Nj@8%K3$BvjbUHCKGz5pkfxf;zT+GdZ zQF##hqbjsEoaL90D>`N}nFQC?*4A*Y^8?J!zvJY?6v|pw(X7nH@%(()E>+{^c@xMX zS9Gkdu1;`0nM}fNw_{;p0jX39ySuw+lrN~RJcg+*3q}UIK@Pd1V@9J<(40sl{<z># zO*s+~AKr(j;PJRX4!P8H6&EvRFc<_k;_*0aHXEOV%jJUK??>y2LwM2o0B_yn7#SS{ zIpn%?a#%=`7}M+Zf?LsO6pM?C|Ad?twc7SolE#9Pbc$6~RS8-nkqGAJ=lLgWZf;_4 zZ;wNJI-_S^uNRG4?G!pXFd<1^rqk&Jx0jcfF*i5Ie-(ur8yg(j)0zLB9lgE1$Ye68 z$;<2RXRL;4wOYX)dc|Nc$cIPa?CdOu_UWV>Z=5=0()UnWS~{&zD9T?ld1*8nL0dQ+ zhR^52&dv_Dwzjaew8V*j9EESf$m4;YO4Ob{Y%eS<WKBvXV?{+ptfHcVxEl(EFf%j5 ze-&M_y}gYupT^;vJj3IDn;P!d&p<9U)bdqOP{2w`O77G5dpsUKs8}q9Z}AYk;|3nT zlH-ZtCwxZaQX|#@nOu3b4Gs>*X$FBnfHQ2r4E*>E$5RcaCwusO$RU@SUoBI}lx1aQ y)n;dBx63>h$mg(D?~5K$?RWlm-cBwx)cyq4{V7hLHEuTm0000<MNUMnLSTaW22#-g diff --git a/interface/web/themes/default-304/icons/x16/media_player__plus.png b/interface/web/themes/default-304/icons/x16/media_player__plus.png deleted file mode 100644 index ba11ab750f432fa263b815d9efd42c78614e13ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmV;b0#*HqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007UNkl<ZILm#L zPiPZC6o<b}HZ_<w+h#YxZZu+16sd|}QN&`vgIGLP!HX9U9uyQo{DTsD@}z<nPa^0^ z5B>p<VlQ4qi;9J`q-ZH6mF}jHwAQ4ZH{+os7*XG8n8*C)`yMma@bEAImSyz;`++Y0 zUyHyyW6W0o+ZY3YG3G#_P`KuKUVn4%&$29wFbu~>Mn-M{YXMs8W<Tk9UjOLmD7I}= zuh(fb8oa%6jrpj}N-Dvg-P^f*`$50fI@vsAi%9DN5#j0dHtf`P!mvuEQY9aaG7+&k zwQn=u8Zkr!5wThUzY#=4gdy)E0|Pdm=i$12TzmqF-V8f-y5xEfA|hz5Bdq|XR2#vc zwPn`^uHL!Fe0_;^HI0a%l(PP+ptWXsd6{CdNOyNPj^hy2YP@;*n%ux%mX-{gHtBYS z-vS~cLO!2wBRGBkd25|X)11Ly6(UM0lu|^aQGDOWbzJ}|l?vr@xrvWb>fbXE5wh7V zuImzpApoA|p|$4Rrz=dZer5jX+{v!F_+3HT6|~l9t#KTOFbpY`N-ccHaVY*Map=e( zkG?<NxX@ce8{MwZBoGlIkqF7;+IzY5=_bXWCCrLYl`5tombUc=3}be+S|yQ4v?&BZ zKsueq_k92+CMM}QoTdktP=y>iF_;CiqtD)8Pfbmc%jJm2<F+vdtu?c=vxo?(R0@D? z(Jg#_F^(~Yj^mw7Jp58t2|b6!m<_C-nVIR#WHPJM)6-MATyCo|h9C$Cf&hRE{#o$h z%=_~!$O7i47z&F+z>)=|0KcQ7V{<GP+w;Hg+{mkA+B0cWF=OV{>UE&}3!a!!&VrA` QHvj+t07*qoM6N<$g2v7}$N&HU diff --git a/interface/web/themes/default-304/icons/x16/media_player_black.png b/interface/web/themes/default-304/icons/x16/media_player_black.png deleted file mode 100644 index 4e7d7189e4583c517711457c449358017d75a2d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU_9aJ;uvCax^<$rw^N`<>tA-> zCMBlMWv&t}KO8<U`{Cqea!_FY4HqM>dWU9@jG)68+}QYJzATuq!f|qo!YPiW9RiP> zCa3Yrh^~2O#lb53>Hz!fz5Dm>crG{h-ERxiKGVGa4|hEOXQf`Z|G(`-4+Xh??}t5n zv5^O4TZ?w~M6GS}TB`Kwh=cte=jIub(nnu4`L|q{%6jK`lHr-$809^m`(BocKGxRN z;pIJGVbk+=Nz>C8Ixm1Kwk*1+;k8s~)>*ZXP}l9Zk1i5h;N$zKq*(5Eb@T$~aIp)0 zE=v2Ey54b?+?u{)m*vr;uCgUBPBF<HerV8jRB6>!tyf>Iq<Y!He3ft9jW~Ssr{Fh! zKF9WTIuA4@cn&@O_=i(=*QSQ&4hjs*FLQ3c-5a9S>a<WH;jCOb$P_EP`TTtC&Niar zlTR*bFs+_*aiKPM#Y6R5Z_A#1uH2ZhF@j~y&Bq{bHoPj@nXol#;_0Uo{FXobTEz+# zKd^d{hQUmqM=N(sIGF-dd_ekrhKW?7*=#|s)(L0RAZqW<@2-_<mf~k?emMF2mYX?2 y7K@#?Z$BJ6H!j&p`Tp<S^8YWq+<E6>J>wtdFcXHUcddX?%i!ti=d#Wzp$PyQ4e6f% diff --git a/interface/web/themes/default-304/icons/x16/media_player_medium.png b/interface/web/themes/default-304/icons/x16/media_player_medium.png deleted file mode 100644 index ddabbf5a86865f2f6af0bedf45bf5b4754663c1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00062Nkl<ZILnoj zv1=4T6o<dLn`6P%z1;1xxfqh*p+t^o5Dbb%u(nR)e<5OFKnSU9#KPKtK&|Y>6xvvc zAc@7Yw-T_37nWO>WS{KpScDBE#;CvQ@#f9P_ZUX4tgHZ_l<EUFfODLlAHWA|Z498T zwE$RaZ?3Jatp-7`Q1^~UDaB|s`n<lr{unp_R8>`<d%o{4Y;0_xwWcTvM1=Q`R@rH4 zes*0Jug>$}$@7J(s=WG=HpbL-!x+QM<Py3&&uBDecX!O~W|J=s&E4yB45fuJ24hU) zB!Du;a3}c4(vl_!0(`&Ey%*q4g<Kx^%ud~^0qPJ?mgNzH<GFC9$HS-3*eP<Htil*W zS(bk`*xTD<Yio;%i3!^6Hs7<1x3AwYyL62_w@gp}#b9}P834y|Xt&$kfAx;>c#Mb; z`222g9AJ#W^E~?fK3Z!4CMPF}<CrYVP6enM(ChUmih|9}O#lXi0li+2G)-%OI@O@n zYLTWXN*&B)Sw^SRsbAplE97~O>$-HiT>xCyCC~E{0gWh%5D`SAX|1KIDz>+`sj7-F z3<<;VNY7e}h%`lnD2mW|o)gD0ola*zNs?%0X6B-ZFdPo?JnwJ?5y5dBk|c@JG~G|r z6cIrIUEsXqICEO-#eeyYWm$d_k*~lv1)KrS0-FCz3FN;3DP>7Wd~xTd00000NkvXX Hu0mjfG$;;C diff --git a/interface/web/themes/default-304/icons/x16/media_player_medium_black.png b/interface/web/themes/default-304/icons/x16/media_player_medium_black.png deleted file mode 100644 index 7fbe8d6a8d43b232a7c7174fb67cf1a86e605779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005oNkl<ZI8T+5 zyK9<J7{<M9jx8wGrDV_{p;#<6h!}K;7x03LC`bfB5NtI51sO_&EbSOHlK}}1NxF!% zgHS3hy&xq?q0n~u_6!+Z(&5Q@4n0!H0m%nHcs=j$c|0F{CacwI`bS7G5KNXphpx=2 zFgY$3i&w2y3(aOz3wLzr>I&Xd>h*dU4u|OX`*Pm0KSa#wKxB0V?NVG8(bW}98;u6i zdtZ<{xW>jy18X}Mc;U3;xyyyul`xvc6zI^^6@0AM>*#j7n9XJ|3<LA|95qo8e)bgO z{X9;NUV#o>UBTyCt#+rNv-t#nE<fPYw=pJ@5$Moe6j&@4#n)=JicY74!C-*VXoTr> ziuU?r9PaJn?YlQPIXwd%x+?d7!K_lLpin4Cve_)+@wkMuI;TTdS8!e~myyfmkVqup z^ZDTQdL^8B#vL8Hx`H32QVE$%W)Y4=A`(@?9UZ#5f}gx%GMR+i?S|j)mscm8dBz<b zy1Ihj>iQm!N0QIyCF-|&4Z4d0v)QZ)4E|dz7DF%?giCxp4u?a+nP=S5q00=j^5G!( z9tws2rqgMpQYl2EQ3L`331^;hM~ChrES?8~HNm#vm*8dzbm%g}tjQ*@3m)AQW^A{a WK0kbT8{@?Q0000<MNUMnLSTZkA@KMB diff --git a/interface/web/themes/default-304/icons/x16/media_player_medium_blue.png b/interface/web/themes/default-304/icons/x16/media_player_medium_blue.png deleted file mode 100644 index 1edce9727b32a60f26dfd350a9995ab66c670018..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU{dsSaSX9IJ$0g^$K*trWA`^7 zZ))ulh@Gq;c2W0@K<P?n*;{;N8@)Y>4TE{4&wk^Lj%IVraW%=jq2Sx9SbAZ}%V#s1 zH!22azEJCAzua5)al`WOm9PI=iMY!DdGPT6f7|!p>t+iyHUzLVhjl7){%3aHxhuWR z;Xt|ibZvXh>4uwj{&e55*!lZ)#=8B_j-EKicIcr&(nblTi5;irPCLBgLJiCFKKbU$ zWr8IyX4x9rtf`dLm|Adi_OYqyp>t%l7VlN>f0xGXw|(2Ak6-!j>?-2~DSP-iGtM?9 z-d#h)$!xZ3WZd?+^^e<Z7CgS<d4?zc=#LBmu%fS7Zndjd@0U%OW8Zkb)!!p6&A?ik zU3OQRe}&Dg>-=G12@-6JE^0jbXd%?eGAF(7(a!6=-{sW|?LP8>^_OKId-weFi}<*( zAKa`yVOm^iw#%Kbzv(>a==&y4ul-($)WRge`+R&CGE79y%qetlUw2cOnR(Xs@~7MH z`>6%qx_^9n6z{wcuY+eK%RvTSyuN(qi}NWDCftvmY=7_gTHPJfrolDpO;1}De(LV$ z&l>OEEZDTYefcMSWtgG4xlR@`D(@y;-)m{!?*2*l_U_#)!d7#oodbqzc<GH$fA4OA z*x2N6FJG=dchvQZj!uGy*u6DtHD_2p?&FKS`tzsEq%GX5w+7$H2|kqP|5wzi<mS(d kqP{}h??2ApaQTaDLA!{jk;h$LV47j@boFyt=akR{01Y}D;{X5v diff --git a/interface/web/themes/default-304/icons/x16/media_player_medium_green.png b/interface/web/themes/default-304/icons/x16/media_player_medium_green.png deleted file mode 100644 index 38d6be495237a9bc98c1a0f8df31ec152ed6dbdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006mNkl<ZI8T*~ zOK1~e6h{9xSrv4l5UE`#-L?b;AH_#&x)9yyLKnJFSK`K3cRmocB_q+=Xr#7Ds5P-e z8)}pK2*H9uNU$Oj#A>t+tuRLHlakozLdfTQBX^}J4xHg~?>WD+_ckkwyUk9MvnJR6 z0Uf7w=FcUZ)AG@&@Ygg##nd0+jSgMul)c9#bc6~i1Ofp>A`yf_A!|PDSczTLtI%9m zi<X1CL5Hq%${ySy+`O~+413)#v9GIurZxlhr^j%-+JQ|qHSivB;pBlmphH(WW%oA; zw}SIe;rIKI$z)&{21=z8j+zg+Hmpa&vmZm@4$z@1ow9W`3b(swM}B)i+v&vQ+Z0A$ zC6G+UL5Hq%%GSAE=<fWIfTn5Cbsh0|9O-l#Ee&fCbYH}ikzou)W1vG<I%V^16N0|{ zV|b<pEdrks7@5ylaF#tCy3#4zjjckj*LVOeHvm1KMCr$Ol*?rc&fM`vhpu$Wc72Nw zZvPlX+Xo%S(hR0c3-D&|TX5!%H#&5sQ<Ya61l=<^h)eInD1KYQi@7Y^6a5yPx#Nuv zUFlTimCZs#n;5`_H@(O$82DVAMR+D@!I?YW=+Ko;Rn#t5m8}~|%st+Z^RIj0AAf}D z#W@rT1q;sH@kWO(8@AS0v1Xa7IJ2(rSgL)#^?e^MXYaw6i{WAZxdmtLc%ws?jeILi z>Q!U)A$6i|Se>dL{VR0nvia4jDiepv>i>jI)lcBw0ZGr$0v!MV002ovPDHLkV1kPW BANT+O diff --git a/interface/web/themes/default-304/icons/x16/media_player_medium_pink.png b/interface/web/themes/default-304/icons/x16/media_player_medium_pink.png deleted file mode 100644 index ceee74a3939194b5a2d9a520db65254e8ea72c28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006lNkl<ZILnoe zT}V@L7>EDoTzVA=3$qJ}?vg$rVsuk>AqA4q2WXMAvIfzIA_YOB5Dua*y0F;7YUZ+O z+uY_FGaP}VC}K#NeT<^!LUgT~IlTz>>--MBS4Gi*XS}@c^PC+O(vK(-*6mh<E`x!8 zK*uVb3K~C)T+7<SQwtpl%(svJ5#H#~l}-ipCc#I^<#NI6^}_9Tn{$Ju6x+&{Ve9IZ zXsO?BzKE`L%BLR`{6Ee<LT%?W?7E)E=5uLOHowHNG7C1Am*a}93McAzfDT>hRKMOR z41PZ|0;ki7WHO0#I*mf1fWyWMsy3`g^!#r4dM<+wUFlSxzF!FDP7nX~0!Q^4ydNLM zljl*y;}OuIE1l}q_X?qz)+ihf2Rt4RB9RCZi3D1#6}Zvaj@a-ZeEtCF(3MWz*6W0! zspcVkun(9_wng#fZqkIa?CH>zPIYU0ga?`9L8O}QA#*W~pR)@n7K<jFxifEuLsvTG z)OHHdPe=WDbHIbS)HDi{IZU+PH{r}3Z*=HNr@FLSA;wR9)zE|a{2a2e3A{VhXTq5~ z-ssSkPF>Y%gopgZ7yE7@H=f4q#~DmJ;wGHA<Bbko>C`H%R9(=j$q4^#tiBs>JHq(( zIg5NgZ^D^7-ssR}!`6H%v?Z!d+ti<^x%BmQV=pFbcaS<2K<4IS6VBZ6Mu#pNd6pVf zZc!_2C)L_ei(2>eZ_uI3X0cTz1{Q<m{|TFtUz}45rS4$m+yDRo07*qoM6N<$f~o{6 AYXATM diff --git a/interface/web/themes/default-304/icons/x16/media_player_medium_red.png b/interface/web/themes/default-304/icons/x16/media_player_medium_red.png deleted file mode 100644 index ebc148386d3bfc14018bf38d303ebc54049f28b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006LNkl<ZI8T+5 zUr3Wt7{=dg?<$(iB}qXLjbirC(y~noD>Niw8tCXkqNr$51VMTc4(h_7o7kdYmC=l~ zFozXnkYiDu*2Pv7QN+Bf3_obl)t=7t+2LFiMF)QH@V>w2eCOhmK@lNCB5j&+jrs?4 z+DuQ*SjMLVyPVf8{U|l}{Sofy&^0|dZBa!nB@zjwQYj>pNjLX<7NOl+i_ofNi1zLT z9lE9`r!4AK(?0AOevZAD9JHP-!+)%Z!(I<I_<Xn!3F2r^C+N^MJvm`fFV=?<kH=9c z6i_agQK?igpf3on3t;kGH`3QeK!>jBNz|h9jorUp5ZkdDA4=1BswOctl?5HTrYA=% z>dBfe#9}dwj*cRm%_5h}A==b{%fmx>@bE6ucQT+u*YxC|MLqI&Vq*Drm&c(9ih~zj zn9ZCHUDJ~Ri@LvZH!=+&<a&?e$Lt)c)v60KXWY@DYkIQZqVBC|$5?$UKC2RD-+e^7 zIqbsB8FzH(nx6DoR7OAXW?c)uf1AVGE4Pte8gyaij5|7XO;36(YD_;dS-S}{`Iq?m z<~^Qu9CBgij5|7XO;0?Uu6fig{k5x$H)5jW0KR;hf#WzX%$#vYhb}wpx@UoAoBqE? zylb5sOSa;=ZwoS;!^odJ@50O(cXa5oW6na2zg{E~5Xm;`+y4d~y6pVwN{!6FrtUvs ar{*X9D4v+eCJ+<=0000<MNUMnLSTZ}T@;D{ diff --git a/interface/web/themes/default-304/icons/x16/media_player_small.png b/interface/web/themes/default-304/icons/x16/media_player_small.png deleted file mode 100644 index f976ff5ffd24cd70f6e9e3149ff2f95f1518cb9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV9fS(aSX9IeRT5fET%va*L+zK zl~&if1NTmyI(5v+@j|`_ho=I|r6uRwIqd}Ge;g3kTD0JYn2w9!l~c0US>LL*GIv|2 z7hjuc%$%$;^MArSdj+Z9SrIy7cAsmM6JvxsT^^)vjmk8T$S{%0G@G4iH$Qu4OxEU` z8T;?wo;+(#oJ@=`SL=gPqnRsi=B&D#xBB+mTZ!$59hYBz$z^J}*J6j71ka({1r{M& zqe2&73|M{jQq|sTA1k(epXqaK-jyd`9zB@lpuix%H_rcPQs7iC*R4@!*X@nanR5R5 z`hdxoyPLEB)Y;c;sxq4$x-cMMWyqzx?VI1ntiKMGtg(}?xj4aV>6=|UWBe|^47vR_ z?D5BlzjgN^MoX=~&VB!BQRK&pm`)d`mnFCI4hc`xgP1GB*Z#4>#=hlb%BNiipN3k^ z?fd&_&Xwtm7CU14{g!{e`?ToqJtjUqX1Q}a&fDDWxV@|V|IB|38~!$XOCFx~0~q=Y Mp00i_>zopr06px;q5uE@ diff --git a/interface/web/themes/default-304/icons/x16/media_player_small_blue.png b/interface/web/themes/default-304/icons/x16/media_player_small_blue.png deleted file mode 100644 index fe169fb6db9b9597e451d9449c6217b7b614a7ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKVC?X8aSX9IeRQ(7w^N`<>-Qar z%<PW;kH<gMc;Of^(fmrB2xnxb>54{Mg^U1!D;gY^IOOkkUHZi8802Cl=**J)Bx^mh z<#e{#9~R~M-^$PJV_(NGVZXxv{f#Y7N)I=<cb0S>-?3?%TiJFyyA6LnHC??PzGna4 z#K(VSZ_k<=zIwy!(#@OF&c#_Bo0>4;O}m%s85`R~yXl9MHg@>leX;qf)9$<P4$QKw zekl>o#8@P7<?>#B{u$>|45pt|ie0_%<KNznef}}=v!|LCf4gM3PDf|L;iXQDlehJ* z{9XM+PX6Q7oJY%Ij#U`lY=kH{b8gb&pU=~GJTCNE67=EDy+yY&4y+4#;J@5@1K1Iw z^ZV!gDE;#=f@iVSy9lMmmbj2m{r3_2xvuWdPC=ZZ(>*7$>eYdxtZe%FhDD{U`~8A0 z2*1|)dk7-^>$mHjcg3&Y@i|}2NN1|+3YRYbR5|C>+2Yi*bM}_>toC1TF}M0rk?QUy pzS!C-k@id1RrwzO`+fck^XVV0k;3x|3V>0=;OXk;vd$@?2>{_j)=&Td diff --git a/interface/web/themes/default-304/icons/x16/media_player_small_green.png b/interface/web/themes/default-304/icons/x16/media_player_small_green.png deleted file mode 100644 index 496cf0c40d67ec6d2555c258e824739babfa3a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004<Nkl<ZILpP8 zNlQXe0EMsVszr+yE?U;URf{O1;ZO7%+6F-bQAXKdl2K7<gI1`~EJaabQHw&biA>b6 zc~nbNniifsZ}Ilhq6Z(Bb2#7Sy~Ps%#9t8qe}QVUN~p|LHEDDiQbSj$CMt>EnmoX0 zcnf2%E|}xHu)OcVme|McmmeoTx6;YXo?AL}h00Vx`X}CYpubsy;ogCPr!|-(+j#zo zA(cwWFtg{D4qc%fDJO%*uoK;(IrLsHqVH}6-sBCE-yg7soY0(Dq?4IFw{++V<zN{Z z9eP|xyWfh=i&^ws&Lj4jfF}}w=6qU)nLW33=nAEwl#Cm09cVeTpv^afj(`o(WDJL| zLFld)WSH4=ONXvd_Lh(-U1$M~M`LI{okXj53hrkgqKP-GM%*yIY)U6Hdv58_6<J-y z#HJ0{QRf~;y~l{A<8gF*?eK@M5Rb=YnAvknhptfM=ZGv#(XuvZN5i2>egl3=m){QC zwF?^$Zs}xZ&n+Fgd~y}l1tvvp;a*0h9lE?AJB>O`UWTY8_uqe}Uoe7s<bn+p761SM M07*qoM6N<$g8lZ@1poj5 diff --git a/interface/web/themes/default-304/icons/x16/media_player_small_purple.png b/interface/web/themes/default-304/icons/x16/media_player_small_purple.png deleted file mode 100644 index cd2ceb6832f71c1e0a137ba41e1d904cb05a75e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004nNkl<ZILpP8 zJxfAy7{%|^rp5+``aXS%zJP-bYAB_dqNzw>mV-rF4Z0dc2}Sfml7@wqg@HjyNrB-d zu_jN?xuLr>B>edE9M12#Z>RuJ{(|!V3x<Zgg3l~O2E<HP<T<jCPQPP$`5uWx4XIQe zo0~7lWEwa*X`x*1=qG39?9!nt@+?_OCZ7=q6cCAAAr`yC#zqZqZ(rzkyL~t_XO|9L z#b}%%E32!I@OsY>3|?Sy@fwxN2iom#x!R57$NI^cIlFY|itHqbc)SXi>j*wy9^r5a ztyTx6(yP9-2WRH&(xEHz6j_f(Z{cw4!|gtX-+zu~^Anes4gHaNaAwXf9l9c0$rcM% z>n@zm19&{AC>HBd*08hlB)9yapPZSqONXvvFieun{Cp7>%QkGbJxos@%46hFtu~-( zS|85L*`-5QQPnY7V9qkM+jF|iJK(zrg$nZND#+z(`pKF3?*em{E`KAcI=-f=6Q_eQ ozDAb|h6R%_Iv^(9{r5l94?OButnXQZ1poj507*qoM6N<$f&{qDWdHyG diff --git a/interface/web/themes/default-304/icons/x16/media_player_small_red.png b/interface/web/themes/default-304/icons/x16/media_player_small_red.png deleted file mode 100644 index 9b3159354126dc2929a20950e945fd057dffdf85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004=Nkl<ZILpP8 zPfJu$7>A#8-`C1<Qjq-9t+WsX6ET=DGYBhM^$A?K5kUySHmwxF-K>I^BDC>S3`n{d zN`*i)6^w`=6J}F5ck*7(y?0vZ9aLyB%%T?#oU?eI^E>c6rd%#l%Q)0HH4DrvU|=4| zRLOoS!-PgBhs@~kSf*Gkq9TYYjxk6>J&gl>T<&xUzW?NKeT%4cgx1xuxbhAF4NrBx z@8fwMB7%r;rR^HsZ(h@Ix2tkx<IY$1US$crBNEQBfCYjuJh$A*5yWj_d3>71u4gQd zPa|#%?&JtT7?N;mlLXe{TZ_ao631K}>}Nlhr;y8Y2`J?9>_30R^(PPTttH{~_;eFk zOK?UIMG@i{no_CC6T~q@QAA)Z#}@?`6CA9p(f)Lhju*pt>szD;`e=T9pM&?S_-6&d zKN4(a7pT8|gIjYiD+zvo{=#N<0b?x*r%S*?AO;*&L=_Ri{yJoJY=+jMd!+B&#QXMx z!iNpQ(jQcn67cb)Lp1lo+cfl4(;^Rcw_(ZvDIg7Kl}!u*&;0k__!qkNwUc!(*pmPN N002ovPDHLkV1lC;&-nlV diff --git a/interface/web/themes/default-304/icons/x16/media_players.png b/interface/web/themes/default-304/icons/x16/media_players.png deleted file mode 100644 index b7d7f6c71d87b5ca0d6bb8b6ba6f582feab62f56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007HNkl<ZILmdB zPe{{Y7{_<>Bot9-41^sPI|xmXk!<4FKUr(cO&znQw^%Vm(jt#RtAhvURklM5ZNkK| zKZhW6!W?7F)e2=Uj78gF!DQh<BKY=xUlgY03m<rS{(PS2_j?tCgM*5pp&?1rF$q=$ zxieTjs!=GK1$}*e$AZ^(yS*_wItstve*(ssW6eK;Cdo$@&(F_ed3hP}cpR}<4AE#5 zp-@PQSko*}34DUvM6Fi;@Or)QOh#}k^d7#@Iy|#w+?e}?YZL46`Fs=<q`>WVlbeM? z;d8ZGMWs?X0b|?S+gMpyLA_o_I-SPw@Gu2mq`>8JkvlA2SXjW~;vyoE2u3blKzBzw zf^M@E&CJYTZEa18#6Svmq`={Dkh|q_8P3NUT%Y}kt5Z7|X}<`U?g}0S++eQ1zaJKh zMdEZiDJV*TNRZ&(-k$tvT({9^;J&dN9};tT^YR&(8yg#g$K!#~XyhwU@Kp-TW-}Sz z-Q7hv97ZCMKr)%cxIu$=Z(rd>{5hDjTCE5MgD@Bj@-AAxNdcctFu}>WT<*Ux$Ekrp z06jfDFqupge3t^fUQh0cS3o9{L8(;2;o+f#cgC0-7#M)fW`j<rlb<14t5P5WWNK?` z3#n8J2L}hp=kpTY8Dox<xqfeNFSJ_iAJO_r3c9+w$b)P)i;ay9?C<ZRSS(6-XN<YF zwl+5XK7v0mC{QU>DwU$Mv-2TW<vVk7tyYup&KPqVjpm7HxO|H9T;iNkshnI|S}JXB zZpxLLVT?J}95<Xk9W5;__SV+cX~EMom}ZS!`PBIfu>#(kF_`LJ00000NkvXXu0mjf Dq3$nC diff --git a/interface/web/themes/default-304/icons/x16/media_players_arrow.png b/interface/web/themes/default-304/icons/x16/media_players_arrow.png deleted file mode 100644 index 33b68542881863063216ce2803230b6747da0b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV<G0u}v<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00089Nkl<ZILmdB zT}V@57{|{=B?OBgW*LI83nge!f{bzthf`$f+Ly}Qhhg+#4G}*oFM<L`iG=gQi)<1q zn;UIuT0(;8gegO}=?rC>)}$F2I2ID#{X5S~(WE@^gNNt;oZoZK`*M1{o~x{^WTZXC zJfl3JLm2%%!*S_?qN1Wdf-$91nX*_cFq_Q>pdMv3^N%1+vPi?dy}j`Hd~mzn7#J8p zUtb?=HX9SsOu9hCW8k?(<mTpnt*)+yuGs;TZ2|_{G<02YRCNEqrN(I(3<eTJnLw-6 z62@pWy1c!;jYJ}G0P3x*tYCO}7`wZ>n46nJRaF%UJ~Dw?ttRSe*y(h_<#NH{aG)mh z6bf>(VAU#^sI#*ZQ&Uq+#4jYlDif5KmlJp6@i<iNL0s+njtecTsL2vSEy=@^J6cdy zR#t|Rk`jhWr6NI$3HX4pZf<U}L!-}4rBY~>7huxcjdvscpscpG7CM~{a=DytfdrqJ zK%r0&4Qp#_u-onMdcE-b{b-P#!}$BR7;+DSveMF0SglsbWHMIsuYP6%x;CCh+8hdn z{tIQaRoyX;D;)t8-+WAhEhdmkr9=~d3kU{-SYKbq{{B9LYU)v@(P&U;^W#MVxZFMs zp+uiNqp0UNi9|xQgu`J30s-vp?I9A0FsQ!wY5~`JmT>XG7=(r%7=0VCZvlCYZ+?nx zizY5VKcBciKR=I|nHeOLNyK6?2Gtd><9PN3s9OfAB7bR#0ixE)Wlkg#abmIfA$=;{ zGi~14*<ny^d_Do`qYpS+=lpiu>{^oaZ$J|UPTw9`%Dg^!gO1^3c6N5N$KzR_ot<UB zkq-4JqZxtGxp>|W2uwo@CoCS5uy&B0V@^g!hEgC9wDCMWgf^NvQrP4^s(!g}Oye-| c5{?AF0JTsN$BUnYD*ylh07*qoM6N<$f@%a(hX4Qo diff --git a/interface/web/themes/default-304/icons/x16/media_players_exclamation.png b/interface/web/themes/default-304/icons/x16/media_players_exclamation.png deleted file mode 100644 index 7ae760b68dadc9b95beb3bea5f5e4c33f753711b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmV+e1N{7nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008YNkl<ZILmF4 zPiP!v7{-6|&15z^&5k=ev(2vCXp+VyW&@Qftc8t<6hvYXg<J&1UIf8|UZm<lB6#yq z#gj+Di|$ne2J**qF{DzmT^iefM4}G6Bin4;`Mz(*gGp>jp4<Dryg#1z<uMi(7BCD0 zfO@^op)LdO0wqq@F7O4gVm;WMo10^OeI4Mv`T6<hf*^2{Bzb7lFbu*loLE{~GEM;U z`TP-N#P@x-R;%IrK2l2JI7Ujz-rgQblDNPKz!6{^r~;XMK2Nz^4&pfG$EF~i%b>A| zoiSqJ5&pHosJaCp0IYt$4{&L5aq)v72&PZ797Pe$<_5E~voxD2u3y(D0Iu)*(`##M z7=}T&+hz5mYuriORG+T!;g?^ty}eB~n<a`Olu`gDfOS|HN-4g*H-SDg&hBo=lqo0` zT=HjKlv1p$tgyVi3_v=a{@=kNKxnPGa`q;*T82`o#HT-x^5Q$Mb6{oBTJ!v~`<x5z zakH7>)~{p74unz)rIb)g(d~BG+S+1sbCaIBPcJ=6=O2NL_wml`aQWqr87ut_#3xP= zN-1V$W{#it=I7r4FkFCx=qH|-yhz}Clqa9!{N26N9Vn%6U6)FwLZwo{bzPK-i94%I zO<&@*tKTs>^$g|5{=hW<i-3?)BBeYA6pKX~jRuWIgJQ9W+`qx#-~fXI_o>(Gi2k1x zhTY`iw9$SDptVM8jg%6{ac~?5DPv@3m5iU|_x25b`2Kyu-farwk0furLO5V?UPMuZ zlv4EjeYDo>?Cjuq9-ilM_x2K&8Df}sutmsAS3bkBIy_oX;>pROp=)m&6K1>J&f2zp zp<1nu=W@B6l#*7fMXS}K{o7ZJoNF`WMA#zclf}27_Y1ZelS&CQMaMFL$5W|P#kTDW zfcs#KufBTl!f2^KY#3;JAnDq6(zPvmM{^<A_!kRRJ!@$L0!sh@002ovPDHLkV1gm@ Bdy@bF diff --git a/interface/web/themes/default-304/icons/x16/media_players_minus.png b/interface/web/themes/default-304/icons/x16/media_players_minus.png deleted file mode 100644 index 1b266f250a86aca6b631819fe986a3700bbb7fab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007bNkl<ZILmdD z&r4Kc6o#LBz074C947CKI*gZ0bQUGFXd%UzMw^gU;!1*6ty<Ks9~)h?w`fxkK@v&0 z7g9|BfE0yL2M4{NqS$1Y8g9+~&NtJd(KPMAw>Tf?JiO;{USn`@5W_G4n3$NL7T1A$ zK!(#}8+ZoHSVw>R`udogn*+Gt-`{^VnM}s3)#|ZM!!Rfoiyf1blg0@^DwR5bxQ^q* zbGaOj<Dirx3`3Ms?C$PTtybfJ3vd8v2fBfVR4PR_n@xsc$cMa1w6OtAgs}b`p?QYl zmj&A7Gk^(TRVo#L%OfKr50lAc*J+Y{-zT46ptrY|eBNesRG$FE9mnaKot?!n41yrw z<KqXcMI&@yy1=97ZzvQBBoYaH-$z6M>Hw@-Vu%RuH#*R<cDA>RoUb#<w8Tj@#Ssx^ zW@eb0ngSpijs8_o1DINCZZ<8E%QcY6WOy>)#*MqT_-Q53TGQOzOsQ02e}Dg&0#if~ z5mQ76f`H}aWfm6~DNBiRw2dFXOhkm8ogLEYG`0E@BbXvWPfyR`@@_wU3qW%VhzOQt zAtGq4(ORDl5D^+18*yD1fX&U#L&>&nv$3&()|%SltwF$2N*x2F(`i;#RsiVi>|}3m zkIms>u1!xv?c^(3(+`OZygURPNK;BtUtbS^QVOj#UsqSTGcfS4AEK|u#;#bt?-Pr~ z%u1z#)*8?A$YlO_$n!k3)<`zX@c8(yt<>I8f(4(f_4V~cYiq0WJg?xoZbuLVtgWpb z7TLB<Y-p(PZhrp7*4EbRA^7GVTxso{wQc)CBoes@#Q$U8?_n4&mCNN-V120OBpdh* X%n3pf2fRYb00000NkvXXu0mjf1vfuk diff --git a/interface/web/themes/default-304/icons/x16/media_players_pencil.png b/interface/web/themes/default-304/icons/x16/media_players_pencil.png deleted file mode 100644 index bad68cd1cc40367453f30b250693a8116297c1b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmV<40wMj0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007|Nkl<ZILmdB zZAjBm6o>zRNY)o6iv&Y37OWx!5oD-~Hk(7t#@d`R%SlLLG0f6JKNtp%0wFb`XiX%= zHECkL6d{C8*v67+t<dH|800=ED67@{5dFI6k}$0<Ja9QL&pq5DR8&+5Mx&9FbWStI z8G-*W{-;I|k_Aeoa$7J_R#p}>o6V@Hso4R=C`UDa36do5sMuz+VPs?kPNx$C0|V&m z>x0#5<szy{7DyQ;Mm-^u$-Y!oRl(3~#|7&YOx76~x+6H-`xOOEGccJ<BnWbWUau$4 z2ZO;6(P$K_tE)Sp*y7?MMn^}nv9ST4&xgv&N)mkJ0-a7rT&Ciop&>XN4%qE>RA(GO zes(4-dNmhyb#-BSdYX&agCtnug7Wfm;z}eEfwt3+Gu`XRZCOHf=0WJ>M{&DB56YF6 zmZGGjgrn7JNf5duih{rrgk@!Ag?}228;iwoLzRy=u3k*OcnZqZ*4DycFhHeJp`ox4 z{i68YD~d`%tyU9_%gf8?>FI&X<$~MoM&rrjc=d7&&zysxoJOO8#bV)ti$z61M+e44 z(aqP!Xrh+`fxthZ9NRtGThDPpB9TCDTH3dMLC^>ag@U-wwgA81k8n7Qt*tE%-6=*n zOZ_R_@5n$R+J?NmJfx(gtZV5L<#IXEGCw~LkH>>}JdTBh1rFUQ=5s&6z4raQ`Bq~( ziWSnIto1$L0<#e}=jP@xJ3EWb%}s<tAr9SVrXJw6L&2M`n#EtT!vZybW>^?fK`NCB zIXOA4G%D?xUS3;U<Gl4uU~;g4H+No>MCuHJo;4jxBAtfVmz9;(JUl!c_Ika1<ZYfm zt^?vB*zO+tQCyh*aJymm$(BeYWvQvDZHzm~upEr4J)ce-+53oU_{h7?Z|-OCXnH^m QX8-^I07*qoM6N<$f^?oz>;M1& diff --git a/interface/web/themes/default-304/icons/x16/media_players_plus.png b/interface/web/themes/default-304/icons/x16/media_players_plus.png deleted file mode 100644 index e29e49d58fa83f22f8473b40b768608ea10ea491..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmV;@0xkWCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007+Nkl<ZILmdB zT}abm6o=m%8^xwp6gg(XE(}Q_2DSnRj;6?3bKh%z-h^Z<vDC;*tC6}3H@Z?bC`+3# zS=q-$5PpEl(5cN(=0cg|1ck{$!n<Gp^HMM|2M;@(bN<gcyoXsV7G||tIT^nj0%HP^ zV;K9}!&s)EyuAFM;Dc7HO*b?&puWET5R{`D^&AmoNS3I1U|;~FqoW7}0vH?|gx~Ln z%jM!C>d6$y1snoRL}6j!PrKa?bDIx!t}k%7CSdMM;Fk9nuD4FW;c$>3$^|BqiKvZ6 zqsz%;5?fnahoIcb$_hfE5K^fWW@l$%v)M@SoeK;G1JO*)LqkIt9v+6z=R?i;vnVad zgVUtpBDdR(@$qpk5(biBl?!w_9dR#_NI?HAjGKMCxYE9gn!Ix`C@-Pwt_f7Ds;WXo zMFmH%*OMT|1ww&vuCK52N27Jq=`=djrT7~3;^Vtlpju;NBg|$q)M_<dfdoIeK%>zR zEo*CQ@OV5327{QKoJ5PN2%kT_$J@YbP_44E5>BTRDwT@I!lxTtKxY$ZrOA;<<iAjj zrWSjzLHt67{3k^u*yMt;vNGbKa0P_JVZ`Hc92^{QD5f0Mj7B4JyccmN)q!kJJ_(Yn z`XpmYrIKi0SXjXH^fdPO_p!LR$f1~W#!wx^JyJ+|rLgWc;Z*kpu%|h{neR+LQz#U~ zqq(^`OifK;Z*LE=Sd2q4<%(Wjg?ig`1m?+IW^%clm6Vh`rd8?AG<j!dheI*ts^8p3 zR@dom)+6~=yr}~Hb9%G=^bEN&nXGMOWF$T_Gs9QTgmP4)9@ZsZl5SiU))&vSZV3|v z{2dEKB9T@ik#q_?KZZ`~Vbxgy)|@rZ?w{yq4@6w>2jv<1OQ2@9wg3PC07*qoM6N<$ Ef_hO()&Kwi diff --git a/interface/web/themes/default-304/icons/x16/microphone.png b/interface/web/themes/default-304/icons/x16/microphone.png deleted file mode 100644 index 5817a1cfb4c3e28889a0b91fc388d85319a81058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006nNkl<ZILmdB zPl!@c7{#BBx{3r{6t#UBxQHYPU5X3;po3r#hKp<yL15D?#v<G`K_IR|ALAdU#SF}- zppuS0-@<INr63`UBPO^SXd}4w>z+3nKC1^mKkhl_9`C!4BO=b@@%+K(^KpSd!1(a; zd4?aXp|9q!4{+-RUa$8~I2?Z4>-7fpdY!u6?f`4(|1EGh9IHGom&@mcLV;$p8DZx0 z`E%&2IYoif>Ev847iYCv!FDE-p}}B4nEifVp3vbVhrFVIy(7n7702gHCexc*tw!;9 zoJOOOJWHh#L5GhV^8YH>#HH!=`ggHdj3h}S%toUjPw0zF-TbS-@Are}!{LxbQKa#B zOw;L<=JUCH50lA6*5M<EyrRJEc7qqqrbNMDkdnzH6^li}SHL9-f<U2Ah~OiKyrRHv zw}VKl)s_n?mCtl~`VF6uI-T!St=8oN_{brzD6rXVU|SSh7m>(I_K#^gIcZS4-DY>t zq`kcyZEd|G_{brzC@`DN;AtZ9Q93xt)6Pzmve|t)KF(7vw@=aNYdSnE5Pam2R}>hH zMvmusi^cNbeYN`KXQd)iI-R9dDkYx=Yv}NiLtar}Fc`pwPN(zmyfMDJoA}!4{P=Zt zc0rg}Lx;b}DGTsuG#XB;)neXeJW;FF9|YkOVPXw^;mi5;f-8)xjO&b>02_~vM7dz8 zF>WxfF*eo<)C==2<33QSRFAM3bEz@zF>c|&%Yxs_4c|`Acwx2x0000<MNUMnLSTX& CZZ7}; diff --git a/interface/web/themes/default-304/icons/x16/microphone_arrow.png b/interface/web/themes/default-304/icons/x16/microphone_arrow.png deleted file mode 100644 index 3a7c89755fd2108f1c24f8843241cc6ea334101b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV<J0uud+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008CNkl<ZILmdB zUr1AN6vuzoW)Eq`gtT5;3#0_e(iI59hyB5cp(N_1nh;V5{tMIy-_)pvlI0w3ibYDg z89LnD<{s9v^)PF?QgW_oEefHRfe#Vv+dWrjVszoN!#(Hw``q1g833lyXm-(RwXD3n zTvoAt)zJ^#Q-5zR3EM9yDJeOv)9LPpLZPtJ=|nIX4AVXJ|0^giF5XM^^z`(a)oR7o z))uH*ES5Fu@5>1Y0;N*PR4NrKEG#5i%w{vf;V`JKtgHx?`ZT8;<&y{k{v8?rs`U3+ zPEO7phr<EAUXN%rD%7c|DNvv0l%sr-y@FC&nnWV$?C9u#$KwH2m&+wo>hCPI^dCW4 zSs8IN5{ba=c4K2>1Mzqqi9|x!Lo5~(`ZTB9PF_F|sMTtses0c#s;Vj&3<gY2PJ+Gy zEzxK+g5x;QoN_yP0YRWpD2N8H*Cz;Uwi(RNzoAbEzyB@lcBdeqIpq|M{j8||5tH9| zuq}|w<wT3y?cHo>Xyl)0!tAUIKA(@@!5jt$htbs3jHZe3@1nltuSKTsT;by=%k5s; z7UbpS5w$%%PduZe7PPjuVQ6Rs6B8B;509X&tsP@yRw(<I<Hm0Qe>hOk_nF%j$Ye4m zl}hvT^DlJU?XT8tHaASBAq)%*pz@&;>fQyYdV{}?)|h|PSR?5D0`P|eXFG$OAjr(j zBo1a|WN4&PnZB#5=e6Je@#pI5CbX7V;@&z?8v?Gp|I6)9z{z%BKoHO+7K>SGYAV%J zJl91c(S4)wDI}`)#bdhX>sfU#KODX`9w-=z;PN{l`_@e0c)f#53J&n3@nrFwAV@Gi z?grIlFTMKN;u$ZH&W$Y`x%z_RB`hfr@nrMl@|+`5Qc^1EFx6yFbg|JYE;THPE;U~} flv}~l&eyO%Bc#@E>#yP`00000NkvXXu0mjf5It&E diff --git a/interface/web/themes/default-304/icons/x16/microphone_exclamation.png b/interface/web/themes/default-304/icons/x16/microphone_exclamation.png deleted file mode 100644 index 3e41bd421e9854147e18695c8cbf3a47a73d9205..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmV+e1N{7nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008YNkl<ZILmdB zT}V@57{}jZQ@SW54T|Wh=89be<_L#S*)H~hiex4lM0S%!U?F0KEhyAdh6Kj8+NLeh zWFNULH{Az0ryf&@$*|?-@Pkpz6iV1l#GcOc>OzbT{PyQO@1Nh!c@6;pqEIOQQd(L{ zDk>@jm$t4O_=ER2-`Pt;b_+^MN>0?));5Piq3FoS2n2({DBk1zzXFLwvXdIS-M(nC zSRk290;bt)Uc~vX9)${|QYn$iWTddL5NXis^$?9l0W%y9)5JNRV-NdjsDOJ%!o4a! zJ`oCq4_q!6s8lLgT3VuMv)KUWc#b{nr`ahe!=>fq<g_T2O7Qu7fa!L-Y2ti)sb&8N z%FD}<o3U67JRT3MtgOK1<|d?4DY}PvJWl6$j=k+Zg$m?yIda?U^+9!YHK^5Uuv)Ev zUjdh>)oP(lSp=-}9JDJ1y;p0_k~CCMTwILQ`~3kba5#owVqy|MA+YQexSS4n)0GE5 z){HQyKQKLGXZCUsgbKuBG1B1i_}A*|?{NR9gW+K}1OfqW2VSuDH^QX53VtU|FyoW0 zP7N}p>^p`aRFI#ak6iEUeBtZsGec9;JunzvgUMuu?(S|FczGJWuXaFXWhJaHKT1wo zGW6pnhR3lb5C{Z>&*zIoqBCty=h(8t;Q^h_02+-3jJmrp?Y#&;<IO<0`nNB2FzY(b zj=p6iANscixw*N>p6u*w1)ncawYGMSv+VpvB$9wJ$K_v3pX*ZLkQ9dAH$rIcJj{J8 zTKD!c8n=;Qr~t3b%uJG%m4%tdagE30wHvg}FrYd3b$Q_e#O4d=6JW;XMc_B@XPpK{ zoEBto?Bh7ZaRfnuwMP!Y(PPO(R0xU4Nl0$or->}EM-w(Jqe}~T9EUkhaTFj7!&Ke6 zlJV*JLnfkrOy&^H6B2yYLT0<461L|VnKX8gu0NO~>Qt>J;gbLW002ovPDHLkV1jy9 BY<mCz diff --git a/interface/web/themes/default-304/icons/x16/microphone_minus.png b/interface/web/themes/default-304/icons/x16/microphone_minus.png deleted file mode 100644 index 17f3639d8bfea5405ade50c81a2e12c4570529ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007XNkl<ZI8SAf zL1>a;7{}i^-7YP`9a?o0XRt#gN$731!&KZD7{p|Z)+LHytx>ZWV~1K0h^J7|DJxKL zI+&81etIxlcIY5j2y<f_>=1)4l0+Au-v6r(u@`>dpZ9tG&;NVB_hUrFtXAte6B856 zZntaiG}i+>ut&Yq2cA6|W~@8FX0u(Jo10rMm&?_3I!&cgsfs=7-2p%ZjE#+T;z%SC z2l05E>h(H7W3ku)>Rmp82pAt9XJ)gR84L!nxW2wl)oPWXl}be@>gdA<e;X0Nzmf4z z#qrt5$jHl`ogH$yTy%7FBy@Xwn@~p|KKR>o22A48R4Uc$m6a9B<#GhgWHLfgZ(Zu- ze*sfdQ{ds@;UP(qL?<UFRIAmf(P)T!I6XZTb@btD`2`}tVzGe7*=&xcr>Du|@zB=R z7U3`85`8`&&CJXY`tY^<0uf*`nZSHLUl0Mw<VV`u`+{Fc#o|{=rP3k*efU~__FS!Q z1{jS-uqa9Sv-$Za{EY$H-OW&;P~dlvCBHvJ3ky#PefZ#aE0rw5STjJU(}DYL_q$v; z9HXTrCk2BWw7D6hP-ugk&KDGk#0h=)Tmu6v%4g35v|26GXf%4g{??mR>eF#DDN!I0 zB(K*iPV-^(Hf^dkfBpUaKR0Bu3LpFi!i@Puz~JB@=v69}R*gpMT3d5}E*5|M+TTAT zsAuT%??1D%)Qy*ihyW~wLc#j_`k=#{dvdw_t<U$KpbnW#T4wC~Dj(?NRr>^d$v77{ zmpE4d2BT3)1hi|MA<jikuY*5UG1&@`x0=^EH$hKN&s_{d+cnM&&Q*>AL!+F3;;X8E TH;2|R00000NkvXXu0mjfCKy0p diff --git a/interface/web/themes/default-304/icons/x16/microphone_pencil.png b/interface/web/themes/default-304/icons/x16/microphone_pencil.png deleted file mode 100644 index aa41af61340de9aae7a8057866905ca524eb7953..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmV<F0v7#=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00088Nkl<ZILmdB zUr5tY6vywKQ+$XNeJIx3_%%~O5=FK*muu7IL@)|XA|r?(SZd%j6(347nhH{GxIaiF zg>$iuHn%xpEuBIS#t6x&%NRWf5{$;)Jl*r#6u0QY=Xbc@bI$j7@3{m3h+3^aL8H-- zwzf9O_4K-rAKasUy6zZ~YtY=>T-MdqH5iFRqF%2THa9n;xJUiJ1`Q1jr|EDyojZ$* zi;zqv0i(@k+d)02jy&hMw1G;cB8`oWL@Jdcy=Jo+qR}W|+}hgWBkGvPI;{5;7n2Q2 z(+2F0gk2SnPbw-Z20R`Q==FMt#bSJPI2?dF=CKazf3oIWgBBcGNlD4G;o)Hj1OkB3 z=kxIq^~_LP{xN86ZABjJ?(Tx$?}z>UeMlq{aCCIU&mkU<^E&3SZnnHU+n}kb33<4@ z9Dw%rc9@x&0lVD}_zE~gqtOVRot=PrtTR_u%JwMzutsS;Zy=Y;5p6IS;tgD`kFdJB zhEE9L@H)8NUfuxnN~Q9tRw^BWkr8lE8srURG8xkA_XiKO+DGh<CRkeXK`0brGgyY% zSu1pR_rQv0I;l`7?5R`=lp@iDl@KLwP+eV(+?||!6_}s5L0_K^ES5P~Sg?WBItMyk zKfEzNfdzx)F!ie+#A5Lf8)}t_kn{{B5((iruC}(eZp`ie^uy)ygUMt8gTcU`#{O;$ zoO5+4Y}V`YzG$u#%8QDM$caH|X(^J&L^a1r^rNGbpTpsAhuhl+un~HjdjGoYH#Uzy z7JMD=Ay==}7m_RkT>1I=q@bVx<3+|Dp-}k3I6VeagMvM5p3u>C)~rxSN%qPZ2pDG= z=NKXc4J<Ej1N`|8Qv-DMhKk%``gz7#MqaLgFq5oe)F717o0#rU2-a&Z(R&&FGUEas b__+TsE#I_3-sKnT00000NkvXXu0mjfDdAq> diff --git a/interface/web/themes/default-304/icons/x16/microphone_plus.png b/interface/web/themes/default-304/icons/x16/microphone_plus.png deleted file mode 100644 index b5776f47d05a652d50dc2d53228e10b8b794ffc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007-Nkl<ZILmdB zQAks96vmIXJ0G$co0a)E)`BU4HNrgv4Iy=HVy%dU4=ut7f@xB&2niySXb6Gm#cg7S zmTrO@O}D!}=(6>&U}YgVWm!UD)WgV!2t57IUvG)gh2K8zcfS9(d(Q<#1dGM;2b;|X zcDr4FX5+d{KXgz2)|?D%FR)sz2c1sm?YX(RY&06hOeT}1d-DHVP*YR0mGhxcXfYTJ z;@a98k_G~SMe?`hIJ}^?wifE@>Y%#1nrQR+e3;E<k#v53o-6q@ryS*FcmaDyV6RG# z4+ewb*5u?QdORM?<#JpnCMJ-4np2MQGFuB8XlZJ-`d&vz2PP5;B#p&lT*=>DYQsMT zjg5`Om8GR6lq3n4mzOc0&*S>~I^V;}$_n>sPPxrIhZoe>*ArLc@dP>?4(#pi#qsfR zq_03r6h#r6nwpU2l-ta6c!Ak$CS23gNnQ{RKgZeGm-GoSm3oDdNR$`QoO0UsO3>b5 zv{Y;qm`o<3O_HWpU9J}Pk6xUbieWODWIKpsfByiswqC=NA;&MJfBz?Vwnv1gr2szl zMnP3o6>+h<yC*R`9KiN=H~Rg9I5rl*fq_AEyKmyiND#}04EamnuOmDuO~at(Z-HK~ z2c1r5G#ZcIk3?oZgu@bgy?*TL>*G&z+-F7Y(BYp&kM@2!`?VR_!8FIK7I}e2qak*b zl$2O>I=!c}v-?FV_5Rz!!YY!M_2_??KcB|!K+o<pFQ7{h1W+oKqz4!m6bi)yQGAS~ zh0dK4bgACKLsh!+<1r-VcvPZXP{=4|>|>M@bZ~T3;svq?cZ%PX=PD5H7QcqBUBF5} zE>JMa7>5`~h=PKGb99(g_P{0tp;>qfr-Xhmu_Gsn;5YJvw*!YNMD_px002ovPDHLk FV1kPuRiXd@ diff --git a/interface/web/themes/default-304/icons/x16/minus.png b/interface/web/themes/default-304/icons/x16/minus.png deleted file mode 100644 index d59994cfc0c651ef5606ac6ff0a048df7dcd3f42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`OFUg1Lo80ey=0hm*g>H6VZP|n zvz#^Du}78{D2SirWzxL+LuQ{t(5k|>N~v6pW#*T57;sEC%=()k5%=-Gfq|yd8qefZ zIi^dDo#$Q3`6X&t*T1cJd$(-+>$b!IuRyQB?9gn}^P4*&%3LyLxz*b=eUr^UVJUq) z@LZ*!&*d!++b0Ko>gL~~Zg&5R{qMiA+vmUZ&k>5d@JQ1C{}c6)KTD5muNRMDxN|aU Uc~%;qGSIyYp00i_>zopr09#~OIsgCw diff --git a/interface/web/themes/default-304/icons/x16/minus_circle.png b/interface/web/themes/default-304/icons/x16/minus_circle.png deleted file mode 100644 index e0d3938c03af8d1398569fb95b5bec0b7de72bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00063Nkl<ZILoDy zOGq106owB;zyykMB8)L8?i4I_5y9*w5L}3gAmS*l6_@T?5Wy7OxadMuTEQe$@qxPW zHHuNJWMT%9QV3Z%g+>?I$PC#G$8%yDMv1!c!Z+Nx=l}ov1Vn`QQ1~nYz!DK7eggQG z0mg_Z5ii31F|NgmTK1F+=v;HT<WwM_-3<=v_oJic{m6)UD@pogTbsr;*1QzZxmi`E zWF^V?H$04*Bt3!0{`U798*aD4+UEhjnA0iW^z|8kdV278S65lMmhSF0q7@Y~drAQd zw7)aIUsF3e@S?r_RW3szJZNs#*i#Ca1&CaQLb@CX;D2`ge%xqm#7JEoeiucYtFA7< z{jH`Zojs+1Z*<Z$ySdleiursVGnot~lSx!n71QZ7X0ut$<#Gjn2m-Fw*PHAq1<cTo z5)7I<G-E22!bBob*32wZz`ECK&R7GcX*owNE&8^{gE11k#x@6dJo>bC3t@gZqIh#m z`#U7TTP(U<TG)DslXN9t?RNRNw$}JXt2igoOYFPdM%ZSPC#}~wL671yJ&q}dLx~H5 zp;CxS;^&-@dCG2ASUX{TNZcBTUMh@J`n=Pr#VafIYe6s>?(-PeSknNH%^Kh!YKV_M zfM5{d%K*U25Wp$JeIDZ)X+9BN_E-aK#0Nqod~Z-w)Y{nl0Jw_Y_t>)R761SM07*qo IM6N<$g8x+o1poj5 diff --git a/interface/web/themes/default-304/icons/x16/minus_circle_frame.png b/interface/web/themes/default-304/icons/x16/minus_circle_frame.png deleted file mode 100644 index 8b1654ab9065964cb01dbd42006c32713911a175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmV<A0vr8_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00083Nkl<ZILm#I zO-R#W9LFCL8OxK5oKr#Zus{$+#lat2FqsXRbDJ+6YQA6{l+nRmREALp@!A`;N|s8Z zW@d)HNHt|<v)104Q|8zNmn{PioxFW}e*bnbu?8RZ+w=Q;o^5~D*x1O7Mk6zu&8(@Z zi8VJjpK57oQFB^3U1?}m(~cZ+siBq~x<JC0YMag0=ka(#dwYA>-Q5+Td3AL))Z5$J zM-I71FOZl_CcV??9Hrpv<Rm`YY<REHh|nD3XUXIaMn*<P$)!fTz+f;CXZd0*kw{>< zvl9WG4nO$&ubv)}R7VGVb#>w{7Tbcu;TWTaTBg_QbF5aYeS15Bw`~?g&1QUWZ%4ef z^)J3zEQlBkqO-ZViSF)hJGD%w(`j5TS9s;YeSE5|6)*Ur)gH@wLj&A3HE=ubVSau- zOfA!DwHN7Uy}Z<gb^Z-5l}co>q5^YDB_;|A@F*t-4`niuh0;>d^?E;pTBgxxtbV^A zPphjDs;|ev!2#m&ID9@Ig25pF&oQJ@DeUj>i_8`limu!32DMDBR$uXYy_l-3ghvn% z2n0Z%kBf=t3Wew{EiHjsCI~{O-ygtiTN{>3N-&+B{a+U3@;~mf8`LtDN_B2}dS+ws z<{iux7sHdAixn>Zizj(`czxqGoX)WgYFSlPmBM5)5BYpyOc{)Llb??ue^>!7ALSK) znB=Uj1z<FqhNxxb<>jobtV}mJczq@q+`@Q$10Hkv11Fq@W;&yt-yenDer<*tYMERv zXGKLtQl(OPp}+s?vq&U~cXvlIe%^v%MZO5lbQX#1fE;qEp_X1JI430%Nr6lzvk1bO zTN4v6V$tYN9EQ$lM-I8vq+6E3k#Urqip<PRjZ`YVoRyU|z!^?6KxecghjTjJWc&t- WvHOpIKK%*+0000<MNUMnLSTXgY*fPl diff --git a/interface/web/themes/default-304/icons/x16/minus_shield.png b/interface/web/themes/default-304/icons/x16/minus_shield.png deleted file mode 100644 index f5da92ad1503b86f7a1e4a4a1c5c8d459442afff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006_Nkl<ZILnQa zUr1AN6vvMmUWCnYcil`hAts14k(h!E_32`7+e91ale!muw%!6wNT{Hf$RJ~(Etlzn zFigt+P{evz+ipR+nu}z`?cXRtm=Ah7XWd;^m~`R8&i$S5_j9@I0wTf<fE)p0mY5@M z0n`(ZHR|WIT|mn++=agdn#6n)VDYUie`a{5GfQ9}!6I>vmWK&D%?mGES~h+T595!a zA&j-Qrs?bs?>NI*?&yLUfbd7JcQaU88Vw3UOzG(O^wsCXL{}HCc|550_hY=hU8Q|& zmNH3~Ym+;=zz^{J%fP_SMqeL(=<UswBC`AkZ(J@+_VnPp?rwbV_3m&-7fb=HB;4-p zr%osS4^dg(=8i77Oz*68c5baSH)EcAO-&f8tHVHbHTo?UyedgKc)r`vutlADU2qX# zGThdddEjthHk-v%DuvN#6ct6mWHO1Ws$wRS$uTX8IA2rqojR9v!3BVmWKG|<+c6%G zV<ZyUv&<}1RN!?{OjGBCE;tWxY|3O>ePXj=ke;v~OI9mR3c@OPbio+_(?n5G_?gX? zePlM{Lkj+jWl73T&|k<MT`*2x)oFlHztOlJsj9*k6x<V%UlD|L&W;y;iDPtg3P2hG zSe`B~Pb(J7?kfr_RLT<*#ocRVWogcEcC1jqS1sYDpFx0`k&=?vA%o#tf{F~!e8xM@ z)WYwpP*6-52x}$4p`!qU#{rhk3POtEna+H?qfDiiEiM!s&=yAs2V(?q($hj7fZIIh g&xuCjAa}U?3y8G6Uz{v3i2wiq07*qoM6N<$f@?n~dH?_b diff --git a/interface/web/themes/default-304/icons/x16/minus_small.png b/interface/web/themes/default-304/icons/x16/minus_small.png deleted file mode 100644 index 6ec9487f6a13ed9f4209f7d00f0d6f787dc2d138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`fu1goAr_~T|NQ@N&#c-|c!fbq zV#Az?g=)&o&4#<27OdJl@&Etj!X^o7%8zIM*kQrLET$J#V)plcy>JuT7N*z_?A_cE m4SFloj<GJjXd%MOz;JQB^TXZ$L^XhhGkCiCxvX<aXaWF8VlIUM diff --git a/interface/web/themes/default-304/icons/x16/minus_small_circle.png b/interface/web/themes/default-304/icons/x16/minus_small_circle.png deleted file mode 100644 index 30b6e2757e0fa0a44ad7fa05b88ba87f40ebadee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmV+g0s8)lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002YNkl<ZILl-B z|NlP&C759t8nA?cfng;BgBK7l1L8AK+6yF3lmUx@iZ==hUU(KB{`q}c+TSN(VV^e$ z2wVV(6J@|$pp7?ueLtUaa{9mD-2DG8BcuOE%*{W8#ECLsD$v<L`u~|TXa1i*fByfY zN00u$d-v`?RGhE@JwTgQiHUt*CnWTLt)SrlwLp3qKmYe0VqMSz^lKjr%Y_310-w(b z3jRI7$M?CHnfXEsv0=~*4DDQ?;!L28Kzs&7gZRzF#=>Y)CLIF+!>_!G>`0wT00000 LNkvXXu0mjf8B1=c diff --git a/interface/web/themes/default-304/icons/x16/music.png b/interface/web/themes/default-304/icons/x16/music.png deleted file mode 100644 index a78df8c2ac4a97c80f9cde1ca6b514063d7878e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmV;c0aX5pP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004UNkl<ZILl-B z|NlP&B^ZShx*IG055z*qV&oXm0%Ch_{Kw$B`Y%}q`~_k^f(C#TV8Q?OraZj~q`!Eq z`)7*R0R5@Iu;Kq^bAIzFv^_ZnWWQ8w{~?9b0I{0y*zkYZ<{u0|jqD;-k4^&li*OpC z-1de+wetgmX!TEI{2xTiHva;#RYa@beZ*;i@stM)<};r&n9lsfpwa&yhW~?T!x{e> zv?u-N0kS_6G{Ab^I|l3dpBZeI{0HIxc1!;=IIV!NO=kaBAkF|Fwp;j_!Fk1>|3D0( zSN>N38o+?p0MqGD9Ds(L0^&bF{2xSH&VI$<xa<c5&;SN0zXsd}s5G7i;peW)U;K|f z^!vZxrnmor{M#UL#o!tS7{F-&tBfuKf5y5`7PB7xH=l9;zj)#H|GWV$IUsRlfYSgV zP++poXlDwa{fQ}j)>9_)q*kDqF%TO9u`&<~12GFe0|bCr3JaD5Vj&>r0%B%lJpcpN VLA^=%%kBUG002ovPDHLkV1jeG!#4l` diff --git a/interface/web/themes/default-304/icons/x16/music_arrow.png b/interface/web/themes/default-304/icons/x16/music_arrow.png deleted file mode 100644 index 1215fd2e9b7ce34cdb1ee71ba403e7dcf49f284b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0<QguP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006QNkl<ZILoDv zUr1AN6vq!U6Dn6|Rt|;53<}#~=(^TwN+A@1xrg$hTY*m!z68CLJyiZ#29?yJ-EAdG zp%n=Q;X_Xq2-T&c=t07?;hIT~+zQQq-_9wl2G{k_g%96ze&=^S_g(@({{!uN2qVDc zEHFzUouEnTJ@@9Q^3H4u<<~~2%s)sD-|Mu3S*Gfr0=ZxS9R6rO=ht05bFQ?4O;@Ij zz~=C@+1fJP$MvVRzDbMa)C39kw((TKs*@8&ps;b0crk0`iO5s#JLhLgAf76)wS1;^ ztzRgw;rrh}vaoSV>Y}`c__*}N=Mz-XKAI{h@eh%r#mJ>4X#GXZ14(B9RD21`xK2th ziwg?e*W=`FPtx`q5a789+R^>1E)BuDH8@6|a7^Q6ol`XyFrJPi?d+Zb^E1mkzgeB< z-csp>etD~|MFC0W@_Y5Sz;$)Ff+f$G83vMDLZh^eh4$uG8ei0frH60p2ks7_Edof- zGnI-?KNn(^T_ZU7cp6pr$H4tNIkz2u!oTq0<Jlpg_6@NA<sXjq13cF$v%pTv>v|Gp z!3dPVAXXpkMRs*ly_{ziI4IZKs;xQlKo{f-l#T&-UjWkQ*Y~Q#kJaR^^O<Tw2~$ll zYEo*O`K*L-GBzfcS!CXQhO*Tzed8lQ(tPNa$`aY96^zAzd?trk!enG@*h`DOVJ)*d fq;sk)ArbrlZs_f+440NI00000NkvXXu0mjfGh`kL diff --git a/interface/web/themes/default-304/icons/x16/music_exclamation.png b/interface/web/themes/default-304/icons/x16/music_exclamation.png deleted file mode 100644 index 68048842170277dc482d642ed8562651af0b3fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00078Nkl<ZILm#G zTS(J!6vxkhDMe(3wIWfNDI`UgF>T69Oc@E02r+yTqQLghLp}6RE||=e6)p&)=~PlI zjn&FqLP>YF)b%jLYML};G8axZFSNX!&iR|MVe7z$bI$kte;@wf>=Gb?vxN0e7c<RE zj0qwF40Z}@Z2Ht4-#iy+oaD|s=MfK(NL(jyJQYMfJ`+xlISU7t=B@Z`P(8pq=cXQg zq@a@LQynXywl1#<K3D}N&i+Kw81fl|8jS{nUVV^v&TG1&1j|HGl;Cxn0B_ob0@te} zj*wSJ383$*7M;Cm4$k?`4+uO|JK?52S7=+w`YU+RA_#r0g4y%Abn45{N$lyqf<vx6 zboHyIIOqG}y9+?z(T2sXvMR5gW`AmRI7t*dZxV9e+oTSUJ0Hh}72+Ro9~;iZw~rGX zd@rlf!7klTOfiIk9&X%uZM>iM7E#bqCp3)or}_P(`_Vs=f%Ac@VrSfrWIx}}-@Fde z@?S_mieZ80bZPl?NEEc(g4+8=u*ZV$WhOmj+(sloZbmq82e;5XD+=f%u-u4EmFXB9 zZ$$=kA0Xtnug;kkl*JTWsJR5nIv=Q-rbTj_XQ7~d35nJI2xTOIb%F|GHYjR6B3bvm zc_bMimI&mYWBCCm9)^JgkW{3P7U&FeNUs=-#HVhX#L{<*SkxIn+DAE0J)?uQ5(UL- zfPH%*s^XIm!ZxjKCcAzdmFDlb`*JTP6jxs4JhDVVjFL%I+G<IOWkym`KOs?`qkjYi uAt%y^9Yoy!1lx(Ef3Sy0BsLQpSnwN!`^TVck<7CI0000<MNUMnLSTY{G${=L diff --git a/interface/web/themes/default-304/icons/x16/music_minus.png b/interface/web/themes/default-304/icons/x16/music_minus.png deleted file mode 100644 index 284b16559f9da9c969feee3e0f9550908b8a662f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005UNkl<ZILoEe z-77<J7zgmDAti5lnJjd?l@eOaXjum-rKFHjT<pq)8&`^5OlBxjBAbcGyHeb^P%d03 zFaLmCkR~r7Hnn+uJddF{JLAHyK6`%W_xnBHb5833BEo+_{U*vm5))t#lzAe2k6!}J zJg-`NgNl_`KLuS|Q1?f`E2$0?z!o@w56HmWk+Vap50$HLnqLF*MxW$h;ly*KU~%lw z{4%xIqf(jN;L9Kyy#Y$2TMj07dw?24<2p`v>3T+b#v<sw0qK@&$n3v^_|8XP$Thk9 ziRT&dowxVC`{ooqEK~1CK>o-HXl>`9u{j}Y2)`g#wG|<I7{h7q`r7MD7eAW)0(6tN zpqp|*$t*I|&moj8dgldp6k4lH-;IF-h<@4y<%=&!ymbkM!7S0Q`A2|e%pp?99(f_i zwb*_IrSl#b$QEH9z($7;q<9@Ny7t+5#li(PZ9il6`VG?c5wEA#8o^38AqVc}W|ZP} z2uaF;sFqb{(fBE9t;d+qwt*2f=2l+kkwy%3Clei(GV>GA5EQzWUPXi5sc0BKQ)mr6 z{ANVW|1yas!Hx9OE@Aroo}!6LMk0wJVI&9w1iS;bdZc)7$4b`#0000<MNUMnLSTZt C`sUmK diff --git a/interface/web/themes/default-304/icons/x16/music_pencil.png b/interface/web/themes/default-304/icons/x16/music_pencil.png deleted file mode 100644 index a6b6030aed2f4b14f9538245acd8014d3a09c13c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006CNkl<ZILl-B z|NlP&C72;}_kV2oKM)IHm0NU`VXn3|!y`sUhLb>y&wv&X+k4|b2G`Yp;n=rfCD8`_ z1!6yf27nY`!T<H9JiQ5|zj&<sXNuPV{i(mO;s0iHe)B1`Jvjzszf^4hAtlxDodJYH zLqkyw5Ucr)4gZ&I{=op$$SzX#=p>N82quSNfO6X#2G!0F45HOPk@0^JE!+GH#8wfl ze)kc?&*-m(8DM#jk#YSoMn(q)<0%gq%x6AlFrE2{L8Jda4F3nwhBN*%Xixgj17v>& z@pms~WC#ffQOUQksQus2@P8vC<3YFq*7M#mSkM2=V7uf$2>-WR`k%pR1%z!f`@h1B z1&$267BSj;d3oi0|Ni~Io0L@Fd<F(LR0Dw6ZsBJJ=M{hc12KeN`Cno7Vu<Dq(;2sZ ze^&WlNlB?zNJvO;4g(N?3^1Mk!~tl?DIop>#Q#CG<?L4sj>~>9%v*}8d1@WwK3^ve zM}B^O2CxAtji*8Qx$E*5|6>pR{_nTx?SCNuHb{JBJp+d3&LRdEZwC$rxB;v(x(xgo z>poe`di39X#{K`|h1>u02DIdW#Fy7GsG)0aF90S!WCMUefyp|fohf|wC#LXOPnpb< zT0uSoV#E3b#)<#G-26YKmT^B!Gd2SRfLIC(mIUJeX}*l>%HkO9V4Bel008ETx}a>1 R{+a*)002ovPDHLkV1f*64$S}n diff --git a/interface/web/themes/default-304/icons/x16/music_plus.png b/interface/web/themes/default-304/icons/x16/music_plus.png deleted file mode 100644 index 69ca7cb72de82c23e44c837f10424e5369705b30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005`Nkl<ZILoDw z-%C?*7{(u#I>>F-+KNWP#07y?h^-|<Nkb6CC53p^jZ|3Fg%{nV7sYHVC<Jrlai$qd zXMvD6UU=6<P@R7ux-f>ae%P=raQW-)eUBXI#Bp7C;KTF0@ArM5^F0Sdgx!FSc`}0- z=MHBE3I+6wZ+*Rm=2x2rFzp7CF5s!NV8A95`fq>?m_R3nmOirnYMI&c7YsNVTQh@B zkFGnsk;S*{zg9%^9?zXs2=-XS7;vy})eI^R=fR6s*X`6huAl2?)@LDOKxJeZM<1-f z-TV7*NVGh>Cf?`n&HR+Q^l=n;={5$`4t+*INyD#XacqEeNVH~{P&G(4_BpAw#hn6z zV;Ka;bEr>{Kn*VlP04M4Do$Qo;=C*>jH;<=0Mjs$!@1-JG21##-m>vFVB!FfaH*Fw zw@6g0^#K2q#j_mpp4nhXv@ZS)jgxuom*r8X!o#Z2@%<|4UhDhreh|{lQ(x%Pn{^7! z{vfVDNx$M^9}wFosEz3h^e@s!@sZ;w>z>J;8A(xKc!3V}%#ppl|AzFn$5#YgFIDi+ zp$gThdeS`}ITRW3T7unCOJ_W5=^R<I1iJ2Vua>D{DjEJ*6yeHVAZ$}T3soeF`*v`M z_71)yJSH4w_%DGsu?Ka0lba<9t`)1A_E@!mKUe9jz^M`2vj6}907*qoM6N<$f+{`< A_5c6? diff --git a/interface/web/themes/default-304/icons/x16/music_small.png b/interface/web/themes/default-304/icons/x16/music_small.png deleted file mode 100644 index 54c1417abde35cd9e5b902927b761d42ca8de774..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(>+}rLo7}w|M>sko>_H9qJ*@- zF6qAi%p0vbd^;J<8)r;cVb*!}x9#EoB3*NS3BUiQlU0~SqV^kigfxDvzxe9?9*1AH zo@^F6e~&G&f2-g8Zp#1vy=niZGhOQUG(EuBAw4JT&p-Ynh3B;Y|C*H25cd4(`F+xM zf7mbm_g!wE${^(wrBiTB|1Qsw`IVExML#cJuY9*baEdsC(A_%~cjn3Y0-ea<>FVdQ I&MBb@0CewFp#T5? diff --git a/interface/web/themes/default-304/icons/x16/newspaper.png b/interface/web/themes/default-304/icons/x16/newspaper.png deleted file mode 100644 index a6e3bf83fe83c24076b73e249383e4347f34f4d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz*GWV{RCwB?QoG6;VGupLe%>I07NWnR zq6PvYHfgLZ>@0#{BlrS&18X0_R(t{R0W1Snf>_xFM8QIBynup=x9s`IENiNS49xEA zT+W>Dd~5W2Js5`Z4ZsKf&VJnQ_u1`s!|U~edORLXe$;BU&hz=yNxrQn?TqQP?RJal zbo%`_(2Nh0NP@;j0y=?MyI!w2pU*g*PG~e59V=J1W<L`^u|Xr5CPt$Xd_EuY`8+0* z2|OMTyk4)~%-n9b!(cE#I2`V@+ifzLDWcOX9Z)P5^=7)nWF#zextwO@_xn+;R`r|> zK<jq9h(sbN6bfjyTDmcl$siO8p<b_}-|us~29miq29-)hZ%rf;Z^QHX9B#K8<#Jgw zh{xkLfO)xGKqtU@y~g2i(6MuPwOYaDa$&RC=sIJWQ+x=6SS)4>+H5v$J>*8njG735 zJ_4^tY_V7%7z`qnN?|-6>l>g^{Zgr<>*;hFN-4<P8w1jIvXSisWiFe|>TfcXIg?0q zHt>AZ!Knwu5?#nZVwqD+$X1F*cQT;y=lYYO%&FmUh-5OU)n;<P-`jdbqfvVkjdcNK zeYsr1u;Q<QK;VmYu21*}vu@>dJRW}%Acp_2UjhsOO=C=J5#K=z00000NkvXXu0mjf Dp|kx! diff --git a/interface/web/themes/default-304/icons/x16/newspaper_arrow.png b/interface/web/themes/default-304/icons/x16/newspaper_arrow.png deleted file mode 100644 index eac7fce6e2e81f06c94d220a4526781cb8f014e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007gNkl<ZILnQa zPe_wt9LJxFU1IFesjls29?C<|p;Mmn4<2SwZyq8aA{cfMBZ@JQqz;1(1|_1ifjOZf z5*f}!x6moh=G;WLxg5<z9GZXT|3BZ}?*p22(FZ=f&-?OxzkGk+=M`SBS9ErEmg&ed zVrp-17j12A!tHho!51C5wY7zfjSb}Ud91CiVR?BOi;Ig`SXjXP{JbI-i-Bi#OveV? z=*Z2@O{}l4V|8^ED=RBlT3S-#Y&MJ8*;%C1X@o){aPhp3Nf|UZHxs$Ny^X%UJ`4^H zDwCd`9`yJ3V`yjyU0q$uq`SNOn39qbsUw8T<sx!tXXki?(~@u;YN!=<yPYTlhr@x6 zjt)#tPQq+9qq@2pHk%Djr&F2e=iu>p5DtgAm(+^J#zrD{cXyFUBrrWat&*G+*Vfjm zB#}r2V`F2=j2dc%)oLYjZ*LC+0|OWy9tI0NDP|gu<Ma7cPq|zU)KDwx>+6Z!-`__v znN+Y)n*85MJRV0h8dX<J4Yk5zu@Ggz=0`?Gz&@CU*GAYnO)MW`(7bc_8vg@os1-Fe zHAEg993YiSDcA>-9Cb1^HKmf=@%%*7Z{UG$Qt{H$diz<65SpeDd3bn;(a})^gF zKp>#fJaLCn<{C#;O9DktKjQwUG#tNxYYm}H(W`Myl$Mqf$v<pnW=6qrn1m@RKF{HG z26z|)sv`fWO8}Rje-8_T!5|6?3nhOL-fwSjuQKub{g{}TfM)mO#tR>A+P>jx-4|Sc zpGM^m;Nl~1=0fEgP3WswH@Rmt8s%vi%uSgq0f5i*#dn?5(%{lrIamI+wV?c6wBT05 c<D+kX0dFsyh2P;&pa1{>07*qoM6N<$f;aR$#Q*>R diff --git a/interface/web/themes/default-304/icons/x16/newspaper_exclamation.png b/interface/web/themes/default-304/icons/x16/newspaper_exclamation.png deleted file mode 100644 index 04a39d4957b5ea81c86acc521895890432fb0388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmV;y0zUnTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007rNkl<ZILnQb zKTH!*9LGQJI5?_QxPyw6w3vp(*i;5sIx~rXLS!K_7&j6J69<_bSe#r~39AEwiHi^? zO(O{j5(kXN7%U7zg-|%4a#!BndoK23O*Fpgw|u_&zEAQMv$L}ZA#MU){NH;W1i`wL z60J367={2{BO@czN-4C~D5VI3fFKA^N}-ejpj<Aqwzf9@D`*|SkWx}hQ%VtrA-@Mn zDXCVgc%Db4QekXtY+6b=2=oG&Qc3^}!(e%NndatZa=9F<tE)6MHDOs6<#L%^F30}< zK8uTsBoc|~si~=PVBM@%s{jZg$mjEDt<hRXcNm7$T4u9Zlv2cEF@}eS0f+(sW@cvS z?ChkkuaC*eNn)`WnM?-Twiz8AWo~YcL?S^po2ACpH5eKiLTgPbm8ye_#UhQ3jSLPB zqLiY$yE_UneBa0SeS{E{N+n#^MF>#`Z*OmNviFRWt^2s8r!+J)P~%MB_oD{MWHJ&u zF)<PO2t$vZFAunqA7}l;a|{ts<4n)<A_p5A8??2x(bLnz%E}6sWdTsxd&TA63!I5r zwAx8dkC&)%bzjJ2GB}PCwQ(E=+dhYV<`d_fG`H{0;dG=q++9GP{xE#s$M8H4&+`yM z;JPlQQmM|z(cW836SUlAetsUmvWZeZNIIV{$<t#@*L5QYwrykEcGN&?&HiQqJJrGV z!8;aSK4h=@4q=_;V&|9s{N-g~777K@=`_V+5!ZD&I5>!Ww8wV|<TtdjLz8jH^&3z4 z`f&iv3azbSDhS96U?3ikUos4%<<HqYx_5Ht>a}#=`3qJYt!Qb#MWy@#fZgwvqou;u n8v!K$w%eJ<OalG?nD+ahaE)N705T<d00000NkvXXu0mjfrad|( diff --git a/interface/web/themes/default-304/icons/x16/newspaper_minus.png b/interface/web/themes/default-304/icons/x16/newspaper_minus.png deleted file mode 100644 index 6606c0196448a6908626d2a2c7c2b93d01845afd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006mNkl<ZILoDy zyKCA}9L4XDAxm)Y>=1AY&A;GgN0%ZF1@9Kzq?0&>E(R?QZ5<TBsvSx}f~bfOFi~QV z7~hE)5JV!1?`QPedoDymmbUZ<ANUIQ9M3)9%lv*n3j_l11pF^idc9uecDtF&<zfs! z1bjZ9({wte$z(#K(TMu}K0Q7@Qm50QcDpUPy}c!z6)1NG7zBJao6&eYrr~f%gTa7$ zy`B`eS}kfeo78AD=<@QC@Zr2bDGi)XC*X_4f?}~4rPFC?5)Owc9*@(-#RUa}L1}V+ ze!fGkR&xPk4u=Eq<#M^Z!k?1hI?zDNtX3<K1~!|Gd_EtQN+r^2wWQbU$zrjP-ENmA z;v9KA9?Io%m^rlU^z;<))oMkxT8*mJs!Z}yY&05Wl6*c-*Vot53>s*e*=z=Uy<Sry zk)TW_Ln!p67-?{wP$(pO>UO&X4YbT;G6DYd^hEV~U4lYk^172^u}C*JH*&?$K+8@} zPJlE(^Vw{c&<E0BZ2+yq1lxcK-U&3&GK0YY_-3=AySqCH`aqKBPAZj(Oj0hFWx<%C z`E-2Dm`<kye7oJ!)zuZHQYk_o$z)QdLF8W=4TX-5=!a5CKMxP(?B3sh_|Di@rqO5s z#|yi^zn9=TNb=l?SEZu4*vf0ZFqUHn2M0{0QgJ*G>^B;XN|Q(=LWM#>ruZfjd=@5W z;@^Q?%pdpm9zGy}_}&VW_X>rA{|nGS3xhZR!*79Zh_R9QhbaI6002ovPDHLkV1iG8 B8Yln& diff --git a/interface/web/themes/default-304/icons/x16/newspaper_pencil.png b/interface/web/themes/default-304/icons/x16/newspaper_pencil.png deleted file mode 100644 index 3d1813a77c2e743e432e51696f551113aa69b63e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007XNkl<ZILnQa zJxE(o9K~-6g)ZXc(m9(rh#d;0)Ike{WRbcQajJJ}NGG97Dy4)jVw7|cp;{rDw9rys zLz={3k~UFEB=|)VKgb{k5fnAiXw)3<xlj?I9}j-K8{R!9=YQ@MUawd9d_Jo}{wHRS z$0NqZ#>D98s1W?2kd;aWM@L5}m&-UjJjCAK9(Hziu)V#FVzH=MT3Q14D$G{~Tqxx6 z@i9uJ5)KXyu)n{L-Q8U+-rU?op-{la#s+3)X26I06=rQPGBQHs$;k;Kkq8orgf<BV zgP5M4MlzX%VHn!P@AqHP-rg=1Lb%;-B2Q0GuSWP+5{^R+wW7bjpJ)S@%Z16wNvy1_ zptG|R-QC^j>+8ed;Gi~9`!GH}j&wTBwWL-!olYXF)hhD&JaW05PI6srx7&4+OeTZ* z`FU+djkm2$2#3Q#<k{I7qR}X3XJ^4euZx+6;{*Z$-P4wOXBrwZNt3Bn^!D}=d47J5 z)zwuE3#G};PL`LKb+Lh=A*g@AH<KwQY&ILw25f$AZVv2&X?Sdet<&WDmv<N*9tQ8s z)25~=b%>8ePfrh#7Z(>;TU*nx4<`BDNj96sRw0P+r$?w1U+FTfR_mMB&CNn|b#)P0 ztJRQ7r4WzD!9HTKm`<~>uz*<DjbFwSE&k|gL3Z&6sG(L^EEXbp!`9c=H5`XYm|`*Q z!PMtgE%v;>kDrkbx*uw&6?JuWqOq}2@`CVu!{M+t357yPB@6^69%%7|68pan=$pxr zsG*imi&{LZudkOkdC_s(Ksk@MFK^`@-n%n!{TnsZ(%|l2z;lbq=x8-r{<P;3cq^1O T%|m*O00000NkvXXu0mjf+)qJi diff --git a/interface/web/themes/default-304/icons/x16/newspaper_plus.png b/interface/web/themes/default-304/icons/x16/newspaper_plus.png deleted file mode 100644 index 5a53ada2f109ccd75de635cbd8104f505ffec899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007JNkl<ZILnQa zT}abW0L3p+5!6t63ZM57{d+N^0+H}x(8GEOM-Z}y$O{Fwr=+JL5qldb7$K837DEjx zXvvr&et>SWjj_$)*Ty8lWMjiQzdv^RpG%6=gI@S?@Bhy|hjY)pVqjoE3=R%H){*DL z==1r6$Kw%hw_6B)=*XR&9c*oFVRLg68yg!al}gCx^H^J3!|Lj)B9%&kdv%N_23+XK z?d@$;DixH=Wvs8SqgX5|@yf~ya=9F`*(^e#5IDGB$EXZkE*FuzySo@29mUktlrjkh zgBTkd!}Rnt{C>YO85$Zo!DKQ?9U*#pdWhWH+dDbJSxI;tYN!=Xr;{jyuC6Zh_xB^6 zPQzlcz-qOkv$GT3-QCJW-v_VPi)b{;wWL-!91bG)_xG`|uz>mbd6nd}*k-e-B=LA0 zu~<x*QA4e;+wDXi92{VLd>r9$7%cR(m}z*NKp>!cDijK!hFa0l(Lv<l;UN|m7Zog& zCjWLaJ3EU+BB8FB8fry*dpl7EY<^~D2JC}rcx{BO)8x_D7To&Li07f#poUt}*49Sk z(a{l>mX;LkgGr7%nVXwaNwjZ`cu{(T`k&39=I*;DAzE8oiL6$uh(scooSX#vn3$MQ zX&Bl3<tggFKZMbH2bO|V>nk5`EQ`MDy~1oZ6Ui5r$z&8f4wD>rqJ4gV=HE~LLwu-> z3WLEQG)<FyAiUp^kr8DwJUonKGO1FSJuT4s?&D@}18)Cng66u1i|=cf#jC5mLLUvf z$+Mc88hI8M-d<a-%W2?D4Yf3=J2x*ce-iRiLd}2w{Q;GOh*A$||1bam002ovPDHLk FV1m#RIxqkL diff --git a/interface/web/themes/default-304/icons/x16/newspapers.png b/interface/web/themes/default-304/icons/x16/newspapers.png deleted file mode 100644 index ffa56e52cf5b961971f1a89c3b0868872cd6febf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006TNkl<ZILnQa zImlX35QSeSB#l@lscr2nZ7l<7Yy}$|3oBEKot3DSl@|UAYA3jhEAFTW?i&_@B7%zh zKDje5f3ON(IK0Q>&UentJkIO&avqO|W6z&V>Ng~Ixm=vX;oty(!$K1Ks6L<1a5x-b zzu&`dw}bV14a?;c=JPqsW;19un}GM2#IFEycDvmly<QKp*(~Jqd1$p-5Rb<pm&?(! z+wDTJSOh$*SZ%l4#RPcQxl*Y>AP|6HFi4Wi<!S;T?Q}X(;dZ-)&1M6u)e07i1x%+? zm`o=BoJ*w=wA*chn$2b&V6)jMK{A=7=m_!q{ZxdG2>EnHF+)mbG#YsTk}j7E9FIq8 z<9|ueIgv<EdwRW|2O#Nsy@JJJ0k%$xs8A?CtJQ+lY9)xtWCEwt3AI{{Qs9hqIvo!{ z((QJG!C(OWexH&kl}a!e3<SX>jYb3N^*TAnVlhgo(P(%8lJ56AWHK2jm&<?y#bOjD z!FHn2D5O#;at?>Xv@MlN#RHJ^csyV@98wCL2SQ$Ff^Fd{@f`<?-x-_-AnEyhQZ(E( z&La|u(8@xg5M9P1grKv}=c6r1rBWV%Bm|5`Bhu$QUT1=TVW-m}m`o=75Q#);p-}jX z07x2-$55?SDFs5XXPiemohAtW6NN&7AQFk>H^*_`nZ6PLNl1KGcwZn8aCiv7&KIU{ iOh4WbIdgvx0{#Hf2ERmAZY`q#0000<MNUMnLSTZcCjip` diff --git a/interface/web/themes/default-304/icons/x16/newspapers_arrow.png b/interface/web/themes/default-304/icons/x16/newspapers_arrow.png deleted file mode 100644 index 132635e307041eded0078bbbe3d75fdc4b4c28a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007kNkl<ZILnQZ zPe{{Y7{{MW9)d(XS=T%kT?Rp2lju-rusXB`c6gx-?9hk~nuo$J;=DMNIcO<vhYo9- zIc4f};veQ5&7o7*q}9X*I{fdPetVw>EKlVNA71$Jdp^(id0uk6-Q;q)NZ)rg>I_tN zcXyM+;UK%+PFyJHk7|E^A3Hlc*xug8*47p_Ha3vU<*>TCiflHEcsvgNPg8kXAf0=9 zdOj{JEMRnW6yxLLn46o!;NT#_;jrBE^YfUPm;fJLth&0oDn)SC&ePM=@cDf3`~5;y zRh7~Z&!YDB_M~uga})V|9_#DtSX)~|CX+!ro&M8#a&i)hL_(ykt*uH!WV6{M!O+l< zL}!V|<B=ln$dZ$;jBY5&nwy)IhKNlE2M5^Q-IX!^m4rJ7gFzXuv9VEUh}cvp6kxSl zp`TMC8jVKO*Vm)1txY5?EiG_5otT-Kkrccmi^ZZeL~J@dJjCMSB9h6ZBr%)KXliN_ z2`7ogVu(hg(s^KDKvLG#)hP`Tn~KFELZJ|*rl!CP<zj}D@Hl}$0K>z>cpLnMht6;C zCi1AQtyLN#HXR)uVQFbeQt&=la(X8`7C+_V-V8c^0%q3_+_rQ&ZoOzHV$<>Qu|(sy z=6&?{_sf&@_4T3Qa~gN75mdK-#f^pl9(_u|`W?9TW^Co^yO@b|Oc5+EFAFF8IN8a4 zPZsZ2fG2U_!R%jNCV|VZ$0B4f7*r~iLL?HA6fEJHc^@MqBT%+5ZtBjA;guKHKcr9- z1uC9;XD>egVxqFLvg-2ka&;C;jU6jjLcj%6Z=}@hHdQ?H6QA>%3eBbeQF71bI9J^{ gTT){;X$i65H`aHzCfM2LlmGw#07*qoM6N<$g4{4olK=n! diff --git a/interface/web/themes/default-304/icons/x16/newspapers_exclamation.png b/interface/web/themes/default-304/icons/x16/newspapers_exclamation.png deleted file mode 100644 index 9a09215d82998e63cc75880e25575ef68de1f5a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007~Nkl<ZILnQb zPe_w-7{{L->JS9tDWX$(h>o>Gb_z-A64)Q1E}{otlpO}a4n>HEN~2^G3MqAjX=rs> zY-^i3QaAUfnZ)bZKZlv&8pAo~=HKbJ-|q=SBErFkAMeZie4g*~{1^=l4bkA>Ac^y; zKsf*v{r&x9Hk+xZr-x)ABVH;S8yhGVizpNdSY2Jk^71k=nG8~?6c!g3p{gq6cY=!j z0`5F8Fz`AWjbeO!9A2*%Gcz+79v+6r<KZ(BiNNRcLH<Os(%aix!GeQ!4hDm;TCK3z zY)o}^wIU!ni?Y7H&V~7W9=Ti&*=!c+bQ%i_3z(am`_tL)_aht*v(#ubDgvUet}agC zcDp&clvpelE|MLkWUs44G~{G$ZEcExNSZb`H?g+1#$)_1iR?T&I?Cg<w6rJ!B5B&% z+Jebsg1AnOSX)~Qy<U&b&Q6webacRNyMw8bOBnf}=N%ag21P(5P21bsh{xlI#bTVK zuC5NPt*tDPNv5X*m~z*kkbQ&6k5{m=l7UXAQv^iPR4SD)Ha3PpAON{gSuBxB<T#%k z4-o&NL#g-<kzgZ!etVCGh6Y7IBuzUzJ4hrFoI>tHO7?b=&*u;txrtoL#KNWTj}Q&i z<Myo^P2!nIns#@0;c~h7uH`-)4hLVE-EK!}-X`K-$I6fUAR?rqO;9JUp}GE~vGV*` zB4J^{?CdPFw~yaDi9+=@Vm{K0h<X_|s{!iQi}>uhQ0Q(y<aG6EG^EvPm1HuBP$<MH zq{QiT@;=;-=kPnL@GVw_WcVB>kY_Tih5PN%pxvygq_VQIn)32;<zGC#ci5v&oXV#Y zXONDcMsevbpOTpGMB4H~BmN9TM+C<N$N#4LA-xoY_G4}*|EtF|Dd~Gc&wc?orouO+ S)9=*)0000<MNUMnLSTY^EnNrz diff --git a/interface/web/themes/default-304/icons/x16/newspapers_minus.png b/interface/web/themes/default-304/icons/x16/newspapers_minus.png deleted file mode 100644 index 983a4153f881da0c8fab09af83e2b881f67a8c0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006{Nkl<ZILnQZ z&r8~I7{{NBm+carwjIMm5Cwt%g3x6!h%P$>UOpEOoubp6gF&aJp4vb=xEu<*2%1^= zqbSr+=diG{XwXn3u<%FrOW*rE&uB=8;TK+fzkK;Tujl<d9|{Bl<oEkYzh7(A02o(S zS7~Ksh1_m8aiO4ps+*e|wA*d8S}io2O<Z1H;^N{0)oK-$N(IGY5qwT#>=#I9pU?O8 z@bD1Z+uPXP-NpX?J~lTuv9q%y?^3CRR4N62bg}YyJVp@=+Ieqp51~*9;c!?mo6Sl? zJd5gdI#SqZG;nowg?hb?TCIlj^K+b?o&D>aPN#8ja3E5L!=W@p%gf7>ARdoPbe05z zK`G*nEP3q8=!TMPadA;;h}d*{dyDJqYZ>EzNw{+?7L)O8Hk;BAvFYya4o;^N`Z^`z z%*+ht=H}pXxkR$Gv;?o$i(D=zDR@Wo^YcnW#HRcEdmJAh<LKx}lFZJ|!fv;Vgp(8s z1?2O2>AbPAAt|j^tI`m$>EYo4TU%SmWHR7|axue6c${c7ibNtIog<Nm+?K^+Q5qsP zb-P`Z%VkNy`(R1`PIxT7O8(}>@_#K?AI8Ut*wpLwBpTl}?_+&^U9N0xZA}h;pPE8& zYz&dfN%%)b5So~P$6)yNjpz%pi3KMoC&J@C`gh{f#T~tur+g;LlF4LJr>CdLX0wul zB|J0lBbiK!#5+BWPotx7Y0-kg@cSLn&-X+>K5~Mgp`ka!!^3J&`21TUTF}_(@AFLa iLi1_>UTU6GpWqKrs-K}Y+bE3y0000<MNUMnLSTX$B|dln diff --git a/interface/web/themes/default-304/icons/x16/newspapers_pencil.png b/interface/web/themes/default-304/icons/x16/newspapers_pencil.png deleted file mode 100644 index c950ade8c20189c0a3452c5375fcdc933e686cb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007tNkl<ZILnQZ zO-R#m7{{LxBp8B-hwAJhC2#ARFJN>~2xC`4h~LFPI#_fO2|{+zO%R0GtjvLy70b<Z zFUowKvYDXbHWdqDV+blbo$ud%&yy<;68_-BpN-%5<#~S8+uKV$Jw2qqRT^~#3c9<y zsk5__Y&ILQP|$y>gM$O??d>6zN?~_*7h79f*x1-WB9TBm9>@IrJouib;G%&fI~<M= zkw^riqobIZn83oq0=!-?#>dCyyR@`~si`UO(PCw{+Y7|ts>w4mGjO?FaJ$_?MMZ_u z5YM90>9h!Uc6PA6y^YPyO(c^^tgo+QZEfvuaxfUg;^Ly1S}Yc&A?oPpkOsrU!&041 zoKB~RIFU^<sf-SkX3fpbN<+j>hlhvQ-`|%p{?~+){eHiU*Vx#o9A#xh>~wT=1gq5w z{hU(KWHO<?z8-CDZDP{W(t@t8E`-BjX_3@R4d>_om^2tliJgv*j}eQ-5RFEqNli@+ znwpx#gqzIG&0%(SR+9Vr`rv7AhrR%(!4RN^h6Z(Va)Ll0fa&RJ@IqP4a1$P9XlMu{ zBO~}3bHQvj%bn_?BHvr02UJ&Ar%q2#vAn!2EqEV%;o?qstkC2;jD35Ebo?b+TU$|H zUjFJuVIfg%ZLK;xJA=pLk+<f33=R&;lMM_Eh>82F8Qza2B7S4Oi*WD@j7Fo<5b2s? zu(GluWcHESN#d7Ri%UiP*;WEm)g516UY^R$&3%-UlS9N#tE;OBg+kJTO?YPBhyS|+ zzE6L|@2y6R`RphzE`Cl#w=_414?D5rWjuX+y&tJ4UO&4QxqmO)l1a|W%A$)WTXR!$ p`x5Y^($HUBYN$N_{V)0a{08DGoLxoFL9qY;002ovPDHLkV1mV)SLy%& diff --git a/interface/web/themes/default-304/icons/x16/newspapers_plus.png b/interface/web/themes/default-304/icons/x16/newspapers_plus.png deleted file mode 100644 index 5f5747bc884f420211f11bbc53c0f2a881535f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmV;f0#W^mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007YNkl<ZILnQZ zT}abm6o(Ii2B9(rL3nKttO99CT}XH#bQ46ftH3bgr5G`~7zDu>bYW3r3WiDBF8qiM zgcxk%2Y!u-Q>HFdoL@{595UF3-}CF&dkz>vP`>c+!k_<n&hMO;0)YVe{eIH-BaONM z6`h@(<n#H+<M9v|3i_iuI5@!W?k;wAcCfv@ja)8=OeTYLI*pBu4b0BYg8$Q0oEJ#v zuCA_*WHO0JB!aQAG0e@)VPIeY(P&ieg@px-kB@_oE>>Qzw?YIL?L0X-iBKqna5yZ~ z*48Qw@hob8e_sl>wziPZ=aJ23vAMa4_4Re6QmH?kW3d?K=jTQ0cDt2^sI|3K5)2Iu zNpzM3gFz|cjx0Ir%IJoYtg*3CX^7ZVC={@_w<lx#D+zZV92}JK91e%l5V7g-@DNQ+ zP0-IN5iJ%AY&IL3o0~=Aa=Fmn-j1oMDM`UQvfJ%SL&T<|qa!RWEn#tSQIgcx*Td;_ ziiDFS5(!LCPfO?i{(ebmwOW;ih)u`G#~2+Q#l*w}c%fX(a1tJ;udffo!^3zMwc>jB zT|AH3(9qDJG(>DVIXS`d^0K7heX!*GPIxSS%F0j;US#cZYq`4hu8N3Fr>Cb9jo+I0 z(c9ZAPuA1ZBa(;T>tG7pN9B(Puw)c&cUPmR<?0%FjBUgw7ObqS2xt2^zY|l(J=CP1 z`~`h6#K~+ntJT$2#N%;E!4jUC_c1auB9c1)Q{4D^2c~aTxcRFZ^s)3OeJYzFS6Lew z42H)>qfuRiOK(fo%2OuL`;s_)C?)z_MtrVlu4&5u%d27^y)2rc*Trr0=CTNW1G##j Ucer>4d;kCd07*qoM6N<$g7ZO0B>(^b diff --git a/interface/web/themes/default-304/icons/x16/notebook.png b/interface/web/themes/default-304/icons/x16/notebook.png deleted file mode 100644 index 1d5e4e1300719fd124709b0c58f080f4c3ff3de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmV<R0Sf+!P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005JNkl<ZILnQa zIZFd!5Qe7~D+^m2MGz}d|3M%i7TQ>)u`nJ{2~jkK#Ky|X#==HWLA2K&U}NVMuUy`W zg_=#WxsP$)Wk+xe*AE`Tx4iH0WOgaCw?|-ke}7OIbD@1{cbCH3+qAf~WkGmg<1aTF zT&Pz0JZ7*_F7sEZ#Gl2Y#ZffM$Os+32H;}jFV$*nO6ek=;SbZ~_iUEm41-_OX+AtY zW*p>%j-LVZo14n`RVvGu$t*_`8EXhk&Tb7py-D-V!NCuGK3`BEK*5a-WxP_abD>hP zhQK5v>P{2<9b~mff%SD|;^scb*LOMo%jD!b&B$tx{A+8<WK|4GvP2AlNnRG|G{It# z)gFzmt}0WpN0V<KOm;ItR(s@ISy86y@)}`*AuuV5h0`P_cVx9kBaw&_NId5`{*-4o z6J)hVL*cM8-H`VT3k-otMZOECNl~65t34VBg_N1(OM#Owd3G~FR(sStJWQTI0L<b` zYls1c=suh#Ww|4Z4!YLq@_MOXzOK}3fq|O|vgqh(5?b3lo;kJ;hF~AM6Hv2_@QW-u rc9&X&?xxPpvF4thh5vvoI_Q1_lA)|is+fj-00000NkvXXu0mjfESumZ diff --git a/interface/web/themes/default-304/icons/x16/notebook_arrow.png b/interface/web/themes/default-304/icons/x16/notebook_arrow.png deleted file mode 100644 index 45174b94cd538b7718e81d49c520091f117362e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006*Nkl<ZILn2S zT}YE*7>3^?gAoKBL>+ZdB7}8dnh+!%v>1qxJLreD6Aw1iW%v_qQLLg-FbGE=W`r~Y z+aM@nmWQhY35GM5y6L7iw~Da#_wE1Z?tR8yTZ8n4>)`u%?wjj-zLyzoHb&gB+dDX# z9XNb@a*`P)CYau8EyL(V1#PxeLMorfXI~W2Y!<&W8T?A8%Y5*7Kr@{Be+uZKf;Lkq zK;ohK<rp?42|wa-e2YdAjzlmuGXpv_$En{cxIR8E=w1lK@x>p9XC+oHA(J_86z-)6 zUN{_Ew5Zkn97eGIu`xk+u2@7Wmn)Z$NsO!4n$YLatjICl$cW&|(pmzGs|jppGP@W7 z&59h;S}cN|JU7VjB~l5QB>5t1O=z(+D{`#MY!>wTzDn?}OW4VTW<`#vO(sEak^e@r zpb|1kbBkJ&1b?Pkkz*H(MuBc+BZ=i;68|%~IkgFu{U_QVy|pULui2UVHpV&)2Eo-5 z|IcJWC1jH0_oCWF{W63nVc?`?A=vtORdwvaJY(&HgMvPPC<T8giE5Jp`x?%TddnQw zPvi2d0EUAA54(<<=2Wa%sbq4Uj<`lQt;7weMC?QP<~ts)16>~Ay!$UhKH!kyql?iw zqEN6C{B{MxDG=2rnx}5G-E*Stt`p6MX|z5MpmP@3-{Wu{(7jVpUdGvXP%a-r<xmOj zL+peoa8BKNk47i3=hCwc+3A74N|x>AG|CzpG`pLcZfwV{v-(eU9mAozmW!j5q3j>K W39SD3AWoYA0000<MNUMnLSTZOb0w|- diff --git a/interface/web/themes/default-304/icons/x16/notebook_exclamation.png b/interface/web/themes/default-304/icons/x16/notebook_exclamation.png deleted file mode 100644 index 4ddb7455b4bdc79aec1e298f2801893433f4e586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007gNkl<ZILn2S zT}V@57{}j1bs+`OMOQ*Mi6PO2S=2=kg(OH&f^;=95nZ_~Sz?1^f*6qySzu<6Foop@ zM4(<&q(-zpY;K;W`#PzqnUd|pbN1!7fA6z=#YWT%KMrR+|3AMy=Vhjz9!50w_MYZc z{)fE{77H_Wb+PMaa~eiJtWy<Br4U|QgToy_AQr>VXcQ}vNSfD@1e)RG{82zJ>r_P( z2`D@?;R)i0qTqWdgl~ZW7W{q;S*@T$bDW%wg1XL5fzBz1@YxrF<PD}v$i(gnV0_At z?!mzg4r#Tu97eF(jt+q?o=hSfkEct>B*@h>P3Z5?tjIBaTbtnG)buJQzpUb4CbmgG zXjbG{Rcou@(i%62@+DFUnW%h`nI^PYniV-#-qIqdcF!ts%_#VriGAz=Y$Io2`_KlO z6*;DDZWdH0`DY{xDj|~yw;&TG5`_2Dd8mF1ytXn_+-kTga_pSRB+z^3RCvCs$TV@- zdm&2(B-B306ScT`zxd&WCIchbS));KImN#-Sx^a?#QD95#G`P3EJtYh9!g6~5nQ~D zesi|<O`m29hp}RVK~UqH55qUFVzbGFV*t)~WeCpS0Amb`E*)MyJ1{-+M00Z3!V3yY zN?4&@Ph6p!mf{9f@_Qc%9@b&bqsNqV3WEc6kQ~P`W<937?AEkDH*0tUKY2w(>@dGw z@<JGdFp;ETynj)I8TSdu&Vy+KddkiMjP~!a4n5W!rF<4=_nyMSYgj*2Li-pWt-$p7 z5iEK0u;keXb;X!|5-w}@^3!%rCl&1C?9a;0t=yiUU%#0e{m!>{OxtENx!br^Zf|1t c`bzfb7my;Tw){==jsO4v07*qoM6N<$g7^wPr~m)} diff --git a/interface/web/themes/default-304/icons/x16/notebook_minus.png b/interface/web/themes/default-304/icons/x16/notebook_minus.png deleted file mode 100644 index 208b707c5728f0255067477227b2de1dbee8d627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005@Nkl<ZILnQa zJxE(&6o$_nojSN?sR$*4hU)AR5Q;-xghCt~jMZ2Xl{SMUgHBEXk?NqJVo)6Hpo61} zi>NiNzp<^qbg<1$a+90?<9V<56M75A4<5q3yzk-3xgQ0WmkEScR@#K_3cMVRL@2PZ zK%eI4O$aY6e7SO&Glc?wJ<(Xp<@j$l%YO{RWGfnFWQ5v(2H?TMmn{}qm(sy$g70*l ze<zcCt7&`_kMqX%Hsc^C)IJUvnVVDed_Pa}w^)*+X9;r%O!kj8-aCr(;`;g{O<wPy zK!65kW)wa7Qi(J9yg39W2~oG3;O`)-dgPy)QoKL<nc~AADSpai_b|@Lsvh~mVMT92 z46?FB41q~n7HK!ZVv$un>YA8P^qpMjeEdu2N+!sv9(l*d6@4Z7jIh8Em>6PVH%ZAe zvZ_ZN!Jxu_c9rJS%QROqK^C1*OAFE4KtR!7mhTJ;41q~r?uFgNkax&VI-L|DId6uB z6dz*O8IE12*>1A=u8Y688hOptU@}`(bt&bYC8BA1-QG?fzaI?Xrj^A2L)1RNs@u&* zXXk%>mLZU!SFNqoEVt|YCd0sPvLpuK`o;&uB;asdg`_+N133<%#_914vvn{8`%pUp xMau}k$f9F)>4o5O)YWxYyWJn31G4C#dk<{Co+=b<5e)zU002ovPDHLkV1fhS0?PmZ diff --git a/interface/web/themes/default-304/icons/x16/notebook_pencil.png b/interface/web/themes/default-304/icons/x16/notebook_pencil.png deleted file mode 100644 index 207c1f07471d711d7c7c257ee2a75477a8f0672c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00072Nkl<ZILn2S zT}YE*6vxkdJG$CM7v4mW3NeDD0xyOZD8t-E-Uxv=32M0%Sy8))?Z$45K!PQf3{(>B zL&9dnBC1sqNSZTsZfe<F5!F82_vZdR=XH<Rpgi!qcpuLHyubIn4_QY?iLs5183iqS zaOm2|2w8@P=<4903h_aK)^t9PL^g|$-Y~-HG=8U2_?1kmy!Lp&J%ZA|2Jl0H)>JNs zm<Y`+NANQi!}n+u!EhKGp%5mgrohF0g3_G<mmLmC+ozQ%=KWE4d=YgBo6IhSF|!!L zu+zE2@usFO0Ws9o-!Ey)Y;7Tt$*4ovBqG#{P55)TSLVoMw@c11u5Dsrbrb(H`LGZI z_j2Y=eLYcYZ?EJ+Rv4tj5_t%l#Kj_uO?a`~>n<y!_liPvuBS)R?)?(O(&rfVGP&N| zd}CEn#@{JQH8pj2OWL=@Z)6J|!X`;!QEcK{Uq`3WI02gtj}_$=HCn9_lkaOB%j<Fc z%Vc``Df$NPBPj;emXzFd5Y^Hdi$!uVFa9%I@DMi1h<hPTz6D<3&67GLgBBds>z!Jy z_Q+ilb=qu}boc`a_ychio6O8UgX@7o4G-I^aJHlVmae**%$1cy#~K=_#$;kT`KINC z0S}S;_z`@Gx6bW1KN>g*zt;us<qT)lI&3h|330ntHWFZ@iD!Ne&mV5T`QGg+xZM-# zPPmsdvNVGI2Wo0Ap-?=8_c1kT17co`J5FJ3*`*rggc<j8rjRAAK&L4$Z`oH-ab-8+ o9F29FIi3Ds-|lnn<qT*409aF+{C{3ciU0rr07*qoM6N<$g4Cum_5c6? diff --git a/interface/web/themes/default-304/icons/x16/notebook_plus.png b/interface/web/themes/default-304/icons/x16/notebook_plus.png deleted file mode 100644 index 1fed83ba6f4119dfb6c1e3772f4422d452969452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmV-x0+juUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006qNkl<ZILn2S zT}V@57{?!ml#Gy)@}j7262a}FR@sda1_LET8kODbreZTaCSp>9V%-RVMJOc94-^f= z-E<KPZ@LLWg3;IVduna7g36t3XWt)B&vV!-bwYjNcX1BS|IhC{=LP4~6fh6m?nc74 z1IO-9PJ&}%0`88Fs{p?!Vow(en8;@F<D!gmI*l8t6#h;oRbKmi$TLLcKLz|y#GcCK zP@&MLr3n5~6#Nm5;x}2w^>7$p&deYmo+BzZ3%W-~1ue5HQT*(WqHj5(maxf(1sUJZ zhw+)mv&m_zwUYn_ItK>@Etz~C6Pb)!!X^<?*P8I>@T|yzG%z5zIlmUexz!kMXYy_? zj65rHVDIY_v}Va5MN8xoHi^?BwI;k+o)tN`*4ry+Tl}iv!WRX1GT~W~18Yx@pe;|o zkuA7{O_F4xHHpzP&x#y0JDmb)IT**KKpeL+x%8?Xt6$XN;o&oHj`uf#@ks-~MTbMs zUZDTX7F@z68M+sLo1E~R#~T~nSUPqjpc^{?Fj5Y1p{q-9%O6UhKNLr;$(3md4eoO) zmw(!Dx9d=V!d@6Icfl!(1<aDfbns0pkO7y7eJ~~p)_u492Rz;D1wPgF^-x2%Yh^uw zjMk+2c`F)5YE_JZv$*SFMGzj9dEs%Hi}QM-;;7kt8;gfacpqXXOpZ7?REr1K3|Mk+ zUyw7!EYK#vsIRKB?J=3|Y)8q}{cm;G^&wqj=`?3J`v)P7mVN=QUg!V-002ovPDHLk FV1l5n7hwPZ diff --git a/interface/web/themes/default-304/icons/x16/notebooks.png b/interface/web/themes/default-304/icons/x16/notebooks.png deleted file mode 100644 index 0d3796740d674f0e493325f2ccff3af00778d975..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006LNkl<ZILmdB zO-mb56o$_aXtCY6=td|Cbz97)JGX_RE-NVAR83o3nu0|Ut2=kD>dJ*e1PxtOsD-*H zV(|k4N*bA1lWH^xX`4hdPG%<Gujd3aOw#1S!=2%r`<`d+(A3HbeOO(kX^)5G`R4rz zGt`9k$>n8wzqCYSi;G0|fN9>P$PDMoWrY7`pyu<q%w~}?O>Fu7kQ&p`IN-*Di^I`` zfpGi^p_q!m*#-QkNqpVig)FHv9rl14<q5ajy%!8(<3K?ql|tGukkB-^*Vio^0|Rdv zs!{%Vtp2C`ZT}FylX#8EQB=j~{JfK)%4LYsVdx6}pjrv>{Yv8?khYY6C<@M#Nz3Gd z2Mo>4y<mu33k$+Xu2h1AWVqN!`J-pex|2{`!?W4hmkg0;h)&>CgL0ywk;%StiSIri z^jxkoKra;VbY|uiLnIoaQ(yxLG5HRvjdtbF+g?Qe={WnNRrbE|@ll3IG(_k4JcFZf z2F*-1yk2B^vJA);i+JpEy=I6+Lv%{~7bGOl#cHEn`P1e$;wclcgpOF!M7PuVh9MFS z(FsL$1S2|{nS9yVL6L{Zr^^1Ir{~?R)>b0X5FPnl5>ny@X|kJ$a#w%<T8qOmR^@hQ z=W`;uPY-*0Npyb43=S~R%;eGF;1nOYSI1q3?ud>UNQkU5BX?4-Ts=^~+C;~$*9c3w aZe0V_x~L^)fKn*{0000<MNUMnLSTZr{Tyfj diff --git a/interface/web/themes/default-304/icons/x16/notebooks_arrow.png b/interface/web/themes/default-304/icons/x16/notebooks_arrow.png deleted file mode 100644 index 92f98042b84cc09ef388bf81f0be0f3b2afa9c46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007WNkl<ZILm#J zT}abm6o=16brGz(sV=$*A|au=2qZ`fx-1B_iy)jOiC>j{tTL2PcM;f?K_q<$DVw%g zfnFG76q$*EvbiSnV^gQwSmoE|KHTQ!uXBd3&1Nq=od2KmzQ6b3yi}vpQLSE2b?xmW z-)sNpn37F6_@K3w?zgm1Wpgu8azGtdX)>kZ)m7Mk`QeR3uowzqet8*R&1OiC$w(it zX2H!;=WGym_Y!O_FGi*pV4j-8`~H5&l0K7>9FU@1t<`G3Tdn9eTHu(UhbI`stj`B+ zS670pf`Z!&r6~Ux_x_{&!7vQdq&vlA)agY<V`Di(@nMM4ux$xut2Z8E8uP$7;z=m? zS}d5En@gB1@C79e4ObZ=Ra28t7LLUrA%1SAQ-0dsnV5;q?L%RG{WXS2G(=})$_LA& z59v${mPLFvnGgtv;}-;0R&Y_RzRnPdhUl!YfrKpc4AwU$D|hq_!0|hP>7TxM&8w=a zV2DIRbjD}=7`6McnMwD+03P*vP}ITCIUc}SmFfmVBpRX<<5!T7NHmHND<+$W^4l+c z$ZvDvxeM`nvPPphQT>WYG(^Yd48ZCLV57+`{UmapjpED`BeH8hBLCe49?t+r)!!UP z9u6r<G(<<9OG08i3z^5d$@xw<>g~W4GjPH9m%C%YfqS3KbSyWQPM4S8oNxs>Ac&17 z#V?FFrS8GLvNx{n1#PC|EfdHy0DDV2OnVA7MZ{~@p`4sMVjv;1RvDQ|lo1=LvPY5M zI&`=PP$*vy?zp5^?!K&%^R!=)nOVFuE35K<$eu0PD&5xHmxJ5#nv@(u67UDtk;YxJ S8X;Z)0000<MNUMnLSTY=_dbUJ diff --git a/interface/web/themes/default-304/icons/x16/notebooks_exclamation.png b/interface/web/themes/default-304/icons/x16/notebooks_exclamation.png deleted file mode 100644 index 3cafa5e040cd919a208a58fa42c46cdd30942253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007#Nkl<ZILmd> zT}V@L7zXfH$gYg)#;c%<612-w=%R}XLI_GDB)SkR%8#6xN`@h+L|}F?f|NeI(3tqq zm6bsWQCgc=Zp_VX?#rp0W9a7Qb~ZPiPycu6aJCLS{LeWrJm<%I=+VFcwG0kY>(CJK z{r2-Ek@ElKcynJLJ?QPF#-1Lc-36`U<e^AKbZZL^PY8in46Ezw@J1pS)9Ju7k(~4e z+X^wPa4v`8aIeAY3cxt;gKlmGpHwRF#dDFI-32M+hYE#a!eYS}jRA{ZFZ|&!mV-ek zMn;k;C@rlMp%n78Iq(npvsw?W-JK#aIRmKa>Z%f<#4?zqx2{2F2_#Civwmod{v>(a zV8Fu4N>btzA1Ig0?}!l9cXx9tqwzSnBqWCE$elyO$(>l;L6o((SBnragE_{zAPn{( z(n-{YRg5bi!#sHvF8dou8ymRZ)+Q4nVg_?Ign&yTVh2(*nj-Or{TLg)jG(U{dQ~YF zJU(1$YN`<-Vg_@}3n7>sA*7S2e-FT<sm7-C4o*`8mY3e+VtxHx5h7+VCocX1m&7(V zu`Y-^l3+xF>DNv8mgFcYDS_YBf$5(&aG|=q?p#$B5i^)$bxN=-O4uvWs6RljEJMKA z3?hQtR0-q6HI&`Uf0>n?O~ef5@bBW1xYz~n<F6zJovH$hW*LmSLX3R851sZbCV!lf zIy<tyXYQk8bh5aZ1f|yI3X6g;c1yI{ub3Dugk$zRY%`}40zPds`55g#Fx4!}C=~DL zP;OCC0}Hr>uPqVY$<()7uxn1kV>tnjITw<*DRFXURYyF-uQIy1;OK$8yxRv03L5vO xR(4n^Z`nW3dET07d;Nr_dY+PUCvTt8i$CG&!!A^*fiD06002ovPDHLkV1j-WO6mXr diff --git a/interface/web/themes/default-304/icons/x16/notebooks_minus.png b/interface/web/themes/default-304/icons/x16/notebooks_minus.png deleted file mode 100644 index ec879ca27c1afd2f6038c071d38e756c2f5f1f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006kNkl<ZILm#J z-%C?r7{{MW5u*AFgh-gT$-M722<<KfB`?xeS+rngl<A#!UPMA+pfE#+7j<En7ZHUR z43yK6&D_%IHdbxZ&9k$!-`}2R&T)pvUih5%9G>TV-w)4Aqx19hVqt;CJRXww+V^#4 z;0!K5o13HI*;#VU%n+Fa#(0+^GnlVb5c-orx=_GjE{CLH;H#=aYD}wjK+S@SgOPX^ zq1X|E(KP&f2T*qt__($PSyE?O%>fO{Pu*_!_dozE8$N`SNu;t_#5E1>rKLLd-rh$H zH7NhsPM=c#w7v;tC)QxH6-i@gYRbV-br_<w89ag-NLNFYpDAqkQ+4HUJ|FfIiMq)F zA22XEd6yw_PEQMW^5rrlB*R53<yW2$^_c`?8g5NY++&DDLv;MR8hkq%tW4H@hxn{0 z(DV7~0eZ2B?(y;a43TJvPLT~H#NZj6G@6y)uX+*wt7GrCR^4xmj0`bEq9Hol`x$J7 zGC0d*#p^|mPnH96r4p_=oevly(GZ<7--3h`xOmcNR$lzFidfP>G_E6>FmTo3c<Acr zAQBDH2}X1T!aA%>mT&gMW3yqoy}izxrl#;aqSquEq9fNOA!VM0%)@N5$Uhi;eW!Ry zq|%kHE)tzz(JTjKVP)d(?#Gkn=IC=G#SGuUTjF)W*4g=33?xKWg^`(*7_pIEdbsyu z4?l)$jMDLHIoH;9`@G%m`XAE6y_e*N9#g<SZ<esEJ&79P00000NkvXXu0mjfV8$c4 diff --git a/interface/web/themes/default-304/icons/x16/notebooks_pencil.png b/interface/web/themes/default-304/icons/x16/notebooks_pencil.png deleted file mode 100644 index 69cedaf6fca1afa0182aa2fd350df9137cf72044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007PNkl<ZILmdB zT}YE*6vxl*g1&DQx`{r7ya`Ko<4xs-loq<WDMAP$&1^*$#v*EVQF^s*97U1}8>moj z7qc?ZK3ED%ZBFLLHZ?aJ=A6!bx#|4(oEIIN%>zH)_u;(f|NJ;FJ!xyBr|s>e?&u(X z-#A|oRBXf1$9g?IY;C35mKLJa0JV5>Q&1UOU&r)Z2!VJUiz_Qwh(__vW&`&GIhg}C zEJU-?GatdUcNxyv07ifNVVm-ytFI4S+!y4e2BaxJ(&=>l4hOo2>~JqEU?~#8d@u-| z$&^H1UVcwNY0ASBf&Y|04UWJ%=}j{k^8}#OYO4e!ErXRtoXfB|0#b-|d<jFNOG)ML zb~|Q#zNCp?Tu`CW+!7GgG&M0dV~GSfBqW-dlp8yY$(=a8L0qe^uWl?VB4Q2J8J!Bk zJ{d$NlR^6;daPE2V=?IhzuAob>}=}~nd~&N2J5T}0}hFb9c+G>s%$V@;QkxNfXxNt z%SJ%0hEXQ_N<xLHo|p+?Y&wMPOu8)=%+2=Ty}^K}Sn&D0yxwM_BDzvn$J|bczrZ2! zwKc4)uBMrU#kupN7GDhK5dEXV^9Bv%3Ppo5Kc7gUQZY)WCk%%>j7%m2KR>{zFOY^i z-xk6((TiiHrT2GbWf2wE)G&AWcX3EU?1J~PY2x+tz-%g!hMzsy;VdXV^k%PIUb{Ot z_XZIirjuo5bf&86u4^_T0wPE?`6V|0`Q2G*_=RfE<n>E*Q4AeOVZVU(u?`z>2-muR zchc9T214WLY%WB})f2Bb2e#Hh)?ux!h#oE%?;JjU>d334@|OAsZ~C66ebZtW00000 LNkvXXu0mjfsS!4( diff --git a/interface/web/themes/default-304/icons/x16/notebooks_plus.png b/interface/web/themes/default-304/icons/x16/notebooks_plus.png deleted file mode 100644 index 70cb2f49448bff2ab967b892294d6a0a3916d19b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00071Nkl<ZILm#J zT}YE*6vxj+=8Y@qrsyUJg`@~F>@I3`7sM<u=tAgXX){-BkzqtB5v^|QMnN!8n4lvf z0|mW^D8y)@t;uF?>D(r(_MvlMPPhF#=f%c`vj={h_vJj#|M_tqdOS2lPlku7!(t)% z-u}PLH0?swqrpLXFfc%E{ryCR0UcbW$uy^PIe31@5#8Lx>c$4bsT4lh?T{W*T{>Xf zf}73$U=p6dI@~K!IF}=^FNH8RH3eDHXQ~SWij*Ik&E_vI7ba#M@P)%zOC}MF#b6#C z%~RLdXke&F`TIh2hw}K$9Bhk$B9nQ46#AYX9Ye}6L}|{w4!bL=gxG$pVb-~pSN`m9 zz#9tXO(J|jQ&(3DLuBmh6K<umSx88no28VyEhG7vxC1fVFqv*MM4}-&&ZQU}i!qck znQ^S*gUyCSI;~ug*xJJN&dyebNHj!eiwz_s#WVP~u~7Nlq!qqD2`vALDfLQwyPhEu z4bfTf#xd`SV>gots}<U>2Amqd2(8tKOGe`zhDbC-C(ExOA)A>DHdwLHM3moroW#lZ zYG@<(xn6);r@MRf**PN75FNKa0hcd<QYH;!t*9D2gVQ5wGz6QJx~Kb)kNOVul4yvI zJeP!Ic@{E{LX%p{d8h+dcR;Ty?NnP|Pond4CCLFvlrp*Ywgu(S53bM)mF<N0ETk&D z-1nMzRUXr5?umhf$jUJ?lMEv^Qe_WyR(w0WbR6`wVwy}U;s7~MM^rU6H}}`owfzs- nLz=Q7(v?k<es3=s%9Vh>`Mt17HQIX200000NkvXXu0mjfLq99- diff --git a/interface/web/themes/default-304/icons/x16/paint_can.png b/interface/web/themes/default-304/icons/x16/paint_can.png deleted file mode 100644 index ac2c4a3d19ac3403896ff00e1a5cc60357ecf1d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006{Nkl<ZILn2S z-D{Fz7>6G}5~cZpBgqs&qCg{MODIekBk@~A+gJ=%2bGJcSao28pc0MYIuU{ztigzO zqOpU5CE`J&6WI<nHkg5=yf_v!jpz@!yPp@|cPw2!aPfX#zvqVMM@C0SNe`^iX!OqT z@bHw$WV&cH8p+?>n*Kp1lDnjrOh!gVCd1({vD@uLuh*v(3I&nN<%C`}8V$L6zi<!` ziA1^xg+h0|Ua!?+vBZ>0<+MN`uo7HCp^&IlDiWJ%9|ZXQ{w`cD*KI1d+ii%)<AClY zGSD+15C|NC+qu<hL8Ve*1Deei4M|{t^Pd5nyuZKC%H?vI4Ja0iu(9zCq*7@{tyVjG z25|D;-X1UK^LaL4aq%52EaWhR0i90w>_)Qs^XBtrh7aK6Mx(*YrBVs9*(|KDuR}UL z1M~CmVQJ|TRI6>c5=rF76AWB?S|8_ShG7oLbnLmgH-N_qv$L;Rd1a*x4D%a?hK3#m zA8Z5il^i86FMnjm=60rXz5a`peLmly<N6n%&|`_!YPJ8$)oP2EF9(z4T<8N(XgO#} zVry$_N6I@p-@)N<OnE$>LE00Y^DPA^Y`YLzlE;O@=Pr3`YZuIB^F5o*HsE%<iPk(p z`YbOgpd5IWq75ZjRU#6JE=eSkC%IgSmp3;V!0taZ7z{S8R!g`g>~|CK*%zr}8Xx;C zMfwo6SS$`;NP2a3o0VlUSqjS&#BZmN6Ugz-|8k@sQP2P-auPX>oX1JVFepQz_xSEY i2NR;{NOYVti0%&)i=CTg&ubL`0000<MNUMnLSTXeTO<zv diff --git a/interface/web/themes/default-304/icons/x16/paint_can_arrow.png b/interface/web/themes/default-304/icons/x16/paint_can_arrow.png deleted file mode 100644 index e2dc31cb5f20f740e78d1016ec46a16556b9e7f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmV<40wMj0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007|Nkl<ZILm#K z{Yz6(7=Vv+!YsGRq~)3jBPzCHG8+hMLxy9z=^E3y#IWeY8Dg;{8k*oFlrg0g3Y#oJ zG9fl~P+~GHg!*AP(ooo>sp~Q`v@N1P;O(4?o0+2v510G#Jnw;XP<?$p%0NkNZS5_! zT5S`H#bqLq2>nZG#eGCynF40Bxy5KSB85VMii(OH91aJu*=$7ad_Eu5-JU}?`+lIN z?k$8&CetAd219FARaJ>pDz$RC+`g==tP(Pe!C;{L{Cs3}Cieq+z5Wmyji#B%$z&4j zb~|9V1tZHCsIIO)Kx%R#k$^}fLI-wt6C~1w1FHW9Qu5Bu4lM_RK{^l!1Ymi216VAU zi^t=sG6que_V#vK_W68tU~KFqjE;J7gaV;Z`0#3X^yiJ<T~|7glH>7sTArVuhoPY% z2!%q>)8hn>XA&kR-a<5*gbGuax3P<YhR#@HTBa!KfJ~O{c0UKat<c~9jFx9-gFsQg zp}f4jz2?p;VAjyzvfaN94dXF*<X?p8={NMUQ<I4ti~XWyolaM(yz&7EWLvD8o166H zI!^@LTL8w9Fm#N(J0M4+iL`v7rW>6#yaoaiT^sgF9=wlTeEJ!r?Ne}havcUK08RfQ zbdD_0aya}QluD(ova+(2oD-qy1px?1HU9ORGX`*d1;Dbj&%HGOb?--5S=j=KMA9ag z%Vk=v76~LxC{Ox?09@Iy0}0w@-G!|)q2tZI@DYnUUN*K4rcVH69dj@^wF>y`-z_dK zmJ0*|l)4xNTEsj(;K<?Y=w}ut55r?yJYUW&0LW~97<jb=xw*Lxe0XZ`w-cCSn4^3D zvoQr24he8Eg_x5}h0U9zf4q@%MmNJ`GF{o(*_ZJ9^LvOf{5^>*=M+Zx2liU7uNMy` Qk^lez07*qoM6N<$g74l;`~Uy| diff --git a/interface/web/themes/default-304/icons/x16/paint_can_exclamation.png b/interface/web/themes/default-304/icons/x16/paint_can_exclamation.png deleted file mode 100644 index 51516bfae5d84046b9d00c1662d60a1dbf8c63f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008WNkl<ZILm#K zZAjBm6o=1$6bx!}C=S+!AW^gh6Lk>T##)ZKsl$AuFsu*Ol&}z?MzMUs64S^ALMk>e zQK^}JD5oicXrY$r@&%nvv!R*OO)UKuobLU@7Uk%|!?_>s^E(I5h3xEX2tiCnMn-`~ zqbZU~rKh5!qv2oT5^n>0LIq@HW#y-(r9nbM0!Sp1GCrRVJRT2d6$*urdE+fyt=xj# z(lvne^z?lgjmGPGy*@@Rmz%=E!YUbtiJ{Fn91aKs0x(ti{{$o_C+|b6)n22r-|t7W z*^I=^C&Y#fNJ&Zgi$G_e&xiB#^K8K8rjLeLNPz0U0Rh?T^|JEV*ccno-`|f;=Q47+ z-0JY~a8<~FfV{rG9+W#eI@o~b=2o=X>?Fj4VzId5N~wE0@4;quFd!f=PSv7wP>&x5 z@8Q6}09vh993LOY^71NdYI=ojZN2Dr`!O-yV$ZR7@Z#N-oS^Lax`<OlnfPO~1xI=e zWbAHiXn2NXtyoi2&&oYLW9aexM73I7oO*Kx2`*q|j|XQyHK2R45P$92aqgoD9bF~t z*n!SeURl{;WrM*Gr@Z_QDReESFUxKm?LCj%-)h;8Tb@enY1b0j9+cf~Ur;`iS_&tP zuaQDOM~q(0Jf0f9fIF)ex-MLwFTkPKTI_6p$jWnb-%+Vl79}Mm#nFEvR<%%&0)5XJ zru7N)(lvQ$cWycfyWiZx>Cb0zVpNBH9ho>iy^1oKtWcp)#Oic95Xo}ku)L0fVX;rk zz+q!f4|hh6thmnM(ri3C0j*233ViQSp+O_CMny#_L?RIc4ktnf2aZ1~J18^&bk#F9 z*XU92#-a>27Ea)v?+#lj&Oym;T{*`=oFjxt!XW~ez#~Ku_+ZY5#->UbZ@do^^%dZ> zmM{y|W@e2-@5OoWf;@~TNC`q#0-)m@BZz+k=RLe0r1>i~00000NkvXXu0mjf6QpJl diff --git a/interface/web/themes/default-304/icons/x16/paint_can_minus.png b/interface/web/themes/default-304/icons/x16/paint_can_minus.png deleted file mode 100644 index 90edf3f90b16ffdd57474d22b89604d013c159bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007QNkl<ZILn2S zUr19?9Dsj!Te6YcWYTDDNNY^kqKP&LY&M2AopZ?6Mj^N!DvhYHf+P`~RI;=eAxO&v ziv}^nhXRYS7wKiN2Sq`Hk>fHkv@N2C9)JDL#d||tb>QRv{l0VH9Ee0BP=>ltD0J21 z@$}hjwo_)a8TQi9d>4dKE)WifdpkQjp|P<MOeRxIqtSp`tp;}0>-BK%#z(k3@(sF& zHUNUb;64I@z_qrvwmOHy(WBLBM>vkFW0T2bGN`Jmf}VKkPoTZMeIG3?EmxRaDwVLm zzaPo%CF;ut{C@u~#F>l5BCf5i34!hHB8v=Cpy{6hQQq3x668!KBLq^Z6fQ1)L8VeT zs?+J3$_7Mvb8}OYXJ==Hz|72RoSsfngh!*%c>m&1?)#;O+oMuIlnaG|B&XA993LOY zY&MI-!*QINdW(s~2h8P4*c=>8b`A1)VIbcn$vn^RlG(B+Cto0KD~^p#2=e@V26_G` zy4~*E9XD5y_zZuO=jPrE%NA#5az6h<kbOR1gDd(88Ejj6*4NknE9Y`WNj}{%1jhsK zkOB8NE;#{^pR?I8X|>`Tixm?`E%@@xSxH`9{faJ^tFN`SwSk=zW78`JGJxdluV@ta z^8A=pke8P?&~CS1cRHQ*UauDn_HL+jJYk@={%H&z08GXxG61l8hvN#5EVURX`I$e2 zOG`Y`*}qj&Q{yxk3?L3!wHFk%k7Eb)KH*tOR1!LcLgBBds2E;YSP^8EN)@BS(?Q>k z5Qm6^JO8VRYC^*TTH-KaAx_BU^79lLWw3jCcX9_Cq2H0%a;${$H?OLkP&dF&qyPW_ M07*qoM6N<$f{`scTmS$7 diff --git a/interface/web/themes/default-304/icons/x16/paint_can_pencil.png b/interface/web/themes/default-304/icons/x16/paint_can_pencil.png deleted file mode 100644 index 536f926d38f570c6b453aceb38ba7758f339ea15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007!Nkl<ZILm#K zZAep57=Yh9mrQD#C=S*{@JGT{ZfFC^W-^rNoI~bErC@>Dl*%xn)`z&eG!YdHX(*<G zeb^7D1X33ECyipz4@E(Rm2%Mx*A`K*pKs?}+=+B_;Nct&JkPmsU#P08f*2Ue%gdY0 zW^;>HtIbJIPlx?v7u*DK#R^nbRyLNEl|gQ9E~KWW@(P6l<Z?OCU8Pb%Me`eI==u(| z?ri{v!*Kw+-F~^axY(fA>zzuavWw$51AR;)kw9W%A~?Ile*+~YB?l-hEWAYJa5#)E zmkWv8NXUvAu-R<?5Pdlm3gOz?nivQMLp0Jx0(t)pMCIMxT~YS?{bFElZVne0zo1Me z>q$yV%8MC@$~!wdO!oPFVqkpy8IFxjl8AsBji%$GJMg3aez1oHqVm?(7LymeUi@G% z;HTkX^mw{)WMm2_CSGG85XJ&W+hk3ffamXQ)-YKR1SU^UPvfZT79!8%qm&fv?Hv;3 z*;zjd!Y|Cv&u=Zgwt|Fp*e}0*)lY;zj6@=MqoNweTHQ?E-25rZR;xAJbm2Wx=x=du zY-})j=5Y>2zTU>Vx+d)G9AI)F5MuJ_Qa2p8&me^k2OSdU$9Ka_9_%`S-Us)Xyt?`g zO(s)IQBhGgofA#o6ADt`teJzxYOdbPbE{E#Xn<$(^71z7bh@iXqcO{3v4C1v3rF-1 zDX7dE<l%WcWV{&UUQ*f9%zb`3+Q;OjB>~CoUr$R*Gpf~Uh%QO81*92${2`SUp#KWj zfxp*r;4Zgt#wclzkB|4v&##DbLP7#hhNqM`M+qr}!vq;YPDmywXb>B0+{~#=u9}=P w<Kp7ZNu|;r3O$p%lY3|hsy&H*&M|`K507)GsEEDVLjV8(07*qoM6N<$f<b0V=l}o! diff --git a/interface/web/themes/default-304/icons/x16/paint_can_plus.png b/interface/web/themes/default-304/icons/x16/paint_can_plus.png deleted file mode 100644 index e52664895d0c4f913a495f211ef9d510ec39f15c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmV;(0yq7MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007yNkl<ZILm#K z?MqWp9DskD8*I2YltyzRsTgj?Y-?fJmJDSt&ShI0ieP<c&4>yOObEeAB%(%)iW-<C zkp(j>3M|IHNM8o~FwxLpv~kfEt}UWJ;MX}9??N3Nc(@$SeV%jR9Ps&kP=aQU$8*(U zu?%W7nwHwyTG)@F{Wh?pRKV-?4s>^SLu+d*R99CAWilB^rBa|@rBVqOZhQjRoS z+XisE-3M^FT-WS&d$Ufb3&`d22_BEvOgH26`JhlJATU|@7wGKlJU~ZB#}z6U3I!Y) z8A0L>5cDMjPN#DZ+|K!Y9yd2P*+4Frr;$+-F#k8e$vZnctQ?QW*+4WJ#bojuibSHR zii!$z$p9y3v)Q7&xVXp$=I3AH++2i27*wm(cQ1{leqFwon<@r4d24H{D92(k4243N zNF;E4d=h78-{8W+M@*#(*zO*U^o=sudneOZlo^KEBhzDt!_SahD^5>8W##4NI5Ny1 zY-?+~)pc_n315Medt-iVe0v(5?|N8yY3T!dY;I>NXEMK8+2L>)Ocy^Rg<eY_olaw8 z<P`b~!`SfpWJx)d$`|D`U1QMXdXE&~4M`*LK#|cbw4g5+!1{Ru9+}hQ+1c|&d1K=T znoOoao6TmR??i2WK|u<@V@1M}_27Q$!Uk4eTiZshR(suOH0rHZE2y;nAkjUdpj`hX z2ykB(h8bA`CZrq37&F#C)MH)fI69yA;p!@b<n0gD)YKSNDiv^pUugxw(V3u7>0sv~ zf&|7T$*Ob{@`lU5udJ-IvREt*lE>3U)~g7I2<5x~O9_<(84bt@hvA&?75If;curwd uAP`JZ%F4=m$l8frGz8_YM32)zQ2zxDlbzulCOJR=0000<MNUMnLSTX@H$bug diff --git a/interface/web/themes/default-304/icons/x16/palette.png b/interface/web/themes/default-304/icons/x16/palette.png deleted file mode 100644 index c9d79643c83085fe5d4c6c6f1df632a703f544e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmV+w1M2*VP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008qNkl<ZILoEe zYe-XJ7zglkb{0uRmZl#pNCHiS!AJ;`%E)V8(@GNyFAxc4RHET!o0_`ToVfCaw~W+` z<<#2dbkkN&^M;^eX^Bnqo|1TXC{NEBW(9o+Jn-Z2yyyA<dA}S20EnF+>O+`>3N?l? zi6-<moXJFNO*k_c#iK_^h`8uBa>4I=>0Naw^REI556>cAZ-`CZjGrHjd3wT+Qm$U# z_f$XE#aaB^?hhYZe4vGYRDyfQ{w%P-A+{sI=J}k8GxXKf71p_2SmSV@mBoVPjy&jn z=K*VzJXoFJf~MLY)M2~$m@%dcEE~dh3w33o?dv@yn@jDv(9UK<mxBY;TUx?!MkFkL z$cFc|4$xNT1oAQ#=rl3VmvK&xS#Lsdok|+5yxF_lnGf??vB4KX1XP=w!$A6t-)G7w zs4B980YxOtw>*YvdE78&?-R0MO0?9GyD_H`85S4u1`BODK+pfutb7U46@w5}+6URu zmt;ioMJjKwJo4L|M!44bBw(=OnrTfl->sW2`&CN6XVe0Nh{A3VYgZwwc?En^<UnM& zQK!)>Btycjxp4u5nup#xvEPA?rZf-TcMMM{)4)GX30H+pa6YCIlEa;v=mG<gJ4Ix= zQ$`{zskvv@Ll+bU9#m(!Gl+sK#_Cxt7?&l3q&O4oBTJwl_0~vb03|SlF-V9nFlg~L zci3ICD*on#JOx?>Uj3y(CJHUzqo1BfYq>C~cmPv!-cnVliM0GO;}k(ZR;DD8<7pt7 zl=0R^suMvcO@Oi2JVRjYO%l)r(~1;*r^x41MbN(LXa0<!1V;w3{a9m3wg)L~6Zwtk zB(W=#@?;pR<!lVSxVzXX4jh+7pXkZ=-L1kMftNMOvN=R<XDMV#cbq&z1|&L?h3U>@ z1K*i!LE2O&QW|%L%=JD_#@L#XF1TlhY|&w4Oc&7i*t1n)@t@4leq==K^mqOVJ6ji+ TTlUI(00000NkvXXu0mjfJne8r diff --git a/interface/web/themes/default-304/icons/x16/palette_arrow.png b/interface/web/themes/default-304/icons/x16/palette_arrow.png deleted file mode 100644 index 4a96f6cedc85d6d1084473accfc9636ceb75cc82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmV-81IPS{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00092Nkl<ZILoEZ z2}qM+90u@r`_@5aRzg7pNnscy2tk%aMw!{HY?@YTsKZh)qf0|`TUIvLTxofvGd1im zERS-YOXsojSe6?dv$R=DyQI)O67}i*Mo~dT&<j6a{{QcN9zFtq{0~wY$RpL%-C!Q6 zp=yOZ9_6SJ^8Be7>I@~P#MFLj1N}aoeX9=Q{Z_!x<r+$&5410TFA%`&;ek)N;?Yq< z&S;-bG|<uPg(upr&`K8;(07Y|EtpS-sFq{)d41KQ7cbr1@Kr3vh)9Hc4h|S>Nr%3U zkC9#phI_=&6s?3hc#@Q6tl0wFs^BSd)0Lp+ukG36Uz*d<?C1!cvok7fZPAq&j)D6r zs4sCwQ~7$Rt~kJ?iG(3>t%_#1kh0y(@mKkw`oY$V_}rLm@mv;$qPcVN?DU?WyNU?h z%Cf_=vT%IXp2s^?bQjGYC8hq1;!8`~Sf55=c{o7-puZ^<?EEJU6*qABnh_DX2BaMJ zE+v<?G3myu;jjBN@{!gHzQ$_-HpLCnjcsh%k5cx2ua;SaDcg|TIE<u*A$Xopfh2BZ zR#P{rQcC`PzS~cOnuIN;WWlVKns~nH0}a2eh=*5v1$N47ur4wmal-XAY=MQsogru4 znW+j|QhaE6J6n*oW41cUol7!(tkoZBLEQCP_+&qYv#1i8r}lN{`!X_1m<CDmCN3+c z_<*DCW3_a=M|A@CWSbx7?wV89DCIw9XTMAxGTs1w$_L}IQK79@w{uq!_So5QNUDcL zL2s#Kq`N2<rov+|-<BX+c?aI->foJJ52u596aKe4k@O01I$7W45dSEE{5VT!NeZ7+ z*rX72n+l?adR1{Smx#tZZ*)u~m;j*x@O}8x5hJiTx<SWg8Onz3Sh0ZP8|%VRo_6I_ zNnJTws?jANvePak`-5#ro_VH!PKVRwP6*n7d7&lx*?jR{wt!1b`(85tZ>;?C+LzS< z>}}<fA*8#h<X;c7)RRmWWMxd+rqt0pV8-?g%l;eQ%@Cy%tJ+=w0000<MNUMnLSTXn C$d(cS diff --git a/interface/web/themes/default-304/icons/x16/palette_exclamation.png b/interface/web/themes/default-304/icons/x16/palette_exclamation.png deleted file mode 100644 index 8cc0d6a7b14ab09fd62dae01a6d5d6aae3fa6578..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 846 zcmV-U1F`&xP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0009ONkl<ZILoDy zeN4=89LK-E`<*dn9@?^*O<2}!(PWKg80AiRI+RhV&WtTt)5@Z|E6mAtCgouip;Dp; z?y9RR$JMDTQYT%g?$T=ENDoxX+xK_#xbc_I_S$Ek@AvzD?X&%U1OWLTh$fg%$|&Wb zd{RNVFXr<pZaOhPfO42}ilU%MDF-Ot^nMceRvW_qL%`C*6%<)xuuJh9kqDi>zW9(X z9T_oQ9kJC(`d`#+!Skw(sFKglrSIncE|^J&XyXx=8@4jZtM;{PF)Wp0NFss3)fI!r z3ut`cgQ0F2K6go>%U=p@=r}peOyLAhrJ>^$mW+^^;f5<?12yMS<K~7sPfuu^oY0mS zhW<w>cv$F(>f$v}XSl+mi-IX}m6~QZkfI<qt|NPI<6!MY^j0R>d6}>e`Hqe-pV;&3 ztRx(FQk`Kg3PW$zS@fu5+GzF=Q3bHd0ps~mn@(we*iSd;t3C&A{u}y|97JZdAUxfK zl*p|rlD3(>(2^PU+NM(s)h7G5WCc1D=;eYZoa~2`>+KqUJTF>^(;4wds{D*I`cK$& zR1K0SV3$*FQ&bei_qn`}26ZPlSdv6jjTLgC)m-d>fu1y6y&*)PQiIh|*@zdfso(^5 zltPxA7P1qRR8nxzy@3;?Zl9(-Bjk~r5##G$Ki-AW!CchqgRnd904^QhZ_V~+6YOCc zBuVRd9ES@c-0I$y$;Z0XM`1`<-*j!~^kRML3|n890)Bpe=<PTLQ{m##Jn{7W%x%17 zgezwUhMe=YliRJ54O#PJVaYp!&bu<S-V?)IA;8DZSo+@*bes3VkTd7~z2iLDT`7<J ztoc-u;=|-sD@9gIZuF;abv!x?C8NfyMPIDXLccbf1W>E!_itE*r`4YCwHeICAQ8iG zS(f6!IXq@D{;?~W%O|{;Qn?pXl^nn{Xwn=$SXx%2waMMS0oPlbmOz_5xo*cs#+wsx zdrbT;nfW`ZCz)H#hI#LLUM@h-3l|L9V(gv6Y?$>nCz(kn|EetlLar-FN_qk@{0r{> Y8#*c_OnIzbQ2+n{07*qoM6N<$f}5nEwEzGB diff --git a/interface/web/themes/default-304/icons/x16/palette_minus.png b/interface/web/themes/default-304/icons/x16/palette_minus.png deleted file mode 100644 index 2d6efca893c965765a62c9927c97e676d89881d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmV+t1MU2YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008nNkl<ZILoEe zYe-XJ7zgloJ1eC?Q^^lQNFu{8f)IsCRHS*CS!rd3rA~;1WmKY(b6c9a)|_a0%RA*Q zmQ!Q%I&I}<ZVt(bq9!(NIWvdi)J@Tz-ZPXg^daztABX2X&;QT)au5KZ?LckOG}M80 zGHIv_dmBrmVcv>ZS|pZ?J;8(+7rTv}#_xBNyYd*?9|Z)yJdW{n(Vi`{VPRkh34!@a z?%LX5#hOXWF^{RkVOVt*RQ!Enytn`N0y-X&G;Gh8rVh^d=YRlM<#NHw;Xsd<7c6TE zLHCXURwEBA(_BzA_<)?bgO4+gWPy7-(@v<biczl)ly5Al3qbAd4O(AcXmfXmi7XbF zKjgvtCST}n@dH_v7w8p<Fqm~xhO?ol`8x4%s_v$4xvvNol({ya1aZ*d>Ix&7H-6o< z#zTFn2aGhcU_td1zR4a;;Ou=QjU+@%nu2wcLS$Ps<1bk3%?EP+m+sbAkWe!U@s)#+ zmvBLf%FYvoqt&c0CWX-2_bg(x=9)`mH$SkSEZZt2pR;m-O<YMo<SH$Y)4c-c(qw?L z0*PbTYfOp>H|Nep98^3G)#rxo(R5`n^xtuKrZoe?Gg{$_unSHl)<J5lUl&<mBMKr= zb`W7N!X=IO4h@h6rI(%LIYCrZe92KhhYP++Q$bvo4L+=LC{DjMSr<VFY+)QkxxrLY za^oFu?OX?cV_KF5J%Tesl~<jcm3+n!IZril!Pxu=W@Nmj`WR<P^+oDYL>><p3d#?$ z5gVmE>tsU;=p}40yy4jbir~W_^`L|F0R4xA?r5oXpw8FYp@|xVo};aE5SQdJD3V@L z*rZ;Zv|^N{f}x4CK3;p*{KCy?%@P#_e=9;rOJ)hoh3q)uMu|u{K`F`fr?m6^DJo2v z?njaET+v6)PGn$H(O5D<!)%0xI0)&O2vv{;RBYE~3H?9q#T+nuwB6tNCpG;dE^m3S QWB>pF07*qoM6N<$f=$wAuK)l5 diff --git a/interface/web/themes/default-304/icons/x16/palette_pencil.png b/interface/web/themes/default-304/icons/x16/palette_pencil.png deleted file mode 100644 index ee11bf4f4fb32f1ee5503f5705d851f50ad12ac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmV-31I+x1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008|Nkl<ZILoEc zYe<t(7zgn4Zi}QSEzJ)WB!MQuKoBBDG|<$%HZ9AnysSv_f~6^5wwa=9=`zbpq@{T) zS$PTPb?Q=QI!#bf)Wl{<nrVrbHbr@Q-eG1S^q~VkUd}ns|IdM!008+Pq~4E38c|aK zi!`H_Ko$#`%L7@yC>GsAsfdrl&?&s%P0z~wS$`EU@z4ed`u)smXE+>~ba8<n1^m_3 zf&A6E9^T?;mnRG<+(98cEWx=WTMLYE6QztZE1GNMjeT@*fE7L;G&~-3u-UMz%z^&5 z&Y+nRfcgs`<P|4C7O+Ez8C|--xFKL?s;bz(Yo+hm`chXmbeWq&kCheF8ymxTS}-iW z%Y@b{E9k7X18FfERPx&}kakjvSvOL1nVInE<@NsM?#D3So}u+Y6a*E9hA^CR?ax_V zD7?-yf#I59m{&Z6uhN)t%tn)HU#56TnY}hA7i$L>@dXQ=SwQc%(^gjo5v3y#S}*{a z5nk2g=^19uNJ;SLIeDt4`;qrZ=_UQjHlbrLUG}?_{?5omT0yzJP?*;a3R@2d<BEW! zIWn!$D^!hAH}*{n7?j_2Q)O`Ul+DS`s&5#cu1f|lfdp<`i2+DRfKmg!dAdML?8GGZ zotQdeEUCO@(MK2Lo!=*W;KU$L&gsf#v0${43yHBeL9JFph@JJ~3rj|kHjF`%ahgGk ztqeEsnQauVe~~6ahsbrXz-NC=yU=-XtcnXQ`KI_AV<0(%vnq1g(@=7jVM*v^qEC@5 z7cI$DwLmjb5f7^JIGB7RfT@}!7_A5ddBIU_xG+h7Ir}23^|>d*C(f2ZHkT=uWI9vj zonp>}N)q*RN_qz-t9WZeWj-r)IYt^foE6FVo^gT7cQvKhW(L$|mWlM~j^l?Y?|54( zH^rW65ZY4;u{-s?G?|*F!|9RKn3E+5$2kjh3>`$ebOHU2T^l7vTP1NRF)WQhdJLuD xdJ)epcL&g3q(lC(AjpG~MEg-TSG~3$_yyWo^|JWV2O|Ig002ovPDHLkV1iCwc7*@{ diff --git a/interface/web/themes/default-304/icons/x16/palette_plus.png b/interface/web/themes/default-304/icons/x16/palette_plus.png deleted file mode 100644 index d0032fc45b769461defb8f1487403d101b82131b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 820 zcmV-41Izr0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008}Nkl<ZILoEe zdq`7Z7zXffo>|s3b%K#ZNnt6q5`svntSmLnN=qv=ywJrk!xD?MO)Yh;xp3vQ)Kc;q z=G55C%e0lwybMXjP!pXcuDoP;SG2eHjG_w>K`;C`yx;krhx5-N06_i+DfeTNN>mlV zB-QA7Ad`t~m4Qqj6oGCbA>yG6Xdk|3(RUU8%wGy9Jlu(*TK%k_4SIM$zndG3X7c9d z+A`)w)ZFo|22XgSItVKM>H@sC=H~(nTrM|8T4#+^a=Uw-oM4v6gBdOt>Np&jY)paH z7p^d)je_X`9w>{pfg(Vkj~QdSz_KD>u~3uk-!R+qaABe$85(SDL2Yjj<(8JvlMoE! zuae+pi9OUma|C%d2Q<oXXiL~7$E-UkJxN8s%Rk#X*>n#+*NS!C3WA`>+#EXMPyaY8 z3xUFPE9fW<hR>=y@KJuX2eVg*%!d+9G$zlFC`G!9<M;(*^%9`>KdC8u3}LyQ5R%yj zNnuB1<iTMor86h^{fJUH({$InGuPLwxQ6fCOqYExrJsWeflg3bGl*-aA+cr(4qcZ6 zNpPmNqbEp)gx~h6F$^kix@*K9CXLl`u9_hXe<+Is&$u!;F06(<;rS2~=vYk`=!je> za@&P65MfF2r7bOVLHaRMMWTxyN%b;T3}b<>bT_Qc<G^z90Z5HK-<R)A33Oo$67haL zT10WEt$MhUzc3)b4t0V9?U^UorL}z5c6#UJ*}$n!;lRnaSt#^pOLLCu*%5lI%os%C zrc<DmMa}dTT?36Y68fJ;fwuGpoXm58&5x{MQ<n7?uc0%r;x2pC=$>g0NoU_D-)9|` zB)KxA^&*cxO~K_Utvm+$OStphc^AjmOIFS8)_TJ4h{QxqXDMVxcWhnB@V@52NQ>Xg zsNnBqs8DUJBSX3&bjfR0tYJSh-l%KiyB$FIM(sqftd#_@GUx(5wDenv#a~6US}b}u y0Esqi!F?GrApbme_~V2ux=+sOt94I$$N364fcLDK%73*00000<MNUMnLSTa3fP#tu diff --git a/interface/web/themes/default-304/icons/x16/paper_bag.png b/interface/web/themes/default-304/icons/x16/paper_bag.png deleted file mode 100644 index 2d6de20f3e17cf261911737558cb382e0c6a14a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmV+|0@D47P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005>Nkl<ZILnQb zPiqrF7{-6|XD6F9*%YA_YkR0(JqQ*L9*UpDgE#Rgf?q%=h)3z6H!pq+A&Q81K?q3& zOAgV7CT_Fa-JKZ^o9w12(idLld1rVYp7)&@@&2&}K)@5=7FUa*heH63FLylL-hc7- zna%V6GF1@JJ9zYZS!?I3GnvFO@nk}pBqT{fnx>@lIZ2X`%;#mDB=nDqhn2vG@5K`D z508#eN}-fOYmG66*4i3j7}AX*u5WI#zOg|%=>4b!w!3nPPwwvR-J4D(1jf*8wFtwo z6x6y}+ubfVBY9E@+=#>ykG6Mr5#D1OjmyLp+-Nqj-m7{BuAV`=)naRBhuPT~N-5-$ ztQ2z5lJp+usBCLn4^iP9p)s(&&PAG5B2vmy48S?8r*=@(4z%?ir8P|{5kg$LzD5ur zrNnwq;m|dy7Enc=Q{*{oQA9fo|9S)Gvl%)Fux`bH^;HkbTT6a%K|GzJjk!cFvWz0j zP^Am?F9+IL%dhbmgg`7(u3&_~7=vAH;bqVB{DA;4!@+>_I4+4&E>fXXiG>h&=g0~S zz^hLl{q3jc;3GV}Pp4rFqSHY@MUYY<r9eoD0JPTp&V1+17wDgQG;pnd>bJg*8O`4v ve!j|AJU(O8KjjWE5<m-RL*3UEqX6PRoRhqnJ4Qrj00000NkvXXu0mjf3-tXF diff --git a/interface/web/themes/default-304/icons/x16/paper_bag_arrow.png b/interface/web/themes/default-304/icons/x16/paper_bag_arrow.png deleted file mode 100644 index 5f5135868a7b241af28a4446c1596f4d7227f626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmV;R0$=@!P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007KNkl<ZILnQa zPe@cz6vlt|-8*ldGvlZODvg?{1i2_BHKK*Oi(0g45mdCORkR7(v}xBuq9EG{2|;1B z2;4-jf<S|!s1_y#{>e}j)CMP}x$pVrz1w1(87+zq9PW4S<@@fr-?`%DMFoI>%RoE- z7YhbP02HRUW1yq|`lD-s@Bfo2BM~NtF5D^ADm3LYOXqUrG8tU0(OToWE^a=L)*7A9 z7i+DV{aP3-3rsB*O1OVvbQCEiQc9Fk*tSh99>;MUYLZDB8ycvsug9IATq+AR*H|UI z+}+#Tlg(s^*fv$M7>?r<1(hnViJBUklGburU{6w%@Je%A8^RduXmmGm2aZ-%5f~#Y z9)uMS60sQRmKJ_&ZX%_`Dv_nc+J2H{3}HyQZ532Zl!PIUZ9{D>p6ixHEXyj20fZre zq0&L2(t!$$K`KR+Wg&#vHNI#hf@N6*#!v`R6;ee&7JQ$A?-NfZNjT0Qe_(j2i+L|a zy7|)npH_l`=M`@)378<j_dIghEXuZbkqcW}%xpRgoa|(L^=#*+v-iBt<;He)pu!+v zV{HwDKy2s3+#qvq9YVm;;xr;v$B8oosRxgzubMDKe%^qiO@bigTqM<cAe+tNYK`Z* zc%H|z`qLac-bcQrjYL;BVO<?d8V(<7Oi#a^YgJ#?4MVTs$`PugwvDK+MgZ2fkqxs` zJpb?!fV}IX`UXfJY-enE;=RB6>8=7&v)@g6W{s8nlaV*S8`rU&0HgJ{561Vk$KTz$ zm&tycd8%LEpAbL{NI+#Ye+&E6$W4RjA-_K2zqm0D<bDC-1?!eY5Zqk=0000<MNUMn GLSTYI{xFjO diff --git a/interface/web/themes/default-304/icons/x16/paper_bag_exclamation.png b/interface/web/themes/default-304/icons/x16/paper_bag_exclamation.png deleted file mode 100644 index fc1836d734a4b1cdf948117bfb5a83dec141eae8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmV;b0#*HqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007UNkl<ZILnQb zF=!M)7=^#tncbbc+q*qIE}G<`BqAybib)Y0wXsn_v=c!@u&@&Zu@poIh>eX!I!jYn zX(xi(X<=+s#HcZ*Fv*#i%k6INX2&9Tn<yd<Jm&o~yf^<m_{GzU3IG9@fg%2HO<A}H zps;Hv7IqxIe*dazwf?D;uFJEr^LM(nN^N%MM2!ZGdYw3mh@yx%j)|L1q9`J2HrMJX z;=`x*(ahla=XRGLo*ExVN{N&br4*j$kuMa`S`(H^Z0YHtT&)s+eD*ansD)0K&m0&T z8D6T_aXpV*K9AOV%}}Xq55kcCk~5PT^p-@I&(;P95!T}Q{_nyK+|T7O*2?t^()A32 ze4f660e&tnBBjLXilxNqe95tvG$m_Wne`AQX^QqdD3?j%I5Tk^hltnwOx{zH2QZeb z1E-xr2g+EBREnI|=v)rh^N>=4Fto%p1H)HXNj{J|_+6c2Qs_XoTP>nEMrlnDh8fVa z6smjh3q^Eg2Yx>_tH3I7jJ0$itueHcgvQbmaTIm1LVfu)rLFrod*K14p55r0-PU_5 zRlTQDlvxi^rN%J-{W}PO=pa?Is4WF-y2!-D1b1&%$XB<O6Z7SWwLFn;=V7#8U{cPx zo44;?>b#!BF-elpl#}%A+RKmlJ;zU+!7aQ&=$u-q&#W55Bj??mW$cAzdDRwu&m$-n z34(wi2yhF__@O}f(|FE2Cr;ibua*fnwLDh```c|s1+W?DyEM$T!7@8H4o>Zm7#cY? zxT(^oU2IBFIZb2XApi?=jr!!PZ;u6#2LeF-IeFu^xB(pe+f)jHRf?Ct018X|%>SbO Qb^rhX07*qoM6N<$g7AVs&Hw-a diff --git a/interface/web/themes/default-304/icons/x16/paper_bag_minus.png b/interface/web/themes/default-304/icons/x16/paper_bag_minus.png deleted file mode 100644 index fa334ae2ba9905d86dd5aa72e113088b9ac2f5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NB%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006HNkl<ZILnQb z&ubGw6vsdFV<($5O`_0>wLR40T}biZq4X-=J$ev4h(}TU2ZSPc7U{|QPk56?kM<}? zOIp!bYn0H`ZFZC0o$;{AZi66w@R;{z_<rX*@68kM?r8u7JOHk8KHGQj5<ug!9S19G zPq!YWar|GT@;q7_cVA3$ZC!pQ!yq8&^@zfdFbs*Jh-fe%3`4@fAj`v$y@O;uCwTuQ znZ#@Ro0}-5P)eb-#u!6oW(ME)sn=>;nxCgJH%HWNeai_J>v9rzuCJ~(`@J5XF_bG6 zeBaLqwa(XSz0Q@I?BoQOYhn@~E-o)4oWqn#)4(%vsaz&?P8Bt<MGdNz3JXh1oE#sc zltNCxN+HKjlFnf*xon*lMO0XeZwxdV45KI~ky2)40M?Q^3I$1_K&Q^3w5BX2LWrsM zl{^nAC8={H7F~b}0+qxuNgOj%t5Nm+fBwMf$qCx?NbOj`CzstiA#iC*JRB1A`)FgP zz{zMtG8&;W6-sYA(yp6QplzD+yW0gJ5M!4@aP(%IpnZe@wAP3p_EsA3(ZP;>)^a?) zDFDoVyUl43WI!p$uK2#&;m-Q)vw|)F&DUF7=+D0#8z11|4Q5NmAZBL~fE*W6N`+ck z;8p8wHgrPJ@BaK_PucwnI|8@}EZlGMWVyk$^NixbF?*XkJO>U1Pywn?wC0?a0Ks2K WX2)C~hq3_x0000<MNUMnLSTYF-3CGc diff --git a/interface/web/themes/default-304/icons/x16/paper_bag_pencil.png b/interface/web/themes/default-304/icons/x16/paper_bag_pencil.png deleted file mode 100644 index 9a9648b90485239ad558e9de99a7f45c71a3a094..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007zNkl<ZILnQb zJ!lkB6otPx@6GJ&?qm}bqlt+c(^yz2T3CdbLa>O4or)kRHr6&)1`8n;VqqZ?5Pyn* zq85sXAW94<C>Bv+F(m%QNOm)m-MHDA?9R-y$nGZoAU-&}bKm70?!DY6o*q{K2sjCB z=Ks#5hRXm7z4W4?yZ7{sQ&F}0Po*?XMh1^wsK+YSjhx|^N|Zd0!1wWepCAYb%4K}t z$1j(cV&7-{W7yX)c>XD@^WMp!A*7T@DN#ycSr(~u8r!yM&SY5I+DglsH3SnQUmFG; z%|@M1ZQHqXN73^zEsJC-g>BnQhDtSVr@5K+8Dpwp(3TN(KHbsPh0q!+k@!`(f+vzm zBCRDrdQ79@czFg+Dn)x|C-a2@Qc8@vSW1jqONQ3OF~;U6n$nEMh&0q7iDPWbBGb}> zGEGd=M49GtB>-_uB4@NEXY{=Y`iwA!8dRh;QYn(Qjh#$lS{71Dgb*ZZM&G>!-i7U* zT>}FL@^Dr~%Pq*TS|zMjNoO)Rw*AKr<lMKs8Mit4FuQ$kclX7^T0b%(t*JrkD5AQ! zNU2yP@cmzqn;qkG{wezpB{|l&;qB`nxE8_Vl@+KsikQviKnO$)h7g2uhP?lZp8kW} zAHK!zZr2r+#F$(wFwTu=Dj`%ttjUQ9T-U{OUFJNG!rUBQ=>y;AU(nNkklR<U)0W<j zwLoFdhDFZLf|1Q@21hkND!M6QSvXBiIF5tkI7qXKud?(VIKrK4H`%m$7p<9%{HW-r z!BI^%uTj9NaaXs$&oNydzWj3K(5!W$<J6UG$E7n{<`+KcZ(oX2MSzb5rpH~j0@DIW v0S=)4^7+1<*e4!%C9d3krr-RQ3xU#4`_m$bBsYkw00000NkvXXu0mjfOEFNB diff --git a/interface/web/themes/default-304/icons/x16/paper_bag_plus.png b/interface/web/themes/default-304/icons/x16/paper_bag_plus.png deleted file mode 100644 index 176033e2db3a3f93fb8111ad0c32fce0d736d542..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006?Nkl<ZILnQb zJ7`ov6o$Wf?A^O}H@hLSiROW>5)eTNBm_YSb{2w#tsr6-w6jTNmBL1_3m6Nr5jzWe zAzFweMlhlnTm!}+o4DlaW$(RvA7imE7aurqnE%Z1|8wR)Gveu04S;}o;3)q$ss@$- zG^Vv;;Mm;4gBwW{{gbIO8CGsxzTL@nYPx&U_dL9Moxu0;eV-r*2pSE1-^Xt>TDkAD z`6)iz6?nE4cko<wc^Rb?N-4C~SeAv8&tuy*rDBnh;b8{LWrB|@pSuF%CE3B-Q!_Ku zZoN*%vdB3Owr#frweHS^Qi-vm-0lh-DvA!?8Lw0j#$aW${ls5zHkTtYM)f>Mdma=V zhtY`%zVGj<OmMN+H`<lE#pxbj#LB&qPI<Vp|pr4iW}IS42wL5(7w65<{<oxL1Kr zj6rElPD+FjeeKI;GDs;&j3G|ZJyK6V#Zg2YMdXV`3by^*8@RsvnAg!)3NwW>ll2&{ zb81JxBneR%;<+x`viitzv&k#(3$y3W^JMqlftN#Bnx?-3ohAu;wHgS4XonPnMX}18 zxCRK^#Kkm?Xlk*FVNJc;gVSSzB;`_O=<spZbqRc*FbD|4kT7g=H{Rgjg(>orBQ(+m z<r9@$W%9`A)<zZme%Em8Ib54%AZuBOfdK>{+eS*MIMpn(@o2r(>x<*m?yvu-Ir0P5 zWK9D@o8Qdn+ZsEKhf6R1^ns?@ac9;!sS_t31!=@h?+UOZ00$^QuQh)i^VTAXnMR2< dmYNHI_Y*F!=p0e7iNpW^002ovPDHLkV1hARBo_bx diff --git a/interface/web/themes/default-304/icons/x16/pdf.png b/interface/web/themes/default-304/icons/x16/pdf.png deleted file mode 100644 index 691c39335cbd395f8257130c88b4314f3e7afd79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`<jAm(=3qqRfJl%=|nBkco*&`K2Yc zN<f!FypUS}H#V;r8ce_d)2~P@&^OdG0C@?f(AO8g(%f9Q>f(~1RD^r68eAMwS&*t9 zlv<o$T9gcoxHM&uRRvbgMX8A;`9&f5`8lvq49LhY$uG{xFHmp}HdD|D&&*57FE7>v ztM~P_^2{qPNz6-5^>ndS0-B(gnVDi`W^7<;W?^RHY+>wXXy|I_WNhT<<m6;*X<+E; zW@_mI)9aF-T$-DjR|3<Ug3xP<Q!gkf<Q4#Jc1bPDEK5ysE6UGR0DIXg6SrH8aGD3z zn}XXd#yIur10ACeiddwGh6w>v4~Pj*wm=R%;iu*SQ+p9GS@#GByD%^?Uh#Bs45_#^ zC3v?NbD)52XXgX~9-+xMI?i7*da!td;B5tspG+G?F1l%Ny>Q4q`4gj%u4vPOtx-GV z7d+zDPF~bKOCb5i_tNiq?@BjwJv#8_%(=V9#cA)>w9jbz-`#F$_c~BRB%rGP`EvQI zT3eqM%{;C(mFs)(N|A@2I&9O$#a*VUEL!zyz7_|Q=km)-^ge7_b8nfN$0Qc#>ns2I z&QuZNOfiy-y8k-QFYszxx$XSpua8-6<;lt1dT-hJo10%TUB2;AaO={`!Wt7fz8==q z{j;aBaaraaqqV#|4#MXu8OsIdSKrd%{Jml4Zg!JP_y21<pF1EmZ+BN*zoviXm1WBv zKJ^EPw4U><sr#39pzS$}R9m94(M$I9wA}hs$$v{zB_3|*otSFfSnL@Qy00iad;)v> zgSW4npC`;WS~>IML=TbHtylBe{0vs-T{Jx+{=k6!{9)!V_u^R8)f}Uu6ZM#y)P(0P zxcUA+<G1&3os1jzElfOdvM@tdwq(KF*jNi|aRWQ^e02d=!S(t19mkVO#6G>{_3GyS z^7us=o14u!pcKb~2pzMy<TEU3n<HDC6n7<_yeoTWrfr?u?GH0ff9$kYy>^f9pYhJ8 oso9h7^!HBs^wspI_dXU0hUc#eJp0@xl!MAVPgg&ebxsLQ0RHm!ssI20 diff --git a/interface/web/themes/default-304/icons/x16/pencil.png b/interface/web/themes/default-304/icons/x16/pencil.png deleted file mode 100644 index 69810272887e7c7059e8a83789743d0b0272eca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004KNkl<ZILnRF zPbh<N9LMqZcSe?k5>aTWDN)3YgO%*K=W*b)av^F_vKq}rLI}BVpqARwdK#tVBt=e2 z4$H}bnm-q=F7tDkr<S(o*{8n8*ZcDOL4kF6gymV`bU%B#uA}QZX%W&Qbq^w(6$A4G z`kzIT_aduj#lYNvrfD9p*E{nQ3aJ;L?;{C=w6{PcKtX7pi8GmuG7KY?fSVXVERsDd ze6lA4$2)TIc&n>Rqvy-za;-%~h!ztt@%LL;rLMJ)tuR+@ZYRSIhkYO)-UxxO-(epp zgxBYa2w36VKsaB(4zJI_P@f<o+4s*4*x|`hXl?rU^UQ!1&I`>QgdiHG`Eb5+@$+dy zogekSo7fVX+nq+XgR-PP@6_ywM5i=a81sugG`BJ?o3E+33Jy!$+bsd09;gFqff}F+ zs01p2a-a-w0wsU|s7b#h8f!%dx`0lg9q<5dpb2RB3s&cZN&&|&c)|&w>YIlj00000 LNkvXXu0mjfIXk+i diff --git a/interface/web/themes/default-304/icons/x16/pencil_arrow.png b/interface/web/themes/default-304/icons/x16/pencil_arrow.png deleted file mode 100644 index 91efbde7c1da01c6ffec6b91611b6678d819691e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7S|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00060Nkl<ZILl*T z0D^QsMh0vk!iSMz!wd)x3=9P0r;LmsEOrq{Z-yyEHvm~976WV^GBU0^&&b%0VE{Ib z$OZ%i1gJSWI_Cc?E&cz<-Tmb{1_l?f#<o=48etfw`S0Jq|JSTpb9EI1!;z&R%}Z+_ z7@y|#(-|FBOkmt`{aE1teQS*0b8>Qa)BwX^0Wk)^H2-*B@&D@KfR}w03<uN|Sr~$t zm<StyO>=iC1B1H_6JY~zX-@4bWw4+7g27_SeFnYuOV|y-r8#KIdIpF2ukagyOLO3) zwG4K1p3ekoJ_Dp<uo{3(b7{31gJIWI29v&<AY0GOeER=Ch&G>mF9yW`Y?@0dO&D}r zFU$lgJOjeq@vF{6uf6+!!lVEHL42TG48t6t^A=Pv$jz<ft$lYl?f<q#CNE&lwke;) zV7uhuvyKP<|0iAk|3B<J0+-zU|6jTC@EL|lc?^vGIgCyJ-<|ni6vnt9Gk~!w!Jm;q zS(br;*F1(nGH3ftiL9+>Kp5l#^M!Z+2cG-?AH)aB#ekA=&$Fw`{^tZSE^{<wj0MK5 zI1q~gu?P?g0x>@j^8zt9Z}if0ItTy%=Z#r*mfN*94k!lBME^7V8COY(Fa`qI20*L} z#9BbC2E>X$40H>FB*;J(o00{r{<F@pSQR7!`K&<91OQe8ZbKy{U^M^$002ovPDHLk FV1gX5`M3Z8 diff --git a/interface/web/themes/default-304/icons/x16/pencil_exclamation.png b/interface/web/themes/default-304/icons/x16/pencil_exclamation.png deleted file mode 100644 index 64c53af26c969c20431ac124f383c21e0d120f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006uNkl<ZILnQa zT}YEr7{{MyENB<rnL$Jlf`t$mdJ}cw`e0pD?iChM2wwEDU=##{%_fA<W*=lpA4;3f zk!J37TH1^VvlQRCy%9s+bk)GZnhUiF30<_F&Y6sCzE%f*Jm);;{Qevc2Y`)JhY-}p zkpl?5O-l%Zkl_;|ry$B|U-n>bz;aO~VAlu4z-vU;iU2ind4SPqEYj=sXMb9)^wD5Q z1_1VEMCXas#VlDlolcV|ib@y2NIRF?9ZUR8?zw~Io!9Zn#Hc`nV(C|%PFL?>Z{Yo( zfUNvIVIyVOn7n3#p)H%WP^r=UJ3vhqZy{W^X`tbl27*U%^?+RYK_gDeeduRYGa!p< zK(2h_JiL6>zozZmoM(pD$Rk|K0M3d4wQGlZ@nBruAO5lEr}vS4VZN4n5IBDXsL2DZ zs2%Orcoq_uQYMp$Qqvbwd_CevE#r59n%rE6Fw}{AqJt&U!nA|fn^R)aO!7dX#QV?h zvjDdhz-xm|9(!KxeEcK@ePuITzQX!XeTdKQVbj!`s@aKg13m7y(s;C-qGLN}d7tk? z;~BsP3)a!ROy>@x_p}jfsw)s`EeOFD+%X(jCr!n6Q(P&{+<@1(QbsStJc;k~Z+!K$ z(m|F=?9gw=Dt2f+qkxg$eH+_ip~5f8cg2)^yOkE_?3v1mNgI<7o6*hx5}7NoYePN? zY+l0H#wcbKS&xJ7?nRK@PLMrLh<IEOZgIgFBh*?ClHCk9e*uG}kj3PcS$O~e002ov JPDHLkV1i#OCoKQ~ diff --git a/interface/web/themes/default-304/icons/x16/pencil_minus.png b/interface/web/themes/default-304/icons/x16/pencil_minus.png deleted file mode 100644 index 0a827a2adafcdf58467674ed3ab9a9fe435bee9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004&Nkl<ZILl*T z0D^QsMh0x4E{Bm}!wd)x3=9P0r;LmsEOrq{Z-yyEHz2|Xp%IG#HV+vY*PUl%Y{xJF zn?_^<0s;cm9336=|CN^hf8_4|avcMM3s_@YDsGK14AcDg@8ADx)~va@ih<$CQjq4Q zH4uzX^ZMzG4l5=w?zny|@c+Iw#_u^fIXh~AVX%N017MneJg@kF^>Dz;z6yo|>WVB3 zK}<}94Zx<kyOe>!-G+&<0k|}Gl|T%r1A1XOE(7pso@K?r01QAd#%cgA&Bz*Y8h}gl zLRn1B7zW_dJP)XO83V&ipyD&=7$nXx2dHR41%uq&O5WOcchmlFTV(PArnxtqfnf#% z7@zqb7xy0>gTxso<uNe!=P)+?e|P48Q5fTb%mBu!1b;>bWm!lv2c^{(piK=x#poC$ z4ob#7&#o@}pA*Em%+ZiB7N}kvh{b?d1c(KJm>-CFftVYJIe?fAh*^M`8HmA|=zoSk z<0>f;#y}w30El&gSPO{NfLIZTL2i+R8YqBd5GxQf0RRWbFD6}$UG)F}002ovPDHLk FV1nyYyrKXA diff --git a/interface/web/themes/default-304/icons/x16/pencil_plus.png b/interface/web/themes/default-304/icons/x16/pencil_plus.png deleted file mode 100644 index 9cc6e2d38db967a2f45f51c099b44b3f5ae5f1df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ZNkl<ZILnQb zO-LI-7>3_38YHNxKT%Oo5J5pLwA7<Q7nEE?cLPc<f(NS+L_r8dNiQDSf`3I64MvEf zq9JHO5KpC0@w8QX2t5^1@DCwgdx_I;)-D9yRR<ovZ-#kZW`|jTM_(JkYP@SDd|kLh z(=>xKB1!Qtt~=(&`vK{qML^>T(bf^srw0L6VtRn8s@0034BZ9-;?(QC+5(yl@#A}Y z(ZrNfsg#Jv<B1rszb56i&>fG-+w=5x;|uNmKG4Ls_?sJ-%k??LcMyF}fGPjI2#UlH z^=c}J?=_W~@Hre$2UyAD0l?encsjsNZkf&oHj97_53p2V9bhL{Me=}H(c=NO^5P3A zh8f+cRspv1tQ%M^1XewIPck56HRkC7w(?9a5Ge@rW?j;8-7C!ASdZ|gXb=@kBe@@v ze|p94O2efo`$L()T%JT%E_~uXavd{+py>e`6G>eRcT%)prP1zoLRI<yckaysCf#97 zxOGYWX_GK}W1XMz#Cc*}4EShWc}-oclrY5%-xBf}zCG}FARA*jhh@igg6mJ7XE4T3 zB>e3ZEAx=X{VV1rQ_EB{m5e+~sS&6;qwqTqp*bTwcQTHDkla5+r06sK00000NkvXX Hu0mjfPt)S} diff --git a/interface/web/themes/default-304/icons/x16/pencil_small.png b/interface/web/themes/default-304/icons/x16/pencil_small.png deleted file mode 100644 index 921f23bc92b7efc9ba121f4b5fa2c93bf61a1e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmV<R01E$!P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002INkl<ZILl-B z|NlP&C75Aw8L+aRfnoPzMid+x8p<$NTify;BjfsGjEoK>8xRr_qLOc6QTxB4;r~WP z#)Bjouxk;cy_c6)&iC)%|GP;^_04Bsa3k6Pkme238Ml6aR{38^NvT#yNJwuE0|Rkk zfUJ3H9pgS<Ck{t`etrg`3_#c1S;XMt?ZCl6lmW}@7}U@;w-+!l5N*JuJjRCqUv8pk vCdmMhe1<>c>hgF-JD6sY3>XG^fgB6~DZh7!-E>i@00000NkvXXu0mjf_%>uG diff --git a/interface/web/themes/default-304/icons/x16/photo_album.png b/interface/web/themes/default-304/icons/x16/photo_album.png deleted file mode 100644 index 27747ad29df08c1ba11d82dceadeddaad8a9dd29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007cNkl<ZILn2T z%}Z2a6o;Sp-uGVb%;=cr<X2^likXE3E-WgvMd(5ZvW1JFRauK@)1saI0WPXV)W(I2 zAX-F=vWSR?C`3#sM+VF((HxXX$J^-KkN39GDUtBNfpg&ee&<=7Bczo5K>W^0?+iP~ z7;pt(@!Dg8AV31~M<XLQO~b%4O~RH{$VezexTpxrvak$;*1o=n03972#5Np-5aLO1 zZ}0gFW#4vOznB~wTRAt-=F}VpC=h5ZEiJUhN^o7bFuV||A}7p3uj@K9R!v2|y7@9e zuxap90-90^$8ks`5(U9hmCn`MLj?a2bVD8R06+k@hKKtL21+S}5HvM40Wf96@RXu& zNTWOgc^4{*p)3ri>fuCOvA(vZNkI2~AK&+}V+|zqN&wPYl+o#F4u(F`QhSWja2Usj zVk<<vq8djja=Dz4fbMx7p68L5rCho`xCOhtv9VAK;Qs6PRPByX94g|sZEq#;mBLes z$!FCCiO@F60GfN|$*hM+tVY;d?qJ*YRsz>`ag^f4%R0KdY|3^itg=$f(kS-qJdRQv zsZ_M>TSrKfY&N@<!1X*F-)CYx#d0Rfp=N{j?idFeYWeYXiHPrWcWCJ8)YQ}m0K+iS z5|DohJRGIy>B#{(gb+-R&yktenN50Bb}CAu(Km)++*?^*CLD<%0l7)Ap3fts<n)d7 zwkzC!7KD^!vso=(U(e*|D66Ry5->LJz+cTUaItfnI0ynv(`4ey_qmxpjp@}?icB&I zfDD45L@9-)X&kT6|N94qp^<(*v+(xw%sZe8$N{zhUI9nDOy+iare6WcPcDOi4=e)d YKmIBobnb6%IRF3v07*qoM6N<$f{mO(jsO4v diff --git a/interface/web/themes/default-304/icons/x16/photo_album__arrow.png b/interface/web/themes/default-304/icons/x16/photo_album__arrow.png deleted file mode 100644 index a2572e8dd37a192fa51753ee10cda6096715b129..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007`Nkl<ZILn2T zSx8h-7{`C--gC!0Gp4yrjaq3_VkUz{J+x;Lk&zH(ghWs;Z4c2)54{yVwm(G$tyUC4 z5VTShWDA9~P)!6@1TKRnHjd-WUC!+#Z%GdxIPm}AeE;vq$NvZ^<qjZrVv)0)u}?d& z9iVsDbv(~Q0<o+2?(Gd224)~Y$Ta;M4h9M3<zbp8reRRu(sCN0p`n4uA4egCxY69) zynaK`*D=TUera$2wRZnpt9&MaPoUM+)lnZAhi%*b<DOuYj0pI(uIqd=%S&@*wcGH# z5rb|CXi6z8%Oa6T_zitgot+2H;r&C<2$jGo00Hc~bZLigpp-%gK}}5!0H2Krj#9Lo z(<lx@&W6%_C<?*iX|N!s$PN!{63|`O#dTfMk?AD#i2x+E0$z7?Fg5s+x{BEphC)~_ z<eNcarDa%3k;!C)1a!x7a2$u6EM&{>BcrhARag6304E=|5iJRmAIxJYogPi#DutsI zpKg`;EkgSvJ*aK!qCXoXF&Ji2u|+za7TUiAwryi6#oharAWA4I8c(#Uk}36Zic3m3 z{4B-0!3pU0FNBn&QmN4dw&P&AF7MuaXQ01;8MOxU8Y5Iqui(eWK0c*0tXMjkqgUQ` z9z6Br=}<>UQUdZXfrF(KO-&gfgAjsaFE`QkVg^=r1p~t$Q8LS>jk7AwUe>D%%9lwA z$Pt2UE{BkkC3}+o;;ubPv9P|3FN09%fDJtV2`ksd=iEHswnqZSNDkb=e)ex(HY&b7 z;YQBijv|DhZy;^QR<AM2<1t!K+-Vn@c3gU%H%=*qrfJMC)&I-?YVHGI7zSIDjrLGg z%y@XX^}XBu{!Hfap(_G-0K``X=p5@aeVDyHnvBF#s`FK=`{v>WAo&|@#3%pAb!#yI O0000<MNUMnLSTYM_f56{ diff --git a/interface/web/themes/default-304/icons/x16/photo_album__exclamation.png b/interface/web/themes/default-304/icons/x16/photo_album__exclamation.png deleted file mode 100644 index b5e63561120ca3126350ae06477c5b42f86babd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV<T0to$yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008MNkl<ZI8TL= zO=weD7>1v7@3}WOF*Qw0m^2l|#u~JkA~TALN_8Rrb#SmQx)5B5I<pX66vmyd#l<XV zW+5VsVg*6`Unrsrr51IeRflxCP}`_c8*kF&{+#QgX`C*^7Y>~7@I4<7A4f<j4+0&3 ztn)VU{R{&K0N(v}o*)R2K*!nZ*9T0)z%orDmeo9S!eJtz5SC?O83x_`{eJ=U^z@Kw zOcX+h3w?ckyLQJ%8&BWPyO+bmlRJ<7<YblsG!3+_t}eP$Ex4}RY@P_GsS2}M>$=W= zRwh|*Te_bh03Zm0aS3QjDICXPWMrfXyie==di)gAt<%{G3xPiY1aS1snS;#%N-2a8 z<Z?Lxo*OAVrRYDUk(dK@7m`tkM__#x)^;drQ&XA*bl>;!eIGlum=XO40E*gNh6)81 zh40hVzJgdJg5yKf3e%Bn!%>QAwJIc_d!C2qdDLZ$y@yWD(q7%!3BZR}r<p8X;c+p? z+j#>-!yziRJ=?%n3QsAXU21FK0-;Ucd{H5{;cuSaJI9N%&isVJw(Z#luIu6`#kCs? z*}BCh-m0+TF&t6H_u4THNj8(gw5}rLPRix7rv2Z*^*kKk=gFfn&i><Y>$adYm84p8 zX>D6i|K9T?<7xNq)dNE-w{8A?v`{E&fc$FU;V4CKZ<Tz0f{^)&u_t$^*%JH;gM)*p z`nZwLCj8U;?mYZC|L-{o$QgrLy^fHQ4Tp=39R!R&K0+)N;?2h)u3R4AeSHWck?!<L zqq}?aW49z=%=`oY^9PRY+1P*~(Q31D)hAM^ET%Te_8liEJpB=(V%{e!+FdEzt7Q-b zElMdgO=C?`Z^8h6x=3!xT*BG}7>Y{iD0b;00O|Hv_Ib(PCxDy4@+~H>XVJi_Usw>& p5SghpNzH8GwGaflhG!Z)_yVd&Gr9!XqG<pC002ovPDHLkV1oGAWaj_? diff --git a/interface/web/themes/default-304/icons/x16/photo_album__minus.png b/interface/web/themes/default-304/icons/x16/photo_album__minus.png deleted file mode 100644 index f2af67d91491a220182d60d0b7ddaa3fa3b8025f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007bNkl<ZILn2T zO-NKx6vuz}&3)sW89&k-{7S4zGc%FMg+_+C(uE~t3!$J@S&L}XqMfyOQJYAJAzc*F zA|l8l+7wa5APF|2nPF*(GWqcuXWqwsEz+r>zzY}7fph-nci?}7l(G+qTtDozv-OJs z=KvNj+{g1gBoMhfGIH6k>ll7NLBq)WP#{1sCkMkYFm#>9-rhlgwzf9H8;U{*@t~)t z=fugvPg{;(oQ%a*y8D}~@_hgq0<FHjp2lz<wryvMzXwW53V$Z|`FzY6<;Cf;y0duR zrocA|Xi6z8%OW0+XBw7DeVo4<#run(6RLn)00Ou&JlvNNP)Z?$ptiOafC)W}qZGYS zjiL~wZ79x#!XUKnhC>lWYJFXkfX{VZT-U`6R}=S@0I;Ct^KN>YU4b{$R~(=q7{qcR z*9Z_PF2hoaWHKov;By=Y$8ku@0?u3<$ii-}sma6wxcU4QrQ1W~26Fgmn%M-dQaDQS z;Za$pMQ9tL2X$TZBvJw5Yaw<NS(v7oO<>zLmQp-<T197vN#QnyQCNV#ARqI~JeE@I zFHtmArV!H4>gsAXf$cb0uFLz;&nzeM*;}X6+!<zPbp^BION3mP8`0>)iHV8V0J^R( zNI?D}aIlo3t1Ag45kfFMI>*d4o0Tz(*>DS|rlt-COtW%htC$4jCP6BlMo7t#OAA>J zd^y-kcYDL{q@ke_s06q(G=v27O&_>x3HnbT{l~(2%kzvs{zz&)ZA+K0hGiuHB*diW zd3j1HG)<$W*!TY<IKBs6*NNVKF?KJ(F+c%Hz!bnUprOOh+*Zf*!(;NT%>dv6i@?G! X{IeYLt#uK800000NkvXXu0mjf+;}`h diff --git a/interface/web/themes/default-304/icons/x16/photo_album__pencil.png b/interface/web/themes/default-304/icons/x16/photo_album__pencil.png deleted file mode 100644 index 6be3f7b429ba9f1c9bab2b768079654543852178..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV<J0uud+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008CNkl<ZILn2T zOGs2v7{`C--ZOXZOfPMm(gIC0Y!cC|z@oxhB_TxGLc$)KtQHkPi*~gth>#+%2h^fP z5UpyFSs^{37n8Oq%P>cJOfoWBBje0{oZBXE*`@;@d<VY&|NC+HA0egO4^*66?`-D( zCk}J~qz>N1^E@O_aihEYm=OqI8U|t0^lMfqL^v44G)>GvfZDdU%K(jyjYNMt3L(U; z*4EaR9fhC%yFN7-kN?<qVzsqs1%OYWRaaM28=Zq~+y3zPP%&9y_;+2`88#Oc<x67w z@Vse*qy#jj6qaQ%FfiZ?#)@?goV<qj7eN!00ha&-aQyo9{l0-x3LyklRaF4I4@7a4 zqV1Z-{8^B<p=dS~hGD}}SXZIQO-*SM&|TNXbzLT-l?><$0T|Wh@@i;^^3Zdt7q4Vq zIE>}OY%@efQ3;k(WV2Zz0o`#N9LFIq=dtI|*%{ak%a-}Q0J<JLrS!{txN@FS!>F1; z;3|cq6z^`A_!6Q0Zas)Ke<PX7@o@MPhwJJn@9f;F{Y_xoHkMM{y;lYzLSbP6#Y@U4 zt*v2xBtk0r2s8bGj-$KivTb_n>+jDXupI}>b$Qd5U?M%2<*@(_O;MIqE++BzGe7&! zaCCbeu{CRYrh>t@W+d`b0`d=mgQXPB%~>Fe5Q3q;ucVXk{Y#FfmhD{V>iSr-Ab0x7 z#EM?swvm9GCdlRU2r1ckWYmAS$<Zey-<_kWWhHmIpV2>F|6r<MvNt&4kVzzvKwvrt zZYIr%_D#MxWaNk~A7<y?4lZ<F<VD;VdnIchXA%>n2L}O=p6AU`N}*{QYm4+5*-v|8 zv>$%P)l&^rYURZHUyqEWdmaPDKo*!3Ko3x}#o+6|pQqbm)$Vm-JTpQnoANT_9)mAz f&H^rw0!DuUoDn&B_UMbs00000NkvXXu0mjflgwP8 diff --git a/interface/web/themes/default-304/icons/x16/photo_album__plus.png b/interface/web/themes/default-304/icons/x16/photo_album__plus.png deleted file mode 100644 index 09d29a3863e9e6a3dd98f6e2e901d78cf6ba6f6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007vNkl<ZILn2T z%}Z2K7{-6+-gC!0qh@|gjUO~-ikXQ-Eh<XXRR%_o6+%I)w4f5AMbyInfEKNyHZBSR zkroww5!IrFP?H(iL}E##IVeMpx6!#D=e9^ErN9FR-WSgMygv@lBcznwK-IN9ZY!&w z7|;bUeYzjt_mM!=oyU(a1PlW+5Flil*_#^-63WTJG)+vyps};_CO~s@GvP%=A%qy{ z=;%0fxbVxW>!&}*VzUQ(ci3fH0I~#HeSJNR;d~s&$v&P6Mo5c5w%2u?uVz_ErnK%P zzP}{!Ljsyo3fs1c$K%<7nTXD*D}DIO2-+YD+yD^3#ap+!vjR#fgb>u$)&lU!2;(Y6 zXP-t<E@T`i$%DcW?A-*rs}u|K^O^*7&-3s+4=Y?vTwf1BLR-V@u`xCV2dOXLMnNcq z?LnRyq^hJ8TPf1%w2*-Ax-PEkl92_RID2&k_RgA`Y%PH6&t4HJ&LuCH!!OHPN#H4k zs}vvam1akTwpjX5*FH&dAxL~Kmx>}A%d&*FoWOA$Y^8YgBnqOK!osygDx+*@Y@n#P zn65YH>GRI;Fxi8Ul2j_SlE86YY|mqOXq=zPHEgak*x44QvbvmaBQw0^JuOXp=o`2_ z@$&M>HN!9x5|DohTx_LiZ%+ehgb<7kO>k*Ez|gEBe_a8y-YlM;nVLK{d=#IU1mqII zLMDTdlBS--3I~opXd`;yk9lX@8Cv!?ZwGjB_c;<UmVDsNCFwoh@{fg`=yyg&M@cVa zoXW1P#)tml*y10@r0@IrN+~o=V^@j(-wf=xH(;a;jyQu((n}gx%AnWU3s?ep3N-8s rFtJ*g-nGieRE0>9;3M~)b3o!Z=Q$!sZ=+QK00000NkvXXu0mjfxbsCr diff --git a/interface/web/themes/default-304/icons/x16/photo_album_blue.png b/interface/web/themes/default-304/icons/x16/photo_album_blue.png deleted file mode 100644 index 5684ecbdeac0ceee228cda72305b2d0a883f614c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007gNkl<ZILn2T zO-NKx7>1vF=iKqm+?nyGEJgcqOiT<0tA!MWK}jxj(as=fWiDE{X%Pgiqg@eU1PU#L zRuM!NQ4mp)khDlevL-FdEPux9ICJkk=d?)2B%}i$oWsZaeh-KDGlUS`KvK5dsNw%- z1h@=v`AjKVYXp!S7#zG1wk+&$n5b<R%85jX78POJHnwGv>g+rR(9+UUa1>I?<lWw0 zIM4-nfV=tl-0>4<TjRIN%f-3@U^X^3B2p=Q-!C)_HIG*L!aEcSF`N04+_^2(rL_h? zYyC|Crcw&e^B5f+EeH}$mfPn$(0>tJ>PYPedI1dJ;+;F)1p}1AFbwMJ>jCgrCJB_H zv(Kc=fxHh}V^A7}BeifSsmQIYm;wk%DM3o&j!%C1GXN@>XJ}%An#gM!tC}c|M)4%X z><G!Nm3T^#&1MY&gn}S|AiyNx%IU)!u$$}Z*8c^#`Q!x^TO4AMB9>iuBY{+sKq*G< zR~96Oxq8*m&_2yvF2d-NLv@*l>$)2W0^i3|iieMO(RR|Mv_xT-785Q`;7(2BDaF3+ zii10H7$Qt2li5fR_&%PLyc<rlFqdF&gGF;&IlK2%G5P){j+9*M>$^8LHue(0vaA^a zh&2M=_wbaWy*&$LF${x=;jhe1hnN}<*nUhAPb8jNmUVq`VS%XQAXd`|Qj*W-FofV} z&&)q5+}R3-5M(kLGg({9$j}f==`;ec)^f1C5^$>L>OW$wHQ{iWw{M0&l*E6{ETz-T zjgS9{ver7TltP#$)w`ND-2=<Ac=q7q_r+HO&w&ac3%COK)ZgD9<8d(g-(~iGd<H53 c3Csf7-x@C;WJ(s+T>t<807*qoM6N<$g5{GuE&u=k diff --git a/interface/web/themes/default-304/icons/x16/piano.png b/interface/web/themes/default-304/icons/x16/piano.png deleted file mode 100644 index 061578628950c0b092491d8c0a81ed2e3e085e4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmV-e0jK_nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003WNkl<ZILpP8 zF-`+95JjIS_UyLYAV)w!+#xk>x)hv&8&Gipid=y@Qj|6o%|=R@Dm|^ei98hG)q=K2 zNWqszPx|s$|68&%Gp><vr5x}I-2Gwq-OL_6a6g~VZ*$H#=MWJ@1m|3L(#*&?lXGVI zuw?o+WwBTYfCr>$8bSzERYhIbR8@ud9uXnu%<*_6r9?`J@$;CbZGP0>?)Q6}OeVJ3 zY&x!1D;x3)fvuS#z{q<~+qU#s=C@x6j7p4A2!R+Q-usRr1cv;=a)AfDsuE+Q&(rC| zkYD({`;|adNhuLR=%}g;`Gq9`z#+zHyWP$%A#f;<SgUH+`P>2Ol3+cX&0a+0=@J5K qGs6K2-1Ix0p$vSOS#tmW8$SV!=H%pDTw~<`0000<MNUMnLSTZH=a{bm diff --git a/interface/web/themes/default-304/icons/x16/piano_arrow.png b/interface/web/themes/default-304/icons/x16/piano_arrow.png deleted file mode 100644 index 337f72b9a5a8b50c20e0785d0e07b29bbd8c7883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005dNkl<ZILoDz zy=zlZ7{-6++;h$i{TMQ6iz0>$S+pXNs_0OV4w*%qq(g>A{|~{fcJ(WRbjVf_9159@ zN`r7C5#bVqwulbxP>lEH;~a;2FEK<E`@qW&9?tvnKJXsloZ~o>98&^#3|#t;-X^fB zfW>mTe9>Bq5CSPBQc8pn=}YGv)>^E!Y~9?Vv{|BBtx5m|$RG&NTI2gZnM?-X_fbkA zrNmlGzuza0W8yd__aH~m3x12=>U27;SS-3mqmi;+ue(WpLZFpQ@sv{ZdOb#&)VQAz z@X`TVYoaJZDV0)d%_KizGC%>!7(*0AjB+p-Fv(B&tM_OFV+?T|qqR<HjA7ibeV*m? z>T|aDr_v1ocB3eA?RMM!jVrZX_h`?#mD;X5arM^z{PH~%kTJ%jnaAr{;MjY+LmXSa zefh{x$1GmU^XB#KS%0o@#{)`X7;aW7m6u@{2IKs2X6gLWje_5uJ4vRH$7Zwa{D8~X z&&k%i@T>p~kR8o5s`<Mw?mKsM>WAGf3(Hq7oLb1!c=GDK@Vqqz^nkB_I(X+OTPLu? zA)XW4-*b8DYqh43a(!xMW<&k!&pA9e0Oy*Y9zI0~vF=Y#ZvgxRuWb^AbUfq100000 LNkvXXu0mjf*4+7I diff --git a/interface/web/themes/default-304/icons/x16/piano_exclamation.png b/interface/web/themes/default-304/icons/x16/piano_exclamation.png deleted file mode 100644 index 108cef2838b9f46d1bd74b13ab5ad6ceba90276f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005`Nkl<ZILoDx zL5LDj9LC>hbgNTRh_^gMNC&fno~&5LlSX2PWI@N2I(3MkjXiYeP_!Ezy6h4WvWJ#E zMcE;&yqLD4GU(VkqAVf|!b)tiFo*PO{!?#=&Aqe_K7Rba|NFi-Fbn`YjM$+IjI(N} z`X5?le@<PJBqS0EB$G*`QYoa<X=E}POEi;Dd*@px=sx9mf$a17;P?9x3<ePjg%F8E z5RFC=i^WWa!(oV`Xzl}n0O&sDctNAr>%r^wqEsqb%;)o%<#SSw7qt5QK0F=|DwT@G zLZN_JJ}2dPL0i)_xZQ5l>vfC8ViAA)H?E&T_2ZmLnkmN%x}(tuE|&|6qFAI?EWcU9 z(&BOa*jY14Gv#=}_INyo!{LCcsupEg2KSZf3Ucdn__?=%-0REcOgUaK&~+WHRtvM) zKzmcduJ+9QE8ho?j5!Iroeg-w&U89Or_;e?GWmziS{B`!Q7~AfSD|g)#8&wlE}Ro~ zkJx_~e2T~8%Ql<s-hR%{$Dc0Uw{7;ClK!nBBKPht8gdY|@<si@Z9)5x6$C0cYUrdP z=YB2R60YRePgJ+tm(W$tn_oceDn5MPI97iDQt-2b&cizbd$S_EP`{oY4m)QtRL@{< zv|y6dF1d!ZpBcU?GPbtNSoR5f{^~LNa*$~M3vs{|uUyb?`~Uy|07*qoM6N<$g1q|< A)&Kwi diff --git a/interface/web/themes/default-304/icons/x16/piano_minus.png b/interface/web/themes/default-304/icons/x16/piano_minus.png deleted file mode 100644 index 091520cc1c423129bc0a26b7cb5ae6a4f9e2adf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmV;D0d4+?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00045Nkl<ZILpP8 zy-Gtt5QV?p>`w|Cn~04Bto<P(*xIEQeSs9F^BF7zeFZJ@3W8lAbpnb-u8=}5Da6J% z*u9Cn7P^-hZle|+7(O`c9A;ov#2ERDB!83uZh*aC^gaTo3fS*-I=dkRgb+w6ky0Xr zC||}H2_X<dpnue-ecPtj>q!6w$SljyT4SxHUaw=VMJa`pk`My3*$nSJ-g}ytO|l~U zw*J#}I*qMXD~?8^l7qn@R{4p*Q%b2Rr6`JmMW$Nz6M<S8ptZ(1hf=Df)|x6mF$E|< z8DntHvB>#+PL-ed)%!VtF$V8FTI-U=7^?ilGy%Y?b1qIMllT(?ug70w)QvIa&Q&!& zJL7FQ<i%PF?|HG7D_Glr>l)C`^Zd5k?cU{io>g)C`FZQ)@NlKsXt24yPP5VAU}s0( wkH-kW0IQ2TE$bXE-j~i@!n=kC@$bL!1L2|V)bQOiSpWb407*qoM6N<$g5OxT)Bpeg diff --git a/interface/web/themes/default-304/icons/x16/piano_pencil.png b/interface/web/themes/default-304/icons/x16/piano_pencil.png deleted file mode 100644 index 0f1de2bf45b9ecaaf7e656f2ec2efd443795a3a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005hNkl<ZILoDx zKWG|Z7{<Tvz+}r(Y>GI#=}@f8Iiv<kw2MNnP7d`?l}sUYNdqCcgwmnZ6k2E?WU!?K zr;v<R>~NK0%W(+`DzU+qNFgpUpo>1e_wa5AM<C4$4?n)={hsIGI|hK=M(oxF+H7n3 z`5)S5lTnh%B;xTn5{U#-sT9)bG%}ftDLRu+d&hwTbf0oYf$H=5Ac`UafdE3G5F(KX zBuPRv8r2yNhY<`0^}XNk2i>QfQE=RDx8e1AQK?i+7K=q#`35Ox6x2JN4m=(Ys@1B= za=8pE-yr4Eoa+URZnq1U%LPSIOv<thE1#(5^VsG5@*C#?Dmdx&dT=_OsMTsF=_^(~ z6%;l%fovB0oPVW)(|*4XyWNgvvuRRQRb2Itetd%4?Z#j*!2Ow-i(SSRsNm0VI7Gc( z$8}V`=OG_H#^7uXxm*r5o9%CS@`&f-@ffXE3!~A<lD)GsiiLSS{Q13zcB4d(cy9cK zQY;pGEeOI3E6$6;&d060zbO1>{m$<PZs7y@lrsvZG|g&qTva^89`0@NFM4>5%PEO1 zPImV+O|$D}<q2bNmw6VK4ZPdnrB~0{qh}Jk@n9*!3#(80+{+cltP1`Cjx+2dNXrP- P00000NkvXXu0mjfQV;V- diff --git a/interface/web/themes/default-304/icons/x16/piano_plus.png b/interface/web/themes/default-304/icons/x16/piano_plus.png deleted file mode 100644 index 26a5144860f419fcb43d4b86244399e5a1e9065e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004+Nkl<ZILoDt zy-Px26vhwI2SHi{5{RQ)cQO}+Kqs9P5@~SpBQG=rH3W@8OHmFD4My|_v_*{)4vB-7 zTtXow3keL$78fD(>7HBf9pXxo2OfU+J@5PcE&-rXLL&>*IZ<=_kDSoYloN>rVzC(F z@i>ynBvPpqWLeh3XWsL@?a~H*&pjbfTrL;fZa2JMF9Lx8LZJ}C;V>eRh{j+r2*2O2 z-FrM9@O$nF!F{9AfYa$jp-|A7&1PY=7v!E0RGZBvBuPTCSk#%z<zTcI<em^bv|24V z91fJrWu5ta9!7gX?g_zTyWNJ}Zbzk3(aC=?+6!_|2%bBg4y;xyYPFh9MN#m3zmiR2 z?BJW+6M~m+w~K1EiofW*@?rI3OC$FvG^GjN`~5!Z^*VaJo+0I%4M^u6EME8!d6PBL z&devB&Sh9|9gRlQCX;D<5G_acS6^!xzeC5fB^FGmnO9>Qm_73u?VA;j)Ler0eQ3F( zv?W7B&Aypb3DNF!$@a7WrglEG(C~uINuu?M46TiqH1b&$d;zrU<Ak<7L(2dF002ov JPDHLkV1g{4&I14d diff --git a/interface/web/themes/default-304/icons/x16/picture.png b/interface/web/themes/default-304/icons/x16/picture.png deleted file mode 100644 index d1ddcc6296587f5d591c9ccbc6d76c568189115a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmV<K0TKR*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005CNkl<ZILoDz zJ!=$E6o#M4x%bY_+{u1AY9RpwVzGq@0h`#^YN3t7VwWO+z(T=aU?W)A*o$Cg<3CWb zh`X^6YyuKQ2o^50!ChzW-D@$ivT?JgexHXI&N)#Cfn{ceB`11+hx?-+3{C@Y=DbvU zM+|P>+ufQ@rwhSJlJMrmbCmNi91huf@M<B!$H#YZ9+dYWB8Uh(uh$R(YoPMr=8#)R z4A>a9*Fg(xv<?vwya!czP)ebc;`-$Yd6u%;5at1_hT{@`JCGH)l-D9v*7?eVa;|Qm zwdU>UA!}zZGPt%&FKg1!P<jXf5?xEO7(&p92+o}}5D|<q?0??p;P8NNM_<`o-ym<F z=S;K1YGP@al)RZ?<2J?^M5Jy|If$YNtu<M7o5nQZ=XcBAag%O0rPoX7c3ZUD8O_r2 z<yV7S7iy+*ph^cJ1e8*AIvwITCQVb))S{Fj1VvTBY!(m+%;$ABgh1&|8vGS}c((JO zORNQz12vx1TX=Hg9M)P|trl69AtL`^v)PQIC@6}8e!tIn0@0(Z@^tjcZ=dRvugJRy kFhCnn3-S&aN6WtRAJW#8X=b?rA^-pY07*qoM6N<$g7}-?q5uE@ diff --git a/interface/web/themes/default-304/icons/x16/picture_arrow.png b/interface/web/themes/default-304/icons/x16/picture_arrow.png deleted file mode 100644 index d50d357cba0e9a13b61b41d0b911248e0aad6a1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006jNkl<ZILoDy z%S%*Y7{-6c?>omimzgsc$HKsHGNLk2q#(7xMH^d~L4vjjg!}_)QP8$c1l=HnXlD`B zrbPv|D?%j9af;}Mpi+XBl#M!<^BunyW2*=;A9#1~^YDY`F|^ifMpbN5#^?#oX1~$* zKjxM+_vH9IeMe6YwiXJ74Vi7*=JDNINEO1w#00J9?r$jI)umok2r>*o2!RlSfrs@7 z0j>o>2x=A5F4z{h)zF>+Q$Vvnix7e^1Q~=Nr9?_e=dL_y&mkHStZHygSSmwFfvAF= z=}M3+SN?+#q*4_E(=>UJJx_gY1AQHXq`Vjr6UrfI4YpYc@v1><6Cngjtq}+zuq=zo zx06iGPVsqunwCs6>G)P^VhN(QOT=<W$2{EXIF@B0gs2b%3Jk-*G)=tV7?Fa_k2#m| zr5MSiLn>vHO!~y*9=Z1h%c{t!CV^!b1PZFk3bfWpDM=&}_`Xjx8pCm1q_ogl5(H2z zYQ8O&IMR{i!J8#sdj~12HG)3@V>bu>s_Wv&9Pj3fkpIQv%rwu(O6+gT@bps~&W__L z`7>W>;Y!yQT-U|-eLT-Y2m!#$)*%jc?&V`1wly~r0HX`Ar?-odFAKHCg#+SxHW#-4 zYcMm1&um|=X><Tq3Pl=vx}Cax8M2p$Rx;n8JOZ$QTA*&di}nxanx1JL?H|s0JvUAR ymITVc*Y&0=c6U=Ml*T?>y&V{aan01+0r(B4sk%*JeNue@0000<MNUMnLSTXw{tl}E diff --git a/interface/web/themes/default-304/icons/x16/picture_exclamation.png b/interface/web/themes/default-304/icons/x16/picture_exclamation.png deleted file mode 100644 index e4e5ff12508b2281d9284f974622103937c4ecfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006yNkl<ZILoDz z%}Z2a6vlt=yzjkw=U(SJa~-wN35BeM3(chx7=olNOeh%Ign|D+MD5!YK}pmm+O&v3 z7ezF+2{(NZXrmM^f((%~Y{ndQVwgMkqs7>w!iD*)&v~97Jm-io4B3w&>{H_H87|J{ zNdM1rcaleHc8&D#x$&M-skEnM!!XD^yod69$Y!(jT%O#M!TalH@qAFe4^m2`l#D$| zAtjhPRDAFPNSa{iVAeoyJ7^NR>}8~s_&%tL4@xPNQuH6$CTT^ftCa*Hm>LvaD0?6y za5z~tQf_s=;)C+MDuJeHyq>#4s<Dl9-#CsHqgDgghcE<Lc!0m0L2DdFiwz;A#PfCt zq?G8o&iukWi_43AU0b5Ny^CahGYzpgwxQFoouRXHl+`aUh$T)UrK}QEJP<;lX&P2# zgxZq9#;VC|F-9U0#c>Qe>{$+`S}|%Au9l>{^$H;b6%Qh=2VoeZlp-FFW7{@$bupq* z6Qy(r1&zTpsRM^dpP!`JX<{q)oR9$5+adUE@b2!|KXnzpPgD42qK7%Arlz=k)gkbU z$k-+o4^&~h+QQADCQQ@BwrwoSLP`k&RO@Ft`UhCum?87*68Z8B<+2NQp3NdcrP}11 zTN5vL^74PAw{!?=@It&L5?wKMZ<FCuH&|TgA=)5V@;81S?TdUAfDY6H>Tmq}*Th8c z@%9smWQ{`@U^%BLu0ICgN4~iJ>BGuXvD>MR4#LO)cY=UpyS{RS>@Sb`z>-nQ`fvaM N002ovPDHLkV1l7oC6fRE diff --git a/interface/web/themes/default-304/icons/x16/picture_minus.png b/interface/web/themes/default-304/icons/x16/picture_minus.png deleted file mode 100644 index b937caf91468c67383dd37d56b0460c0eccda8c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005fNkl<ZILoDz zJ!=$E6o#M4xihmfce0<3T1bKsu}G5;u!)V8poLl}tad2^sVx-z1vY|(2$q5hR$5rw z1hLpJ3qgc{gdi*y8`zMIGxzSbm>5t*Sod`2aNdU(-g7+X9MjYcQ<nGs26wvOY5tFR zIpw8l^=V$Yy}mLUjV2ODQN-KlPf^A~r_*8O?yHFa?FTn87L>IhB8UiUujdc}9YAiu zj3Lz!1)xJ%T>xKTsj`iTU@fTJf>H{l6c^78Nt2k_k}!6leb~$3hXI*^vuOcRS+Sp6 zP{tGveBWoYdyl!}r)geTr;(H?`H)#~4kEvRBq2EGBO(}c=s-jWf`Hzq9$VX6?DW5~ zys$)CJ;||hjoC<33S!c7f)1+$L4b%94srvY=i&Q4Nq&veC}QwU)7mRjug5eR5%qe7 zYBiypX+H0lxO%G4<OWn`z&VFfidwBk7>2}gOdM;J3UE%5=WuY~5OIvh#jbOX%p5xS z1^DoI?XQuwHZ~Zv+eiI7V7T*z`F-Zq?yyMV;pG!(t*KNhBuRpZ90~ewdfd8n{del( zB2QjCi@p2j<x%&eUH#Y5oH5MDj`+{{AY{`60-y@0317hgyWX_#{1cG#mBLQh`sM%t N002ovPDHLkV1jfN^27iD diff --git a/interface/web/themes/default-304/icons/x16/picture_pencil.png b/interface/web/themes/default-304/icons/x16/picture_pencil.png deleted file mode 100644 index 25fb9f73d2751e6f9ca105842ca8f31d8223ad66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006xNkl<ZILoEZ zTS${(7{Kx8BPi&in^HPZL1<Bs5M&1}F$)zFLM5VTlqhB%D$~#@rIZ<@+0-=5Q<R6m zmCO<+Q5o5Y`pPuDnB+ui3nqe^GKA#czS%{H1?3C>i<js5y}Sa*LXrhPU^y)5<-wx< zPnwm|AW;V^6X-MO{wd99R*C~fZ9cUfo6Yu5X-2bBxJ%SWNjn)H9%g?Dgx-RvI}mvr z!plK-7ZMsF?I9Su!PJXqS2LQG0)J6k&jez(+sQXiP}%i^MiuJcLCZ(D{}!q(Q1=FU zzQX4bJiD6FtX$qEYFk<mPN$RbYe^*36!OA4POlvXoY40TJ~?LL&?t;dg2Qa4$JdJr zAH^yc{X{iq>|<<fjFra&@I4(yL_sn+52`SjA5(AX!qnYON57R1U+nY`4$)Co26=fj zEmgit))rAaE`%^OHHFWS>ufz)#_p6_!m^DVEqX>u-Fq&XY!ttAQrBrFx5k9a<svtD zGx_UeK+bQR{lWC~H2#TI>^XanP`#0;{C0GPS0vZ=pf}nmZ8g!<5RS{C$6zo}9Up*Z zC3S<S?dieH%*_0;QAa11wu2trQX7KJ`W($@R&-vXKFvHpVb}^PqSw<9>xU^dfG6kn z&X(=I7cKYTs;p&H#;(N>xeCo_R&sVMDv4Mk>U<qrBYhPa%D9HF#w!!LO)~KNT(jan zi`{v<TRpccamo!Qt=!Zruj67Qdd}SYm;LJ@@sQG-c|r+_kC}hrCkbX=807QXlK=n! M07*qoM6N<$g4*pM(*OVf diff --git a/interface/web/themes/default-304/icons/x16/picture_plus.png b/interface/web/themes/default-304/icons/x16/picture_plus.png deleted file mode 100644 index 1b10f9227a83f3d02a1ebf22712788a0a4b9ca60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006SNkl<ZILoEZ zT}YEr7{KudDnm@@!lFb9M7yvO`mj<{oQ8^YqaaZ<D2bKdnpv3?5@L`sw6ZWuqfDY! zF+b1|5s`@0Dbwu2sEO5*Hi{MQLP-AYyjC~Shxx#t^S<!>4o3i)O)~2X`m&|0AxYH# zq^+Dz6!p5%!f>5=Mrot1SmQ<A+`As9(>bHG(N=0ViMpM)k+HEcQtBb~EM#7Qt>+=V z0nC@d(gvlsz%~H(A&gyZw3V6|QSC+XxLhu(d%n=v`;|5Yt&ic(Gr0N)F7`o7KMcNu zS00RAZM2o+YeaRGCgOIxNk5T?<x(y8M?N#;f|qU>9*5`er{U;F@JwLrYNM?jjTY5& zz=YT9Wy#JsB6HKosL7}DdJ}a$9kllKVjmd5@nVFhZ(X=2e8#Re+REW5QI7Itd_Er$ z+fK52*BN39nn^oiWBaLl6tq0ynB9r>ft$F_0>V2|$muUa8*OF(is=_jPEHcDuZhjY zS4gd}ky+i1x$YtP&4X0foYXizu<VA3J)g>1+m&p*KwBvc7u8*s#MIQ(Z?p84u+DBW z%Jx`{GqNF!sNx`xm=}q<duR)_X(61;TF$lI(bx;)=qyS2S%h^drtz#_T38kAlgbTq z>NDnx`cq*$0zJV87x;9m-X!qjJ0vI2A^r*Qx7c6kU#kil3>{sGKEE4n|8ZjHiWCMk hO71*mociBC-vGm$Qq(Y!RD=Kk002ovPDHLkV1g(BBQ^j4 diff --git a/interface/web/themes/default-304/icons/x16/picture_small.png b/interface/web/themes/default-304/icons/x16/picture_small.png deleted file mode 100644 index c25fa6f928d5f9c7c2ab5f2fdcb85e77143ff412..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmV+y0qFjTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002qNkl<ZILqCV zF-t;W7)D=k^&dF3HMunC(BK#i)sT~OBuP`zRD+-h4$|PJh9TG%Zh@}p^wMBMP2X}s zxX^G1;euQ^`Tl_W4YfI(<vDPsM*#T`vSWcoS#G)|(KO6^1CNKI&N<RB?+vtzqCpUF z-iM1ZT)x2F1ZLl0yLoS*aUdFoA=jfPW?ySQ0$4b3KVZ9gZ{R*J8buMg$_b~<I*r#i zp5K?uw*}kHdjq%oqH!EkxEgT$FrnI0TGJK7&keSl_XcWvqDhjFhIwybbd>3wWku64 dzw1~23%|6<;TY;#`q%&f002ovPDHLkV1hyzdaeKf diff --git a/interface/web/themes/default-304/icons/x16/picture_small_sunset.png b/interface/web/themes/default-304/icons/x16/picture_small_sunset.png deleted file mode 100644 index 5a35685fd2f5f30ea253e72206687975622d979e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmV+p0rCEcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002hNkl<ZILl-B z|NlP&C75BD8E`C=p?Hb|!x>x{B#+mC2{sI8?%lih9~TD6<29hmg5k{L$B+MCTrUR3 zmo|w1zqC;tOoPNh@^}qsF=jaP^5x6_9T}$ouWi-%|M;-x{|^tG|35pa_a7t<lE-U6 zjUL094<A1Kk2Dwk-x#m*f8!Lr|KGo){=ae1_CH7*B#+mC5)Fnk-@kwVzpRBDj90Yt z{6D&u|NojEp8p_mkUU-kvK1N5{Q2|eKQ0WC$7{f159YoA9)>fxFi3v5CuMRl0JhH7 UW+j-!R{#J207*qoM6N<$f|&_>L;wH) diff --git a/interface/web/themes/default-304/icons/x16/picture_sunset.png b/interface/web/themes/default-304/icons/x16/picture_sunset.png deleted file mode 100644 index 0d59a8de25e3de673947f0612a1c04ba5546de65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004@Nkl<ZILoDz zJ!n%=6vuxj=iFD*JQ^w3WL1O?0Y8Y?p+k4w1cf4kle6I9;LzEnpy=W*g1fU*o!V4| zB2^p$ibz4@izXrO-gg}m%}^B5oaNl%{QvyU$CVf(vqXs*Ltb6w&h7#0M-iVt!86<b z%KGK&x0?Nae=2dgT;|2oCzub=YPD$IeLj`J&i!ln02TtMDyqu2?dCrkl~EoKeDT5# zs!9l8c>puR%*cI}%6!1A_$w@x1a%4mMP3j>F{uw=-j4{Jb3A%nqgEGg-srHfP#`5C zN$07aJcXE&wc8B7cW}<3s(3#pP*sv7;lut%zI;yEJV;qyHkRtf=`%~LG|pk}7(a7I z819oM3933G$UTS%&N((VG9a6@UV`vTXup1mCGhE8LGMSTzTyxOat}825M#v5*xM@( z&CboiKm<1j@81^mx{)<AVvG#^nBb4W?T5Ypu5Rth<Q-!i5p=qvEo@$@QK?j@R;#3G zimDzm7z_qvSw@y+G#U*$U66Yh^}+6&uzI9ZKC4>-B*1aNrqp|&BeQ<z-!y2MRY-}} Qod5s;07*qoM6N<$g10Q%OaK4? diff --git a/interface/web/themes/default-304/icons/x16/pictures.png b/interface/web/themes/default-304/icons/x16/pictures.png deleted file mode 100644 index d2401b541d3be6f11ad1053380a93b060b8bd4db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005fNkl<ZILoDv zOGuPa9L4|G!Xy<UG0h-C(NUzZF9eN74OfF8=(sVo5o22DLh;c;T8J7(4Cqv#Fh24% zWI_rCJ|dE!)wdaOAyfk~t3k+VA+s4c-g9-VS$!j2_`!v9IQRYpfcy{gtto+?H`QV$ z3;VL-5E;LJhWT^SjlHoJOW0#yzx=vN#8as;-#@vFU@&M2d+h50^&RorMMlfTT<xqt zC=`Oz2e{^e_C>(G1az$c!yCY-edwG$_7l9-$dS*HfyK7l@HF1U#KTg|xD32)Gcf(g zz^uCOz4IU(4&!6D9Yc52z<Ir=TFVfLM6l6YgJ-wY06mu7MpEAFd7BMHqfu=3JwSi4 z8lVRQdIdgYC$PJARl_@T_GVfQ#9}f1gRTNKKo17=df8!MXSNi-z7!(#wHSv#YViAe zwYuAM&fbfAX?RtC9otW9@i<Qn(1QWJT=p#VHQvD7U_Q2dCHQmTL?qmVz`9N6?DZDO zQC*stWT5<lSLnfjUQ5H5&hS4^$BsV}pBFOWA4%6adp$M@h{!cXuHvH5g8{v)V2^!g zp8P%ZpwDRSWlQ4T3UORH9Z(+Qai?UUcSAvn#NkO*<eYk0apL{YIR;l?CQ)^zQE>nO N002ovPDHLkV1kp0^}7H7 diff --git a/interface/web/themes/default-304/icons/x16/pictures_arrow.png b/interface/web/themes/default-304/icons/x16/pictures_arrow.png deleted file mode 100644 index eb641240890a4c5bbb41df516bccfa842a889a5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006jNkl<ZILoDv zUr1A77{)({j7YtbT6qy+h03z*h*IL3Q3w*FF(;C1ZMiJwip8{uFo+H!j)jiYl;gid zhh?RqXy%1O@akl&yhv*6&xja7t&6dn!PEC1$QlGw`rrpIybsU!{uluEKd>cZ60S}y zlh+I7*?1*m9c63C!Jc}ow4Y50<tVTGeD4@zo}&u#ql-ldg+eKz9Oab)eh%|$7;7zN z@`U3E!r?HgB)~EZ)Qtf3qkwZ95NCn;w@~(!qkNJ#FNsN&85pr1gvYQ4_iNP{um~8k z3g|y4V35x%V;)2z5lmmz;Lc%Quu<<mb0MP9C}tbW(Okd_HtOv?BOo4+<9X9@T+8DH ze|ra>ZcpO%<PHUze|ry@1tby)<pSqkUO*n?LtgF%0scWXJ}vA=crgz@-k0P1J1w7c zmHp+mVd&cC;j-KC;`#~LvUve{%(%3Qmqn9>Cc|z#xSfMJDIY(-RUsNNA~2P!?DcmS z(DMZ-ZJvvr)Yg2sS-i>1$b)>yYgF8}hOZ?ZeqSaW-6ASl9-_K$6$Q3V)IJWP{WEYt zd>P2UwPa=FK|bX5FAS4k(fScM{|2aj^@qk)Am_%S%*ca$+!a}nYWBfbcL-1HC75!S z;n|f^7#l<sUFt>Qg)V+U7fObL&@Tfj`?S2%F=JxfqvO<8Ca(vT&K*<xfee#R&NPpi ycnPDog`?u^N=2HkyMOcP-sLpCWa1@^3Vs2k3R7iAbQ#A00000<MNUMnLSTY}(;Acj diff --git a/interface/web/themes/default-304/icons/x16/pictures_exclamation.png b/interface/web/themes/default-304/icons/x16/pictures_exclamation.png deleted file mode 100644 index 1a06f01198945fc972aea7f3df24a5c7b62b9c40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00077Nkl<ZILoDy zUr3Wt7{=ePE-IQ`q*+u_*&kBO{!9!DZAu_WbfY67D#b8KFD#oC+C{X&7)A~YwdvMM ztrT_P%FLu8O`}g?=}Koxwje%QIwKjh!P7b4g}4wjy7+O<;XFL&{lOss^gobY9YoO` z6^V<5=czf3s3LI|ajZHQL$^;X2+#4n{Bq?XqVfYWV$+#8jE|2m2+#4nT)@U5eG*Yw zJc(@u32?jJ$S?p|4}hF{Ah!W1YzDL)K-Vzjd!FO@Aa7POV@L}@efDmYr*A>k@faAh zl(?U*MBOPROl&{&xEzus!FnzU*Y>f3fAy|Cxffoq7abRpaV3@&EY^E?KnGjRYCJ04 z44==37n&3lN3nvr-j3GrAl_Tn$~aorz-d2*$uD=&RT&Qd?_cr+h1*yG_uxL<OP8;N z%@l))*E`_uiNe&UWK52#;OdURg!4QCGfn7kQ^A}cikBA;<Makrz&)N9sbsILq%dgG zH^F>$D>@C)nEsxDDJcV@B@{m;J=AJ7Bv%P)i<fwgDyY9CeyN_g2lwG#4ce8nG~Q6a z*0>5iPZW4(jm7lWQuc2N--h$>#u7Q8EfO->c{y<p?h^<E=E08-eR*)Z3h;3-71nkQ z1|2Fm-X8RHJrt@s&4NJOgZt=G!(hnVj>eolXgRwd?S+YWdTAHBjS=`fl7ca(Ql5aX zW6n6(nnQY@)d>m2JSvW?AaOo!<q00gt4O~z8qM5yV&=zXdF71sZj>z5f`OINGR8W_ t`oFn%ooX23T#RMZXSzvtj#)>Qe*njWUk4&0k17BF002ovPDHLkV1j@FC{X|a diff --git a/interface/web/themes/default-304/icons/x16/pictures_minus.png b/interface/web/themes/default-304/icons/x16/pictures_minus.png deleted file mode 100644 index 6f1e1ce0f021ef1821320efdbeb575fbad2128f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmV-30?hr1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005{Nkl<ZI8UXJ zT}abW7{*_aG$}`r<kTR-vKeBvzbLkxGlD>bE>sAkH8B(_V&d0@1d1aH8?=?6wA9i$ z!qFFo_CX{;SO1%d7eO|NU5%jT#oW!{@qG_C8xc-A@Pil5bDnd4hXBz3KwnzY=pMC^ zo+*;2U;~k-HiiCuyaOxuFK>(FB(H9MSV!bOt<dK>D-jNdw?%T2R|WhW@>+@RRFVGj zMhzm72%3F>V;X4p10Az~GYGgAfe&Ay_9Z9zG;c16`x^4#Z#w~Z(_xHVD#xTl!;>}* z6IV1$@x1cPjc7EAH(gc?o4H`8-jD645R1jI*i(;N6<n}WZ*QxHL?VH=y=T!^#sz<R zhh7{=WBFBqLgr2HNxOz*GO1qRJi-OyAwJ?Ya$UpHR5^ZpDn;aT8Gf(U<JUJE&!&|3 zT}v(=TsVmL{pWDCm<z;Xq1&ds9M*jFHXXv#p%T3F9mm?wX2hZ`2+f;P-aW@C-k3|e zFi@4{CGij+@tSq*NfEfc7fS&HKF$~rv}9w!Y{r~14-+}GK1~#wVf;joNIaxjy#7T{ z<Bzl3|6+_-K|I7~<a|DS7mp&)eiF~GRb$>+i`O?T>gPSC{c!Ee#yz6}1G^|b$Oi=% z(KxY(XVWPY#JiP<`WY@!D~B;MMHx`Y>^?(V1sl!NGk6VAq!a)E002ovPDHLkV1mc| B{9XV6 diff --git a/interface/web/themes/default-304/icons/x16/pictures_pencil.png b/interface/web/themes/default-304/icons/x16/pictures_pencil.png deleted file mode 100644 index 86ef9e02b9185e1c7aba743b7122ddba29597f15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006uNkl<ZILoDw zZAepL7>1vtL@P^5hxP$Qv}Bf;c4E?pYm+D%`w@OXWZA@FV1Y|hixDVU6tZYTp}{OG zbwuJcKe7)pE&O%<C=$7HP=moJYL&4+gS+=V>S!=9>46L0bI$$T=Uj&X(EmUaB{9^t z=}7ulc%FI;ME3kB(yX%*)3;AA3D5Do{N~m}M7I4h(&Mvx;q&>Hgy(o(E?}QS4lU6Q z4M~0H_rdS?qu2$Q9s(6zKxH>z=>eKYfS2zfKj%4~kMU+Dzg>p4=qle0ThTV$Db2z? zlZgA}BJQ3M(ZSBsk8B7AgBZG?#nnBmV7cDyWw{82LKwNI$CYeWuv~A)NfDv(aZF{T z;no&mCdPZxlNQ5Nf4U4mFM79~%EPGB2{bmMQz85!?!kSySIapOV;x!e^g09nH<|eU zQIBsQbnL92_qJxETCYMl97a>YF4U)xm$=8%TAl1=(kf9`v=tAUw&S^LCw_b>MkrW< z$w4(f&ko~>O^I;eGBoL_0e#YncUDcJgX%L$dRA8;w{|xtMR8wWgE4n9UUep;&%PRO z2ad_hwkl!n$brP;M6{8iAd8A5{zoH`NL;=KMlmsDkeA!7>v8EIc}sH=C_3iNB)w=j zjFzKHxK8YVyCMg@Re2b+<ik^)i{6{-<mJ{H1w0KRc%DIq)P(}(VK=TKDIPUCA%M9V zTr&$l%hcrM_qcbVDuEW^vy!oau_+EP8-;;FonTzJp7;K1{s2k}GqgiuB;5c2002ov JPDHLkV1gjkA!q;q diff --git a/interface/web/themes/default-304/icons/x16/pictures_plus.png b/interface/web/themes/default-304/icons/x16/pictures_plus.png deleted file mode 100644 index 636f3e5394187d94b6e8f1a5aba56a1897622345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0<ZmvP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006PNkl<ZILoDx zT}YE*7=|B+l*$b!lIi*(a-lUW{lduDp9Ph4ln$iGCd&GkiLDMQC>$Z#KxanNrS_wv z5=}9(A0i1n`Un;t1l2-!5JRwaFm^Jyd!HAQM#Pj}xZr{3=6>Jn`v?I24>WC0p{3hO z>Qdo64ObC$nif&N`kk2RIGz^HabDhh+d|~6kf={j?m{>mP7CKaFAKzT$Y&;MD<}2Y zxjl$PBB%)fj)y?QAmAJVT*H885_t0oa?d%=r+AB!c%Vvy!TKHWR&U1LV@C8l6x^>@ z(04+?fS6|<dl8LB@x0lL)-qABT<?2zrHI91n7m-a)e=##TyNh|1&KrgFWr^6SS$+u z^bU=#P2uBMo`mP$-u-n7lF6iefvZpyum}6FSNmB7Qv*iKzT1k(`(pg~V#C5`tC)-A z{-CcA`mP*Qc=GW2(tb4RMFD%fXt7E!hdCGS>P>iXeG6U%w&CY|4PsF{LK8)DZ|K>8 z#sxPtH+AvDt4O_EzQRZB!9MIY<XN*w@J1G<f?B+Nq{Sh>4rQYj81AfxeclP`(S;<v zIlaUl?89FFLV03=?fa3xpzdsy*n@rA59A_HYe2AJCq~Zf#)Qj+@ut1<%kR6Q$Hr?q z7~1k-oHK!LX;q0=>nGvS$v#U#)3iEX@NGM&HB0<H4T%!slPOpyC`ilcj6OQG@&ldE e@KbZ9EcgXi+dBfeK$2wu0000<MNUMnLSTZAq8f|< diff --git a/interface/web/themes/default-304/icons/x16/pill.png b/interface/web/themes/default-304/icons/x16/pill.png deleted file mode 100644 index 442e4ed1bd066238eee252196d7d5ad97641392d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmV<L0TBL)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005DNkl<ZILoDz zKS%;m9DskX2qTD+k|>8R=x7SJAgq>~8XBSk2ZJjiSGh&pYH;lwii1Fe&<KiX34&T2 zf>Kbq=nq$eQh`WhgoBj$`gPrj)?Eet;N!vLeIE}V4=APZAJiEo1a^@JjaV$!Kr|X< zB9X|fBuO4o6la6MAS(#MXW$NnyE@q*;6Qn)SS%`~QmLHHW|dGV6!7_c>|X+^T&-3q z$~2$PQ$<l|B9TzMUhm9r0Yf>RPE%Qy%Wk*Z^Hac7&SWw)nM^7i$C=(>3fVD|Kgi{B z6y+tBWf`M@D${V7z6pY<%rK0@ZnrnS!ad5!t}Z|EJiVQqG?i<CEXp}ThH>5dDyK$9 z=!Mg1DAxiv7(m2wAn^F+_kWWME*Fgxa#%0hY&Ni1ET4gM49Ix(*X8Akk$gbN(LTUj zy{L~GIK#jxA!`Mmf70d4i3wHS0*G${xK{9Rz1R>~z`!aY+_BXfPmPa1UvXUJn&VzJ zuq^<%hroRF&(wkp%mXa018hqGCn12HF@R~@A4K|*KBODzK-x5?Ne?t5R_)LSy+{vY lL%NVoq+JtRHMv<2yaSqdyw}C`*sA~l002ovPDHLkV1i^o*IEDo diff --git a/interface/web/themes/default-304/icons/x16/pill_arrow.png b/interface/web/themes/default-304/icons/x16/pill_arrow.png deleted file mode 100644 index a5990fa7290e0f5ff030acbd400b12360e62884c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006&Nkl<ZI8UXM zUuaTM7{I?<Y!59VSy9V}jIxK3`P4SsX2h+BJw%gPDBhOaWJ35Lmq3L6j6kZF6k3Rx zNT4Iy>TRrtUStGKor+_tZduwI$%q-@gS6q-cQ12MY6Knlarh4B_v5@AKt%W-q@`sT zm?Bm-i9{m55e|oyp-{-+^Z7<R9*@E8cB^=v2fN)4uuOtTRjw1zkUUx}7KKu&RL<pc zg4gSHIUEkvzXT+?QmG)xSSS=w5Cn|HVuH<P8?aife+|@?Q>heYGMO^RaU&*^sbQd@ zoKB}P9*+ww%MNI@+PZ<W#AH2LB%jYC$)hTjN=eiNBpHK2T<7_QvQnwkC=?11*$R9n znV71|YZeQ>@9V3P+fNxZYVIbq8?S>(?*zz^oM#v{?a%&{lN}wn*xkJ)pSUqSb23;+ z=pKIIy2d}kv0E8{cN8EzWtZ#gy3<)BuNsXQWtitjdd_J`O88e0#l7?12TlqsP#{B3 z|1mbUQBNK^?_Tb@Hk+l(iIz)G66U8_^nOAVXSF-c!5jr%G0ga?#j;kFmvlNwo&boR z4lb2$=MaY%5HF;Dapf)IA=hjIhA42CVb~XPc{JJE`|UN$ZoFaH?+*axcmS?df5*S? z@^nH(d_m`<Eb5bp;@oDR;l#hxL>#;bFnk~2u@B&-7htjnKu_m~i37xbVz<m3P92RR z%D9R7mNQoecOExOpK&`O-@GK!M(ic_5Us>6LPqRp)&~Mj{ek)Be*YlN+eG;%{;BZS TGMYR200000NkvXXu0mjfE@>fP diff --git a/interface/web/themes/default-304/icons/x16/pill_exclamation.png b/interface/web/themes/default-304/icons/x16/pill_exclamation.png deleted file mode 100644 index 07a2af521906fd92f55cdc959993c9cdfec7bc38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007NNkl<ZI8UY1 zPe_w-9LMqR&kDSB@E}p^u#iCn;lU8b(xQh5DG#BR1BI31I_w~WkU`Ko3>Sgh!I+72 zA`_*Vm6U-PwbK2qO}FOsQE|gXQ>L4-fu#8D`z#I289@)c_#GbJpXWI|4<I7^kL)F7 z3<k;99esU$dswYjvBhGkHknKf27{qmr_)K)YBi`-Du5*l1iNvLfntiAlF1~WPNz2_ zkqB=z8a2($&60l^$i~~-+ek6S<8kD99z7lpuT(0l8XFt`I*>E=`~4UQ1UBmG>Kf#7 z`GErm#*>qi==FMej^nDNQfbbCN@B|u3!>2|QrskwNW^5{KsH9R88_AHJ+W{60R}%@ zMV&_6BNmH`MIsRheh<VbCWE{2nnHo|6&1gp>~rIni5s{U?_7V|pFiv!X88mJ5TQ8A z*jYM<{)~O4r5KXQaCXX!e*3k>t&9!ly_Y?%7p&6xoPhx5Xn+_tG@8U_OUu4^MSc^< zTk@7xm-LyMni@>Sv?<54JoC7X9VP%l8VJy<|Ili;_QkceI9kF!`)$RG>#=*ncZ=U< z?%=04Mb7sFjC<El18y2{G1k7KP^|67)8*yanC{z0?lVVZx;_yOUcuL|?qYE2B2Kww zi7_kd811F_7HMOQ8!ITV`^w5vVUF9H;kfUev~9h>+CB~yIwP}}a3NHZeFNcK2%SUw z;8EvDH<Jqg(h+j19^m$4fB_T0gb~1Y9^iUcD|;Gt6eX7D&fqeC8Z)b!>?xRao?L$U zgmno6he!cAvEw*7MheZX&_O)J-K__gz@i7I<smqFNbe(P{|PXB531{Fm<Rv>002ov JPDHLkV1k2tJ{AA~ diff --git a/interface/web/themes/default-304/icons/x16/pill_minus.png b/interface/web/themes/default-304/icons/x16/pill_minus.png deleted file mode 100644 index 8d31ac27711e4b5ecc2956789d8c0871a50a85dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005&Nkl<ZI8UXL zF-Tic6o$`Lic-)v*icM{zCzz9*@R%Vh3AsNL3BtUl~jXSGK9BCwhRs3nhch-1qn!^ zqT*I4)Fp#ZlVU<dEw3FCY#~T7MFIwu-2V5OCm3H!!2=%`F8}x6GhE`F({0el$r!DJ zUro~K^fgkcl$1;+CliUpOe_|gj7Fofs;U$W28j+K2n^YzzyW!-TCHleTCH9xm9%&~ z9u9><^8Xa*a--4Uka?w2;hLuLY&NR}0)Yv?-~Z17Q#qf{^J1}B_j<iE9*?JOL0h>{ zDDYe^rzwgu;dDAp3&y~jnJg%m%N+8oEXxwOQJ~9wVS%5kYFk;7B!}H@C&5+0Psm{1 zkdJ*n{=?;JD?hVZX}Y(Us06vp*Z|IrR(WS|knar*U6Y0Qx~q#;@qd=ZC;E;85UYp7 zzt899ZpcS&H_tHkY1C$O7@~n*u#18sRzHhGF3jYQjD1G9fbiE=mWbZdHVVElHh<*v z9UJog$cQc@kXa;hzeD(RYKpfa?&&28-Y}+YS}d8J;o(0AigNKyQBFP(ZL36H7q*<n zOA&-yc_lW$+yReYAorGNB|)?mCt7<-G>-cx;1RHa2jCvK+jKgf3mel3EX|OhA3OwB m&<E~=9=a5}=~5O>2cW;#*Sl;6Naid60000<MNUMnLSTX$llAxj diff --git a/interface/web/themes/default-304/icons/x16/pill_pencil.png b/interface/web/themes/default-304/icons/x16/pill_pencil.png deleted file mode 100644 index 90d40a8a4e1b51172698a483b209749a7f55a22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007JNkl<ZILmdC zUr1A76u{3(#1VvPjnWZKar7YRn<%DPHzXH6gd6y<Vkx+nD7geOLRk+JdT}$7wMfQv zMqua)7LgH+NJ_!Uq_SJcM*l=gBL*8OJDuI_4wv)5j}Jc1@5lG>!7O6S3gYx=b#;T$ zXoQ(@l=1sIU}9oI#^>{a*Xsqh+YQ6R!!S5F2%;zg5dl0x43f=8SL^Hh4F*HiE&;8_ z<1x5gu5O3JVX)inx@^D$(ArvFJ`|6~Nw3#mel~_D{|nTz+_SN<A;n^`L?jZCoKB~; zx3^a(2krqtX=!OqWo2c5{JWL>E)1k1nSd-OlSyKkR##U^k|dg&o0BXSOGh?PTwDz8 zr&Xs$2JnRv@sI1f^2wo4h{EA;!elaa=LF8RsNkjuXOzg4`|#4QAHf~+;^HFB&(BMO zAf#XL5)rH_72K&PgeMIMfo2@=_2616^6K$fT3MdW$|<7JD6!n5)9JKw;0p&*d`r{L zOh#{Aqv`8Mh+-cp;JdOz)@rr28jS{W0$*8X9@6M2ZHgj=F6znAUd9`cSI!0^EJqQK z^Esu+>t-{3Zfm23x;lE-*qB$&20n3saU`tPpPPMsJLI*_P6{GE-7c%uYA7lyN(YuW z5ay@<wb{1v$pOR}KY($&sEizV%YiqDx7W<(bwz&P+$_uY0fJ)yoi})SyO<NW#DO71 z;dx0(aG|N`_Xk1PS{8&qceyPBn2y2jBL{d2nTiVlT_XSwTmY|~0Fx&G&hvd0bCfA( z4yOJbvp3`HQ33@_NoFZU8FPqHGY6Rc%)X4M%E$#u;2+(St)~K*2G;-p002ovPDHLk FV1iyLGgbfq diff --git a/interface/web/themes/default-304/icons/x16/pill_plus.png b/interface/web/themes/default-304/icons/x16/pill_plus.png deleted file mode 100644 index b206fb51acd2b814fe53a25f433669bcee6b1d96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006dNkl<ZILoDz zUuaTM9LK+>+Jc%gm!nc>29q8td<X`z9E=;m9(t%PP%yA58ew1;V)(WK>7~+#hPV<b zG!`4ZMM1sz5HxjDjQ(&7(zcPT&<G!-4Nt#&o1>;i(18!<+{5{NxZKMD=N$ioGR%x& zj#$|skx2YOJRUd1VzIGsIP44tgJXd}z$l6$yk0M`M8eW<a*Ke8WOt=fk*d{dtxzaP zp-{;0^ZAVb5>VuNz0OJIrBaDYlEhP~l;rVvMqMt~Ujr@WY&OgD`Fzc8w>xb%TiZZe zIhV`vbUG~wf-q_}n_C7>5wopinPRcXNp>5JMg!3lP-GsB@-<OxD;o?3lU}cf%w}Mj zWMZx%mmLoNVPvF9)}81xsh#_v9w+R3fda`z#*WhbXsf(9Fu-3A4sOb->-r~n*qb3D zn9%~!9^gF%h+xg{|GG9Y(Il^0tvt!tQ{C_Z6XM#8t9*saGw$vA6?jE~JiYpl$;tIr z@?*xH9lNZ`(cz5D*)MM1SmSO_1oISl$=K~xhojt(-wX{Y@&h1wAFyJoJ2U+G4Bv{p zkMk6`#hCD1qe(7WEZ^P=!umTw_&yEHi-7%5{|?~d?g(zEGcrd$S$JcOo9c*smpX`p z=Ya7kU?vQ_2m!Olfz!0#PxKKwLW`?iS>4CO9M`%Q=y@AX?o=-0c0#jpNM=7l{|CJU seJOMkDq<JBop*4dV*!^sr<DMWpM!<Wuyz1=zW@LL07*qoM6N<$f)SY;2LJ#7 diff --git a/interface/web/themes/default-304/icons/x16/pill_small.png b/interface/web/themes/default-304/icons/x16/pill_small.png deleted file mode 100644 index 0b355ce4af668a5e8b63ea2383077011adcaa856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00032Nkl<ZILl-B z|NlP&C75Aw8Ss>m5sX)@S_Q@{R;&<Sv}lpv^y$;ny1TpmN=iz2i8f&6%9ScW&1pdK z|382J{D17&vF$lIIetVLfUNn)k01XZK79E9#*G{QqobqKh%vwhh*u+PzHs5f|7Xvh z{WmZ$Am{>lAYSu-!Gixka&zIDpFe*N(wxS{#U+H-fcuP$E&u1vg=qHo|9`>U9Ily_ zl~sj-fdPLkTw-M0^sBWMuK8JT@c%uGjJsf(2^w&Sk+J)lqvO5n9v=Un1qJ<I!oYBN z0Rw|80}{Y%zzPNi$+-*+(`GU-oSMeKFncNkgX$axR4~Ys@_-ls0F{iO;yMAEApigX M07*qoM6N<$f_-6;AOHXW diff --git a/interface/web/themes/default-304/icons/x16/pin.png b/interface/web/themes/default-304/icons/x16/pin.png deleted file mode 100644 index d8762f47110db5da9ce7ce1e6ef93dc7fc5413a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006DNkl<ZILoDx zUr19?9LImZdzTe8tjMAsdI*sS415s;BibGsa%CW!;Aq%W5uyYNKI}yw1NR^@%bbx> z%^_t^vRF|MqKJc%h@lfTH7FKFAV{_N^*wR!oGqd7z=wO!pYP}V&N(C^v>WIHa}jIB zW3^y(h57s}`p-a=i2A{ff|c!KqcSog8Rn;Nm@oX3V7Z{b%KTWuVafIN$rN)U!R-1U zLG2>**tf1OdGGbgg3l*$qKP|1m;MxVt5U%O>=<5R4%%mzXjDE2gYwSpmQ~A=FO7|Y za4Mn%FSkfZJTB7HllvYDt!L}%-e#Q6aXY*g2*^XCNt8aV!=B%Q7h8CeN-{hwx%PJ1 zXls+Not^pc0MU#J;Y*PM@`C3efd%7`{OIkKk4;T7@A1eS&i$mMWa^d<7YUjRxC{bB zSH>Xu)Y>YqtE*+Urbb?smoE(wwG3i@P~W}^-%tX^1=^rF!L?*Esct$oS6?p+E|+B7 z?hRD%s9%Q_6{K5%zy$tuI=yL{X2@q4*Y87;#j|A_8h&EO3A^lk*cKRup|}`}#bz81 z$5n6`0=kEDqx96e-!BpUY}>+i!;Y1fW!**4g2=ST&wvg{ZX=BI4*WHYb_&6p2zv2f z1<rx9db87N9-IJW;1D<n_JKXXP=Zpu;H3T@2gkrsa753m%RK=0gS|SeD&=2%J0eAB SUUW?W0000<MNUMnLSTXnxeZ_d diff --git a/interface/web/themes/default-304/icons/x16/pin_arrow.png b/interface/web/themes/default-304/icons/x16/pin_arrow.png deleted file mode 100644 index 02034d6cd1a03a0993d605175ed6370d399f4fe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007MNkl<ZILoDw zT}YEr7{{Nptz9G|`u>70N<t!qZZyHNoZzs@8cfN#Wq6TTD3yW5DC{CiP)JN`I<<wV zOH6N)$%=|1319q3VyyX<A7mLtU_>VTdyY(JN>Fs*$9d0t&i{9w^AG^~A81mD6-=!B zm%y})32~sG*PV=uh^m-B3dVl_*MjC|1chkt6C&}i1fxsV<3hBetPFD%73dPe>lGsD zUjzxmLbUxTF2*~P34<03JVY<5iBgseuE<iE2EMUuL<sxB+u?HIliiLtdOgOCMtsT0 z0Ed-IDR>e_fyV=smd?#O9G|CCQwM@NUB^Or!fM4mqL*Cyt5Dc5FL)fr;FA)!8*_z) zm?<d0*P^1uu#>1;hIppRB`gXaF<w5<!IGcl<(SIM#9M;_0e<%bt+wkH@1+;D(V_Z} zlvq1Oxkt`WPI4YmHifY<R-zMaEcuY1kKWi=^vB2JX=LO`Ez#+NuJ=w3D?How-yETs zYp;m}H*f(SIwsfW^T|#tfwVLXCM6-L*UxYTjT};(lYpG#Du!*#1!^YU@ArRKtJMyR zN|kq)B^S=s!*Zz;iD%nqBC_u*S*=63F$Qp0iN4xrn-8m0D#_udrlxL<Mst!`%L2N? z?@p=ipS?Z`<O~2Ay<yG=fL#}#E3$0j8>5XzV;u*LEK*ZwL^0b_FE>XYtNIpYubY+? z#JPuH?g6%(dZ?^7m&mr!4i1)Z(8S;Sm>6acvzyr|_nEECMqO4z@7`yC&eqtoI@uxn zu9AW^p#$4O^JZofvw>L`+Lz6Z(3)#%RvoSB(VA`_mxVLp7k46WhuH<cUH||907*qo IM6N<$f}o8$w*UYD diff --git a/interface/web/themes/default-304/icons/x16/pin_exclamation.png b/interface/web/themes/default-304/icons/x16/pin_exclamation.png deleted file mode 100644 index e342d01f39e1dba01d162e1e7420dc848ecdb425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007dNkl<ZILoDy zUr5tY6vxlmX7n;5ilUHu5F!MFC<I9>wQ$PB7bhu+K2-+#A|YW93nG>DL9AHemQG`? zC9|?+&CqJ>=W=3W$ges7rK>buDJW45PUqUpOoE~dAI|UI-|zdm=U#q5MDRbrTf}vQ z)~_Wqwn@YkAI~2%jR0_+`J-TR?V63++9-(F@e1+CUkN6DnNK0MQ(YZJ8X8DK?CL^H z`xim-7^3})UQcgwa%dzsm#hG;n*bTV3oeRQnO5GhZXB_2<?PhhNOOgSG?boBQ(7&3 z%F81Td#?#W&njNBT8V0FBVQ{kKh9=l`Gab;V<j9aD4^Q_Zf@NZ4QrMKPgl`6g`~Ne zBIV_@SXM?06%{|j_DmdeH{lEK11xSyKoH?If^MdZB@UK+tFNc&{CpbLXehwvwyQUI zTsLB#FNTfN1D!F={r7Pr0|F?5RZcPm0L6Be%#@bWU}7Tql9H(J#O|={$aoi7ve8KY z@t1uam@U~61b}>jEAUV=r=3oxxM^=7JDY;XQfcsVY$QB-DWcQqXg;K$ceg8yE*q+t zH3B80lV$m{QmL%WRVYf#EEzw0m;%-mS_oa>{}$-|>oeqi6esnzVS0}xDo`jCf>eve z(yvmfPBEKV08J{$yjOy=lLJL0`!nca=Q;BGj*`!FXs){z4NuHJ+6LY+L95l8IH+Zj z5~9Ol!ld4oE%HPljYfwKEO#L4=+HrWc2_Nl_u{)<9IWAB4nOZ__A&9y9%D7$k)^n~ znP5E44DY3-@cHE`2uQIXIt*wOf=$d0W@of+XSOk0O;unpR)I%gs)oKO(k(#^xXoAK Z>UW!}lf+<+%9a2C002ovPDHLkV1nLjIS&8; diff --git a/interface/web/themes/default-304/icons/x16/pin_minus.png b/interface/web/themes/default-304/icons/x16/pin_minus.png deleted file mode 100644 index 19a7dc00786edda7304591f9fdf2365d160a055d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T0<!&yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006MNkl<ZILoEc zT}V@57zgm@IcHf>qZWNo7l9!WK|wcyU_{$RLyqib365sbMG>Jl243uDbr-n{5&K*p zMmm?2UCClaL6L+9N+O0$veZCX6v05M!PEb#Gd;C}q60t9$9w+&^S<vP5uyJ<@0csh zR6eVR!71k5W4ONyNg_H6e=L~#`PrZh3`m~&&U5BHe^v0tbwAB~OA-kwb$81Mb0)*= z|CfUL*UUqo<8gT#3duw`ENP<07m4=$T5wXQ3ODe@#3XaHymm<@<$W|NF9QLYwk-MB z)FcSoJzDT!kuB-8NM~p1ODy)G(9rNA@AVFs!!wbH^btM5)So)x;P-<2i-K7#>Ft$L zd%G0d+T>G5$3pl5(Wr)SrXH7tf_sp`3&SY++SMhq&CT*E7?g3W`*u~;$T=rmF1Q3& zwcw!30f-PC8bZljYpXn~t(CF5I(b-AGkKZlxQ0@2)1lYI*uXLzUO1Y~W_73S@y14( z@cShn2oy1c{ytaucLgTw&*gISrfJ5)hH>mVN(%UGkE*M61B(dQZvDC<4I74`_NG#) zQIE%S1bir<Ygjj?Zl`@dnQv*Sa2{hi3Bnh5SeA7KK?_ADImb3Qfs!*sg;Nkm!0qsl zJ*CYEo<=Z)>s_!Dw!>D~qT{d;*1>963Cmy!7+SE(d0~@t-T>=iEv#|Ib#qt1a#-qw bb*B6c^Ts>|xhF$h00000NkvXXu0mjf7k?3% diff --git a/interface/web/themes/default-304/icons/x16/pin_pencil.png b/interface/web/themes/default-304/icons/x16/pin_pencil.png deleted file mode 100644 index d54642081131d0ac086933c8bec185d5ac7638c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmV;R0$=@!P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007KNkl<ZILoDx zVMtR^6vxlmmKilxBZ@}!VT?XB66%9Eu*}VDtPP=-pd|L86e$go5E+(1eUMxvW>RS7 zFx-%w1&OuFic(6UBtn+bN=*vG2!v4?r~d=rvPMvJ;m3RLy!-#%d+sF>q5py2F()yZ zT+0NV<IG!z@qG)l5Yc(?N5S~7wN42JWt6%5Idj%u3EnLDo?yNve!t8$Hp&2VZ!fd` zUj&)2nZsXdYvpZTo{V|D5+ZtZk!Z*7f)mPCK|5CT$C!)M-le5QJ{A?pONT=y+-~`l zpDzdxH7SC=pA1PTBvM~L_toc{nRdBejOz70YIw4+P_7d7W9v_paFE#<#=>-$5;!A@ zq^(WnDl28SqC!4bRVBg~hz7Buv&w3vR;$&fwAIhNEg`rAdNH8~l5Y(S^1h%zUOAl- zMc-X1DFe;;cf-fz^?EIbGcsxfXL6nS0Tm;tvKJH*?F&Qlp}bt4rKiiV%_jFPmRKv% z!P^1Oa=BcG;_<lTnoMUd6Xg=44;2hOD2+rS%1IAJJsuge+hx?@m<?>^zV2qe8K0^a zv)No@G#b;Ct6V71f;}T6BXO-(>+@<fWdTU0ac!{!Tfc`Yc}5909pif*duq19V4$O_ zK%>zpWOsCQ4C-{c60iaSx`MvjtsH%L(j;oQ?g-^LGj)VHlo(iXqucGigrXZFty&Kq zCreiyKUKo#%6O_YpK{D=DQT=junxgIyl(<&U;|ixYCoNp*{GbY=Eu8oXg6xh!7`8v z76FYSFn~3{H2+);R)Lj3N<17c-pSkXz7#A0i|512PWcBC5>Y#oEm-aV0000<MNUMn GLSTZsNG>P< diff --git a/interface/web/themes/default-304/icons/x16/pin_plus.png b/interface/web/themes/default-304/icons/x16/pin_plus.png deleted file mode 100644 index db50e1cef1e68547b2cdebf178ec59b288226350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006_Nkl<ZILoDx zT}YEr7{{Np&4KCCrt8BCFG3{BqHctN5^fg_oeW}1j)q-?ed>*c7rSUiH^O!yvSK!) zg|#gyyOPC<x`-rv(IjHnq}4Pk7Dh0LYVh<wV{_IBiVpmE-gD0T|Gm#SFEKOy5A;rm z5>`vsTEJ9Fh}K2S?}GplT?T&?q<&qS;&7M~Lfm^U#KFH3yxA~c5#kPey__8z<5?l1 zQ6WtKB4~Ln#Pm0}o8Q`Oyll5~gy_jQ(V^c3!?IN{i7$GSLO2U&=RklzIi38{Y~~fK zl|OfPGs22b3LX_vI1*v@c(UJJuC;V~`-_B5H&Y0&IvjkH=qXx%mJeHUf`>&cF)0ZK zIXgJWnSlZRGBmUv_7ly?5GwgLur7E2qIh8jk{_d^{Gq3ZUs)`?gmd53YG<!tukk`P z(QN}!#6TVPP1Ip4C+ejlM}dRr*fb;``}=vJxtSM@Mt<DTkenbogP<QMxf-q|n$Qyo zTwnnV9XJt-#pF#ZOP!s(Y%+1eY|fyATQpg#9A7)nvQn_7M4$#;@p$~JTCH~3RjN}r zAW7r5^}3sQ`=zQ30!ml9k7dmf(ED>?l}aUP3xz^+8jYq8Y=MBT<J@Rn**{XxZSN14 zK)z~4woUlrUaQr54M8hJYRZpY;2b2zBjxEDmo817%}P_Mm1WIwx<dXGsz-1HK^vYA zfPG*$XaqauKG*>aG+en*m)yg2v2q^sGN6)zs{9Le`MM2k1-NF?=lA91R?u1PRXSNV gPyO0)**FkC0n!ajs9ic+%m4rY07*qoM6N<$f;mzmM*si- diff --git a/interface/web/themes/default-304/icons/x16/pipette.png b/interface/web/themes/default-304/icons/x16/pipette.png deleted file mode 100644 index 4e52abe78c4a068fdfc13fe23f6ae7235a5be83f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmV<S0SW$zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005KNkl<ZILoDw zJxBs!7=Yg|O_LNgD(#dYFB(GIi%1JhHy07XD+;k13R-MPaCcA+qF<t+f2fEGiW-t2 z2*M#+TKb_t2!f)mA^3Xlx{FJ+f?jy|IKF$HdpV$#!haB_jS$#G@<n(+?j&vr>9`_f zCr8MBmXNL^K`td024wl2=jn4iPIm!LwuC_b4*{io9|+K!P>3!9oGttkXh$~g2^lIT z&j9$Qgg~|g#{fCHzD}<R*)AoEfhDh3WX0!$Rlom><?e3o03+`c6D4IakV>UQ(&;qt zJTH>TWEzvn<iObSWdeUx?m8Hxa{%Yl0OLxzXh4>qUf-_PP9OG!$Pz|gaDz!a5m53i zP$(Z>JkGmZu7O^YiJSYB{YrUM89>-XA`w%{PNy?wx7!;d1_R6%h)p0(I2;C!;~*N1 z_9<nSW&11^3(GJJ$boO7JZ`reJRXlD(myyX%T}wEGn>s0qtOUjtrmV9olXZfo2^Iq zdaK(zqSxztP-;-C)$rG;M<JxqXrd~WsuQ1EkY;IHhj5S7AvK5z(IXW|IZ`GBjM58? sbXt&Fq#CJ`?hQz#urQ*PWEDa_0FV7G6C9@UKmY&$07*qoM6N<$f^Kck8~^|S diff --git a/interface/web/themes/default-304/icons/x16/pipette_arrow.png b/interface/web/themes/default-304/icons/x16/pipette_arrow.png deleted file mode 100644 index 615188b42475b6263a7ed904351fba3c17a70380..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006zNkl<ZILoDx zU1(BK9Kio4O|dD>zO;-W9X*8lx)n7orVbXEFhua~qr|PUAZm+B@GZ&*MX--KS5UJx zR--Rk)I(zw1aWb)9!4;?6s$o|^wz`R-~U{+Y?~Bx;m6_JbAG>bxEBx+{s-yV%NRT$ zN~=&L7Rt;s);!DDW0A3mNyZMo<Z>->d7vUMB@+0xzaO6fOpWtE=^p~sa>4D!yw{6& z0N&pEOJE;yzrfhB)#L#H*L5D4tidY)5l2UHj<JWeWGOK0a7f&BxnQKV^%ohZQ+Q61 zrDU?EECr&`s6;FlgG3@B5s$|kB9TbXxy($MK9o4u-j0I+?`{BG<Wk7p2fb~lA<%Ms zWuPK|`Tk?}-kai69vP;{H@d+!8olQqf$ioZG+kW)>*bk01Iy(Xxy2!i#nRJRUoQ-D z`RrJZWU+bZv#=sSn8M+3uv#{o%|T;RTZ8k^83;N;{8TYjLgZs(a$b-EKA#T+L4ZIY z&|NK?Or~y~PG_=Q%B5(d$f@fZ6aC|POcW9MoYn-e*=%69+l~Gsy(cTOUauFlTCLIG z48i_P;nS6mh)3TedZ&NW_W{v#;k5`Vl?n_7LkB;7kIivPtyXs^mCBuRxg3<+t+3G( zP3ccO6FK|_jkojY$s+POtqJ^3?jXUdP$&X2nd|_~t;B9(7h&Y<#8zUn#-EusPa$fA zk?gvba2LH>!vpKf8@8249kGSjL~JOpYlu39C!Jn<IGt6v2RdmkBiK*EuZ&YOA*6T! O0000<MNUMnLSTZ(V<L6{ diff --git a/interface/web/themes/default-304/icons/x16/pipette_exclamation.png b/interface/web/themes/default-304/icons/x16/pipette_exclamation.png deleted file mode 100644 index 63443d39e2eac1624db0b05abe2dea0694274b8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00073Nkl<ZILoEd zQAkr!7zgn0YimoGgivl}1bL%Ewg~FQiZ&N>_7J|P4BEgLnh*785R27QI%Kj`Vh?T6 znkh}w)RZJ#qIfk|w3aPvGZn=wlkH&;G&r4e*<_icpbI}f&bj>m_j2z6LJ0g1;W~*3 zUDWax7OBrEbBJfch))8DgMLKqFbii3ZZ1fNlMV-2udgS40HfWkVEG>kGQ$hy<s@2F zMLYn!`!5BjDc=HO-Bw{Ifc_3E@Mkds5FnkMB!bwJEi4o~(CGy2dObWWE8E~LEj13& zl4NUZ*04}uv)Kf8yB!=3hoHH+`JmNmt-b1fYoQ-15UHpjz2|UltPS4<`mvgVv_A^c z;cxLD;g0deepb>hh1at!99fUF{CqXA{r+?x?x2AAtzdKb*_$tSRVr2OEpu*D$fr#t z6Fw4|*1eqU#q)d*0<%#-aTbfECNr#5Dr@v5`G+UEx4Gggwpe9lC5bKFjIs5&55*LK z!C(NR(FkU<xjHk<aa^@rF6Ul!;@RNHF+RR@ot;~<@}Z6dhB%(>`#WfXTCE0+MpJm< z;-$;!utK3Q=H=xT-o7Eh=U#Nqzc;OgLwfRbpq_++8WNm3wZ`^`J@mlj<m5m>L4k=q zy;!ZgB9qBXQmOQSSS*G?Hx`dQ-p$X?YDskFxbOySMrTft(XL#c-DiJtKMhn#Boebo zBr2inqf`-f$km9C!aTRO`l*Plemp`F->(UindSF=?RBDy73`$;P<vBTPUTa(+zsG# pHNX_(ZiLAc{vKn42~QKW{Q?usur@5C!8HH?002ovPDHLkV1hFSF%JL$ diff --git a/interface/web/themes/default-304/icons/x16/pipette_minus.png b/interface/web/themes/default-304/icons/x16/pipette_minus.png deleted file mode 100644 index 4e239e42474dc56dcc3e96faabc6f0bad435faa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005wNkl<ZILoEe zPe_w-9LMqRudO`|H?~Q+)rR06=@47@BH9w>cJm@*(Brbkw1XY>&|uhchm8lMG7AO& zqefIv)FBB3A)bSD@iL7G10hg6<w5xQ`8__1hldS=1~0~*{obEvJTT&%)Bn(4w;7`~ zs5h|(zYM#K-Q8yFy~fz5b;f$Winvv19caWSs>%;WNBIY$?{CFG{T~L*ajmb9@1)aw zmS}VOoPj&AT4U^Svv`sy`9ch=xA2Wf<IBsu%GkSBu|6=DNaz-lNm@*${+jRYRX$_n zWMZOatPhk*C0)5(CRJ5+l}e?%SS${W&HpUmL21?gem+I?<0a8kb3D^*pb`H*I^JH| z*!w6(<}h-IU+^67K*9nnSqH4~m#zIb(P(ri>-8#AXL0Ja5wBPWKrR#td2<|zMDn3f zsQZ~D(X1(4F%M)i8B!F5a=F}~IhJL4(C_!l58Q5ABzlFznw7Xtu~>}a@p$<D!{L!e z90&vypU)TecszusE@*$US#Bk+lhf&>U@$l!?tUwlc;a%o1|&)9vfJ(Y|0E2LaHnw` zwi4IHnN9?0hr^Mx*=+al`6k?e>qg%RSK$hH!3CG#B3uvy9^=3@<J}J(a2eW-@7>S_ ePLPb)2J93P?ojH5L7ue$0000<MNUMnLSTXz)&vRw diff --git a/interface/web/themes/default-304/icons/x16/pipette_pencil.png b/interface/web/themes/default-304/icons/x16/pipette_pencil.png deleted file mode 100644 index 066d012cd42f0df30b48ae9385e70fb4e583ecfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006zNkl<ZILl-B z|NlP&B^V5>7#SJX0P#~S_z@7_hvIvTjCR)<88@C`WZbr&k<n=vNHZ>t=mx+v|Cuo1 z|GU!C|C<;X4z2|m@RSGxkTpN__y2!4EbRXx28QGF2pC`k#H$}NGG<`YJcEJ3eHzGs z{W$PG28J{LSFHGdhmmnTHq9%5mTUlGhQ+R~V7%1bone`W2OKYPbBoyyH000Z$rzf~ ziHU)|b`oSjXJ;oE_xAQOOqehMjQjffRO;&L(#n=xss;wsnL8mN|7S5UoSM$SP*tX_ z%`jJ6+Y%Tq>yI%qI$#(8)BO75kL$~iJlYI0WHHc?_dpj+1=1lQAu9P67PbEy8vbu& zWITvs0J`R#7hcTK)zwXl6A*|2y5P+6K*nY-FRz^M-@pHNlalJ2&%odYHvov0tE;P1 zku~e+=%mWX$f$Hjaxm;##Av@^I^)*w&no{bDJj(o2?^=V0mVW@L<B=jObkPEa&iK) zW@TmN1aWb3<;jigD4M6%G4Atq;&9~W=VvGd8DMX3&*0$TpcI{$o&(b?At4bXC@84Z zlER9ixwDAD#lwb$frW(yk`FjJIT@s-rDH+1TiUzk^6>D)va_=*f)uQ*XHY@boF2yD zq9ntB0px%h!r0i@l9`#A9f5p3Al3q6wbm4d?*CtI{-03Ecr?g`As8qo0K_~%%mKu# zK+FU(fFFn@fmjMkivzJ35Q_lu|1@95_3_?}u0S?7$iYC&4%N&I#EbxaacWZko*6a( O0000<MNUMnLSTZf+a@Id diff --git a/interface/web/themes/default-304/icons/x16/pipette_plus.png b/interface/web/themes/default-304/icons/x16/pipette_plus.png deleted file mode 100644 index 058e6d91a157e02b7e48fc7cbed04ace4f9d2233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006WNkl<ZILoDz zQD{<87{~u7onpGK+LksY$SZ?N_g+-Gz&VgG!im&fENnJnd$flPsosPXVXU%NP_r^B zqJp9x8bJ`mWsP3;vKkXc!C=u_4};Tp?ljCz3OexPJLlZ<``?dqx!|1Rf6&H0#_)(( z+JGvtP~!_@2j>`jsxtOsnz2K#h1^PP4yenk#Ufuxr};DB?PC$J^bY}z@?tc~KgZ+z z4)FfgUjp_M4;L95*+{+ygs+Hz=@z^JR9>m@dB&c!lC^-TP)Or$IE;J!{l6*q^(ikY zWOaPJrK|<yaygBBK96Fts8J{syxD9vb+-H|Ll>pa$71|C@Zl<OPDqgfGa|9gh(t~6 z1M2efkDqh*-&LQBkSPlJP9028?Y>|I9&`eg4&bK!&wyt6)$F%Pzu%uaVYMpMfx7Fw zG)uBdl-30hawd}*Zj^mK->}>5_V&cBIDCZKEqAD=R?=Kl+}^qtkVqt;C<>Cv<WQq5 z%kq%J;gH*pQM;4&5*=0r1IsC1pKJSpKmfsD&~yCc>Cw9EbUGEA&E}CL37D`7)ZVX0 zc{5@kCX)#+mupbGeQzK%X0ccXjYi{6y<Wfeqj;&FF_&<8iz@I{5Agb2+o!REgt)<A zNa}RDURw7MyNPbXBc2o6iB4R!eC%4-!*R(nL+dtTlL(M%2fAw2L2M)FnqjX!Zzs$c lHQc~R+YH7G^iiNA*e^rUVae!*n9BeF002ovPDHLkV1jY1B0~TG diff --git a/interface/web/themes/default-304/icons/x16/playing_card.png b/interface/web/themes/default-304/icons/x16/playing_card.png deleted file mode 100644 index 15094faebb57d7920bf5738b2b602bffb184638e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmV;h0#E&kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007aNkl<ZILm#J zUr19?9LH}D5e5blL}CxFw;mE?6hc8ylZu&;Ah?j6Scd4j*qlz5<#3J#)<ATqXq%dA z5=|yU0~Zup_%LC}%s+%~j^Q?)j<wCLZNJX%j4Kwi10T*kzwhsS&bjw8FH9x|c{w>r z!RPkz@e=vyXpKy-FMl>XT-a(boZ@n>N2F9T0KhQE1eXa_<XQgOVzGW(U5!}ncJ~{L zWtIqso*RuFB!7T?e+d*56C5IcD6|a!8LmLU)n+ir9;(%+j|AkZ9QA4JlF1;IPG<#k z?bOt~SfhDVrBw2$KsqwQ@gzx_ey^=TBALtz=3kvo*z);Yl^q>oDqsf&G7Jt%<Ea$H z%w~ut5?R6gv%>+tgM+>M?d^3`Akpb4jeULE7&#?;cz7b1e_C3CVXO81J(;ZJxFA>3 z-~ZtkIb}Z*f&G~o2nqzSzrCHA$r|gJe_U9IRVoycyUooxR6tHfZoV>^9HDp|0^u-t z)oR!(C^!PwSjW6;Y;5@s%ig-pvYEfo(A%5C>U0egHd`!6uIUYh!0YwGCZ7*K^YZA7 zYpi1~>g+U^HZ`3iWCZnE?RCT4objE_27y=%+`%BlWw%oS&Rh-i^0u~qa(xD&g1Vj_ zvD4$(dpkP|zGxIScXzX+*V9}mmCDOnS{Q^1YBU=0;`+L4XnGpF<U?)v{aNwP&(pkA zB6&(+u2ocI1l8T$ylR!|aji<Vhz+YdJ6XZk!Td&TEn6fMGB~J!jI$RC3ol(ME9?5Q zvf}ZOCO7%w|AO`J8yi1(0zm`Wa}oD(g7bu{XY%t)bBl``bNT$%6CpYFk^Umwhk`$c W1h4Xg?+SeY0000<MNUMnLSTZ==t7$S diff --git a/interface/web/themes/default-304/icons/x16/playing_card_arrow.png b/interface/web/themes/default-304/icons/x16/playing_card_arrow.png deleted file mode 100644 index 95884ded14d369a058b3d72d5272699d316da77b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmV<S0tx+zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008LNkl<ZILm#K zZAg<*6vuCbh|)et5Q%-z`V^!fqx3^06iNjq3W+bXoM?uK471rI&SW~*B5UBwm@;!} z>ZF=Xh6>KIGBP%6iRMc-H|KCpH;3t?rk?J7Y}P`%@Z;Qj{^$Jf;d0S^l?o9`J31K1 zzNn=ol4@#7=QlRS-BBol3zf=49^F%uA{3&e(o%%}GB}Az#(V0qMx%W{KEA3o7%WdT znjUOeFKBBk!FnpG^D-!IZS|0{;C7F|f0o(dFyB)u`8UO4pFIOSs)y_yQpM-P_Rh|} z5MA2Y`Hm}*WF-rQA&fymLxYFgTe#@w!~|?^ZS4!u-;9pJjNNWdEGgk$7YGpI$>qD$ z)fH@PZv(AX!`kNNz7W0NXaxK6@=`)kQD!_vA(SVRG33_NNNIe_%KG|&5WRPJ7!+D< z`!zm460>K(%B!t?{sZ6QT3rQKcQ-hrqro*hyBqPD<ca=raF9+cF3!7}pYMl3<YvP8 zhbooPy|Dp~l@+jw#V`{Tv<EqpJkiUWn@6tjcu|*mJVZb_RaJgGnJlMOr=y*COq<&c zHk%DhY&J{>1Tc}DNxtm$5?qo`x}xN!tjKB;3KM@pC|fE$r|j!%d#2NYgQmgabTXI? z2F8FyPma@W1^FBRZq`RsedjO+nU$5?QLA<7X-^N>*Ve$axah@Q^*2bU{|X6@K0t(^ z7gAqLgVX|moAsfh&m5F4k#L75C(ZR;U0}lxHMOwdMVxvL9?Sq_;6Ix9=??`H0H>(8 zdX!dC5t1en-O3P&hKRxV{Ja-gijQ!i>=i^MRWlPrD5oKQ7~pu0Rv(z#%|Uqi9}5mX zaXL1(d|+(MYQ-iN{Nn#Y@?rU%^qBzwR!WP}|6*b0k+Z3!A05Sn`UVEZu)@Q0S!{OU oLHNc{gFdm<Q-{NEP`~@oFMLj?3_y@vqyPW_07*qoM6N<$g3cpl5dZ)H diff --git a/interface/web/themes/default-304/icons/x16/playing_card_exclamation.png b/interface/web/themes/default-304/icons/x16/playing_card_exclamation.png deleted file mode 100644 index a5c648f52ec465ce953720f2d82f64509b91029b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB>WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008pNkl<ZILmF4 zOK99x6o<e6o&UU&=|nTrI<eE{ArpeO7K5eZ3%e3)j4njbRU^f%uA~S;b>T)AZhT-D zF5K1WN@_u*j36~wMcW`l+u(qWGm$(TJDE(Hx#yniVrGa+e(-VcIrrQH=MkJacMgCc z2mtWjW34TE)hVaiaL!!|!|?ZHGU@5bd(YyH8>lKFJDLEF0b|*8`tjoA<nhMl=K9TA zt+Lu|E;;9xB9X{%z&udxe+r#*{d@7XnVC2DrqhT1m2}{l>FEP~<JQ{Rtxqmq{Ajse z{{XN6#);5lPd1%C#Oc$h_q%c+n?0Bt8hXwcGv{F(z*rG_1nNC<>J(0OSJZo^3x&td z%+0;!M2<V>2*p}@T}(Oe(MknBKF)561OXyKG9FKfNW^<jsHy;{YF@oZPMm<A@Ba#n z!8*r<%a^|qkzWB!?`@9>g1l2joI}cG?CdPEy4pR<Wg4~5S^DKA{NJU{*Yoq=i^w$* z!Kf;#dL*C86rA^nDqB~t(yUatT`bb9RA~SF1MS9l>@U24yIpR{_IgECw^Wr-Rg<wW zd@!HQPCD<gs&Mio{``5gTE$FEaA)=)$>;|0Xvp47K6w4uXLrXU9lB$5?(jo}!V?}6 z&iif&i3H~C*>1q6AJb};xodcom*>7<Z1nIzG_X%QA#~DB@W8`UQ%`lQMZMn{+2|-{ zaglbqMl=k-u23qKa9hjq*uePx;&{>u7!je>Znwl*`aRge(X4;T;82Qs<43-_@CIw! z*NG123L?B{ErD^)efwdl^zQt^!WG~@i_>2J2`@D~*NK@mW}bbYfpCLVYC986q>hMC zj4WKb)cLbo{bSwQ;YW`iy)U<KUpkCNiN<2ARNmvBOr62RU&Ks@ciw&#wik#+I)tH# zuPkp220#Y5H$E~l63gW#F=nv8IIlcXeSR#nxxa6l02ejxP9$)hFr*U;x$+OSNVf|p S767RL0000<MNUMnLSTY}ZHTM@ diff --git a/interface/web/themes/default-304/icons/x16/playing_card_minus.png b/interface/web/themes/default-304/icons/x16/playing_card_minus.png deleted file mode 100644 index 5c1e50e502f10944da18cb6206d03bbb990b617e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007!Nkl<ZILm#K zUr5tY6vuB!gu(&|B3Tc!w;oEyAbbewWm17jLXwNA3(F9dVKSYl>2Qt(*2;9LXwE-d zlSr8i4V+MDAvi%q^ADlZF`U!sF#W0NPUrk=QcXMX;of_`=X~$sa@kX>l@aBgojkNJ zZf}oQx3*@eT3V8xG&P9|O{NneJyavpXxP2-a>o8JxPYYMUj5u=vwxYI+O#{J3omT8 zJ~V7BwOGnfzfX048I+jKA!N&ez&QLTTt1(x$YfHb>vSg%4RF*DSwX5&sbD`CJQC6k z-Q9x<z5ZdUMia{$6f`%7c)W*2Kc}Z*cW>`VNdG)B0rOt3E2XSVaksRTF=c)I0SyfW zJNx^<b#=kk?(UJ0J}@>0-u3m><l^GYJ8Cs!c}62oPHnA$!&^4Cw~vMNkE5f|WVgS& zty0A!hX#VYy1Ms2@RqgBO<3#g1;11ZYm18qE1oG&`iG$*E~TU-?^b?(B*N%s;_5T2 zbu6&61HO$7@aS|fFBBd^XUdaa+156GQ>namL#bp0%dV-3R2q%hW`~3G<Cva606ZQK z%t<8hJvy3S=}dXjWfc`&3AwqaGm?{;g<)hF3|CD3{gw`g1AH6@3w}S3%jx6|Xbt5^ zPbw;^dnpvMPVD6kGOMc<6K?nF+rB>VZf(Kb%1Rgm>FLlT5`kSThGv1ljg2FOnX!77 zq1P*hXJ%ZDJw4#Thnihp4x=M34!E?mFy5dElUG&6%C*`@54750GMHLg3Zp|VhgT61 z@ERvjM@22-{~IAHX#$L>vm(*?i;0PqpC%{WZZuiI7ylQ^f1REE7AuuzW6wG2yUq^c w407pIOiY46EY1-~B!$O<I@MwQ<==hm7hr~qcI0Q@4FCWD07*qoM6N<$g3FmnaR2}S diff --git a/interface/web/themes/default-304/icons/x16/playing_card_pencil.png b/interface/web/themes/default-304/icons/x16/playing_card_pencil.png deleted file mode 100644 index 6c0364db32f1e4b88223c36565a39dc66e9ab618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008WNkl<ZILm#I zZAg<*6vyunsRR)XBDD{0e(Hmg2q7hv!K6Zqgv2S58=7Gvqhz+>Y>jkG(gvc-`8qM@ zByvs0tXyEE;RmfHv&|(s9m6@D4qqNM^>puJ8%oxNALpL)Kj(ig7d_Ex5kb<^LqqPO z&dwxZM@OEZz5UjsmX??@wVL7A{XN-IDaw*a5ISJM!f^0iSgY3?hOO3h!|3Sj3%$M{ z8#akGnhLDvkiJ6(<y~EVvKM^5arn=1cs!2BYPI05Ocoq4z)$s4xJSAK0@&T#I})NR zbh^)6xx9cQl`?6A($-c#_jhp9FPjavcXp11=$|YWm~p!unH3e>J7O_H{Km$8RI1Xg z-Cdx1dtqaH`$&lX(QF3y%F0rPNR)qDC`714siY~cuUAlb%j)LlKOy?Nu`y^d7`h*F zI7!cwlLH2!B@GR)*YK9*^>tV_8o|qE!}8qRe#AMc6aCH55GBpYQTz-F(hoBjSIA~U za<x`#_HAu}XLS`^G8xQ7M+YD|sT2LFN;UN$C8Z4{5_rpC45FgCx)Xe*vZ%{sqP+N- zE}suvE*DHECc;#BI2}n&>NAcHkWo-zrYH(hqoQit5K2Xb3dMQ#z<}nJ$pjuO%zC{v zj?q!tfJBnp>;@R@yAG5~2rL#$91#%_-;D6duc_f$oX(}T{(f+8Y{2y5;$K)M`@p0+ zM-Nw*hfk$nJ)RO47KUhpJh_}ZGCApJ>gxj+{wVvx!Xd`3dKl2L>0xd2Wys^R>#t>A zK#{Sr=q549t*T<?R#x8QRaTA=1MB>J0JC)%27330HN0T>HerN|JRUzjEe#z!A*W(u z&YVq8e>ONV;dEk?S^VRK_c{^4nhm<~=C2kbe6ibqFxl)PJad}N`3+8D;*Lc|riLaY z6o)1zmifVT$hr~oJ?;|oC0)Zh>BIH-KXd3e$}NY=f8m2G00000NkvXXu0mjfV3cUo diff --git a/interface/web/themes/default-304/icons/x16/playing_card_plus.png b/interface/web/themes/default-304/icons/x16/playing_card_plus.png deleted file mode 100644 index 800aa726eef4d2fac60de57884cbb6852ddd1b80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007`Nkl<ZILm#I zZAg<*6vvN{h>?~r2xcEN>O-W748jjaFQ8PQk)WtyxmX$^Hq2%dwK1Gyku?w<Q)f=s zbQT$tp@9pEEQC!MqWD7S=2*_@<}iKK)YH9>O{!@Zew=&G|D6B1TzI0>0Y%i)!$R+s z8cnjWqoY93-hShuN)=n7RtNZWUr(M`3^^hZz#j%D3AyAhe6H6UzD!K48q8+f3%!1T z7`9Y*b=4647VZ1Xph~Otk+<OWj^clg)#b82R;vYfq|(4W1M*ZKMLV=hAi(XNoqeIY z{N20HT$$`%u2>w$8kD!S`MAGDnto1B;^x-YzEJ(s*ci?_o!0D{8g5o~H2`0!+@-m> zd}DhXnciMp+uYn2s(-Lp(7C+4lv!EHyD1a`lqwV~C5?@8hHP0`Uq2A4zaJSvmBG-R zArK@J_6$Nwo0{JIAX_}EtLW+PM|Wx}dgkVKBgtu<>TidJnCz;m((7eq!33b2DJf5N zI*WH>16?aC=#WZrHYR2dn$tSfYdbqfukra8uk!gof#QaSV7@|8tTh@LH+iPR>qUpd zfioNqehUj@Bh6|3_SXj(syXcm=#FZI?nnStI6#qHeqKE|*!9Y2L>I%L&FyBfn$4^M zjlNo<;R^EHj}SDGCQwK08u04txnp+w(#wGXbgr%8%;KUSdB$Q)XiLPz-b<L}Dnv49 zVrdOmLV--i9iE!9w)FL(gM8HV!h#?1+7!I}J<|_pJZ6IYy1KZ0iKOtZL^4bbCg$h; z$krEPeECs4r%u6m+XaMYp(d94P$iIaI4U;w#F_N;+K=Pob~`b#kstpTT0hm0#2lYF ziy%5;p>vQHMCXD01|$SUN2i4(C6$D5I28wRC?{elfEP3k8G)~V&%rNALXJ!tIGv0D O0000<MNUMnLSTZGpIgHK diff --git a/interface/web/themes/default-304/icons/x16/plug.png b/interface/web/themes/default-304/icons/x16/plug.png deleted file mode 100644 index cbc85ac2e99439ef061f8968aa81d6245cbbd18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005(Nkl<ZILnRF z-Ah_w90%}cV`HqHH6jNNj<O5!m`6z~$b&|DLi1(5fXeXT@NKq>DG>(U7~)0f^%(R= z^bhR1%YhMWjVK6WblcS+2-<JoCoF88$_G9?hr{`P&-3FP#vWKElZmBLDORi1CYsIW zN~hD2y4^0j!iFhGBocC=P*^)SI410?rBaEt+wBJn!q5{%@uRA$>%HDSxm>OdMNu4; zN`<vrt$PbT!A_&mAii&J?~>VU{%W(?red+!jdAqCPNUKIvtF-LwOS=S%u99!L8x1; z)?4G~6|4t?!P9cNOqooE^7%aRYux{VahCocN3UQjm&=_clSzul<AftqG#aH)D8x(l z2FLMuJi7CL*EH=S5{XbC5Foo<CQ&q#Bu$VkJ9)`I##uHP3=Ai_6^_FpKf0oL5ps~l zV!!5axKTLCOAhtkoP?udu}EI8pWJQ*b9%1L%=l<}+RMX7kkBhQ=3!M0(cIi3`FxAC zu<(xj{_x+~+4*xxa{dv7(cgG(`L1vO1x_@rOyO{r(&-QUZ71*xzCj1vcZD^eY&Oe7 zr<%5OxkH)_u?EB3CY-~2Hsl%%e}>mE4rA~NUcw7_4$t5zJb}mXh!?E&!~D0D!3Gw1 n3;aXB>6ec6%SQS|mnHuI9+bz04&P0#00000NkvXXu0mjfneho4 diff --git a/interface/web/themes/default-304/icons/x16/plug_arrow.png b/interface/web/themes/default-304/icons/x16/plug_arrow.png deleted file mode 100644 index 347bfc6e8b7edee7df5ae6e4edeb2131ad620792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmV;L0%iS)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ENkl<ZILnQa zZ)g&67{{+LBHW140tcrAiRa(tLeN7cb?N+*bD<XAuKbsaN-0s0z%dM#zAI`F>rD*C zUKG6vBI-@F-VHTr6>DQF1MA(O2%<qfJ-@N7xk>Bb!|#4~_x;@S<&L6uIK*NxH83zh zC6h@-KA%q)i$$hXDpBiD|0C${?^lJx;oSUu9dOM?qfx3*DC{V3A{CmZ&)ICY;Ywu= zv|8;b%d+ZtJWh>_jQmq@9;s$B86fNQbPXgD$(UR&KkD&#n(DL)YeXW^n^Y<Vi9`bM zVIrxuwY8;WGTF8|tpvk%yL~wpi$Nd|0G{W8oa6ObtTVK=PAkEKP$=}n=ktNr>jfMc z+-^5G91bFRySa|RU})KYhU2(jE|&|eRx2o#DxhfzFpL6JDh-j$VV%pJot+d;v@PsK z7Rcx<Ys8Qmq*CPuYIP3^j}Xa1t2g_QrAQ<KMxzCKdRXjf*g&T<0h^uxUE%ppDR=z_ z?YTmUj$ddJ)JfQ8bAZ|02PRV=^!A<ri^cg{uRpfJFq-e${L_{327qDgLs@@&iSI7H zZW7!=8XOk`r!xqC{~0oBgZ5wh#$+CSRpg$15%QDo1|KfM%})RrE^9_>{Cb!}AQ%ji z&@#sjt*(gQJX!x-`Unu41vvHUFWL71hp)aYZw(XfAS=k}y>vI#m3%TTy7;(E5QguU z^%IM5vI;=<cyD!r&EZSPLF53^f$T@x5h1d#eQ>I(egV+VPgR8W;j?&c7ZK#v!sNG9 zA#y~D974#4?pl*}2u#^~dwh4R0%JOYdjYch59Pxg>8&KuI{*Lx07*qoM6N<$f}UwI AAOHXW diff --git a/interface/web/themes/default-304/icons/x16/plug_exclamation.png b/interface/web/themes/default-304/icons/x16/plug_exclamation.png deleted file mode 100644 index ee67f1d92aa8c5fed75fc9cf256bb190f3a33bf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&<XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007nNkl<ZILnQa zZAep57{||vpgt@poFFwvpy*zVX7yp0DY-k`i#8{@VP0H&b4$t*VPev3>_gst3JJp^ zHHjd>GJ-Uypt5LcE|g{Yo`y0k6Cy?w<<mK%$d{2F`0>B@Jm>kJ=YP2fZLm^PQ&Dko zF{-MnlKOnUQ#{XS27^KL2lPJ%MMXt&o6S}`K0XUXPdgkA6bJ-1G|&^mB9W+qW!d_0 zcoY;0#d(HdvRp0~^85Y&G&n|hRb5>TRC{}eKr9wFNhFeeg@uKy;v{O`laiA1+Uxa# z+wBH&n3@a;1OjhHM#j20i45xV^YfRSPA8bnW+*Q&2l`C*BP5PzZJa~~on>WZUri<x z7>!0CBSS$!0cf>aYBI7ij#8;in16udxSs}t0n}<W$YgR5iNxTs?t*51I~>;ID2a1Y zC=?<x(Yj_MVS<j%Fe=E*%!2fE8OWqkxZqEM_mh{PF(8DkThL^pn@xmiyWI{dRUTw# zGbE=n&e2i{JiKFsAF)p8?l}1E%yE3S;s{2Rm1~wZv#b_!b9IoDqXUiR5U^_9a${iU za&(#pi^T#T-<^xSxV@?Mc_-dXSY>dLFwb#L(CaNwQeveaZC;s;=epXmzI>kZ(RYZB zR>I)@w9u0dta*I%uK`Dk^ai3!9OsGaUMV&|x`8jxys<96jp(5JUJXQs^I*7NwMh3L zT*r8AGo_jEolx4-hM8ww$)TAs7N$n_$Lmz5Mh?K!TiZgkj@C4vAS4r#2s^r(ar;<b z+J}V+87z!TAoi&)u9UHmXyNV^+(Hd%e>c<LQcjQ%(h0k3+^GF(0~%~;KrdT)G(hNY j<5AzWV4P50C2INwWDq^nA+gbW00000NkvXXu0mjfKM_B` diff --git a/interface/web/themes/default-304/icons/x16/plug_minus.png b/interface/web/themes/default-304/icons/x16/plug_minus.png deleted file mode 100644 index b3869456cb20c4b2ed8b9461584d266361e7d0ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0<QguP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006QNkl<ZILnQa zOKTHR7>19ch&n382oWa1Ma-nRU}6i+kQ9@tNpmq5NP=XD&CS$>2}L4wlM(}!WG#xi zbETmFqDyI{;Dypcp-6F4x)KTn{d`YJN}UeYf#;mV%z2;leKW(@F_+0?V(E06)$8@q zR;%@>+wDrdUXKl7|075yla6AsIKQ^GNthp(%VpN-bdD87KwlKa`--A0^!uyicDtX- zvh1u@tE}B_|5NY)d}=nE#OI}@6*8O6&uuo_&3HWiS37!Pm(gha(r7fOR;v*<bIFPz z2o0;%dZZma!9pk$+No43l+9+TP$&>z<Njx~GplV!Pw*k1&+n#EDM};~gpw&1i%~cn z=8~_6+wpq6y8VAtRrOai8l_+`NOrq}MA1x=G)fMKi%V9~&YZzuV5sOwI04pq>9XuY z$VnE9{Q#%a1K|xWS=T!`1vW~h68U@q@_1zQ={;b4+)ra;J|5lxNe70kMzG1liV~*D z$!YTYr)g^H4g~^{-xCwJ_9V&mQxGnG$G*8I7~X?-8o@KLrK%N*L~@kL+~cQhfo~5P z+kU~=k2hE&v^?Z3W3Pu{6;Ljh<Dnf@o!y^7<~oK~*t|P4Lt6NKZJ6^C?18)d;cc*p zlTh}umc>B@hr_6rT>+QD2)G0;fb-xiI0H_DQ{W^x!3Fb!F#j$2%e4UuxCZ!#zB-VO f3}oj9qJ7C9!w2i99niH{00000NkvXXu0mjf&ubPW diff --git a/interface/web/themes/default-304/icons/x16/plug_pencil.png b/interface/web/themes/default-304/icons/x16/plug_pencil.png deleted file mode 100644 index 378e2018f4bc8e1e27ac0060eba78f71c013aaa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007QNkl<ZILnQb z-%FEG7{{LzhO1V~A0^2)WUOtvt+o_=hl+2nYYvx7+*UCr`_=5CiPelD_-jFJMRd^* zBq)OV1FDN441&DqB3KAfn8HHBF1tw>2=?@xIc4PpANX+KyyyEl@AIDbzz4>}9Aht@ z7>zcc&j)XxGjQ7(Y?Ml+g1){!h{xlNV`F1i(&@B5lgYpa@QShbI5maCf-vs&dbQ;Q zZnxVQ3<i@63rk4jNH`pZR4TPDcnaWf)Ysq5=kwUp(-WV0#yX1vCy`Yul@}yQ8qa3u z(PFXOu-R;;Xfz6wlauR$$F!=ty84(#qZ!Zt9L1N@?Dbg}yF=5T5{U%zadvhN)oS$v zgTZjZ<#PSgPC=khD4<u8oqRaK-f_w8WaaOP(SD4@Vn~a*WKJ%Z59xHeE$wUyT%rta zT?PA8oPFn#M;R3kT@*182w)@<;gZkP&fx#;fSaDkWHQh-RDfLoFdc=No7d{rxa9uz zIy~Pm@^6C<hl5MLl(r)X0+g$dv7oq?x?F>}@(l-Ehf%3iqh8;LMx&Wa=Bb_G+S*#6 zH`)^JB^K#8@l>Z7J<>rQK&`f^fXQUVrl#Y3Zn50XXNX)V6vDPP5v^7m^(k!9($bF2 z&22oKBi!W#OFS$|4(#aY#`gAZ?CLs=qUik7+S<9Q*PB=5@&i9;-7suZ_lRY`KY~uD z4?Ug%zS}bKm3Tv>3F~%YKkt?90uTN2`v(gn;ej1gX_zxjtP<y7hgBNBL>wY&h${Y% z5&MaK#2%uO*iBRryNJT2NfyH+gpn{1TB3pA2YsX{tt!g)7DWZgU)!hq0rH@Sb^rhX M07*qoM6N<$g0uBW{r~^~ diff --git a/interface/web/themes/default-304/icons/x16/plug_plus.png b/interface/web/themes/default-304/icons/x16/plug_plus.png deleted file mode 100644 index d541cb63989f5807aa3b261739e24b7667b090c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006$Nkl<ZILnQa z-D^^D7{{M#5-YR08Ca+UnL1xcV=zS}b@-kyr4k+t-=+mA5mqB`h(XL~-9#}4iwL^w zu0LUyp)y#Fu|ct5?4s~0h=h82elkZoX&w0R`<)->`#H~-a{vywq*5t_!(k{C3ghK+ z`Oe(joU&G{K^OQRK`<E9B$LURjg2j&^=>+yhHABXpuj^kBofKA!{L~1G}ckC*FQ3u zOxkQV3zbUcpMo1ivs5Y}TbGwtP$rW-SE*DN{eFK>ok3xpSS<cfEEX}B%OO3?BrAMA zzo<|s_SG3Am~}dxtxP6^(P$JCi3GAeov%`ze1Dxmg17N_{6{Dh!ayK^G&1^pK6JTU zO!D#XI!2>$VE^|V$Nlnpy=b@FQLWaXL?T0_avU`p9h0n6o!cUj2xy{x;Q+D8MmL$v z6w;zxuHHkdHIVQElWY!pbBOqqN~O?jwxPjbqMpV*CMGN>dT<WmiSQ@f7rcY$F-i>g z2)0<*;c%hV>PCyjjZ;&X(Ps1fo}9eYRw{Mhk31f0Pq*$Nyb;ym^%%g*(H_AwVw>YK z=<&ob61mPs-6qx`$NvWNBRjAlT#J3pBL(XnmPQx5VUEC9EXG1Dj>~seA_C`!0A7sL z?K@YoA9mg!W-JhG;#x=TJ__(uun6;lIz#)#irszZyf1u<I7LuF5E3Ve6U1?17#{MQ zXFh9?)&|`lCJr&d%x;+dmKs7u$ceKA`_QL%r9uevUcpUX6Rz-<=zfSv{s1UR`&8&O RBQ^j4002ovPDHLkV1mhm9q<4E diff --git a/interface/web/themes/default-304/icons/x16/plus.png b/interface/web/themes/default-304/icons/x16/plus.png deleted file mode 100644 index 2fe36a1b9816382b5d663a2d5ddcd88b48d233f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmV;-0W<!IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004#Nkl<ZI8UXI z%PWLo6vj_Olo)0VF^C4qt;otfmvX;TD2knhjlG?X>%u~Pu0<oaY{=SOcohr9&emUX zoabfc`{pxNPW`5*=bYzxzaeI(|M2~@>LS`t3gsZl5Y!LGuf1eK3%1-udmbxl>~o3% zbjS|3zY5lbO<DLo0o35f1Ow=xj~m>EEdU#Gu$>50&-*w7XzgJaxcjpJth@1&YIzyv z=I0@X)}HmoR$vIqPQznA*FW^J-T%Qb3sw?T$LlCJssRp!>h62F;<Am)FIu_gwu`H8 zI=Sk)gDbDvwMND)SdLft)Y`jl4FU)joK$kweyJwSU&P*>LQeM=v+uBskueLFoCYmA zm7VnCV)h;tvfbB6#w=KL5-nJm7iQyB%2_@qpXM>N_N+IO312WL%)|oaxya?j^BjiO z9(G|1nxZK<SrJ6jF+jPWve~7446QxvEMpefC&NKB8KqorJ_gX*vyHtVQb-d@gfeP! z?9zxsX`tZ|l?s_cRJZ~>A%Bii1@9kVmq6c->FgJ(f@b_sh}3id0000<MNUMnLSTZ( Cq1FQc diff --git a/interface/web/themes/default-304/icons/x16/plus_circle.png b/interface/web/themes/default-304/icons/x16/plus_circle.png deleted file mode 100644 index 21d5f83fc70e2127904fad6ed1d7976d0764e26e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006nNkl<ZILoDu zPiWI%7{))+=_*@O)7nKdbT-pX*i=NB2N}*;oiJK-in`&L;L#qvD~PZOUOadZ|KPy3 zR@^*HQPibihLzE2ZEI!pP?{bJ?KPp7@cO-3lXNoi;0M3(e$V?nPd)+w<bPQE%z6oV zzKxI=<%LfmabK7crN|AUhK4)zpqFMgDhN7XbxH@5!%C<yrA{c<^>GT$2fhp`t#pT; zzZC@8d4DRjdQ}@+y#}G5Q|mx&^w*^3n%kX1@1F%iYgCX%^H;Pp-^bzf$|VEynD>!y zm*Lcpi`wSM4hb`M!4proKQXABT)qH<OCbyMG;1fmj=|n{0}5vBf`?pWX!)Evus8xH zhu#lEwOWNzsRSKQd%^o?j{(lzuaBshu?rq-mFeI0!yf`ruh*eiEJ7}qgM2;@g+jr& zm&;|SR4Twd6QMKSuVcn8xbK#aC(r6VZ;nDXn}tj!vthVas{t1mfuGx_W5zDH$42@- z9aB9E-N3~}3p3oTaSN1rzls^VV8#{p#ze)J=mBm~w6LDtq#;{oc?C0e!JT%&an~*J ziC)c<q_0Sd2G+A1cf|d%OJinO2{U%V?KVPgwgp?J*%T-HHBXwBq-o%7gY+8i&$~3o zv@3;P%-98Zx*UX@-xOqSI3?#}ufobZRW9e(5u8!O9eNBeA?pfSC_JT)2uy$km|J9m zc}XUjB?FvM!yO^}DcdpAT)<G;DIFByAMgz?gW2CH75OugYopu%0000<MNUMnLSTaK CQ5qZo diff --git a/interface/web/themes/default-304/icons/x16/plus_circle_frame.png b/interface/web/themes/default-304/icons/x16/plus_circle_frame.png deleted file mode 100644 index 288625adf55c7fcd125ac7428be4bc9136e5a1c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 765 zcmV<Z0s{SsP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008SNkl<ZILmF2 z>r2yN6vrP58Ot|~kt->(C0j)@3vo1S(qL`r(p?L@1YHcQ(F-L|8Ac%@6w&RCpbbY! z*r-s{iqOft)^JnjX1dszL&W(9`0m^9JUNl*fe)PLobTuSF08V$l9|nBX0=+G&1PeE zyZwN};m`_P6}Ytx)moZShO*?4%XTdg2}5mTV`J0w^z{73#s=2b);Ls8PEO7@G&D3( zhO+-I5Lql1liTg?A)zbe!QF`mDEVH_p_+QB)GE5WyL%{04qs4FQ9+an15Z32hh^kC zbU$ox{Jw*#<UNi(R)>o-Rz8cxR?ykm=^=+)W-^&_oKB}Jk%*(>TNTRYs$g5Wjq-&W zWDeDqUpH}S_8QMDEiIwGzTQPHGa8M$(b3WHbN_2-$FHDlz8a-dW=`g0?zG^X?=qf^ zy+nV1f0$gR*XwKOwQ2_IU=RYuBL>cyuR5gDX(W?L<hYfPcI9(U4QO~a5cmmlnNFv3 z27^JUyd}^F9N600LL!mC;^HEr(WvmvF@8^_QdnPK#}RJ<&-(p-kju1M?fpO?fYa~Q zC>}Q;91de)Vd1~>=H@02em=>wKA#WdGL1%aBNz<9;jM*oq!^Mu`3@O*cTYB`<k_(? zKgeZjwc60v=Z&@xKgF?+1&~dhfMi_G$vio8Cvrb1(Khr1Znq~&E-NZ3I%Kg}+h=FP zIR93U+%Lip3*|!+lJC4W)kMzlah{o(3Bhc(w3EvU3k#V_r82g*KK9Pdtw7zSh2&i> zBojv=8Iu2nYN1E7U~m~O*CQ`E<T9B|#`5y=#0rI?y1Dt`r${7)j-eMYy|H3{o0LN} z^&*i~P=>PPkV|Kez&?>kbXY2t)@n2tUiJ14#Fm%S*bVh)Mj6VIv+c6I0#X5mz}c*< vES*>^uFKBOZV~9%riFSmql|!Z+u8dE-OUcmNdhMF00000NkvXXu0mjfgdcE^ diff --git a/interface/web/themes/default-304/icons/x16/plus_shield.png b/interface/web/themes/default-304/icons/x16/plus_shield.png deleted file mode 100644 index f703e928baa807a9c60389e140bb46c4964b35e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmV;c0#yBpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007VNkl<ZILmF1 zT}YE*6vxl}Xq8iYw|BZhnZ33|%xIVr6&ihwl$aMStaedGUeu*^7xV!M6?798m{^Kh zriLM`qRhImts<vxV+otA@e+%zE(Bp-=;=9+d-q!Tzz@!I&iVa$9zaBZUU8WoMxPO& zpYhCC${0&g%6l~H5!3tJ{V#xrh<bP`j_jR0_LHER^^EEHDgh&m+ibXnv7Oa}732G( zr=l0}<o64>(|tf@y%&5&JG9FjHK5zzuA6brW%rpT*7TXZRiA7>9N}iPc^f&$L+7!| zV~er5H@nv~ad6r(M~)iMsULUDHZL}OJB#+<87|d)w4-vUKK%6r*87}TH+>rG{mw;l z)PRS=TiaCQ!tVD+aV5(6w_oG2FOZ`KJP-zJKR3)*zBz;nJ6yFGkH;|@jiRx08yY&c za;UZpSI;wNKn=K;f4};}k>4aHlSzz3A{Yn+Fc=JCC=}v%S(Y&ti=ogZp}D{87jxRw zfV+8@EyKIy^4I&&@Asq6=UY`yBoZhNSa3tvW|=vc)POsAw!HR@!QxRX3QwdoioCK{ z;3`FJn;0ZV4Y;Yx*R<xki^r@<{kswrMkP-A*{M6Be<>xQRp%y04Y;8LxSn%W*I^Eu zzLcThkvPh;mAl?kg4%X5OuOW$0oQT>uB<mei}sc7u}L;gT9)+F>?JN~nJI=>T3Yu= zlxc_WGDi)dQ<MQ<&nkkZ%<jyVwLaZYVM3T;B7<t`(TwlVF2G*_)M5XC0w~mM0;{G8 z92%GQR_-i8HS3+@Gl0U>ZpO-htkj^KQOU`LJz$3+Xn^OuR{8)H3==uz{sFu2*<6}c RSMC4+002ovPDHLkV1nb+Ny`8L diff --git a/interface/web/themes/default-304/icons/x16/plus_small.png b/interface/web/themes/default-304/icons/x16/plus_small.png deleted file mode 100644 index da116dcc3d175f7b5edffee92fd32d8075b46c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vproLLo7}w|M>sko>_H9qJ-1| zgYb^V#8wXG!(JC>I@GZFH2-iYe8d}}apu4VmnS}_c3=9hAazFlR)eLJabwr{hJqKb zxBNFS^O$47yo_s3VU64udD-S8oyH5M=c_sM-<K4)R+;i!{uo=QaJmD(JhL;qKC`p& zdC8T(Z~b>PnZYljey_o)jIAwZ+f1IBYtj#xboj4fT<kfsgolCc@amPOhvjYqoyp+o L>gTe~DWM4f3Oi4S diff --git a/interface/web/themes/default-304/icons/x16/plus_small_circle.png b/interface/web/themes/default-304/icons/x16/plus_small_circle.png deleted file mode 100644 index bcf7272cf1b067ceca8b1af3b511d8a0ee1b3211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`M?GB}Lo7}w|M>sko>_H9qJ-3e z4K6K>iAz_A3+OXHS{!hTTg7h<W4G&`AJ?>FKkSqIEP3Mp`%2|s#`mp`aw`-*;+dhn z<;+i~7wNYb*D3t{|8?8V|K>Mde~|>~3TEwVGMQ&v{q6r!@9F>U?<#%$f3bW2Kj)*J z1`FErXTI>d`QGXEl7q8auX+7_9<TOK7NkknCQhf8Nt}i6L_OQhGvyBNjEnXEvre!m zWHb3}VDMy9rD4h@J)p}Hq>iw6^-r1NQO?Y;e!-EP8TX{?fgWP;boFyt=akR{01~rq A#Q*>R diff --git a/interface/web/themes/default-304/icons/x16/printer.png b/interface/web/themes/default-304/icons/x16/printer.png deleted file mode 100644 index da4d0ec14d2d60469e7882e487098288e274901e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007DNkl<ZILnQa zUr1A77>7Ta7hP0>bd?u+Q5U1DIWw4p9M0Lo32PI!a7?_|nV^)^)|wj)hHMHY44fbg z1r`4wsMKOO+%OUqy0b16B+^YrkcB3QLw|kmsmauo-otYa=X}raeb09|?B)14%i)`t z&~a?%aML?F%G|@lCt&n258+2Pi}c<eHg<RMb!SK9{mKexjdSZvgBL?X`3OJv_p!0P zjnzyBpSQN~DV@f<#YIrjdRsVL($v+(2*KlF%wRAuTSo_T3=9zVor42><5TmS3`e8K z+_6~NIjp|9S<H$jqtVDLg23AQ`|ZDYgYSF`r<>55(00fnmom8qm-tORM<^&Lc;#?7 za1rE?OBu>Cy<UIa?RNVze3IR6hu`mq*Xuol$K!#|=M$Y&Dg~Fz<)bXCtE-cSLZQL6 zwKbSbCODl=*ladftybvu4^dsMMrEZE6%}`()jklN+1Vr?)Hz65R$E(JH90w%TwY#= zTCL_`0UC`KN@W!f-aCO>eP48DX5#4S2`4GbR4SEeX=!Oakw`!$lcAxZkxRONqS4fg zj*TB<W6^cWGKE6X7K_C&GBSeF(oz_WP0;BcoeMdUNCZ<;Q=lx9%jJ&w`45<$j-j>n zF}l0M2nKr*2!!+KJEo<j9r5@_5y~>DRO+6aTi_pN0cNxLzsNP9EGsN5d{R_Y)JaGr zl3<$uFx7!HUcX7B_w76sPtCa9=!UYT4_`JnK~B!6EaP>RbAu?Usd<J|b$E0nl07^` zmS4%q`G2#2>T+>0yH;LqzEW29{36I9H&?#_5uO(JULT!000000NkvXXu0mjfx-T}v diff --git a/interface/web/themes/default-304/icons/x16/printer__arrow.png b/interface/web/themes/default-304/icons/x16/printer__arrow.png deleted file mode 100644 index 7c9e8ea1f96e438a018b60fa174ec9359c091b2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmV<50wDc~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007}Nkl<ZILm#~ zZAep57zgk}iUnzs1VIM+!9EOvn3{qvayd0?TP$a6zA*8_?g%9XXLD{i5Ze^YG8`y{ zn%Yzh6;p<xve0y23bP2MMTyrW$U+lD(SPUMvV84<--Ub6^MB4gmrKezI>;7VXQzVF zA0Wc&auIWD>kfoH+=lzUz7Bq61+&Y`_`I|vcri5vwnm-VGoYlUWjpT2>MCXz7csrC zfOqrrc+2w`7#{~Kww~{FhUHXN5{9!_2uVvzBl^-(Vr*<=3`=Wk_)2%(KBTq3|F84e z*@YBQ=H?1n;i6WnNjArk!iEOJPdeZmJ;LrG>`mBlSP$!EnXLhb=#7%%{Qdo_jYcE> zhxM>tmSI_<QmIau&1TyI-N|4upuD^sR;zUni^T$)%_j8B&CS7NGTB&`$mMcTZEbDS z%*+fl8V!nzi=o%+q0{N0Qe8)4q73oz62!#BA~p4j&@(tVLN}^tVp)=sl9JHX)ivVv zdLfg^XqZECaw;T}1RA`!gG_c==;`f!j+z?h2+I<wRH~VnnD7k`4?`>#BRxHfHYxTc zE$M{BF$&FxI<&X<`&gF5#l_{j-EOqCwIMt_9BOqA6pD;}N$!lHo(JU4H>h~x0n3u8 zs3@byGm4%bH}djsp{mLWhocU5yHk*2=|+P6r67WHA@ivZ_hx~s_a`CFEOQZ&NMs%w z8lxX(3|g&rk4w$(;rImPP60Pw|5G##L=^P#Bse&@AS5KDg7Ne7bMW+sNwo90+sC8s znFr^L^*GISAnay0V$1`GZT3O+3OK2I{N;FT#v?*2h&siDB_$PMS8Z%=3f4C^aKYln zSq~7D(J~o$t=jM>`@4>WhLU5^(b~Ys$lC`woNV$2C?9+bP(92#s;m}rzW^x@Ez#q_ Rqo4o)002ovPDHLkV1h|gT=oC} diff --git a/interface/web/themes/default-304/icons/x16/printer__exclamation.png b/interface/web/themes/default-304/icons/x16/printer__exclamation.png deleted file mode 100644 index 8b5cc29f005416c9272772a309cb5f0cf0191d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 782 zcmV+p1M&QcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008jNkl<ZILm#~ zdq`7J90%}IS_GAb^p_S2X*B!GM<LTv^RWycEGM`~6v=InW<oRF14k-OEsa%M8KI@- zBQ?`zqUbR4`9~IJ=0r@{Y(`pX1JU5yIRj-Tb>MRk_uk+4ch0$7lGo5cHmDjKV<^!- zcq;4ah^(e&3&I}S5r1D_huLby+{y}OmzQl`kBx!7qrA2?$gQrnC;qXzin*mFOj;}$ zpP$DEvl$(OgJ6Tb&(Lb!Q;LfTBUUH~iI0ybBDtJMD=Qhv^4c1{(pBx7)adn_P9!B| zQ6x4s)t0qg1Ofp`5{pSzMTO)SZLmm>@OKlo6LuU{!)jS(qrpyk6HAF59UX5;rBeJ4 zt6{Y)!?J|W=O2{GWGV|?Ng|OTKR+KzrE(jELIIUZWvelnOvuT}QL!wEj*jMNG@2@- z(TK#vL}X`YLnIO*IXM}8{&|Fjg(EO92$^X|@c6bX3giLk>N3!U3aeO_@OZqCrluyt z@bECg!^3G<jL66+1O<iAV6aU{@G0nuTw$Kk;bG}vw7t-yyj*KwSrQr=nm9BxG~L_V z3m+dJBqUs<jbgS)Pdf=iJ0HKT&(Pfxg#yc2)Yt2$S(b3Q+>Fl7PSn=c!o$M@0znF5 zVlHfoixWbp_Jn1om^M#<X;O)fy3=TV-VBx{etv$^zP>kTZS6#QdL~Lrv{0+>p{Ph} zqba?NzP5AtX;Od?f-j#W80m^e&nq2RmT)*6Sx-+t{V@Fy3WeL;DfGg`+hk0P@t}Vx z#n}50yc^-6yIFwa-W)k`c6Pq%;^I=sI5;?{&Gd%}D>9?3-Hb=A_wls)C_Yb~!SuMF zZ3k?g9`{G%11D1`ckfO5jO?de8TW{YYp@%meU~sZ8i0i<Z!8#(!Md1ho0*UOhrYGw zc2tp#vB%AgIQjbv_xbu>-*6@Uz(85v?pb@98@r~eipc=;q?FwK1M%iLD+wFD=>Px# M07*qoM6N<$f`CG9NdN!< diff --git a/interface/web/themes/default-304/icons/x16/printer__minus.png b/interface/web/themes/default-304/icons/x16/printer__minus.png deleted file mode 100644 index af5d449aec33a49c2b1d7e3dd4d22eb613493a08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007dNkl<ZILm#K zT}V@57{_1cgf1#^Btc%x3%wYWpfiIhq-@R%CoCsykso-mvkRq`&DPv#A>v0LhT$#@ z(NOUtL8XjgI586EwRMr;MdGm$WHFP(q5t0J)I^>79De6;&ing6&v_4rJscipQM@A~ z29EU@Qayu%%+=q207eh@A^eO)AZ~7AWn%+h!(oXJi;JK&PFhTZ2Yr3}5q@oLVP$<C zUqT^#UR%Q_QN+9Xc~H@Mt<R^dYHekN;C3@sT3X7i4GqlE(?i(8+uQigr|xgkKRLO_ z<??bnhm}-UOIhh;GMQMpATWDZm+d!i@PlvRa1(kH+73D7QYP9!#&1eEf?O_t>To!4 z66BCe8Ok!F(Rj|~a(P31lFepAV`C#c9#0Hzw;NusS8`TYSK)Lzy_99e#l@<Qj*i}? zr6rinX4Kc$!)mpnva%9J;|*xFI^^W!B0KvEii)mF&eYTlAJo)KSyotBm^V5)I<v5_ z0G&?9!vggBBIM@g@!-`1=yca4XJX<#+S`3Ilx6w(`Q~6SxEu%skdcvrva(xTG8~Cs zUm`hHehdvwE>o6iG@4q!-;aTT0i>j)z+|d|!Ep0f$m#Cx#@N^xD9hApwPSYnBgV)5 zsHwS)wl*JHS~}6(?Azn{MKxX}D<xhgoyY4mmBgdO#2{0tRIcgiIsRehV6j+^<gr45 zKNS@*Jc*ANSwcd>9fd;CM8w6#wTS$O(Kd^C_C`eK+gWJpET~Amgu6*fyhu-nov~1z zO!kei$YfKD*BQ<QLRnC74~J@JcUK~^vx5k~k`wj+XaCiy<Yaa>E6Z{^GxPpQkV9^? Z{sL!@66zGw71;m)002ovPDHLkV1h1xNr?ae diff --git a/interface/web/themes/default-304/icons/x16/printer__pencil.png b/interface/web/themes/default-304/icons/x16/printer__pencil.png deleted file mode 100644 index b1a382aaf58db3db55959197d91124e78343175b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmV;{0xA88P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007=Nkl<ZILm#K zT}YEr7{?DO5>X8#2(r+mj6q%ak%2B!_o^vQSkBr?(Rs0ViDHJcZEm$P@q_YWvSnUm zFvYY*LMTJgFfuo&i?S{p6eLb0$ifdM3jRCiwO3}V9{9a*p7Z}b=Nx#+t^R%@VjCDx zP;~#`n6<Bun0tD5Kv**b{>R1!0;{W-U0%l5r6qw^)6-ykl;dFoOfFX_{Li&D%q}is zW?=!J=I8M-5Ww)%6j-tSYNs={ytS1uc#DOQqM{<AYiJ;b?rw&DX?-2v=&7MYdWMF! zIbB*>OCg076@n{#R4NrI<#|%u)umsd1HRKI{5gc(ggu94Se7~BfL(M^NZ}(RBkvmw z2K*0}VOi!dmnfCW17@??wm?tP>-A`CY=qTn4Z~uwz-F@vnYp<+7>!07b4fu#fz)od zKlc0mP^;Cbudjzrr$bp;8I;Nkkjpuwr^}F<dIouU`9fx*;{o2q$Im{KNG_7x+}sSe z+x^n#^MT_yD)Y$6$%9OmLB(@B;JEXkd30Vkf?fyxQBm(nW@e_^>-ByfA0J0zVj_x* zOK4E>SF|PRbg&G;U=XI_E6Z0C5^j^Uw6toE$AjM9Uc|-4L8U5(LUB0^Udy55&S3=S zP0(t!a5x-bE=f*KHcU*s#^9g_RaG@;YjdKd#ewE#=QeG3E8()A6699n5xDyvVs!K^ zm`kKmsd;Q{5+fs%&}cMa)KtphY>E-&rn-alCRu{aU@nnJB-f&&qnj8J5fLo``oqYZ z189E{fa9qP?f16io2C=+y?Fwb5%bI?wDwUBF=Df`>kv}jVH>bAgXfR3@Wnrhjm=H4 zjF|uJZq@FX7_vVlMYA_4>4pex<5K>f4=2wa?G$?~!?I%i0#p7N-_dwwp#T5?07*qo IM6N<$f>h#Ip#T5? diff --git a/interface/web/themes/default-304/icons/x16/printer__plus.png b/interface/web/themes/default-304/icons/x16/printer__plus.png deleted file mode 100644 index 4608a84025ee3104ae1a9baf49f5eff565107d0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007#Nkl<ZILm#~ zZAep57zgl!uBbG%;U`BqB0mfb@*U?Shf_10FrBbPGLhQd2c@KDYi@NxL>-hgaG*g7 zQ+z>CsmU-@jKqyTh4mr9BJrveS!jYN`tO`uimyHJyKwJ${?EDRa>?V~Ub2Jl>(f%^ zV_b4}cN2SO=RSlz+=KhMxd~xy4Rfoj_`0$pdNVx@wnoJr8t~BT-HZFRzK*%&Wqev% z!pDULd=LZ-PfdXpTd(qXV#}MF2*WuXgp`z&5OZxUv9`A}mX(bSe51SW9n$IZ?Mf{x ztENa%MTM9ZFM7S6lyMxXZfmprrUQP^BODyU-h>^8^{`%+*%=T*Z;B{RB9T0?TCMmW z*28*PhGmIPr;E1R?feqm$zrjfuC5MFr}Gep!vUV>#h&^3dDv_=o@Gg4VWGn9c6ZFo z%)nqUpr)n<X0sV4lL<OqF>-P=$jnqBEiD}d1=q!%k&$t_QGEx?lKlMq?Ee1#@nA3r zjYdPm9P;uCpi*Vi;MILJnrmXu(9ml%H+#lemZ;TgLm&{C9UB`%VqzjnOK;L9?U7`B zJkC6ef#O{%dU|}bEK8J1WtHFWM^{%D<Z?Om`f_NsH;xqLzKC1PR>-|qFfcFxmL<u_ z$<~R9w-_Asqq6c2TrLk98(YxO;MtYnQbE?5AS(TCMw~ZYbguS%fG89S`{?K-{V<a- z8jVMiHeG;vvG|Y^E~!8wBO~uhrP6vPG&HnPpg&AbgMg<m1+=`HfbyOZQMOcs*DG-O zMFtY)vJmnpVo_uY8zHpLQZY<yZti^?sIBd7(dO0`lAdQF=1V*XANKxVhGqZODVdB! xq@)<blad}BM`DN$hTJ~=nN*!@B^eSi_Xi2D7CXNQ(;xr<002ovPDHLkV1jZ@Oy>Xq diff --git a/interface/web/themes/default-304/icons/x16/printer_empty.png b/interface/web/themes/default-304/icons/x16/printer_empty.png deleted file mode 100644 index f1a0095674818d22d5274e0a55df4eba6100723d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmV<J0TTX+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005BNkl<ZILpP8 z&r8B!9EV@hs|eDmlUI)-6qr!b&<qu(8)yV}2sJ3GgCe3ZkV=9GgzO}A5jqIgAsR_a zP^8gcAaqhh|B6rVci=Gk2_14ght22tYz)Q#u)o0mJP;0tnIuUXvMdKVi601#eQNaq z{s#+%Ldnr+gnqxT)9dwg27>{}A$M|Mil5MG!e}%er&1|=2RY<YLoE|UaXOpLD#PIr z$z&3RLIL@F{sXyO4vL~^4n0{WlToN;e!t&VDwWQ=-7X@L2-4{^;_*0Qu^2=#gry|` z^Ybpu&d$N-ThW}`+ZMmk{yDYG>-8?yYPD9U(}5reJWjyl@xkR<<l(|Q1YucouC5w5 zIVrcOWp1}S(r&k3o6RQdb~|KwjZ1+~@pyuo6X(ap#q}$-%;|J)tE!4>wF;}%3Q1Z= zAh7x+<WwpZ)a!Ln%N!0z>i+%#mzOHGwsvrIR7SCQio?V51ZO&%n|o+9UNop>Hk&Pb zclXF&%p;=F=&u+LP|M6_^RC5W*(VGJL-FS30jm1M2cLCu5^}~qwT%BvoEd^&*f5z) j2j4-?*w@;B{~F%_@lY+%B0Yq300000NkvXXu0mjfBc<S_ diff --git a/interface/web/themes/default-304/icons/x16/printer_small.png b/interface/web/themes/default-304/icons/x16/printer_small.png deleted file mode 100644 index 3f0a1a2c14b1a2917f375e6e7dba93f3684e214a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmV-N0l5B&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003FNkl<ZILl-B z|NlP&C75Aw84wZ@!cez-IYa%56~6T=SEj)+kPi|E$rCidJ2aF*J2W&6$p8QEKLmjI zAaP<0@B`v>78aJ?qN1YzFbv{@#6j|S4e;~x%Y6R)`Twx6u>W;+b^l9COaE6@Re|~U z@8ACqlE-U+o10til`B{N8yg${_x1JvZ((8m-_g+p%ufSCkUU-kY;A1|H*enjKQ}k` ze{*x^|N8oNpiA2Sr={imU$kh^e~>(01AsP_?cTlre`I7N2Hw5<49F#AcnwfcP>7e7 zmTq8XX70HB;KBd1w{QOk(I7rZ93+p|0H7iUK|w(VX(y)$aa-F`7zXjd;z0R9o|Ff~ Z006Wso$gaaPDlU%002ovPDHLkV1k0gm3aUF diff --git a/interface/web/themes/default-304/icons/x16/puzzle.png b/interface/web/themes/default-304/icons/x16/puzzle.png deleted file mode 100644 index 8c23fe16ebeb1b8f3d0680d3dbc7de4c212f7eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007TNkl<ZILm#L z-%C?r7{{N^cBW&tdCpv#gMQ3K4XTT6T|`;w)W9?&G6jF&3I`Eg)J1d|3JXMvii8nX zb7Gl=CZQ|qLdqa`Elz9HpzgY;t8=kG;OTizXHLmF@Zo)*=lwn(-W_%TZn*&Nt3@8T z0VX{~9(y9hEFsJ_vgUkUL8=1ak*7d9`s)&Q|G0pCKQAKJtIqx*NScxfgLG52Gk@Z1 z6dSW0d9IEAIFWMyN5G7+$Q>a>`}Y{~YSi549Ou^&BnYvZ%4dOG^QSIUru?~8{X|hP zQVuYx77(Yt^<&HD9z2%mMjmVs?Re;28#aCDz_u@a*qZG{&KY?_aGSV8l7zyDqaQnQ z|6=nB2i~+`_+_1LA983+_{9;Ob4GqeP>_t2i@NtGG5o4=g@bQf(J}1Iz*UG5AtC{B zIR?XaLl7a-CcGDX-M#aN(f@QGddGL;_NgG!kRaeM;JS0Rarra`7wYr07s|bDxtf_U zs$(^%Bz*=|4+AJ)D_whoL2C@+B_tTyC~B9EV`!nlxN7iqgx<Cf-B0{jIlaqZ)AUYM zQ(JUPT-F#@vRb#?DA#C~1o5(27VLRmo2R{yZ>l+Uz6RZ+TXng=Bm?arto^o(>#kRK z&-+oGqnpk7P#Sh=lqbQUBLV}Cw85Xfs9Fl3<&3P+aEt(6rKnX?7U?IMNJCDIvUFH) z1E@3UDFwJ<7ZuApPLC6$@xK;!Wn@9s?8g%hH0H7&w68vRU!#P<fSs#|oY}RQo zVG0slbH9Le*{&IRdgu=TULrsQp-GyM&f7EwdZicvycT)|HndtNDIfX`O3Oo7!sX^% P00000NkvXXu0mjfRp2x9 diff --git a/interface/web/themes/default-304/icons/x16/puzzle__arrow.png b/interface/web/themes/default-304/icons/x16/puzzle__arrow.png deleted file mode 100644 index 2e6fe76262d44c1130bd120c3566736cd66df941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008zNkl<ZILl?z zYe-XZ6aet!b(`9BbDPUo^iZP&71|aSrKVFqSY{S#;4&XL=m|ZP3X0IukYNuaxT%>B zG&S=<sbzf-GYI}#*D-1z%!)Gmv=8Fv)A?UFBO3fT|MS1+9L_EqB-PKsjs_Q`G%rGG z%P%plb%{~5?Yh4J&}#(fGg`?AVcuw!?|pm&ERAlUCMNzw<T1JFi!D;D0(fE^FZ+ES zZ9mRn>C!pmIe|5aH$RFrgmLQQeXMw39`Afd<T*XFL3h}Aw(IEfq0eQQ<tkd{IRWS* zod$rEu5XLCz9N=85eq;3b<vF&dwGgck(IE5c{}nb=N;7en6&8uB2SNr5hq_Tj&G3M zK9Bjch+!ARm359I3slI$hvVHjbH%9Zk8|_fOOyvtBN*+&V5oQoA+{ctFp0RK`XQRS zt8l;5hP*M86=3SSJj|Xg!n{wVnCmJ*Xw@?U5PYp1)K^PES#bqa`7NTtc4H->?JVw| z%vrN%>Hu0^rF()J)DmZTxz7Wlju8O3rv+$Q<yUJ0co53c-ycTH>#Q|<-{zv)p>e`> zuoE*8p-yQBN02<gO2)nTnela##?mluU?)a*CE%8R6H*f+@E>T@jAYFeqG=*yna)i2 zXtO(Z$b$NgSk$%0$Rc{;QCT1O?*_FBJJbcxfQAs3GJO!u6Pfa=rZ-l4+c9W(8i(P7 z+hywqx1qjsqsPBaDRJ8ND3AZ`P>FhJKwa<%ACUMwWtq-Qc~|e&kHw;)b(2R~8Q_Eh zV2VnWQ`;QvF^t8bev~#FjX}Yom8hNu)T*seqaK&7o>|0nJo=X_C2F=4;87@3NV-Y- zN?t;PMxt7Jn4tnl_c|5`a4Cp|&1^-XLcs@^y#vfV*D-4L5^91aDCX|~fVx0K=$`>m za6-v+t{4m+iu6#U=p7*PoZtHh)j^V6PapabKs1RbCdd}Lg;OetgA&0`fJfh*k6*5$ cm+H-b0MBWKQ8xX%Q~&?~07*qoM6N<$g5(}^?EnA( diff --git a/interface/web/themes/default-304/icons/x16/puzzle__exclamation.png b/interface/web/themes/default-304/icons/x16/puzzle__exclamation.png deleted file mode 100644 index f6de645498e674ed901fc2e04b3150f952e25f82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmV-21I_%2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008{Nkl<ZILl?z zZ%9*76aet^-uC>{Y->}~G%B5u20=JK^v^Jt7M0nTWl)J$t|IziP!#k*v=&WE0;xt> zsnN7q>M}L$FKYJZ8obu3S%Mz~6_P3Hx8QW{^9_m~{5bdAch2Fy3lG>60sc}%JZc1J ziUoKWYb9R7)M!=qLq2+ikch!{scv?%cAQ6^Ln9S5#?oWcX6C$VU}6nU=h&l_kF z6z^JvykWNe!|yo{{`{Epf#*j&I)Dc;UAg{!Gkd-lV~)RIhUWy}K52*s=<^7i_U$9F zc6#jcl+9+tsnN12o*!~A&{C0=Fx#*lc~tUxYP?78ngCw81$f;kSml>%2c}2QBLLvo z_haa8H_xtX&<{}|i)%{@?D)JNjh>VM&s8pEKzF?$Jijm89Qk_i*EiobeA<2*eR3AQ zV_8_;m5Mv5aVxXo=C}En`>6o)zZGGgzYw9;#0Wsg9btX%<Jf_bKsFBhEy@Xa9QJ2m zgEtXv-5YRY?=H;f-V%&->SQkCSym8SMn(YIT*B?4_vVR-AFFX<C>7@>&nb~(?~}01 zy%aa~<)N-h?}IY16AN*HL$X6vBtYpEsrh21CdgfPieJhrHM7neCUn#o@WQo)c(lfd zNuG41CPv^ta8>Wk8QhEMJ=rs~X2v@!0_N5XG}W8YSeLAbcc-CrDdOJ~RA}ws2&Vzg zg)FmwH(GkODo0I!VWrzn#^~l0jB80%EN)qariNufjYE<-LtR2pQ@u#0UK-$t^6~*| z+B0Wp&7^ClfT`1r(Y4EiQc1WEY{0Z7VLrpH#9(x13Yt3TWF5&URvBcfrvVi@E0pWH z6!U8q-=Bt>Ly}C*b^<(##ah|;hCWFpI`uNu(#z~HfGw(n5ddc+S<K){6c20p0E;@n z!gC{|W|deTCBuGx2LRLsdP08&B*1Zr8U4u^)w(1|jV^V7i|2elL_8BIEA{jkNFqri w>5wZv5Kn~392AOn0z8KHLWDeR6V+S(05Cw3X$$)CW&i*H07*qoM6N<$f_<QTXaE2J diff --git a/interface/web/themes/default-304/icons/x16/puzzle__minus.png b/interface/web/themes/default-304/icons/x16/puzzle__minus.png deleted file mode 100644 index 07d7752c0a9429275c3687dba9cfafb863134892..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007;Nkl<ZILmd@ zUr1A76aetk-LAT3oA=J8Iq1)}ScB?eTMyAJb!uRmVJ#(fXyKqDs2(bM3XKIKMMcpF zEB~OGg*L*itOqHB;Ip``QG<Hxq4428jOg)nzU!Tk)ZoYWowIY!zVB{>aR7Mq58<#G zV8Tv;Jwy_O>1#;K=lyR0&%;AIm+Jm`7CXM5!mb}@kjHv{$rwPKirGp$-*Rv@6_lpx zGi|v8U%Ig_)0*Qk0T?ACHh?=+{5ulCm3ZEB(aMWLgoVFFk*``jOpOo7eHq{~ebOZ= z&O2>4ES_)}ezgP(7paJGWlz1?hL7ziO}exB9EocKs0q&Nj(9|XL75%;+JlXsI&ojR z19@XD3*+v$%~=1w6`MbIVN)i8yp8}=H55Tm2XTpGdq1?{&bfwVyIwb9;6=4+>NhJ~ z;CYqG>$G~fLHE3=yHx^kyM$H0Yr(+Fx@EyPO=uplr0KX(;wN#4iBT9ZX#+werQ>_X zkGnm&2i;G0pks6^ZkqHVH8JhJE5TJuqHf_Z`eti#v}e-2jak=p0Oes9N<&Uf`M4Lw zD@A{wpwAeESRoDQU&AWr_oIKdRy(TiRfwLp6K#*(ST?mqvv$gZ^2mDC5EB*7I#i(= zu9Ya%O9NuX2|i%kv&tOpnRs2!%1Ia61~;f;PhlFuz>GZwY3p5wYD>CNo}rV?I8hj| zDpXGc`phBdHK#O7dsaU0MZ-~1q2?$7z6#w&MVg~4>4biZLbdc}O#wi)u9LpX3no^& zuo;D8Mn1r=5AgF?V$`e?dW#ik=g$Cuy1+u{p8*wcTx3$liN(|FRBDXt1L8d9`8?sA zNzv-*MLz&=5HImTy)Y)6EKoRz2vGuj&FAt~H5n(U-v0-#PgK52{>C5x0000<MNUMn GLSTa7xKm*O diff --git a/interface/web/themes/default-304/icons/x16/puzzle__pencil.png b/interface/web/themes/default-304/icons/x16/puzzle__pencil.png deleted file mode 100644 index 19aa952fb87ed1cb7aa66014f9d71443025101f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008zNkl<ZILl?z zYe-XJ7zgm@95>zA+}X}FO{2?P)R00pKNw|RrUO@Mfy=-WH5^4Zl8Ax~(=;+uN-S2H z>BKSvFXSbqKuRHa4NfAppgu*^r%?uee0tvFw4x6`-rMv1_wH~G%nCyGXF(Y3OikV4 z^Z8&ZC_s6i0iZvA*^_uT86hk(x>wJ*VL_P2x;i|akx^SxQex);96XL+F;V%w1`mBX zi51_@AYcD=2G9lI@gya+E-fvg*Xuno*&}4}0CP|V=!@efJPQXG_kF0u{Dsm*zE<~p zNze*#9{^-o-fpwmYL~uVz@a<BC=W4rQ$UZE7r6=Zeexq8)ivLLNV??Z07;UdFjtq; zaY=Z|LmKZ!|8RDjLR7@KgkeX>`>qTv1NPND5>Nw*ygD$ZNw6nd2iIyK?`)&?Cl6`w zUx!EE6d-TRV?NwHTa2E!rC9vF0t*+)5jtf?=;v=q0PPakt{WlmiXI$ou^%tDCm;{G z(VKt;<5{@#)m}`W%n9q84GNe3JUa{l3nPC5R2^o3+h$fenuQlzWyD`0tm?4iuGfWV zXfe%09r%fh1fWUlhZemW;3g9he9riFGasbk{!=ni1#TK}A~i7r|AAK1NdDXbbWY_i z(wtcyYz(CgrK8-Ff|hQZD)Es6wO4ij-k?F_ho%?`XpUu>Gezi{%2TiEeBq|2ZA0r* zJ0=WnRjnD^f^u+uII2mja8h?tII7L8P%i~E8Ao`)wr81(G-ukIa!4LeL2KuRu(mp8 z9(=$w)zS0Pz2vZU+>Y`X-E7Q;VvD3uJq0uv+)!_rP%Y0{;*0~Ms<a9<`w8$-tkfu$ zY5GeMVzWu1S~|>)2FQsxtOGc&XK{0zQ9PpI0j@}Zi?1z=nj^$|qXK38830fhm<W9t zkOarH%(7rZ<IvhLH3lL90lwz@E5vhpMXl#=GD#*5;slS_CmxShI4BqW1o*hJw?Zh? c^i#d-H(>%?&f-QDg8%>k07*qoM6N<$g7B$g{Qv*} diff --git a/interface/web/themes/default-304/icons/x16/puzzle__plus.png b/interface/web/themes/default-304/icons/x16/puzzle__plus.png deleted file mode 100644 index 8bf14aef5e736c61ec4b32f530cbbc3ea665d715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmV<S0tx+zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008LNkl<ZILl>| zZAepL6vt23-Ra!iyql&e^fDJUvOa9<LzI<H4NNnnrQi!%If(E>K@mj|3NvJ-y~3r; ze4#Q6O+r`J2PuQ#vAC^KgCdBaV$ePeKcCKXcdt-g_;Jqp-*f()`|w<VK|8?xJb>|h znP6(<^_Z#wJjnMG(*)C^U)6O~gJB0BU`KwRL>|>zHO}WmI)0tNmhWBI{_{BUTGP|O zExSz3j1x!%QO{MK8{N%|RL7c9`#*JHRje_^Ya+ejD7}a4xvcz01O5xwVaUOo`~(Yp zA#;jqJwo~&Vu-eci&h!JR>mp)R))}TOTd6_39jWPsEKh39=qc;@0(GYaK&|vkkbZX zE5L;ufF27g`nn0BH)rX<=T5Bs(29GbEyxEeSpavwuE*-PjadJ&9qVFk`lph?fDPb` z382d;!%>mJx$MNAcTKo$zGj*2FKf~FtUPJzGb<e5)7?psB}S0J6*9O=^jZMUW&_-y zGkMd1zUNiT?08j&=CCyi=OIXV2^m6S5W*(az)wUpc+U8`TV{8m>(N#$9xKIl6CR`? zM!<i-CF^w6;z9JxRir3q((SeJk|`hBM@mo{cB&NKbEDXs_4funh9HD8$)GQXl`ZT; z?_8z2s^^8DPTPr&hb}Cb+^Dj0as%2&S0^(<qQbEa7bP?La}}B;gOFvK8*F}3mZF@A zm+f);YzaCB*CfTx%qRqa89I$o+s)#nW7dWC8QN^di9*<>P(K;;nElXgj;N$_R=D8C zj6<SA!$AUg6gmuwG*6$TA@o@l>ZO+zMu2jS)+~V2CYHCj9)-gOZs64nyu6ke4QmM9 z76qF58351}&}{<#XB6?fAjO<$nOc>kL0L19dChel;gm^H`{|)e0L6rx@IbY2S2$)= oIM5~p3E)xJbXL?E#;M=?2MbJKs#Du#WdHyG07*qoM6N<$f@y(k3jhEB diff --git a/interface/web/themes/default-304/icons/x16/puzzle_disable.png b/interface/web/themes/default-304/icons/x16/puzzle_disable.png deleted file mode 100644 index d39db2e72f3e66e9f5782cf67f21610d038c6a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006RNkl<ZILmdD z+iDt77=`yuX`!@tp&%_Sme51eXfsI<6sja@X^W;1ltwJh2+oBdC@SKGA}A^%-ULMO zfQK9L0lX3)z$efPAHb)uYsofD6T0E!Kg{~q{%2r>kjLZkh*qm5I-QOfkH<#L;0ow6 znvKte&1TyU?w~=x-!~crHk-{4aK^~`AA?*jcgLXH?QTs*qY(+L*Xs)mA2YIMe>fb9 z!C>%z1JdjDC^AE=!@$nSntkf1zhlsDx7~QC8<|WdDhy5$fA4zK-58WgCDCX!cJQ`y z@Wp@v4!}q74Y;VIeru4==S8tt6!m(Y(BKnzZQx+BSo~}@n<0Yyf;#GN3`n6+;5IZk z1^Wh$udlDwN~NMyt5s9ETy_HmwGi2C)(n#Xk-08cHXBgb=ViAMsZ{C;g3qhf>I}J# z75~V!pBp&DcELm<p~T~HQ!<%!0|m7Z(P)%6z5`EX+?V+a@J99y=kvKMlgVfV`S)}> ztzlLOUDvt6$#S{;id?VNYL}>=&1SQ6ltHi8%XSd86aBZ~6*!8;VjB8FXqskLRW(3l z&W%2VLLm*q3J{E}<#tcFStJsHR29N%wF-;Hvc>6i3cue^gA<sk7&J)(6KnKef<0~# z4u@5T!?FDl?}7W^A$a8T`DpNdI-NQ&=#~a<*7D<Wiz6CRPlE^GG1vnpyWM`N%42*5 g_11B@T)(LQ3k-AySQe>C?*IS*07*qoM6N<$f(l?0w*UYD diff --git a/interface/web/themes/default-304/icons/x16/question.png b/interface/web/themes/default-304/icons/x16/question.png deleted file mode 100644 index 2a55b01d538d8a0a0f6141ddade9c1c480899c15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007GNkl<ZI8UXJ zT}V@57{`yBj!3=BS`sBW9WKR<oLM$C3$zI)*|aSv=RUiLOpz9bP*AzN3oJ-i7ZE~Y zg&%chTdhSbYp{fnxn()*d$?#HcN<Udb80&)iY|KLcX-b8{{O!NhXMfVe_$Tm(n*S2 zHcfHMX@Zr{70+l1R|)rig0q&n!whCg=TCyh+$#IzF5`mFFc=E=T#m-OhoW(vc_mz{ z_xkV-Gk+5_=G8cyhKnl^{Xh_oocZ_*x(h+*JohECM)t^w+1~^c{9GwLr8)mOqB<Rb z_ET?R%=Q)1&)MNmpzK?ML;cH<oQnHX*kJ{tJG!0fIe(k!H8gk4Gjy5fVbJml#vi<6 z1fz72*|+xkU~BuVA3G@lM>u9_GcAT2j(Q+Tz4ke5Q#zn`zzJ@*8%$;!2pYygD8CC* z<>N4RSV7UKRoS-~-=lX!on{s!3Ofj!ra{$X2ajhCZr*l5@!kn2mQOKA4%p+^VFiUZ ztcsHhiR#18pme_jL@f^){C+<}N%Kr<hlmx<1a??K!S!qPx|b2L@&%M1WGUHaV@Tg2 zqL!x-?6883!^WZp`{H(u52PL56roUvA$^DB%jh@QVFeqmtY5WxgsxKiqSeL^u*2}4 zAt^|{BVv^|$}1S5vBL`ThbRvJk~~{raaDE(VztM=K@CBo@-X0xRCFxGRu@`an8i*? zfG2||pfa-6O}sp_ZIg@+RH~Pwbths81ZUjg9cD0#CtZ+9SV!1G{^)Khv$dbfI(Cc7 z>VEPAGUE>KD5{LW$4<I{L&zblCFK7D{19e2*!>O(lM^5oLkds;0000<MNUMnLSTZ? CcP$bC diff --git a/interface/web/themes/default-304/icons/x16/question_frame.png b/interface/web/themes/default-304/icons/x16/question_frame.png deleted file mode 100644 index d15b7ecc78989b6bed1a8b2f321d1072fa4ca203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1LgdQP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008vNkl<ZILlp* z?MqW(7{(tG8Roa7B<O=5WJYh=G!`poj6}(ydvU(ZmlPEoOruRfWmy)8T2xRPez4&p zDKQPDKrA<%OwH+WW}7%;qT&a$LHP$<o%_i|I`D)0+}HKH&tW+^IZUI`Fr7}v^m;wZ z&CNY-Fc_2~c_J12(5$44I@BeHTz2SyL=2TytF>WfW@c$;X9wHc+Z>ub9?z1+Vrifb zb^kvg(Q377yWQSP!mIZI)IVB8mU*5-vt!7Qt*uS;^z`&nmmGc|J3E_569Y#m6hdj^ z915C(sC^nnUDqD0oqI4p{)xPXRi3S_1<~Ez?I4F-rdF#@n9XL}`g#b)`Wciz*g$p1 zE(V>yark-i_7{qq|8`bZR$wxjY~-@c%uJQj>0It~%tBZ94L4ghp|Pysc1HjYUoK;C zY>OXwGr9|-ErhHZAD;J4V|aLYnOv5ho?cA9Rb_Lb^j-)VCV``>`~rEQ3-xW2@Or&y zX#b4(j6o>Nrg+!uoddZ{rBay%LBN%wPbj+c9oH&mAv28QwE82Ab>k2OA6^emLwaKb z30WVIobTjax7!VJnNq2&r7y_yN0DO*;DTWa=k#t)Fc{>V(TpGLWCb4Hb-7$1mnjsA zazR)`iFFjJ>aUO$`wlp(b#e~xWX3t(otSWgTqc*xGy3}n0v#`0NGX^^s%Zn4E7v*U zaG3M&oj9*|qOH>jyWJ5Wm!+hnoYZP{tqTjwxL!7bOC<u*ZiSIr6FxXVGjY+lz&o?E zi_mDat>m(#q$HM@n3&nze1E{_3*u`20OGU8Ag|m&QsF#@X4+9E2&=H!S_a4=m&L}$ zvbeaoD5+Fh)Yy1;$nW1mdzS~<mG5vYxsyXP?fm{tP=~tYkW0@Ik)slc<Wx*dOo>8~ z`mC>SWNmfz2M$9!%BVwKa`s&oArd1Z6_G_oMyjHsqN<{!qnkw9_GzLWWz-Q#*molS Y0I8xG%UKpoRsaA107*qoM6N<$g6)TNX8-^I diff --git a/interface/web/themes/default-304/icons/x16/question_shield.png b/interface/web/themes/default-304/icons/x16/question_shield.png deleted file mode 100644 index 71f274c9f3db1354f2df6fe1f06ad28d2e4751e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007-Nkl<ZILl>` zT}YE*6vv-;E2<Th5!1{ep=eI0`2{K2RtUC|5=AnR%vNgokz{2^1QNL{6fy&Egkj3O zP*ZbrerCHVW2MW$k45U#@Ppn$FEkKO&w1ST4t(Ip&U?=P|GOCh03ucx9dr_LDE$rV zCgKx4{*-nH{%jZO$T;%YCEEl{(&ZrzGwG8a%-9i}>F%)WzFlC@Q_ASkml8y0o$}_` zWbx}&xLdOVXL81W&|Tx!4KtWE=mkMYN3TY^#7iQK=Dm?!=5qy;(|2C-kXAa)$gBJf z3HcK<l1QU@56z@Kn&q)02;^@~Mb&>ca-T0kPQ?ObJe~%<X&KyKxo#1%p3G5ZLGyHe zgLb-I0@3m2_RKQ-x;oDaP71W6@S^TJwDim}L4#qzbxXcKxsDw{5YY4{wZyg>pKSpr z%B)Wioi+f)+7Do{Sm0qrANVJ<K%lw}PNthzXs2Ef_%&3iZ+~0DqDnIa;i>%)c)<Ya z#r-fmY=y?wj}V~lfPnLz40&Sj675t9f@8X(h!pdb>V^eEk_SPaG{CUgY>c3bJ+7T1 zWe{Y_&MDd{6a>C?@t#r5Bg*Vi2)q2*MbM=_hWjom;|m-JZ5qLjAn>W(FZQW@PyhS1 z=xgH;l{v=Xd7k0?M#8U*tYH>Ag220mh>pA}JsQ(7p)B|XF*$P#r@;9gn>!EE=(Y*W zVn+~oRTGi4>JaBq{?1R;ZC4fYo65q!5T5>(ahlF?`TVADoXL(E%woqSz{l<MBi!z* zGHzFiP9l9~4Ne?dK6~#UAUI2;6;`~l49((m7l<hPC{n`t$Ov~Ti*UD$-irF42+nkO zo!toWbYw;Df*p=SFeP$}gRz8YS}3hsvvW@r6ff*x_df<E^T;k`45|PC002ovPDHLk FV1nf`R^<Qy diff --git a/interface/web/themes/default-304/icons/x16/question_small.png b/interface/web/themes/default-304/icons/x16/question_small.png deleted file mode 100644 index dbb8aa523e506079344445eae941eaeb0222508f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`=RI8<Lo7}w|M>sko>_H9qJ-3e zHM^%a-b`4oEpVRc(c6GqqAGq%7^7p3zU7y(tbhDET;czJO9kDm?f*GE=2$SBTtC~p zs`kf0m7MeSvio)a&$q4qc3<`H9rg(pfoujVb#99Wl)UX<_kZ30>3Xrh;;-&~zrXOs zKYNA3M?4eeo8MRZ^u>MhhRy$jSAG9y&SCW{{`T_|?h`Bu**yG<p9jVkT(bCa>3I43 zdw<Qj_WYO_o%+ucEa{t?@Fe?7!jpBeJV)9Om`vaolGoIn_zvi=PXFV(LTe*sfnH<q MboFyt=akR{0OS63W&i*H diff --git a/interface/web/themes/default-304/icons/x16/receipt.png b/interface/web/themes/default-304/icons/x16/receipt.png deleted file mode 100644 index 5c628d7769e04c070fe414811621682e2a2b2321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmV;70dxL|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003~Nkl<ZILnoi zy-EW?6h_YsDU4~9txThxPY}TeNT;Q#w$}#;f>^{xpTX4Hq}WOyLQ<zmCxS={kwFx9 zXXjoEHGk}`dYg~=JDj;QrZ*S>V2s%ZHh^1TuOgpR^#<Uq)4_@eB0>nE**iGsk4B@t zsth4Cf6f4yldCJf>+n2|FIAPYGRAOveSHM<0WRX0TAt_Aby1y?i^^I{p66zMu9ka0 z9f&HS!T?p~_XE`Yl0m32Fvj4Q4g8E~f+~3k<p68(-Y)^NY!Oh^166#Ml>+$f3i1V5 z>_PSqgPJPYvcWt+L@IkABGrKK%N0VQL7M*g8AX*WO&0)mm?SvoaL!o)>Wv0LwJ-&6 z&RORi!z7te>QTgIyWO3nsjjtJ#}BWsg*i!6-E6nJ^(gxOn2G@+pt-uey=xnd^^g1e q;mX$5PFc#^+spfSd<Q(L>hmXp-Wk^=+=L?l0000<MNUMnLSTX&4zgMR diff --git a/interface/web/themes/default-304/icons/x16/receipt_arrow.png b/interface/web/themes/default-304/icons/x16/receipt_arrow.png deleted file mode 100644 index d165747871866152574d196c87b3f84d35d42d82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005mNkl<ZILnoj zF=$g!6o$Y1@<d}&P=a6sYORGh*u^$N_NI%~K`2zrtd1E(k%FCsjyl<P5HS(yP#lyx z3q_$=9L!=sD50W)8EPI$-h21n<B+D-*gWyT;pd)v@5g`6<*K>mWdM{?mw-Xw6)+W{ zUq$34JK<PsvDRXYNzYABFIFm*sVFtZq`P;lwWzzLQWtjPexa}+BJ>NT6tm^>O<=KG zbG6pH`&I;NZC`-nIB2ca-kPh!aCc!vFcA(AVefeWH|%j>A{;2C2zwobzlq9-ppEGd za2&!g>;VM9pMa<th!6%rUjYAV!FB-r95|2G8twbI!GAbddgrlq?CKrk#J7WXyWI2} zI6)Awlge6)Hl}ZW`qpCR;^`AXyImBK0`Rwk-WDFMZS(m@XV712HROQL%;n*+$Im_% z#ai6J_amRNN}OE&4Alm><7Wwhw{@7jGCKC+$y(7}Us)kDG12)KKs=Ga^E{HtB%bGS zvRP-fR3#RR(QLI~WQ6qSFy)7<8_IDW01!{5IF--e`tJL3B%8fmYc%%N-0W*P_eNx( z@ceyZ@?IgCy@mo(K>BbdlXDV@qwUSj^+Q8L7xvTG`1N@?IC$J_Z7i4%PnUrDFMS(J U5cwPrcmMzZ07*qoM6N<$f=aag0RR91 diff --git a/interface/web/themes/default-304/icons/x16/receipt_exclamation.png b/interface/web/themes/default-304/icons/x16/receipt_exclamation.png deleted file mode 100644 index c96861c968bf919eb118fb7d283f6c1876956273..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006LNkl<ZILm#J zJxo(k7>1v7xVN;u1r>t9VgyZu#1JLM7@155Coyr5LBn9;pm8@q9GIBgjm+SHguw_5 zByLPKPBJhs)WlFQ{Nz$Dw)gzGK!Jw#OWu4r-#O>Wb8^JQ>?{C6h$p}mU;!9v(2LHw zZyc4h)?%&27?YhC9-dlVT^(xFjWOBdJJwpn`1JHK?Dgcx$S3C<^-2iA`<a<Hz|`@~ z(^^;et#epw>jI>dXsyNRnWvSiF06By1_n6C>GJ@dsxdGP41^G<S_5@L6vjEUG4%mb zqLiuu#PL}`9fPR&neyH;1FZ*x>!sTt&jV2J3C>nH3|F|;`;6}2W4-s<my<vlK*n** zQK|;DiFUq|4ldK|dt|c%oyPJ=8_=c(V68<Pb2d7rw6(~^wr-xk{6g2&yB*eur$*x$ zeU5>#_DrJP6%w8R^_RK1IrP6`Dv`c^OB)_44Kl7&I7;;!Phu!-d?jeju(9`p#f5il zSJv>`I&W&tuu=$_pPwfTL&7kW7DxpF#yL_!z~Sysgx$i4H4<{0$3q`TdnGcNO1q!T z+|il`GAtJPwY0?6=4O-c`}F5>qv;@^KbITb|1(R{Uyo99lZ+n`?TnN0BQpL0on04h zD8(xQv;*06U*Dh%f=lH>A)oB&xnC|6@^4?*$-a*L){6C7nx!sPtk)ui)5#`P@;u^% aNB%$Oc5(vGZ6h%N0000<MNUMnLSTXybr!1t diff --git a/interface/web/themes/default-304/icons/x16/receipt_minus.png b/interface/web/themes/default-304/icons/x16/receipt_minus.png deleted file mode 100644 index 7d8f20fb467e466efffee7f1360dcbc21fc1237e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmV;_0W1EAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004-Nkl<ZI8TMr zyGuf07zXfnXvu;?CtGZDDlw?3p%ABN2!f{L(4bbQBJ6@gDU?%FAW{xBghh_g+JDd= z5ClP26cfbz{p)?C4^EfQ4*YnB_j$hWc#uL@R|Mf?a+Z17&_8olc7S#-FD0MgXMS(b z+ifCe=nw_Z&m~`*1Fd#j347!W9ipwXGs)lNP`%ky!X7z8hiD@nm;CisOH>*SCG3$i zbcpm=Oj@e)EyY?*347!W9U|Y+k+fXmTXN;H686X$Iz)?yhtf*EUKbz5q7wGV89GE- zBqFWk_%+k{yb|`v$<DsZMYIqKNqV+g6>qtm686X;9~&Mf{udC<1%uLRhJWW%Hmig^ za#5R&lHBbaFcSz!YpGI6JZ3V#+<H9X+Tjp4PNz8S>wD(n9b6EdkXzTK^>_YI59#zT z2`*Roke`nE5E`&rX+qOr<CPD9`&8=NOlX>j^6d~bnO?$Ngaf<*o?eTEY;N~vn!obk z`1tm7q44L#9=S>Gz*MJAWMLyFyWQJAHn!7aHcxk($Z>x3t4E)x@_oT8uyk$!0000< KMNUMnLSTXe_13ij diff --git a/interface/web/themes/default-304/icons/x16/receipt_pencil.png b/interface/web/themes/default-304/icons/x16/receipt_pencil.png deleted file mode 100644 index af6dde02f874ba478cb401cd4d303268e331b255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006GNkl<ZILn2R zUr1AN6vxj6A1Z>$^~t?RBN$=%AT0D@n$cz>wg`$I;`Y$Prny>Tf4I@yUVIt^J|tn5 z4??!RG&6dTA_gJ!RAA9mFcg!GH5haA&bjS$&c&ZB?An13hx<F9@9%f-??NaV1tuJe zxd|^}{!e#{3<JUGX@L)^E)NfT59;jIWdPKvDS@v>LbX;igy-zlWdQC?P73-eB$X=_ zLwL?!T?Sxqd|c31u2xao*)fFY?1{_^j|ad%HYVsV(J6)PZ9{m@9{ZoHR`@JQ0KU;t z!ObF_lH1xcgy-zNbh%)S!ukd`A`!trzFfxNg@PeGXYYAyYv+n2y`Gn(GoXx&2nKTW zn(2Jr5T0LC)o`GrBZ%QJ&PY-Mu7*Maf3{S@U%8wiKUe4QqN2n!O+%;I{FwfM6E3N$ z;8updb2Xd&C&{I^n3#2;wxOcMVhPH!+%^GJ7lwuew^PL;u4FR%_`diCKg6ASIP$1* z$$j=vkI7^LeFKNzF9>YVMJ=b(f3fgm2H(dWdN?}Kjn@O`p7dVngcEi<+_BjJOwG-3 zT2Yw6b=rVQrc!$Unw-avv*-2jD++)4_72%&pL2V4xTy(R9FDtby5&Zj?f%;4rrzh` z4-pHCdbrDT{29;LW52%m>C_Rc)qAwP{Xv5)_lQpGsJI#uC+)|cigosAy=^xKe*jmv Vdhi>(z2yJ^002ovPDHLkV1j)!8Q}l` diff --git a/interface/web/themes/default-304/icons/x16/receipt_plus.png b/interface/web/themes/default-304/icons/x16/receipt_plus.png deleted file mode 100644 index a3a0912c8ad929a8eec7eccffea0cf794ead8cfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmV<K0TKR*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005CNkl<ZILnoj zziU%b6vsdJ@}SmaP=crdF<Zcb4yA(NV4x`|b*zis+dsf6Qm}&v{t4E#T`E?vb#l<z z&<bgSxLI68ZHLfQeed3Tj>BtWjmaw>xO}<4KKFah;hKe&6#$GeH-WRjD_}B1zo_au z2Vq475g~+7T$q|#Y&M&dSsFqpcJ7D>=Kj)B2R8F)disf~GAN8O%r7s`0*jrs$a~-2 z7ga=LAi!FS_ud>{i@bB)iKr4X9H7eK^8k_SaS$>b7-Mj~4%{E2399%I1_P|cIoAV7 zlD`32HBiMR$v^-{r64JQt-?D{1*b&Ge>j+XKgaXZ%X>eg9~V)bVPCLGl5jALh~PsQ zIO@9%ZePE34yU8UX}A7y&@YAg`U4uRCe~V7p#`x3Y@lpLNgN;9#>TfTPE}3=u;X{A z+_*Lh@b<+UqT1>z<?-?KUjW0o9PM_Sd_LdR3;7W~zW$IFvSMgHt8b=HlIn1w!1-$R z&eu5B6Juj{Kkx1J)k{yWYVp&E@-V+abqFSgFhBt)9xs=#*j(=9ukG#Hu~O-BKV`x` kmfZds`R;41xmjTMH`J#&o>}cjcmMzZ07*qoM6N<$g08RSg#Z8m diff --git a/interface/web/themes/default-304/icons/x16/receipt_shred.png b/interface/web/themes/default-304/icons/x16/receipt_shred.png deleted file mode 100644 index 2e3c8f114ccd72d733e9c9d08cb8038555d895bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKVBF~G;uvD#-`cy^+bK}unEqCg zZJypjXK$umxN=E><Dq~E@1uYR?wPGqTAf}A@$xCQID0Q>UfELb!1_@BfdXq|Knj;v z*P^7fS1)bY<9E1h*ZWgp@&0q6YQ2qKqk~f7lL*V;|0^b1^%#0u^&RDqw%-ss|NO7% zO760T4?5jAZ#TsMYHn2eFmZ98L_vI<&^I~$(rR1R2g)G%T{{%s+^w5mTT`paByahu zgE8I0C#Uwq{w;R)qK*ABrAHccMU=M9zN@!-`|Yj+?tNBC3C0pCGGG1LL!)#dW+d2I zD$0odo4(vhF+9)YhJQgjNZ)~7_x&xr&#LV{pO)YK)vEf$^WvhTvUWvR1evwv_&0tI zTfOmfh}NH|wVP)9Jo8((<1pCl%KG^?Y9BfVD-`_r^Y7fbNhdeN6oQRwxc5>;=Vr~m zW2O4xdYetxfA?6ogTI!$^az99+Jg$ZGtPQ1pLjwv{Ce=pBXyS-?r*WNlahG2;@H(! znP(p@%5+<Azr%02{6hYtN%8;M`ei=7xOhM#eUkC%ne3}}?(8+}P0Mv!UhMo)t$(rX dGk3!eyyfePj&*%Lv<eu944$rjF6*2UngB;!*w_F7 diff --git a/interface/web/themes/default-304/icons/x16/receipt_text.png b/interface/web/themes/default-304/icons/x16/receipt_text.png deleted file mode 100644 index 0d33918e5cb1f5d3ae18cfe6afd6f0cc3b3ff4d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU|j6!;uvCax^;rB2UDTMvHT3p zCa2|5QggEevhoYK+7&X2GB2E3&GGwyVs2qpR%S+KfxzOW3)`HSIAx~@I0-B|pb_XZ z;g5%J?QeViJxvd89_+U-KmWe+oyA#szU&7-K3!T@ptbD3<=ab&O1{=ytt`{49JKA` z7vJFYx3YP_%f=cWZu_!icbh`Hx~$xd{W}D%-S*1bdK=2OwHLn@J(usU`edI^U#H4l z&iwWB@7qS1c_kGN_SV8?Qm=IN<Kt^XW}lTi@zArKJ!bjxLutNypPI=nuTVR@yy16y zNY{kJlll19%$>vW?tNJIrJZvW!761M8y@JbKEJ2W?RSTry>WRbiz3JY5nq3^?!A%` zpf&sL<IOSez&0h^d@Z`I>#J3)tCG)?mz{Y@hNq@^*@BJLskAv%wl8e)_N0pfPd+R; z%xo4bURHEfYp)0w!~-*C%(^5d!?)r0LY4_9pR><nkgNGp!Ek-W%{6Cl<W#eMov!}; zIsZNFsg3GI6(0&uGQ3MWt|Rt*$JHu}BqLou>xY{4e6~D)7-i%pU$kZ@-4Bd422WQ% Jmvv4FO#tU|&Po6P diff --git a/interface/web/themes/default-304/icons/x16/receipts.png b/interface/web/themes/default-304/icons/x16/receipts.png deleted file mode 100644 index 5c72af536a0d78c210d7a8f291e7e6182b158697..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmV<M0T2F(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ENkl<ZILn36 zK`6sv7{~FaP|{>gY3-yqaN5NVjxG*LQZAfaY=%)2B8}a4bKA*9w%Qz&l7m_+DcTM$ zD^U(CnwB-$G;Q;Eev5xk3~zmV{(IlIw@;0HkqB)>qqMoVSDX0#xi>61W#3kB;vDx# zKTu1)*TZ4tVp(H8pR?Y?Iqv;@Kw1lhXk}-|Rh5g?_jj&HdSV~v68*}RM?$$`k<YKM zIh9Uxsa!THSF7yZ-kz4|Pwr77fx)Mjmt1&zGb&Xo><I?l5`p?JH=asy{`J+UC<^D+ z){I011~_18rsf`BTyXZ~#pqcSlYzjjL<9ynU}>i29ww9gkk1?CN+llm`{yJgFu(yz zGc|Yr?2K=po{X}xKf1c=k%+(m2Q1Ch+~~;(-(<5!8TogHyxw_<2n=w*(oD_Wjm7xB zP~fXfrZ&-l+r1zWfdLL!nyI<rc%0k&`<L!Sg!w3{o{^D7Q%4687~p`VnVQ=-F>%mn zHV?Kr9LtRs%K&C;Z|@WlbrBfge9^v`-??U+jauw>!oqB_T5I0~1~_18W<73$$@KF9 mS)Jf$-ml!x)!f}}Jn#X-43op%`03&R0000<MNUMnLSTa8V(gy) diff --git a/interface/web/themes/default-304/icons/x16/receipts_arrow.png b/interface/web/themes/default-304/icons/x16/receipts_arrow.png deleted file mode 100644 index f25344387caff5a8a03a5eacd216f3e775910a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006fNkl<ZILn2S zT}YE*6vxj+bz_zoNJSS>H%T8iVPW8fH(msxgNUq=5j5S>f|Zt1Te}E$XLKP*gBsgt z8_Wp$plC!xFm$=V!BAM_=3-+gD>s>J^WQn6-k!?pfgk_(Ip=Wr@$izx>m{qtN4Nd{ zYRdh4?F3`s`p)%I`Z7oAf-3xd)8i4k!RMsKVpuPwFLQq`V20doy6$v#S9q|pwuUmJ zrqrd+&|h_ViF>I~z`MCQM3YGrOC^m`r2@0V(ZkR`b)Qd8N?<$|Lw<EtqgXDZZ)C*C zkf{Dw_f0g4+{%hZfh`Qf!zPAEG(<<VR83X)RV0G!^0LMkwm5IMUt)+vLv%z-)l_w# zPEFx+E~l|nETYq9>t%>ULv%z-)l_xICMGbyxTulkx^8f=k0BBb(Ge|GQ`Pl_LWpOx zu)fZqE094T_7%s?=F1F`Xo!wzshX;;D;Pv7pT}v>JVsN%8SesGEH2lvp$9~wAv&U^ zYX0EHlaFY-H;w()(87^hFL5>y$K3>Q$Tprlc;|zjL_>7a{L_f$?{qv)!Tt%jFaw;5 z{N&m!u%|ybL#;-ma77e_*>w7s?0NVeyG&z=?WSkpnl69%s51`TG$8jKy)X2%xuJpf zwYOi*@MCRjZthR;!>K8C>DL_Yq+0!>@PW60<d$<jJue|SyK5U8FK%sW8rV=@-&)PO ux;FJLeV*I9N#_{d*l|D1splmm3%&t2kiH2^o)RGd0000<MNUMnLSTZ}4kY&g diff --git a/interface/web/themes/default-304/icons/x16/receipts_exclamation.png b/interface/web/themes/default-304/icons/x16/receipts_exclamation.png deleted file mode 100644 index 10da4a9617b1616e325e6c2ca3e3cdbcb4e37b22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006{Nkl<ZILn37 zZ%7jX7{~F)&|YbYfiI#Lz37GZHYEnV$e@HGEO0^eq7gM+X6eFWA)7+btQVsw`-4Qr z3^hT*B@tK+M#~#%v8}n)YHL}WV{>CWn{D&yd5#)Kvl@K)-R_R#!*QS=9tOk62=t7O zO3VL$o!d{T>HNmkmap@DAb)@q9d{26aV<!{X1!j$+VXY2ulNDf1+y8>4-U5E>BjuZ z3g#&J@_D{a!C$%b5OZ7<@s-bqu22Xw*=(U~K9AagfmRCs$(<Ag9<+Hpm|k8kl*#3= zy}w^W0aO3WeeQB$Vri+6ND8&dbdmyK26LDtXUe%xXJ;{*N)<|yLS;0zQ2@+f4zuJ; zIoINFpx=8F-Sz|0#xof_+}nGK0$>Jnm?dY*x#M;#x`iW{ia(HcL0rUxI$b*jzzpUv zOU{&YC#H-Tc&Ejj_z*w2J1`g;$GuwZX$pWD%wg8oM53tJ_cT74*oVo;HB>5<xH#X3 z&S@3yZc}$QXfy!KU`~{{!C0)Qj{yr#zi7tfmu>_A{5IE$PWvHLb=2J|udW7Q26Mvn z(fFg$KU%=ow&OVW=I9TPvk@O#y3qM{CknP5;*HDY*0NIA0?eS!%%{`HdBfqt`T|qv zc-Dvk?=JMaw@CtCzq<~tV-@zvyCn)>Mom-G*$BO?4GKlqXL@nJ_mW|q@L^^<M&575 zh_434m`+;GYu^-kbi0JUWq{2UwY4YK*Vmsbt*UB}wz6^$Z|AW!V<yAe;MJZo|DB64 ibFU9x%DaCBuKxsE9>H?eK~(+#0000<MNUMnLSTaHgg4p% diff --git a/interface/web/themes/default-304/icons/x16/receipts_minus.png b/interface/web/themes/default-304/icons/x16/receipts_minus.png deleted file mode 100644 index d343b4a6c067a213e06e1c97a8aaa3addb2b958e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005gNkl<ZI8TMq zPbkB27{~GFAURk>IXH<6M~YG|E)FCq7Y=eUhEWqD4duYeK?%9YCUbD{=b)q{gmSPF z<-pLiXxhfK&Exs}vR_Y#U%h+w`+mQDd-WSRS5|1m<Dt>jRb%4)YpqtY%6jf^6Z<%q zJZxNGB)^B<Zq&x|G&r5s-zN5P?&k&4kjq5_i;HauIhgqP;JBnG*0C>{7yRJLC9da4 zgpaPS*z5CgG!`?9B@*mdSZJ5%Pwv+7F$V8nTyXgP-7Ff9vwdd9CK0Ira(BI64!*vc zMMPnpn(B~<zyJp<&D7lOvoj8aLS`?bXqlMkl!(9p2Q1Ch+>MhHeh3E5o}*E292@JB zh`;~`EX~y1wZlWcd3rJn$a?+Ypj{#Y101k4Q*%9gdwd-TnEB=3sdhNJB_c4u0ZTJA zcWGyb@55of^!ts8Ds8r&{<1P6Fu(yzGd0&;Q^T{Vsdwwe#m3w$DdG9FG~Y7O9DxB2 zSemK1lNL+xt+|=MH%)X-LP0%AT9T=`_Wb;VQKHlDjYE*0lS74db-j=Bv9im{`)=jK z>4|mhR}fK?G@z18j3>`hRMeVLTH2qIl~rlX%*-nNj(s^-fW!I{T<{5w)usVA>WFaw O0000<MNUMnLSTXvF8$pA diff --git a/interface/web/themes/default-304/icons/x16/receipts_pencil.png b/interface/web/themes/default-304/icons/x16/receipts_pencil.png deleted file mode 100644 index c4bb3676a80def2f4b6f0af2572ced3689af0cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006$Nkl<ZILn2S zUr1AN6vxknBGdkiNlxlT$cKbLVGOdD64nSQWDrr%LoaPDThh{M5o;FM48$Iqy$B^u zbUqYGWk@=bNKt4Q19!(HOp?h^7H)2`&C@v-cll*j2R?l7J-^@Y+z&r4xcd9yp5G7d zfdM7?eWQ1puuy;hR>|wU55xfq^nACsm$4$%8JEklRq{IT`*Q$s$LE7vJw4VuZOpH) zV~!A$`@BxTUv+7SZ#k91iAV%P^YfU=W>vEJJUY6&FB9-j-FK6d9QbKw29s-RDw$jk z?Ok0q0$BCGx`9v#6RWE#DYCG1c3vR>Sc7#~OVku~hl4?kudJy2B#Vn4Povjl0$>f+ zVJ%Tp)O|BGg$s#<N^EQlCv>{$&ysW;Sc7#~OVku~UyhIC+|rW5mv9*0dcBBlH@=pn zk3cF+BWsD8qOPC5I2(^+NFK!JeSMftr}0!xP2d@T3C_2+GFO)~ncp-EaR0@~2+FfV z_~F$FOfNXGt)l}CW^=n;uLm$Yos2zBx&=)U?)!%x<5N#@m=8Z_*%_UdNAXZY!;M{K zWdQXK2Xie(KMiYcCi3k)K6$inkq_T*E{YyIy5ss@gW=}xs;Wx>a1iQjHm2!EGKq{F zi>Voz3u0jKq@wM0Nu%u!FjgD@D6X!C?d9d56l<`~B3)K#ZEeeUy0}8xE@+1_DP!C1 zlBo487>!2&G<!A;psHXU*4n1k)+wpcm^f(-&()WFJ*?L~RCG70sIpQW@C&rUnq!KL Rq*VX_002ovPDHLkV1h>28}|SJ diff --git a/interface/web/themes/default-304/icons/x16/receipts_plus.png b/interface/web/themes/default-304/icons/x16/receipts_plus.png deleted file mode 100644 index 662ae0413a354f0ba7b595747111f6a2f97d3805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006GNkl<ZILn37 zPe{{Y9LMnwVc9`#EE-{#s7vColLrr_JJcZvDJt+(hng*0;zGla*@$3=#2^v|yGRq9 z2PqH_fdm#=I`Ggy5+ZW_S^RJ;++?!NZ{N?TA5UgAc=P@Jp6B7=#g8F4K90e79Cs!r zDwFR&*G_9*U9aD6a-Zj5UQkJ&2gb%&r|9ooFzDTGa-Zk^yg<7hi{aMjXlGdumNz%0 zq?wcJ+}H3|u3i$$<n!`+d0CRFloX0ZyJER4foSxqhJSLW=jS=(<<gSmHa6@ErIPqZ zMtmAb{V(@<GAY^hb-TPOyu-uSG=L0p$TFEG_u1m2SZix`-&Jub9PZKpGRPszWSZQm zg$4PN&Dv!O1?dQdu4@1p<d9`DP448}oP1newX<~nOn<*$1IQqUER$(+<Fm8!-m;|Q zMVGjz+vMV#9yt{V+|U3r$RW#Qn%u`TGx9l?6Zg~Oayip0O;aB6_<Y@m?zIABkVBTq zG`XJm1=;b?^{HvHRnA*pIr^kcsvhl6A?l2P406)?ry+A|T;Dx(AnW;hR<?!*j<-+> z>n4%COQ(OEY+tDH74Fw1n0w`z{CdVvT?92Q7ml>I-~6T@Yi~<S?}~mnb8?;gI8hDU ztx42>XcSI_YoV8bzk{_64OjLwH}_RJou0~cI8K`H+}Cr5;olX3Z)c)1d#WoJ`~XyU VrWAj}3hn>^002ovPDHLkV1im`8>;{S diff --git a/interface/web/themes/default-304/icons/x16/receipts_text.png b/interface/web/themes/default-304/icons/x16/receipts_text.png deleted file mode 100644 index 6e395e3b896bd4541175c0a13ec9e94f402f4f79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005<Nkl<ZILn36 zK}gzR7{~Dk=3opXX%OKls6(B)tV72xI}C;lcA2LxS=QRXv5g|!x^?U3Nr;$2Mg&2H z5E8_!(WDxzU^;_Yi6V(34MXke`Mvm;x6<~)m*?;Me|h=vm)!I7^f?fqFAEE5;&*lL zh2)TZYrTp0I7j*gDtVst`_T}~dgXRI>P@`Ixw{ug6Fwh(nwuM{$id3h6_+J_Vju4% zYRHvKeAz;Qzel6|>-d<9rBba@rNS<+cUYo(xobN+7#!T)<v+<J=Pxf+#d4X)JRYY+ zp#GN|+~4PuT#j=W7pj6N95XW`5)l~SfTc5a?$Xv4@5N%Z{)u8>dU{kM0s|bd)*}&) z#N+(!;NS*#X?vSv>9i^-l5DZaucxNoNJL<O16DMXsikvggF)UqI^rMlLI0keaYpuE zj*pK?L|}je)=D_c;lo2Ujj$is+~l}iYLt?H=ef)ERw4oe9I$>S5;roqUqc~2&FA@d zDy1gscRJrmL|}je)}kClA^F=@<--|V|HcMC>FfKDI6qf2Evhb??Y+6Rl?V)Qz|xsI z_o>~!Y_eFMHTU*@G_|z!V>Wen4-!!afdP&|Gnluz7ORyW_w*1J=EJr&^-N%Z1D4LL t$9-Tn-@QOqJ2*P8A-B37b#~S+xCR+RiU4?C$Z!Av002ovPDHLkV1iJx2L%8C diff --git a/interface/web/themes/default-304/icons/x16/report.png b/interface/web/themes/default-304/icons/x16/report.png deleted file mode 100644 index d618d9fa0d3e80eb29a754e8f3e222f943f9ea43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004+Nkl<ZILnpL zze_?<6bJD0?%i6VpoXTV7MlXspg*8N1VsvrB2(lcXc<nePK|<NLs0}l5Cn;3R!~IH zP!yCjL=X{{&&(gGr*jN{z<Uqu!e=`7eBbw7kV_I8!g7@)yR_QeYn)+=1y;7UJlMqv zorh2^%0mLIc|4g+1`~+{#^Z6U*Xx*h`PQjZfSOiO1}Pv&0l{_vEU&FC)M&9<tC`}t zKjlXmkVgcVVS`GwiVx2Pohk)*lU|f61*jCDb~I39F<*tgQu_HZ#q;@td6YhxBESqA ze3#33_mtNuQ?uFqSri_TBEVW_CK~k@=|a9#GR1TEo*TuSI3~ah8+;avc=M>~6zDgm zcc)RfMVbI>9a|)#<|`G<77C_#?%Hvom=Y%hm|=tWuP?m5|J2baz_IN>;iLd31vonz zO!$0(96jEfrkUcoebbJ@E=~zB!v?Rp9A4dKbw21JZ5uWelj4kkGN7~@^jfW9jb1rR zm(1{-8z|$-h0@nv?kA%#0_!jamtEnzyz{pUJ!Fs!{S)u>`~nF;Fqoymi9P@T002ov JPDHLkV1lMT%oG3s diff --git a/interface/web/themes/default-304/icons/x16/report_arrow.png b/interface/web/themes/default-304/icons/x16/report_arrow.png deleted file mode 100644 index 340dbb49ae05d59e59c91aed41e9765701b74b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmV+|0@D47P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005>Nkl<ZILnRD zUr19?90%~jJs4y`kPub`LC}j<5QywC@_8^QUs^2|uFY|=rcLfkK18+<L<p=w1bgsd z4?YM*;Ig*$5;V)yNXe^FEFx^U&FlWS?c48MbW`qK`Ge2XxxerIp2PSZ&UAi0Os4i| zczaKulPxW5ARKmK57Yau7rc+ZCQR5Km#V6WL?Q?VgQ!$0P?H-56$+5!GPsWdd=%iT z1+e~5=w_J~OXYH1;@lhcg7@$@gbAh%ilq|1{?H6c6yTn6gUb{kQ-Hjqfjm0uDbio^ zo11ls^RCG*a1W0XCYUzZC=~EzC2LTiX3m#RNG>T#m{6VTfq*whA7u0Sy2QETxdYM- zDMpxJ+F&i0!~9alK%;BeC+v_MQk*cMIyOa-v&AA(npW3fEQO9x0>}N=7EdU**->A& zd4tvUb<8ZR8C(q~5ljN-hF)dcA1&L@KA5dFxZv^hr0MZ~XEM7e6U(^tbU|miJBcgf zDn`Bow469|f5vXw;8!}0>CY*hb^Ip+-vH+v(D|{ZZxJ}9yiHUa9BOOxXXuqv^x8Y! z8k@z%!MM&c5J7uLh3x~--2EcaWP7MLI80jEX*R~rv-kgU;PQ~x8Uqe?j{MngarJNQ vvPN=*9Q&Vr*2m8ptWQ2Qblh`q?KJ)cF4IUnR=7pi00000NkvXXu0mjf<`)Fa diff --git a/interface/web/themes/default-304/icons/x16/report_exclamation.png b/interface/web/themes/default-304/icons/x16/report_exclamation.png deleted file mode 100644 index 98359382b1a722497e2bd6de71c0ca5a156a0858..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006iNkl<ZILnRE zUr19?90%}o@9jyDpobo!2kAi~d#Zf!CHg}|k41Yd$3%0Ci?BIs5Y&qy1%f?{mJyl7 z5`D8WH1*mh{h5McYtyw{EpcWW+w}Tp|GxdsXl=DC_=6AU;hgimU(RKcRbqK<QYRVR zq0Yj+{8ZJ{up51SP1wO$-dP~EN@Ij^g=q=~gBTeZfy3cIE|)`aalK5A0^~O`Br^q= zDZpF|U{`y3u4L(ACY#+B-!~~HNG;MhVVq`zR3?K!SS^#GfacL=NHPV;6d;#0knMJ3 zioUX$PH&6vHx4&KGD-?zoMwadtu6Q#R?BQrGsBPpVw0#4#{C_AM~7*H4y<l&YFhl- zjd{;S+!;C!u|b?5jMHoo-`K#XFUg|73T9lFpvIl(9jr!0gXk9PDWJZj!FiiaUQMMC zQ`Iuz&;Y{zR%FzExZhvEnQNlAQZF)2v%#;mHO%<qe?;+N>@wn!yU^)$So(ew?OkHT z-7oAS#Reyh#+C#<-p^$69}5eEnDgk7_;DR{3`_oI^f{}N$}{2gxKq$>5J@C3?TwKr zT(1lW`AqQ5p2dsjR?L1pfk{_g`t=jx-tc3gn6SIHwk=72Ax1A=@GY!hS~-W%+$jXT zNAnH%8uT8+#6acSmk)(Hes>Q!%&OT_c7%CKS**g!lyV@w95{sK`GZiSw*1O{p4=aG xb_u;apn~ir`~KJ6&hC>bEe~!n&!gMS{u=}GQny(*5<dU{002ovPDHLkV1myvAr}Au diff --git a/interface/web/themes/default-304/icons/x16/report_minus.png b/interface/web/themes/default-304/icons/x16/report_minus.png deleted file mode 100644 index 3e168b3181ec61e0d23f08c486ffba92fe9d0b16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcmV<H0Tlj;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00059Nkl<ZILnpL zJxfAS7zgmjbGCw_hK8nSXfZ+zKR_R$AtRD3Lrdfm*o!pf=#r!5Xiy<R5%dB{Wwrzr zG!z9T4G~0y==I&yr|0xy(!GK`@SDzg{`Y?m@L3L@=D3#}*2(*`_c<L}Ei43sHmqZ& z&!&;j@FN1k&)A~TD275I^!xo-E|)R-oKYxKfE1CCJ1M|P0nXn5a0LPrC0Z<&N;Qdd zN7#XUiXRgYR2vkEMZAAXD-<bU@^BKlL;(^7NL39apU+;PujJm}YZB+y11oYn4-*hn z8)Wi%ynRe6<f)lu--67>!UTlMjCwqdEL}+Eay5x_^NtzWI6EOAs5Xdavv~a=E2QZ+ zOxq@8W)>kJRHlD^UP=}U7)z&X66ZskL&%2NDS?3=je3K(R0^-|;tDba7&nZ_2HB~* zO#|ytHGOvbRDvGwRhAVZV`I3h)8U?8k4v2`xYz_qTE18V@T)d>NhI*{CRVYc)nRsI zL}8giDh-+qhB=vDIYzJj*Ot|aKJoS5UUX3dM<b-%v~2lq&`P?Y3syl7=XDWx#m?6* hG>|sZ{!e13;R6DJEkH*M!2SRL002ovPDHLkV1i{u(K7%5 diff --git a/interface/web/themes/default-304/icons/x16/report_pencil.png b/interface/web/themes/default-304/icons/x16/report_pencil.png deleted file mode 100644 index 8473dbefb27d5aa6954adb8e22f26ca5f54fb440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006BNkl<ZILnQZ zUuaTM9LLYOr<d&|65N9k^inVuLBR@w!XC0eY{c}<mxVN&$YtQ#!lwrH;FFI7qlghf zRuGldNG!J~+#(8Al$G{p84)4#s=MmcZ@+uPX?TVG;Pdo7-|zXJ-(g}xFr7&eBw`yR z*zoDIy|0g*4~N~@z>FuxA<l{?1k-4YJC#Zy8jT_p3ZY)FBb8ZgqfP<xybR%^03QYT zngQ(G%*>e@8LPEgM>O3V_d<+`rv%e5Y*49I@oBl(MwJ3aW1|o<1;`X2w=|Har#%(A zrL?xz5ltU?JObenae}$`NyZIU%VoU(l5e9-&0LRMkla!{yj5ZgoHrYs3Ix0=9mtnT z9ntjR$T0Q~ZhD>O{LTx`t%eO&R26SOD{U0%8P01?*lgRrVrmL^IiFi^Fy!~k`AP-Z zVzDDXmSeDAv_qu}Y!*xKDq}Xo27d|#y!o*5AB&3*@hoxz>Q6t+2h870Ce!ZAtYr>+ zJYzXp-fu-|Bb}bb+`VJE`9h!vJDk!|*PbqRvX>kG!mnHouij;K5{U<xy?InO-@amn z>(W6;gVJ+?adXQrZ0_%$RA|dt+IEBQnI+6ej_c-IWKMpJ!g0d^euyvdElsnD*u{3T z>ufK3*~*ZEXHZCDLgq^E5tdxnw6mJ$pO<wLJ%q&ooF3r!?N&ZuplP1&zu7@K&<5Sh QtpET307*qoM6N<$g10>mfB*mh diff --git a/interface/web/themes/default-304/icons/x16/report_plus.png b/interface/web/themes/default-304/icons/x16/report_plus.png deleted file mode 100644 index 49b99950cd9cbc243d30b7216973160de73cf961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005qNkl<ZILnRD z-z#Kc7zglY&Knnp{Fn<Du9Q;Ss71M3E&Cr(?qsm*tYe&L7*Z>@E~H$LDHL+Sg;v?N zOxCO`Wwurk#iU3!>}2N5F+a@Av(I~E$T_n-_32!^=lP!Rd4ahY==#|h*?6U~hdq5t zY&IBPT9WV;)4Sb^tdIR5z&(uQ_xsV~@u1u7##AbW{_|Ud6a^?-3Nj}JI4QvS7ytuv zbDxv6m`Elw;^z*p16eoQB*2+Ah$j+wbfy_3D4=7b1DQer3I!-n8Yq*Ka-6;ry}QeZ zpSQ2KBa@kz0B73ZHWtH!6V)I_&Dy@Vp&$uf0$h4pMn)VFdO?jwGvep=H9HC)g`WgC z(*`$@2<{z+3^e+Urqw1C?7|iSE<N>wgNhoDV?fg~YTfQZ>vAbtM)NK#UqrABiRKNi z!(se=cw<oc?E`)axDciaRhYE`%vc{A)X8#pkS^~s6f$Vu?83Jz@3G=*EjC_B2;=!G zE&E{F>NaigCm6(E`+>AK^Y5_kqQL+r3Vi7X`PJ3^A-d%N-S%^>>k3v-NaaEemY>!j z4CjVnG|vZ}IeG*BBjr#Ai%<nS|K$?3;u9OffcRJ6x!(nTl|`iZMRN8mNLjo3^L|JC Y2eec%tum|VUH||907*qoM6N<$g7iZ43;+NC diff --git a/interface/web/themes/default-304/icons/x16/ruler.png b/interface/web/themes/default-304/icons/x16/ruler.png deleted file mode 100644 index 806c3d06629637ed94c05f980d6b6616f8694185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005WNkl<ZILl+$ zpUA?nKZ%9mKoUzP5O+gyCP-|iFB3={Ck@gICZL?2zc-it|8-^Ie-Qfsu?Fl*WXS?) z==Wf}c4KAP|F5T}|KFR)at0&@RJa-+4bsc7J(gw4?`w<yU!Caw|Hs97|39CY3TIzi zUV@Vb=>h3wSQEiK|Ly*s{|nOe!4e;jPWpek#p?gFZOwQwNDoLa!@K~d=2?DB8-bkr zUr*2Y|Nc-vNa8+7j1UItWdJf5I-MCA3Jn<+Us+NJHhFV2^9+#qL{CP%7^H?_X$UjJ zhA1$e4RZdgJ)QqSY>*fzv<VuJt`5hGFD=ab|6*qw*l$1#3Ll0Ucnkp>uriDph8KaH z4+<a<8%dmDx(^d>1LEZ1c=3gK+5ewxZuq|}lxZmtGr+Kx7$XBZP!(om@KpzjFAipc z;gzp|&VRI__CJUX6W0{Q)Qkee*cceX#ld*-x!D>2AFQkXKi8jWJrFZ!5Ymk7oC%(c zdtL)w@N7%te-IlaMl6sAVxv@JhJ|g;497tj$esrjQwCyS=rBkCu`m$x0Wl{KvjQ;_ zvH=1>ECs}pP{lwGF^B-M5D@bNF)t8v0Wk+uGc&RQ0Dde;z9%tD>;M1&07*qoM6N<$ Ef&`b;{{R30 diff --git a/interface/web/themes/default-304/icons/x16/ruler__arrow.png b/interface/web/themes/default-304/icons/x16/ruler__arrow.png deleted file mode 100644 index 446046130d682bb899b3bec2da33f334117910e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007HNkl<ZILnQY zZAepL6vxl*ZYzpev?z_J4-$Q-3@ca!R^W&7L*=L}+MTh{%U&dqmJksbD{CdGW#pXB z)^xI74J!$(SrJ8Emzj?C!DdoR77-Cb6mdG|vaP;oUHIK|p8xaw|M%Pn!e$Y|77=<Z zqK!D4!p53sv%va<mA%R<wW$6T3*wJKKXTvmzX1=;qMZ#jn^e&^p$Z&-aS0!oMVU1^ zcx|%EUg$E3^*^Hl9ID%h-(UIg+w+T=KHBb_u(F4}aDA7$<#V_iFYjNWY<zus9(zx$ z#l$_=q_Bs*;42nfja!7<w1|)QHsF`XHM|jL?O(7Lr~!AO3d-{#FxXnIBzGFs4XoD{ zsV0TbK-+dTbnI5}^7zSaH*(J!-}c`I>!HJ7b5<xd6L4TjhQNUTAdcOyQvQwL`+-W6 z9?W(J6nGP`zIhBbv?P_fralgP9d>|Fi8{>{9-l9W`?Q{SY5?-j3@HKYnm&5SEK`*@ zfcKzuVTM4z&w=kdD>1l3Xd}Q@X3YewJ{RM!%AOC1T=f^;N=iUrn~)}yr13{Pjv@D~ zEp<g;`N@6{9h8|Fd#=jH8^c&TipXo)lVGj}VCOuAK*Vdsk()=cd8=@XfZQWbprG|# z;`9ij<uzi-%Re|{h_o*QKZ|uLs4Y@;f1(Kzca9_XtW8~z2Reh>lWo5%GdzLbKa7S5 zBCm7Gx+L~5B3ABO1^%i+c*aogBQ2Mp+ktFCM`US@!N{^lh+3(=FRL^pQHV0YEMh*9 zlR8X41apYl#7sg<Oedyk3{8zwioJargV#hMzyZGjMuxOPQogzS00000NkvXXu0mjf D;BqzG diff --git a/interface/web/themes/default-304/icons/x16/ruler__exclamation.png b/interface/web/themes/default-304/icons/x16/ruler__exclamation.png deleted file mode 100644 index df09b53ba3ee5176473d60405fb704a44e4399b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmV;h0#E&kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007aNkl<ZILnQY zT}YE*6vxl=?k&0rqVFQ=LZaxV54)*uq7mwa71SyUqe+$)6hZ~j2ZkXo1v4yX<~z6f zHD)?<sfD`r<vX_(Ep=_xaD@1kqe%^-4^Gc{+18cT3%~cA^FPo3aGnPoS`i%CA~>_f zJWffRJkqK%1=44X<W+w0qV#vL0e=h{k#gt%4(Qd2r^!&3&inz(MU1&Cu}3R<N#h5t zvqkbkXO>v;({IM1@-+PJlkltSPBQm5o}V$2hrG~ySY?PfO0o9jMx`<R@-}*IY{$`# z!dW2?c|qDI6yDn-wDDp%=F#JqXJynFChcF47kC0XHG}-kU>>Z?S0=X~Rq07D&tOSf zul*&V(HW>epaR<wg=$)VvRj9glSZ#ydxC+tUEwjp&u3^=teiTSPZERH`eQtrk9 z`#BYO9x`IyEBhSdw@A%6MXKXEfaRbnfr-|q2cn#`u0jFiRt7E`%M5wb-M?a1{OH;3 zrkZpDj;&5&ej}a1k@f;?&<OP$=(#Jv3o8@*9tbtlW4fqDqrvD%L6mCJIRNJULITSq zU;mTsDpF3GqmhBLiK%_Po8;+{D+mBM7RW_!XNpWZ^<n8;fJ4g^%&)6+G2C()YxWAQ z^*I7OF)`L%$Mj);*3`R!G<;;gfCIjr=<DAxMLP9?zO{=O+{$3xpZNx(_UlMFX&n;V z_Pk|@91iZn&`_$f0mabJR(#q#U#33!*KoGvq=K<X4Kl%ViEAl_o2)4yr%X+J*nku7 z*JCVlNr^;IUNzBH#qQI91)P<f6`bW9ej!-QStu1lC8wX`A`HbK8+6cD8^=@v6@LJy WwA0G5jvk}{0000<MNUMnLSTXgjz_Nm diff --git a/interface/web/themes/default-304/icons/x16/ruler__minus.png b/interface/web/themes/default-304/icons/x16/ruler__minus.png deleted file mode 100644 index f9d6ce856a0976bff928855c533e5553a95d6dc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005^Nkl<ZILnQY zT}TvR6o%h#W{M2@A<KR)3JMYGLaMuNy(llzpkIs@cA*~&0ztZoU_%ik!HmLHacY}& zm#rwnC<1FGh$5G$uqCgI2ni!1LW&|z=bdKvVsY0#c;-9ve&>DX%!f?aK_=p0EaEgP z7Xq58_3gH(m)z;~AHhr4pUI^BnurVQvHuNt9Cl99(7ns#-lfmT?2BG`6n3)IwDD%S zonAaR;#~fn^W<&MPWk!TmG9556zW{6wd76@y|{JAzWOE8CD)GC`Ul^hUXt<l9Ws5t ztt|A=3wMvz*56>=)t9N+@tAyl(#?Y@YV$!av_NN_LCaQn6Nwf-dE~Giqux_*%EBHD z?Xxl5<TJqWXGS}PH8tM$yaC5+3V3hgr{&Yb4*%a2-Vb6LGFWZk&OyA!0O<pEp6eW+ z7sNWRr?yx~0k|;-)Dc==z<cGMl8+-%N$$6X6p%#FSTexdYvoDL==dLo&k1X4iOt3j zNCJJ@oGpersultVSNnJ`2TsWQ+h=94(Ym9cag{+#1C;EKP)LfQ&LL1;X>hULjDFS$ zrth5>*3`H*DiQrsRGW)w=LEVoDBF&1N4%pB&xqEpYMT_j9js9*m8D9BvOuw#^by6s ywOm=JtPPs=hp<vvp)6CDD2tUvf!SsNf`Gs9U~bS5Y!=D@0000<MNUMnLSTYSy$_!N diff --git a/interface/web/themes/default-304/icons/x16/ruler__pencil.png b/interface/web/themes/default-304/icons/x16/ruler__pencil.png deleted file mode 100644 index 0cec26b479b501b4e8345e29fae5a34769c55f21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006>Nkl<ZILnQY zZAg<*6vxkf_7v;WVujU+f|V5rMfJrb=w)JVFb&!?ih?cDR#6xsgv?fkFcNK%Y-P^o zlao<2-zqY5R`fzfRM^Nb84)9lh$vYUaXRN|lflxu@O$q6{_p*t=iCc1hYT^N3`0)Y zMVwCIV(+|FVt>k+v+5_cX!tc6#vdagWIgo11qL1RehxGhi}>qEHBLP7;~j_mls!6l zWxAQOaC4V@?q^)VSH3Oy{Y4PJK5m}W@y?@D&Ya;aT-~l|`xI-yOBJisjV}+*;_#^g zOx&oO7S3=Mf?K7!3nfxFEygB>1Niw~6K{;M_b)gLB*1GDP_-JAk;_$T<=&l|0Q)|( z_$&T`9O%y#(6d4U=&)&^Yllh;w?97MMb_-`Yi9<-)dK8xJGAEIt$QOx^q~+Np>jE- zQC@});fGuG>fH!_9|%wp4&GM&V6)kl9?s8qqsN2YLfnN&nI=s;x6cp6I_>wkrO9xA zyVzi{SPmwWNh~rL8ruMhVD}<OqdX5D!1ui#4BMp+0+`HjmtR~@CXS)eXmsoK`jr=f zhO$jc6B(!W-*vf>HG5%KcDT7#3|cp9H|cabPz&VD1Sp@UqC9Kahi|XdU~8!qB_MJf zvcldYP*}WP2CY^LC6F4qa|E0*i-C{SL89*jvSzQd7M5j(E6bqJxDc|&Vq(qSwGgT| z!6Sxrkh~=)ouU!HjiRqc+%Gq)Kb%F(Af(I!vk3#SfS6Cvg<vkBC$PdQqI*h(iL^Eq c)?^m=4daE1EvWi*bN~PV07*qoM6N<$g3W0tvH$=8 diff --git a/interface/web/themes/default-304/icons/x16/ruler__plus.png b/interface/web/themes/default-304/icons/x16/ruler__plus.png deleted file mode 100644 index 0dabd9c137dce2fbbf23b3daa4b604e3e7aab9db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006yNkl<ZILnQa ze`w5c7{}lDz3)cb9QMPH{lOoIqJ;m*AKD+>A4B61QMYW|{HO~PQaCNkX(r3v&W`il z#v!&QQkz>!WZx|`7k{0WMq5Z)iS&4$&)xT%)Q)ex?s-4&@AEwO`8<7*@ajlZ>gcW1 zeazVmKJmikn)u^J=~X|OB>3xXJN+1pk?7w49q`Dj*GNOd8b|U?yq3nEU!oqbZi>f+ zx3Wd)#e?no#h*!oUN^3$?=PeD?OBtplh+T98>L5jaeIsN%BMt-u2wHrFTOsxKz*l| z)A0R3R-{LI5nZnZn%8QboTSG3LiFWvgS<$I_b;RuEKpzOfPV>$!B)ST+_lXa62H;y z$cogUZKD$%TNM#G{z!K{i55?`{bz&wXugd-VAp&b<5g@weSBD_?#9S|5aJ>319`xW zVjx}u+$>2)&dY1rk8g5XT$AI=f<#-s=Li?I6j}qqjH#mJ;_sMcW4ws&q4!-UsNJKr zF%S@$nl6kL0j<U6&d-NPqRPcLHfR>{5kCG<$8i!ZUd7?O^nlBSVJ<cW&uBGSTKUs* zfz8tu#z15@y}NUaTGnZI87x?l12jz$%vB#M=x@Y_JoAbiIPZ3JkMaqI@0}#k;;CmY zfA2N<VFX>KuxMx{SsLeDVJVr-EUj9GSX~*O3aq2-&0%;un8EOc;lincfzs4MLZF}@ zXC{G%sQ=(IqLi7LDdr1-R}9_|CNo?KUIr#&Z*DVuIsMqj(LX^A_zl`yfC{z3w$=au N002ovPDHLkV1n8hH;n)Q diff --git a/interface/web/themes/default-304/icons/x16/ruler_crop.png b/interface/web/themes/default-304/icons/x16/ruler_crop.png deleted file mode 100644 index 931fec6529061b6d74d1374d5f58fb0b63a64b8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006(Nkl<ZILnpN zT}TvB6bJBgXXc?E3i8FMr^1J#qDY9|iqs4th)S(cYlEVtwJiE1D*Hf-Wi@4DBh7Xh zbzLec+FV?1-H1Mjveq`Mhdzi%vrYP>5aM*sW$v<p`_RH~@8R4z_x=Y4Vw(-<BeXh+ z+vc=;8THvxji|%${CU}qV+lWU9s7?1<jpr7#>26vK70|}hxIGOU|O2-I8z6xn-g^f z_&eT$-|wH5H7Ci0X9&*%^lmch`R2HL8UE^T!ok2EY;!HbpAWn;P5P?v4B=UT$VQ`* zG<22g13zeU^i~~m&AsZSV5yZo@7OC7a*yz=JOIMw23*^qpZ|8x#DrCauDM{fuh!w{ z5`gXs13ZNS!WFv73BTTHM6L<<077L3bgtLgg)g_y;KxWUa?L&Wask1$IviLG%zD<g zTP6&Z>0Sa1E|uzvZ#3q?xUUi&Gr%HX7HY6_w%~NBgvqEIx#k|vL7-SuT9dt}@%{B` z<k~e$K<gR})=dTQ7HPn*HQ?WoN*E~C!J>WnXX_a0uEEF6PAts^i*Zk_!4mxqCmaf& zM6*D9#XWKaF0Rs)E5o$;w(}4Ucb&jTP22ui8%pNmla}o=VRZijO!k~Yo`J?9p+tsm z9LLv}4~{FmYYuY4cUKR~nxEwv;9ves0k!$UtjQC1GufI0BmI<y6P{bCedZp|@Vp@O zMZiQdnPib{GA$k7_K6aF2pv;5PqJs^0Taj+GM(g*d1N8URkq{`ze+=Ovwd*ZUnqIN UYUz;X?f?J)07*qoM6N<$f@Kjh)&Kwi diff --git a/interface/web/themes/default-304/icons/x16/safe.png b/interface/web/themes/default-304/icons/x16/safe.png deleted file mode 100644 index fa15852d060af62ea488b4c0944e762f67cb42bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmV-g0;T<lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ZNkl<ZILoDz z%}QHQ6otQY?q6;!l_&`|!9ribN}vuRIF%Lz9rO(fK8a6Yu|7ng6Q><zWNWZ$p%Ce) zc&jFD4Bq2C`<xCc(V~==?#YJDX063yEw#G3ic;!1@Q8n#uipE&q4yr|eSLFt^L0@a zcfP#$cWz-AvcA6l3LtdO0Vrb(olfVksGH3u&N&4TiU@$V*5aI_)oPLF`MpZAETi3S z(`Ymh5q%p#U0q!vB8)~O&d$#6W!~G{V{L7XqoX54M2(rPwYn$@M1-O!FvgH&83zXk zWLbtW24f7hT8*u(EhZ-?vDRv9Em}kn5mgig&N+&r;PmvAG%eF=EmA6_93Fn+`1lK@ zQkki#DUzg&h$s=cQQ(|IM9A};Uav>BT4#Iv4YgW>!C*ibCU~#WIz)uAg3wwEpq+CJ zha=9<2Z(sO-F=pqU()UF6UQauI7O)tts}IKvDW@F@ftu~T#OhDMmVRa*B`UL|DK(l zHnX!&n4f<}9G4gjzT>?x9R9#st8N46Jhx~aqg24e#6uPqme4vtDLvjNC!bkac|oW1 zVXR>6fl?7c5D|tk<?;hcr3sRxOp>HTQ9=|YOi$0Sv9Up=QoZrO7y}RlL4?*3ySpF% zn8LZaC1z%3F~$S{VXxPtQmG_i7}IRd0}7=S-YdXgr||b)c<<@=`$@mwM*&aMG+oqM oSO2Ao&be=wmzVDpQ0G79C&AJ$NexqpWdHyG07*qoM6N<$f{+jossI20 diff --git a/interface/web/themes/default-304/icons/x16/safe_arrow.png b/interface/web/themes/default-304/icons/x16/safe_arrow.png deleted file mode 100644 index b9dd1b512c0f23cad58ff69442e2b7fd1623c66d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007oNkl<ZILnog z-AmI^7{||ziAh)8jBdLclt@V}@WPA1$l+kAfha*jOYDWPbT%Z^vS}))y(|MoH?3(b zb*X!I{x)CPZ*I#m7&aZbE%BfDcAg(Z7YnijA0E!j=bYz!Sxrq1tF5iA;^_X9DsowM zbv1GK`1lyvY&MTfCX>g}(GkcYmua<HqUrGP5VNzhCnB9rgB)_1Mx!B`4-O7swOWzO z<*>iMpGPW{!sg~C^m;wk*VjP~xlFBA6ZewIB&MgQvA4H}t*x!UVltT^iXto)3&<gt zsZ=WBK|CIZ*=$B4k$@lwu-okz8yk}<%?X>$2AxhPt&u}6Q!16j!$>58iHQlsVlnBU z$K&PQe23fZ;V+N!Ju{Y;9B6NEhs)&!Ipng6iVEUUI2@K<+}_?se}6xs(S-D0szzfU zrlw}Fxafkx(1GP;FUTR6m6w+jEul~dLqj8QI9%xMeTB)%83Y1RsSXYf^Yrb!10Om% zy5MvMKn}S~p->Qy{r**Sb{hF1H_yU~)>b|0>gv$eX5jKy%+Gt!Y>7ktZWjYzq9BJ{ zR#sL<v^pGKbaxN(_Ix~pWz5aFu(06efvxb?1%7c5*I&mlnguG~e8ZK-m!B@(dcjy} zX(^$1ItBFfjPTHc{2Kwz8gF$2cRq-y9F9uJ?|(+UErp>UK*=*9bFnAdz~pi{Veoi1 zcvz-9R3B65O#_X)z|F`Xo+N?uPlF;WEG%R)nXJq27vb}TI3iY7!o2Qq!l)lu#WjN) z3QkGO0<KP`pxpsvw=KD|+P((H$K|4;qL$*~V&lI!bK~vL3j#p(bcuGHT)N=gNjar4 kjTdO%#|o6sn|`nT0wjD!%Ur8m4*&oF07*qoM6N<$f?66)nE(I) diff --git a/interface/web/themes/default-304/icons/x16/safe_exclamation.png b/interface/web/themes/default-304/icons/x16/safe_exclamation.png deleted file mode 100644 index dda4b8a16cdc7ba7b12422ad065ecaf0164eca69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007vNkl<ZILnoj z&ud&&6vsdJzBlt`-lUyQ%8X>DKM1V_QCu{2&<az~g-C2cNQCaX5G-UZxO5{fT!^bk z+P}ao45&~SZn`i+XvvT!DTq_Ms4b6~I?|c)Ztgwzy0Do3QrfdT96sOg;d_pno0~%^ zbsCuB`RaBE;k!75KnS6^xVZSWwf2dr5W*9^IF4CZSU3+5d+!01F^1LE)n}4!x7&E{ z6+kQ^0NOc+_nuCtL!RePb&_QnD=RCsS}jCGKMYViJ3EL7<MEimVDMDs_4Re;=jYkp z-bO^!zsk-zZLLK_u-0OXA<Hs0H#f<$3}Xz&7#fWROG`^st5uwH+Bt_75ky2;Yw_M= zt)<`ZQ!b};I;SX=%4}_2=f;hjlu9X+lanM#iiju?*>&K(M?}c;oL;X-z24;F#S1hV zEr!D(`_o^jhR>OPVG9v<9Xt%UcW=zyyF)|*-R=gnvuEjcH%N*Rdy2pE@@pT`sNEvc zyMWj^2cSlyF~i{)?-kAFAvQLya_Q0v2M<p3<_Sf8>Ii!#${aX!jN$z?oOA!g_yC~u z+@W<5r6MYoy_`Jx7FtJW6{yHpOdWWev**5H>B|{bFaHSG*g3Vkf>H&ds6ZSSNz(~R zr3y)slIZK~+m{lB0n5wF<fGrIR%2c{GB~QR#KstaD2fVbUEs=<Yma1qxVFsn8^`$L z&ozGd{$u)PjY>V?_)Gm)KX~V+ihI2twOTES<09?$2|%HgA_PS+U5cV8lzM3Q7qjnu z!Ec*05Ra%gqNa1au7H_xxqM1%U4Q)YKKaPJd-}}b7pGcDO7KkVf1lCdTLA9d9*us! reCsC#H2>>qE_}wP!14e2tE+zlXqQNA<JOC-00000NkvXXu0mjf3Yu6Z diff --git a/interface/web/themes/default-304/icons/x16/safe_minus.png b/interface/web/themes/default-304/icons/x16/safe_minus.png deleted file mode 100644 index 5d3f4b7693d83418e37320831085883cb7ab1460..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006#Nkl<ZILoDz zPfL_h6vlt&&Yjnp5i})-n!zCG3xqOI!W6ZP0znsT+Z4FyL$qqyA`EL&pFn8iw$%io zIhffW8Yu$vO=Zdk=k?xmZwpH!TNItm;XE9k=iwY4nV6VBL@ooz`L|k&F+R32Mq-SW z>FMcv&bdQdF~&ofwU()=sT%+`ga9B}meFW5{z|%5s}VvF0IRA1#(Pf)fqK18x7+=r zlQd14ot>pxt)i;tR|47H-9=UDbUJKqZvIhuadDB!$w^jLR!~*hSN7f;=NzhvbB-*_ zNYj+%<z><|CCf6hETdd5Gcz+oe}6yTd*i*ws4A)|&N)H|IOo{d*q~S}QLmq)P$=^9 z<ttWK-%}`*7#tj=r>BIfimDzs2qB=Vbh}+ztrkN=6&^gePq|#B-EL!T4>1~yv8b}| zz<TciObCJP?G9U8ZB!%8<`S1KU8UJvB1sA)Nf8l?F?ozh@ZRqo@dtr?`_`e|?ht}d zshnVGX@R-9S%!yCGCF#OBq`8te<4O?d;2Tid-;{Xbh{p75=3(J_V#i1>;;U;A!7FX z`ubbO$FI<6JjZ))#@5yj2t@Maa(S#xD3$VnLBt>;bne_n-@fLU+vVA<Esh=;<od@C zH+!8sWwR^;$mMc*jL9=U|Kia9`<e?}yLkRLbgcUD(W4RDYPA>`80fJ!p;j9O1Q8)d z0rqn6?(`^kpFaCJ0`RHzW^D`R1sEw7i|33nL;n)R5W?r3ot-BFRQQkj4#@N|Er8V= QD*ylh07*qoM6N<$f^D@W%>V!Z diff --git a/interface/web/themes/default-304/icons/x16/safe_pencil.png b/interface/web/themes/default-304/icons/x16/safe_pencil.png deleted file mode 100644 index 45eeb426bb5c3ca8f22da3ffdd2c8a9ed1b22d63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmV;(0yq7MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007yNkl<ZILnoh zT}YEr7{||o7^3%ycj83|MnXnjEZBu)pbnOLF%Y_uC4C{v+!{eD$t;`rQLG42H?3)i z`*L6J=6p?^vMp!GV3>0;9pZJc%YWy2yNOm&FZ_5oAHVaQ^M6@eTN`U{Z*Spf|C1JS zS!-)6ap&yp3@0ZiMI0X=7jb%e3UbJ0YPFi^%H?ucTwMGove_)iA(yFCD&p?Z(Gl!+ zJM#HFGMP*fhlhuVMx)T{_1N6p1Uclgrluz1UOJt|{QNu)4i2!rz5QD(77OC>IBYf> z$RU?CHZ~Fu_V@Q;wOWx%r67tTTrL-;rlzDyV`6D(30kdInj?o?*3i&EJlx&g#mvkM z_V)Iqje-#3xA}r#P~e^4@HHz|R(voR3<v~5Ajecy#h6m5B)Sucgw%0oX9puABS<Dw z(tD|zOwTYkw*ZeP0Hg6S1oI>|%E~@($z)2VP$-C=SS*IIu?hHm0Spg6$L#C^*4L9# zHJitI`YwKhFhA6Yw>l%x-w&ruCbIhadZITHS>tmizA4DFutTTQL!;54ug}P3HyjQD zjt?(*23;r=3b<KWDNZwXgVoj55jvkQguy{GyxuU+z>DSO0G!Sc4{ViRU4+;167ODJ zLLvVM9UZq(Q&ThARZ+oMZEY=~_xnW*4NdUSKJsU*b2i}jZ}GsQ2)JLvJ*$x9r@a^O z-Zlwx$Ys^l)r3(Hws=^UA|}nfn49>~dA$E3h6lS53MD`exlAsXv-0xtfk-5da5%<^ zV|6vb>n8*~PI#=>C3$-EDwY>4{P)Hs$RU@$D<vf*J*B0kreEo7KEH-<X*{`q?(4P7 ua{JF~<d91TRQv^WHp|?%l(ObO?fDLefjvkMJyEg%0000<MNUMnLSTYNs7c5G diff --git a/interface/web/themes/default-304/icons/x16/safe_plus.png b/interface/web/themes/default-304/icons/x16/safe_plus.png deleted file mode 100644 index 6721431c6eb37fba73a9b029a2b5c7e31a72a8ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 687 zcmV;g0#N;lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!QAtEWRCwByQ_pV_K@|RGc41j+B#?j= zQmsj&R}DyF4>a*)f_j337vs^CgMWqxFB*+B*gwFNlGH=fgT@ml41`i>YiNjxRD`-s zS(hIRIB!&JY!mBj-n^N&^L=l=H#01eNPsbR3&2_YUu%rV;}unO5Ee|Q(@TTF;K(Za z|94YW6{%F}z8sH6Bl4`*>mirRohWrQ8il|yNiZA^$#dJbDTr7shHkfe>`t1^CbHQq zLZJ`@jvppq{eGW<FijKfcKg`Og+c+zWD=E1h1Rl3W?`K469IXWL)psZvh*}33j_kl zWHRu0JQ71#P9S0<AW0zKYPF#2ZXss@E|-ptjVg9_>SFAM&*y`txh00MlN}J40;IoI ztHJLNVtM(6$QpuS7^3o;r~?P*DoFM39jMfi6e2h{FtN91hy`O5izUS4ccgbZUBYy6 zUsOTh5ayHwvWUM3Sf^u(OeW}bg28hrl|Eo~HH(><3y4InNs`Cr64vL+$bYXA0Xs~< zyIor{Gp1l_>NMu(uZy`N=6vF-#wOyo<5*i+L%??M##Q4F0b>p*ibH61!tHiYNP@&Q z$CGbQu|4<*Wu#z#xG#P2ZvDZ)J)BeNctleOO#1Tq^&{tBJXOTS#3eay*)7c8n1%R4 z?_RwPt5k8X*Q-(HXf#6QkXgrLlKAr-T={evTdz0eOuMP0_r^l)%XR}_?L4gt>$<+c zIrsnT4Oolp-t^-6>D}k`UG3TMk!4x$ReF|U@bW~jsN+2I`QcU=3d>toUt)d;FaV#( VMH}06a>M`t002ovPDHLkV1jPvKAQjl diff --git a/interface/web/themes/default-304/icons/x16/screwdriver.png b/interface/web/themes/default-304/icons/x16/screwdriver.png deleted file mode 100644 index ad69f58c54334b0073b0c854be3dd0f23af32ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004@Nkl<ZILnoh zOGpAi0EYjGLMkF8LxK+Zf}l{)Lz19g#FK<z&_RMOdp4q>$0dTGTNDHlc&SS-dw>zx z+9fG4q4rewx(XeFAc*ZZM0#!3z_-f|^L?{B3mA++ArK0MkVqtcB1V*OI2`*X4p7`B z4`kY8g4Jq;)9HlQ>qRgaL^K+OqA0RlF6&&b)I=YJG`S=927y2zfMhZ$i^Zbma=9e6 z82Wi#;^Iqk^Gm?v@gN?L%R-@`@mbb(-XZxq0h`T+NF*XvRn;60hy3)-^#T@)1%AI@ zX0ut%Znw*ChgK)h>UO(jCX><l7V^j6^-CZ{_V%UB8_Gt3k`TT#prkJ@>Xkc}wEj78 zE5rmNN9CcR$5qOwzyiTXMvVg3LP$okPl}=+Q)a-IGZMcBE`*q3<m5S((hn#fa%X~^ zk@zv73Ng!w`Z6=4Z&T*n0wWl~AI26iN8$W+eqP_8yh(W&{}}7QRpqqPlqZ2@PIZzF zVkYgRt@;<5iHS6kM$$k8#(;@6%HzNaC;CV)agrX=O}eU4b2Zjd4ZTO+08_lFK^j|U Q%K!iX07*qoM6N<$f|@VT_5c6? diff --git a/interface/web/themes/default-304/icons/x16/screwdriver_arrow.png b/interface/web/themes/default-304/icons/x16/screwdriver_arrow.png deleted file mode 100644 index 6c5374899623cc1b83917fd68a2790566e562448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006(Nkl<ZI8Tj{ zTS!x30LTAdEF{KAX~P5`+(i<qNi*7Lx<)XBLdL>+@zCwz6cI6V9nuIwkVX&Dm6~PJ z1u1J?VB$kF2&G`1)D=-a*gcD2&_fUe@%2Ai$!IkX{P_4Tzu);d2lW8XkahU`vDs{B zZf-6_6H$Y~U=s=j_6mXbq`jmB<>lpYxm@sgJO~5=Xl!hRs;XKpmy<lI<^^_AdO_a( zBjES@p(u)$$z-zC)zuo6nHyZ^;fG}WKY`lXT0|ldZDeF5%ef)XJpE*-NWgBlBNPg0 z>2x~lbUJ6{xdg0MD||kmmP)0v4u>OOo<qRwcDuD?GMVKq{>W9~7%JCCiw2_P#!XEd z`Yo5%_z~>=j5R%<;5+pS?!!+C2XrCo?g6@t$E7jyh`Dsh>S?iP;JFZOjNHkE!(UEQ zz6*3EoU71qZVG|(9}|>yj!MD6m=GExsjsRk2PiX8w?Vyt6-S<7<<SY_t$N~vl*Z^i z`BKRXJP=|(BZJ?fQF)8<ZN7QW+8tQlHJ;!>-N3x1UvEiH%42V(H0In>rUPjq4lt7b z-q9hiQRZ3~BXG74qv6V%srYLtw?CC~)7UJr2`Ra+<0^27!tjsIPI-y)Wy%|8eh@5P z1r@so6N`5Z=my3OycZ{BWK>FH&OHU)z$4>p_fXyk9H(a^i%1z+Xmp5~EU>injV`+{ zrA6s`Yz`gV%r${+K-*c$t-uK`EG0F>MXE?8srVHwGu6j>=ZCvTP5#!coSVqJpR&;% U#2-VKGynhq07*qoM6N<$f*Xh>p#T5? diff --git a/interface/web/themes/default-304/icons/x16/screwdriver_exclamation.png b/interface/web/themes/default-304/icons/x16/screwdriver_exclamation.png deleted file mode 100644 index d35224afdc82e7e29c4c6ddefb98f50b985b4ddb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007FNkl<ZI8Tj| zUr19?7{I?T41?$)-0-D`+#j%lEw&yO3mL^&1Y-!>L$#nDy6n*sFU@)|L0ykUp_MbU zAZt!t&5WA%$KjpZjk<{GDnV#q3kMUFAd1s>rZmiDUik5G&ON{1J&eI20B9$U!TLw7 zR)gE^E`^g2Y&M${N(Ig%LWb~{mqTS`CFpcIFquqHQ&R&DhXVvb5OcX4qocx_fRCgZ z;>$k*R;v}fUay!;CKbJ2FOsrygAg5-i1!-=j7B5W*4B#gcwC`1msg%g#K?aFRaI4B zx7)>7ET(9++M>LffJ&tTi^U>Fqftep(X5p>5!h}p7{qWmtk5k);RJ&GqzGSc6sRNm z`bBYs%Osp8LaXynq+~!wG>-zvED&IP3dgbHZFKA1rCjhUpQ*>VjR4NNz%*h#MIt$u zD}RIJ7XU4ZL3GZ_N0UF7L+o?Pp5$w3fSiH90`Cw-ibR(Lfen#N0rQ*7ST-Ks5?q|W zlJ|H#ET3u0^L0FgWkfMBj(CA0!{6)b*Z|3c^yO!6gjc<IL>b*LEoLt9e;%8k@iBQ= zEAjo84^{&)#ETS({b+1t4@suImdGB2=RLG}A3NqgoLZQkbg-dl1DjNAOqsAQ@O}Os zdI6e982i=S%z8+^N3w^aCtV0nyYS#xzgn70A7-;t=E4p5oSizrUia;g_<OhokmA2~ zkmLq{t8_?BR1iD++p#;H(0<E)+RL&ZtJ!kSUznV<v@09AiJfo;puU6Ta{$*!+DB9q zI%0RjS?Ipq3UX&Fq=IdbBqqArAaN&9K=S+G`fm!aMPtaMwTA!z002ovPDHLkV1g88 BG5i1k diff --git a/interface/web/themes/default-304/icons/x16/screwdriver_minus.png b/interface/web/themes/default-304/icons/x16/screwdriver_minus.png deleted file mode 100644 index e9b780d3c2eedebfac2a69308d429b168e4441d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ZNkl<ZILn2R zOGq106o&sRm0(3g8VQ9inimL#1R_FUBxKPLD2N2&E(F{RE@Q=ukBtNaZWT&xp_{g7 zn;IXGkcFcgLkn?0XQlgg8*ot&3T6B!4r0cbT=*E~%=y22ID>Hj@5viHJj&QG(&=<N zCWso3$0yKE@Ky-?A&V{-JRT1MfdC?r2x74qlF1}gRh5lK!(^-4BA8+5lKg%|pePD5 znT)L0>qambl#JX?@Pp02$ax1rI2=YQm6Eku&EUJd8@EV~x(K{pFA|A_)HKcT`~9+I zQQZV?w;R!DRF=zS!{_tK2b=C9=nsWLvQ#P=oI;}A=^)6Fon0x9oZ%@uxBZwv7h?1n z(9N|q(|WR{|9-I8NpK;=93=;h$;qpC3?Bl8Dtq=E;kJS^AtWW`zp83h7^YyfVmB7M z34RK(KuPsFmos^rzR#NpzLG8A1DkaxR=p|Egjl9T`?s`Ye&+|)3f9OAWb+pNI-50} zSao~@Rv0+>pU<10S@^>6)V+<rCab(@h2NZ5b$kR)t!;l|VIEj#|1fz*hR7fpu>V3I zagko~g!B-BX<*J8Wfs_A;T0Jn0rHZ(AkS^-kS%*^i<*)fI~mu5Q=3n&00000NkvXX Hu0mjfmY3m> diff --git a/interface/web/themes/default-304/icons/x16/screwdriver_pencil.png b/interface/web/themes/default-304/icons/x16/screwdriver_pencil.png deleted file mode 100644 index c745d7ce8a588901b81636139306f141c7b5bc7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006kNkl<ZI8Tj| zUr1A77>9pv6pkcDwm;yNn_CpZ26}U9v1T}h*%HCsjUb3aL69jO($a=t7(|dDMkIk= zl+{vc61XWyqi6}XtLmnUitYwo2!kNLen-u;t@MM3!+G~T&%T`<90M>)A}C#UyB!@J z9p#7;JroK>Q7+IWg0G~fq5@8*6CRHT_4V}#27_p6X@RcmMxjtp+^TO0oTK!CeECNp z5C|Y1j~lsMF7Nev4JvCVc*4!E$-Dmq{C+>$+uMz7Hk;?YDX*=^WPY1~%jH5i95ynU zOun|Z_K&=ifX!xurfEhhmCC!_?p66HKl@DHknIAMKA+D>CX;!dVpVoH92l#s+fksC zJbh*u^S@>PVL>bwGXqCHiA=o`36%{ji8L$#OKNCHnOAP9H0AV!nD2n+qNeq!L_*Do zES3b`i*z$GQ)p}ZK0-MS45ruRxp6rji9{|Gi$&F3U48oj(7YwEEMhQ{TG4eiOPPU& zxlQu)sLU3>^(a2fzN)G!-~G-10)NjHMqU&<JJl5BX@2um4NByZep!f~uryk&R%`?^ zB3Bv7{OIjflax6dOj4e_juQE17n)i_7FaA6QwJUa2?{TN4h*Pq$`h1hoX0}I!+sq6 zTW-?Uyp44acxyiGG0K;LI~>``0kZ$rdAXrhKC0nsvUvIwPI6X3_K@9V7ZIERy6;lH z1PpUfM-CAWsUhlYt2}RPkf<3X`^et)&}!rtStj|+BG3Do00000NkvXXu0mjff~yXJ diff --git a/interface/web/themes/default-304/icons/x16/screwdriver_plus.png b/interface/web/themes/default-304/icons/x16/screwdriver_plus.png deleted file mode 100644 index d8fbbaee3ca0492e5548de3b373e6a15a74017b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T0<!&yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006MNkl<ZI8Tj{ zO=uHA07kzN*Qn8IYeG;wm_ID0B#>SL(GU+Ipp+U(Zn+4u^cXE&v|c1o=%GC*6pgls zKZiz*R)~0T>&2iD*J@7fP0)e|iFgnMLB?;gt+g6W7ap@S%zK%g;4pwI<QV>b+-^6r z*=#!oh@MO)2hc8XRtPMU^9~0*9uES60HV<-5{U%T=`?g*H=50+<W_xMV2IKZ`S6cG zJRV0rpEv6DdLtMN8dU5P+~ek#<n4a~kw^rYOvb3yY7NenY(IC&e20M7>qRP+GECEK z`2GGhc_RUr%Y|4hW>l-yhR^3)FK-~=42Q!;rBZ3|6l-$M31qi-3>3)y2Zk~KOAc+J z;0DTM)&<P;v=3N9^gjbEIX*7c$SqDB(rmF)U{Q!+MjkZ>2fs{FehQ3D_G-3Jc9)3N z8rucl2w^Z%{i^HoF=Yn&Ck|@%#+!S9J1*<==MkyK*8KOt3n9)i^5k2gARkhm<1f#t z@4ns*O!t(y*;3>_>2meGwXOoD5EmFRzmJZ}GG(rfF@nD1TY;(F3hU^{lk!j0I%a{3 z6rTSm7UeC<w<+gZSHAM39l&H)2@_qGqVN3?x%%E(zXrTgw>?971h_<nR}6k2cy{a} zJE8ssU>k}%7WTahNsg~M-$VpX0mD}*p8+m&Aw+sffE*zE$=;P{H%@3bFr+OYqfK+Z bSw(&Vt_kXj9pj*m00000NkvXXu0mjf4lV*1 diff --git a/interface/web/themes/default-304/icons/x16/script.png b/interface/web/themes/default-304/icons/x16/script.png deleted file mode 100644 index 672c3c92e31e891258b13557310e998b2acb0571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmV;c0aX5pP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004UNkl<ZILnQa zze@sP7{{N*2BV=MX$S)mPsngckQ>e+By0#=L>d|-dT9_68iHtZ5R`Ci3Kwy34eTF@ zC}@$=L^J$(d3oO3^Arac@gBbLnLgj=`#!vPaFES{NvcqQi*i}MtW?-MV0Is@1&6tu zoUc}|49>Yen+YM0m$Bnw(F;52v=#P=vNIeC>1!Ilsnu?GGZ`;!3|q;h71kJy_*1JT zggoWKsT5!dz-A(0h1CZGe&1*aAx}AT=3l`JuKCbx3L$S>@QN!w;;JIZ+ZMcy$Nah7 z7DC>(prfk1-t7t@Z(Hy&neb+>CxpCh!2rMWJ3f>M@_!24iULwRZgQedr@W7AiXcxp zbLQu`WEs|@QP_yZ(weSw6>kwio^lARg~PuEi+(?>DvFdZmF{%I;9nRLF~eWo6^WcK z2ZLZ9r&E%GOQFyiI&NTr2s(R=T|0d~+TBI7RIuXkc#akVf%AEAxZU`2u#E(0_8W;k VXemZr+s6O^002ovPDHLkV1j<~xRn3^ diff --git a/interface/web/themes/default-304/icons/x16/script__arrow.png b/interface/web/themes/default-304/icons/x16/script__arrow.png deleted file mode 100644 index 462eeecb7236952691439fdd8c7c4496e046e22b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005tNkl<ZILl** zY;I<N;l%E4hN>k?ENhl6OCtsY)%r3Z8xY&xZrQbJRqwz5|NsB_`xhq$$pbA*OYQGh zVQ|XHLB?s{fs(I3f5wSF{`~oW?zU~4-3kg+KrUv`4G%}gX-~g=`G51p3!E4v4^n5I zn8*M$gn>ajG!z-9J^b|P|COgtabl1>NF7WMh5?U(&b;>Q8BPq6$7{e7pc8KZor(*C z<nbEt{Oi~McV4~1i9zys4S4<S+y94e-{Qm|dAtU^`|;!dvkxDz;>LZi|0ivD^WU^` z-aMny*$ldQQ!owq1dQi5z<|PrW0pVuKlADT|K@#{ADB<R7o*pHiGe}R)|Np%AOMCl zzWx6F|0B?uFkHR)!T->?H^JDlcIW@-wRitdc=Z22Q1cnx)(bHVARuOG$spt6!XWSA zk@NG<pa0*0u7Kg7jnDsgJox`V>GJ>oVdoLJ<mUhX%9V%DfDPc*&|na?wN>w$KY#n5 zfB*jf0vZCt#Y->!cWplm#@6+_|C=wo`#<p9|NjzMThB=5YzMo5i%VTypV!2s7?=(I z{{tF;3)|J~_^)&D|9{?yd3U%Rit<2uK?Vr1Dk&wi>FAUb!mKXkCs}<b-D5V0sRioO b0qF$*9yM=ZLw^&q00000NkvXXu0mjfwqzCD diff --git a/interface/web/themes/default-304/icons/x16/script__exclamation.png b/interface/web/themes/default-304/icons/x16/script__exclamation.png deleted file mode 100644 index 5296a607c219e1bd2d091073af6f04b277ffb331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0<iswP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ONkl<ZILnQY zPiPZS5XQeZ@9mmwwrvO@HVr7L2kD_i1hKv7RcKKJW9=;<)PuKTp*{C#58_cg*rUdS zU<E<y!GH)AJXWD7B#kB}&8pco8~5#7PsRLk(Sf;qGxOv7hApnI<FF!;2-4~FED=rP zKT0X}Mf3_%%GtQCU%8dfFDs=&4~YoZH#TkvA$CQ*Uhkbv-&<W>KCtc3V_nzrczb)R zTCKj!WHNiA(P;E7v>XSv<AefC#&BnI^QmDNdjKE?txBcf`F<!sDg~t!Y}<xy+Ym$f z7y~gDo_}CA1YnGTh(ZDEUjWV+#9shj^C3Lz1^kJN{f-6~1!K@S?{6mIx8EQ;bq$?X z2{GN%LIIp;2q1sF!pP`2qDM5u%p_*A<*9hoMLg;bM-Yrb=lqWl_-Hkr<5>1I77LGX z|Lz%_JzhR_HTO;ckkqc#AU*G}Nenn}zrBX80fF}w#bOaZzkft3k(!V`&U+G|a;XHX zUWa4ba9vmMz8?^*{U?Zy#PHeL!LzLuG`sH+A5WyDMBekj2ml<*LbuyJd2?Z5juSy} z4#7E`)?4`AKKx)8IyEsje;bBqBN2CFTExsri5UW51VNB<JDvHJLg4}d5JV6}sC;;U zvC$TyRD-EGa1PdBY7R`z#?j2!iS92fF#ri|a`G}WjO5@$m(Eo#Ws{vuucnc5HIgo4 d2tHM?^BXve%^3FeyO96@002ovPDHLkV1nDK1z7+9 diff --git a/interface/web/themes/default-304/icons/x16/script__minus.png b/interface/web/themes/default-304/icons/x16/script__minus.png deleted file mode 100644 index 126ecff575eaef61a9511b11a60126d5b69fc7fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmV;_0W1EAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004-Nkl<ZILnQb zu}eZx6o=1}gwYb@6b2$aK_ko{-td-?upw}fXehAo5#b<21kn%}2ue7nM6`&3je`CI zjg1inEmoRnMVVTbc{)cD9>^6heADlo@BVm~2g|`Abnr$Zu$xH8dQ4>Y?7TER*v zB!^R}!xkboe}9E=PM4{^Xw(dIe!mv=lfv@HhmiM115YxU^n4&-=Eg9&w4_DNSF3ni zEDGVA=VrZLAPIog<I$q#DiyrS=Y??2bDf<o!2{L2E);}t-c#^M6>q4j2+n&7o@zC` zE0u(B-cwMn*D?3<B82mvg4eGvEWEu5;k+Z*v|76b6?*4q`cNV`=edZ%0B1nQs3;)0 z-5oaSKR@_RHMLx<tzpJ)Z<C###^b@k94%ia0pjccgDk_C(+T4)m%q_$Vx4Z$a!yO1 ztE*kaNYWMzSu8NBC{p<JG}~;o@S7xB(mo%?NW#P&4&2u1?)Pc=;J<-hFG*9wGc#NC z8(@nBBKRz*>XCk8!p+5bmjxpOCeymkX4~n90i%)L4jhDycmDtp|6GskQjNv{0000< KMNUMnLSTaP5!ToM diff --git a/interface/web/themes/default-304/icons/x16/script__pencil.png b/interface/web/themes/default-304/icons/x16/script__pencil.png deleted file mode 100644 index dfc36a7808fe64b6eae7ef1d46e57d2d96723ca2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0<iswP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ONkl<ZILnQa zO=uHw5XEN?6^!&?z#u^*l-jK%8j39;LKa&>NChF6T0ICZ;^HA-!Gl;l1bV2nXpVZY z=28k4G{k5`tB2wjUd6AdO${+=ZEb1OG~3uD<4nWC(sjXs-(}yt_kX+lhciP%pdpWr z!r=J0_u9mS@;}h-NzezJ9Uk_MOitdYBVx5yGlg|JOt}z^wn9%htVdBvTwGf-Wwlbl zu~aG<7#L{f#&Ed5UyqV6l`uU&Zwl+Y=aFTg5CCUipB^P!EaHcJ-W1k(PxBZ8a#ZtE zp<oK@TEL*wX$<&D6~9nbGg#-nq|FBJ1i=_Ex4w?w7ZyxmU6!Ql89|7@5rpH0fW>kd zvr9{+e9UC<oFpYM62XKZOdA50H#V@avhq*9&7|;NJdUcWV!&>{83PCy0*dsXf76HB z&g|?{oPHQYwQv;=c621HR_l>FK;!WFKn#U6E|xbpag|;}PcA!!FO$7n=KFWM(SN!t zYInOq7Dd<^o7W5b{C+qP42CP!Dwe5*#$4_NzIt?`VIJ$one-I$9szqjo<_i~_IB9g z^NAy|*pq6#j(;eGS^o7IUq5b`AJEB}^fRo{RkumfrQOs(8;eC0-OZhymr27q1!%lY zMG#AAjK_NL$Jgg9W3Qszvb42@xHx+`z}nQ(a(;))b!9uG;i=%x_lJ({zpXuMayaPz d!coG--oHhJU6e`p>)!wX002ovPDHLkV1kKf6mI|k diff --git a/interface/web/themes/default-304/icons/x16/script__plus.png b/interface/web/themes/default-304/icons/x16/script__plus.png deleted file mode 100644 index e6a4934519bfb0b09c7c538a67628e709347004f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmV<Z0RsMsP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005RNkl<ZILnQb zT_}TL6vvO{qsY>HB#Dxmn0&3+#p^q{QBosCS$K0Xr6l>dqgF$^qQu$-DK5BB#Fbnq zwM&Uw7&bCA!x*#UJge1P+cTc}UH#AbJ^$Xf2Rf&wAcSsa2F6!cHIr*=;(wso7LW?M z4F-*IV`DCWi2k1+E-a_Z#D0@0AL{jbDdGo(uGd#CFFqfdcXqa$hKBN4V<_(EkRm$X z-theXo(s#_T%}G2BmpSWYNd#Fj|Wd24lXQbbD^Cu!41_sbvn7QJgVT9DxOhQ9xRV4 zxO;y`+rtAFmPZx1yk4|FJ#k@qRKfG-Cpz8kh;$tdV(DH3%1wobnG;ozF{Ta|c<4Vr z(uayf$#yOFJ&$0lIqNFMk_KQ_0OSY)C|g@Y40yl4@r7zi={caAw`ziDT_VOVWZG%j z3d@Q`U?)SPf$YXc$Zc-c`}}_NQVS_%>(y9y*A@oMr&xo6q=EuS7X+ozV%hZv0{BG| zDgFC{SiT|zQC$ltn@+ukS-BPF<iQ4siArTjvRXY%&j14?;8C$8VAf?3$|mJDR-ElJ zfg&z1uQy($8vP4dyW%*eH{k+W;x=hd#dd!I#tK;`+fdHN00000NkvXXu0mjf)+^u@ diff --git a/interface/web/themes/default-304/icons/x16/script_code.png b/interface/web/themes/default-304/icons/x16/script_code.png deleted file mode 100644 index 04cb7019960e6e1e6ba90b9fb46d7e1e6297dd14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 494 zcmV<K0TKR*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005CNkl<ZILl** zY;I<N;l%E4hN>k?ENhl6OCtsY)%r3Z8xY&xZrQbJRqwz5|NsB_`xhq$$pbA*OYQGh zVQ|XHLB?s{fs(I3f5wSF{`~oW?zU~4-3kg+KrUv`4G%}gX-~g=`G51p3!E4v4^n5I zn8*M$gn>ajG!z-9J^b|P|LQ$^z<AHuv;VgoJ^KI3)2DC@k_V}S>A^7IG0>Uk?%zkj z*PcCtV~{*v1D*h#xNiUc|NAdo0MjrG;%`53;y*|puK~}$e*J&x@nf7AB#+mC*WbSV z-*ose3O;=03K;J`bLKxt9<KrKe*E}<9T?iUFi0M+0iS^J4D#!Vn>WEUjD6tZMKBGL zM=?Oo)|Np%AOMClzWx6F|Mr_VDEK4L*)R-}2dRVU0Ru5hO9mMi7Y2C`kDQ->{`}u{ z`ZO4yzH<lc_isR3VHhM2QU}Bg66WR*1GqIb7({Jt)w|};-~Q*{zyH60ig4k-z@#o_ zXO}Oiug?GjTwLnv`n)D4#X!0L|9}SI!XV(8mNuPBO%3FBF_2!60Ya=wO37?GI_1P* kRyjFf$T1iLu?|Qt07fEM=w1(nI{*Lx07*qoM6N<$g77Kku>b%7 diff --git a/interface/web/themes/default-304/icons/x16/scripts.png b/interface/web/themes/default-304/icons/x16/scripts.png deleted file mode 100644 index c36414febbf41eb43d79abcb865d2b2d0e329511..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005aNkl<ZILn2S zT_{6g7{{M0E~L1T`AD&hq{#A7cH!&F$1bF_aN%OLnv@G9N>Z+NiRMC?ld=m7%NpfI zT<uCMyHc2@CHa`q+8)m{JM*5kled0#-se2e|NPE5FX-CaVPJL^hL@ILPLg2J=}hlu zwzk@+W>$ml_a~dP1q?1Mv@J`LErE!!cw7P3sNX!gvZBozFlo1ger(Jfp~i=o7X{DJ zD6YC(hppq|TAon^h{}|{?Y+9feV;GQ@#Q7ny}x7K(2%*oWP(ns^)KK*W$E-3&jSIx zPX!Rbu&Ruz^2N;!p85S42!$~C@u3WmFSy8h*N=}1xVG+c;cYma<S7zS4`4k%4T*4V z<KO^;WD`sosRpnfYl?7f)9uDE1u?JR-|7LZC##Ce4vz=l=*i4yEQZxaqlJKSI)sV< z){|95<sGjVzi5z&(}ynW?w%;p>mj+s0M?ULMdjU-6O1Pk$=}&$v8?6S)EH@0L*zku zPY+b~_5y3Mo~$Y=mvnUO<<{3vGdUF%^y1J&G!jKn*wO-}U0phx!*RriMphM-H3q{x zHJ4=YYf#YKTuUKStjC%n8Ol7A51A{cs%k{m%Z8xL6lc!=0G-)Bat;4vYybcN07*qo IM6N<$f<MXnr~m)} diff --git a/interface/web/themes/default-304/icons/x16/scripts__arrow.png b/interface/web/themes/default-304/icons/x16/scripts__arrow.png deleted file mode 100644 index 9adba7a9f27dbad0e1d3e190380028a0aeb44016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006nNkl<ZILn2S zQAkr!9EZ<CEeIC%(xM1KrIa}kESKO@B73k}BMi|wWaVTa1Su+lB_i2FgCZ)Hk!(#( zG3Hc~6&Mmm4^x}1;Rs7scNnXrbeW9p*ZGTA?*%VCd~omop7Wg#?qRtG13TB!!YVpC zSgXgw+6M=>-kV*nB0jSz!M~r~SiF<qLR(u=r^n++14yP)GHAxv+p4>|vUe0*aXQ%v zi^Z1U3%@Qe%lNUjhI?M`=qal;oA$^A(qwLb;tz%33k0@!F*k?k$_ljQ<+l9FN_M)w zep~RrWY5F|rXmr1*%WXXL8&5&$#3T8@j4tvWN8V)>Z)8IKG2ZzKEz@&X!gMC#pif@ zgKvq1vVii!e3KNKJscT<z-xrfB1Hk^QKl4{JsulFoQsHG>+8w_$`ezi$?oxS{N^X$ znEZ)L!{1TR)ZLTc;AC36LoT2^F;$w}=lA1pG6~Co0H*+)y!9@szx&CY*Zx*6pgb{E zq;+%=hC9=!==q4^>n~CDYyr2UfUa{osJ%8-!;Y4gvdpqFcFbtB|KX=lsuYtihMS9k z^*wNLcALfsklFky$PVcB>_|z;afjReoGuNeN@?s5;ZW^UK~pyz+*{oj)Vmg7ngKL* zzM!UdsD|w?EX?JSt908^>9h=*ow3{Rt8;RUjIqP&s@~bWNkDDx5A3rHm=9haVoa5l zW!|IHH7TLW$l(8q6%f0M8+v!2?+&O;kIY=cNbnErk8&oWOb|B!0000<MNUMnLSTXu CH!A4> diff --git a/interface/web/themes/default-304/icons/x16/scripts__exclamation.png b/interface/web/themes/default-304/icons/x16/scripts__exclamation.png deleted file mode 100644 index dec43e245ec83ed4f987e0fe031122589a8003f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006{Nkl<ZILn2S zZAep57{|}R>_bHPsSnkcTrU<<k<8Yon#d|Cg)tCo5)!M_3L<MohK)!n>_ab;g~6Ny z!BJzTg#}Vs8`R8nZtb=tY4c?*S!*vgrv5u;G`$x#y71$<=ef`M@xO;d3gmKfSfe48 zS}nP3GLfdPuEq7m_I4@lsk1@9A4&~p5-1uQrPocSmIVOG`FR1XN9Wb5=4Nq5!CAeY z6jfKNV|36T3JI8*oy7x-<>~I48Zp}=5bz^Ydq>~sD69_0A}>Zp@I4a2Hl<R%qpFI? z>g$&T|BGzu@5eiigYTb!LKrM+nyis+9uEfGZgA7nn21J&g7gb(vUsk^Ndc_aYO&y3 zFqk3`i)9zEcy79h59>Yb?#5S62baA9zVS!d1uPzm$%pj}Jr;NzDnvt_@P0f7$&re> zi~<%f9hD#XN$)lIxdzO|%(R|Ioo2gEQn{aO+$R+Z*nv&ZgX8lv9z~z^03tu`L8(+C zJar2OU7r1|S(HQA!xw}T2?Xgs^YQtf<NYfI!u~6u<CyZCME_&4r&c9W(De$kzO<BV zC@UkI%F9p1lS%xhDVB)CX+Ht?kSg)nDMxQl1DwNqF=*TKtK*KyoV$#yA$i5cWNk^w z<`$#z8M`!ps3c8basZ#+9K<*$!<cJVDgmowt|GkbTse64j7UaSOC$wUa*o}$`Go}m zL$8m+>)1IL@NPxm%NE3DE~P4iv#$$S^`bVCo1cGld12v&Oq{M=WxLyy!?kM3Fr)1T i`Czz7Y-x<Q$^F0M9dbU|XB_+h0000<MNUMnLSTZws4&X_ diff --git a/interface/web/themes/default-304/icons/x16/scripts__minus.png b/interface/web/themes/default-304/icons/x16/scripts__minus.png deleted file mode 100644 index 7cc3666cfd22dcc92a74b66172139f4836577c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005rNkl<ZILn2S zT_{6g7=YgkQA(K$$xjMlNvX-tt)E;ByO7di$;GrH<pQZii*~ik5h3OzxmkX~T(}Xr za6>FBr7&S>`I*t$Uhk_Nz9T0W&uQn~_dVy?w*%US2524{f;O8Ch9wC`S60672NxEq zX=YY~zHj<k{Fk7`YONlVBu5MpBhjb=p3!=9huvQAr=V|Y3d&6;bBGq+1cM45!(nu~ z-Ro6dT?M>HArO<vzUVnU#nq#uZ+1>j@ap9SOIlmaWkw^^^z{4){!5m2cX8k6!|S+! z0ESa#RFe<R&vDP|Mc>^W`d?p_0{H_EIq&TDRsqi@-EO=L1irWrh13O{=cP>|Jeyuy zLqFB{<3*|h&f`oGp3QA+V1Pu-)5nLpfb-;3G1;}Xh0pY4<}DJzLW99VK(|(_6mXuL zDkd*^Joru<nJ67}c3oYsJuMBE0F(mGlT*dyWxXD^bvpDA^BT>=Y(m0?1aQ0vFatUD z^^m9617~rboGK=dCnpEPCKLX~NfOXhRzg;7ZIQ#}+T@o;P8E|o)6);FwD>nRE=aAY z(2}H|-?nHhrhsRS7Ry9Raj}7ZZ6=Xoq|0EO5k7;&{QUN$($WDn5_5CuzXDyH4BlfD Z1fOk0RTf9UQIP-u002ovPDHLkV1lCT^F9Co diff --git a/interface/web/themes/default-304/icons/x16/scripts__pencil.png b/interface/web/themes/default-304/icons/x16/scripts__pencil.png deleted file mode 100644 index 616d55501021a2f43480f52ce8c5a62bb573a60e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006tNkl<ZILl+u zba!X)tEgazXli1pTC#+pVbv-)zkK0BOQ2X9E)10S1uMp8KyYoXWy_K!z5o9I|Nr~% zUla@y1FBDpZEsh>YC!(XnG7azacN(H3ZJ}xkAmNR|NejK`t_SFl9E(FdQc2Nb~4cP z#XGND`M>eZ893f`>C*p4pFjWC4h>B+h>Bux%E>_(K*-5U_U-$B^yba~kD&$tF#`yL zoC?D@oqX)ZjsJ(QUHgCY#f$$>zkGokP^GQSzyLD|BnWce)o0I8Fi33r`t|?szkUtI zFTZ{T8?aeSjNv3BBdP%)=UoG8LdGDmS(`Tfe+qQXQ>cp)?d&@4F*2?{#>nV^VgSf_ zAZH?Dkl4H}TmHWW8U(_(9zOh^U}v}Se?!Cnjf{*3Q49b%59U;4CokH*{r@MR%}*Zf z{=aVH#{b`eY&R*XzWEFcZYTzToCk9%vXhtX-1+~-Q(!D?_4@z)S>=BPUEQrhLPC0e z3=F7Y@bTwQxKm*mB(`=--~VIVyuq6L>cyWLS%{VbwMqgpH-oIJD}$1^H-nnLf9AK} zzrjvL#?PMY``_Qf{{p1Bv6%gir43&VP@^#r8v?NygP^%NgS4}=dhen|+dzrt2hb20 ze)HlQ&}JX7&Ha^(N0WmYf`FQ&pcvu;0W&jApdm$|)b{t^KNNgoTjT%#UvB>IC}X`8 z=FSie)WFMt4%n2HW7u_d%dlaf^#3SNw&TVcj44oOOQ7oq06?crl2(&Y*#H0l07*qo IM6N<$g0ZwRL;wH) diff --git a/interface/web/themes/default-304/icons/x16/scripts__plus.png b/interface/web/themes/default-304/icons/x16/scripts__plus.png deleted file mode 100644 index 00bde07451603758ef41f4157bf597d8534c1e19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T0<!&yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006MNkl<ZI8TL= zQAkr!7{~u*P6QV!Bgu$CN=;0NX_^l`=n@~S2E`(zgd{Eu3@Iu{Ajk?#VlP3)#wc93 zAYX=N$$aod3LgeBvEd*PR+=$%lrEF8eVy;(wR^)$4?j5fyXXGS5AH!tdppj1Jh<%j z;+`yHV03inxo>2oS<ECO#QSr~=G_Dr`}><8$g(d_MA=+U2hYTQ>FVHM^{#?mzaI@< zT~bDD{F+YdSl!&DC*km$Q{COw{EbeaO&0bSk@<NVi$-^tnwz8K`a0FRT+)foPPF#) z{1yB!S)QJz_lX33*%k=EaH@)7@`r^5nu*6Lv9dx-8yk9oy5J$_eOg}D!Lz5~FfFE1 z3g0ssV*%&I#Yb9r78oC=B~in0k)eR|I8zJHo=r?pN{E;rTU*8g&Qnvh$)U+f`YBGn zHrq?~DF>N-wwVK-ld$yJ^#aaQQ?<#jA`$wX&653XD_vi^Lj{3@$vw|4K(Jgd;5;=| zn|$W=C8{55QE;Us+B<Cdj6hiof$|^@x3%F&M+c5No$g=a6i(H`vwcGq>6UL7=wI-- zG={RKCLD4&j`>2NcYJ9$RZC9XjpEzZSqzzD%<<%DQrCF2KZw%C#u_2H#kVb&&+FjX zS+{%GY_mB5RKi>Gv2wANaK9vqhh_)?V5+LRQdC!W*9eo<D*hGf6`X}H;Vz8ghRKhc bMT+1LnP*tcT&R5U00000NkvXXu0mjfz*`k6 diff --git a/interface/web/themes/default-304/icons/x16/scripts_code.png b/interface/web/themes/default-304/icons/x16/scripts_code.png deleted file mode 100644 index 15123f57538d3f144e159a4a4adaba12069d9e89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006FNkl<ZILn2S zO-LJI5QgWZha%`j>K}qitB9Z&`~f{!6%V$}p$H=C!9yUR6napR3L*tBdMLDo9Aj4{ z78^pf5Dgk6$weeYq7pA^V*J5W37V>eWIFTNq`M(Y7an$ZcIN$_Z+D@hqXS-#jzah3 zB#cQCOe`)Y??;TrMyl!5py#hdbGm>x<KvAVBxxp&h|yR~0oSNs*Ecm)mNww6!2p{6 zeqDqbPp+>O{JOit&t~(FhJk@Ho>2tIl_~wJ)$2uRV*^bN2QF-G;_A*0`fqNqva3s1 z-O~dv1_%EI{7>0vv!T=H!@%DF0vJ|JpsH-Al`T#uI>;z^d#emcTyT-~zR^my?QLA9 zf!)(nq5NrS34Q11f{RE*J%IJxM@LEaD1d9zb91;G2%zWiP#CEOu%6j&N4v)(&J5QK z77O}mJ7?iAh94f(16a=+3@YH-N0SNtS66rv3gPc)6rX9edIE}?nv?;ox8iaMT>JaD z?sg01d8-xgX^@H0i!N+y8_LyaKpgS_);qYoOcEe%u9?=>Fcy!C&-qfX|B_W+uBFjD z;t3SBw?j#1C$JXlt!`}zSby*MSSaVWw0zI3sv2f8ii>IEP)pPhxsX#|4+X8Q&u3<5 zfAUY0P?am^H8;Pf=KK^M4YKR%Dk$U~>#?Ss6lEUDg483Uw6r&&mkyaS^E7q-4?B)E U92y8~(EtDd07*qoM6N<$f(Azh9RL6T diff --git a/interface/web/themes/default-304/icons/x16/shield.png b/interface/web/themes/default-304/icons/x16/shield.png deleted file mode 100644 index 085880b4b9401cd0e69cd5c0123e1c90ebb64090..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00076Nkl<ZILnQa zJ!o2C6o#)Nf;5XXG#xs)N>Ql}4i3^f2o~`l;!j%(m6S{-w9pEHkj+AeKnsDAXcB)L zy@?us&`2#+JBgr!4m#)>$ebbc^c>M!+c@;X!}oE{`@HueG629>ES3o-lWB6=?RLiD za4aL<Da$mQ&k*D?{}vEdt5syP+1!Of;ewz$&hE_iw+hT=vj@@RQjDzNeKit^B*x=0 zj7B3!BoZvn+_a+%Wy#?Rj7H<@dcEFvxm<p?+r5!arwha3@K?Lt24XN60M5#^b2^>= zYPH%Yhbu4`3~MM{_xpY5^?DPj*=+trtJQ*Tw+o$4ht6ws{uJo-`d27j)oL~PAF%L> z9Iim8(>-rA8skc(0yFT(qtAv&Bnsj15gZ(ZC+G2T3{oj}gw8XrK&#c-ve|5##A2}s z@pv5e_d^pY6gomN0*8k&loMF^754VNw9v6~1saX!NiY~Z$7k}EMN%x5!eSOqPO=aP zY@MU?m@81L)l#qb<u1!+7D~xv2E`nHdLA;FGI%^McFExiluD&YrBb~~CexRTB$h3~ z>1i3|D*h*Omy{)kD^MsDj9e~%>hrBd&(2D>q-^#Z<Z|C3pZ@_q-+Gj?<ZuNtnT(N2 zrArctWW(=&TghZDZsw&zp@C=pW^*%8p$uio;R@&xiA0Q8EWV4Z%VdgA+uI*H#bOgm zrJt~~^RXkBKl)5N%21Y``2s$&gxurv`40pFfk7w~Zdoj=IfCvqqa9{erdj@cfnd6L sh^Po2kEcfI9rB*;vpFI|?vq3AZ(ipWi&w^K&;S4c07*qoM6N<$g8hUr%>V!Z diff --git a/interface/web/themes/default-304/icons/x16/shield__arrow.png b/interface/web/themes/default-304/icons/x16/shield__arrow.png deleted file mode 100644 index 9b6457ec2d8a65ab09df12850a46f96aaecbc3c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmV<C0vY{@P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00085Nkl<ZILnQY zT}V@57=Vvs2}2D=k_BD}U5z{&IB+8`q`VkShWk;OJ4?(GWpr@_gA@dBqBIDDe(cA; zxy?<tquX>7=SWEhf%C+MxWG|cbW`AEcoDt5-#L!byy(Eg_wjz;^PIz>0Dv-?Oae_! zO~TsT+)TB!w3H(qN0gJ<-**a7Cj$ht*(|eIEKDR4StF1=&PodB{{)OiqaD%Vp&Y5e zz18J%dGq-^<Z?Oidc7RZ7;;ALkh@2Y7%&(NJ)4`G8Jo?<G7Qrj2m~V8Z1xw=^FY|& z-v^wnlC!q9HZ~rQXNZG{0li+|jly9jlYzaxJwZw&630j;laNlQA(cvz^$?vNL=5P3 zy4xrntgo-b|A4^*;viz6p`oFDYilbXi^ZS-{yg&8;BvWPYRU-{6H~%EGvfijpUa_h z0}%uD_4SreD8v&n8jZs2>@19rPYTlHq!UFKOiz1I_F`}j#>QSJ(J>=ppsud&+VJr3 z5<bFPPLn(yKZZG&pAW&nz~B-(R}nFw(P$JM9XFqFT<}!M=L@1328S~Zt<F!N?|U90 zj#jG`12r`@GPPRW=ko==pOpOmW#G6KSXfvE<Esq3{0g9bwDYC*@ouN`K}rm$R4PiT zR5o^Xb-NcASB^=YFW$rT(H(>bnq2@UkcH7a0Lt6+{SS5_K+`m(P$){Ps;YWf_HHZ~ zT>BXcy@hai0~+UY@bEK0XBwcD|3lwLfJ^=FwuJzBWHK2gm&?x~4w_ay9U2-*MWYF@ zj>MswUHnmb%l)my`X;BD&Vp$N;DTd$`{JFby%3NfrO0`SL{cf0O7+FX#e*i3HB2CT zGApyqq^dUn${06)*6wM?2vrD3kqYE8q9zm-6=_hqhxC&@nMtp(+!@2OU1@EP<H(_Y Y1H#c6g4GP=O#lD@07*qoM6N<$g0DJKjsO4v diff --git a/interface/web/themes/default-304/icons/x16/shield__exclamation.png b/interface/web/themes/default-304/icons/x16/shield__exclamation.png deleted file mode 100644 index 704f4aebc01401435778a87259205ab5fc6b3016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008%Nkl<ZILnQa zUr1AN6vyu!Lm26UB>5uYLl0TZfeW?}vK+B6#JMS?t1!qEeVLGmW*|wCNr5C}rB3H{ zn{K;vn@-cIGt?zD%uU-Y7j6_K*`No(2k~@%_qyoMOBX(zALsl&-{0?EE(HKoad9z6 zQBe_BOG-+p($dm2q~d@y())c+0_yJof?BN>X*3$G+wJxc$QpZx67zooR4UbFM2W*x zBpuh67=|&&VljwDqhL0hS?p=ajO-zM4;((Au&}Utette&US6)#YPEGXo6Q}GMD~}L zmw~Xcu>shdB(t)zGTrp_beK2@A5c(GP=&&7I2?vhD8xyNi;I8Y_xm9j3_>6fAaxg= zYJ?9^DwWq!ihI3Y_#ZGZP8@^}P$(2v7Zw&`Q&Urr06!kNHZaT}^z|8_x3`b00|Q2| zTG=Q%R}elRFE3BybUK%bI6giOCX)$zdi0#6*Bek|z-g|ASym3N;aceGdhSO@jqm}v zxw-jmZEd6YaHk}s{(d8#Xa?gT12c97#J~1|*Kr<hH8qT(a}MDHWHMP+Ma8uamUaA+ z7-krZMl0Ti1*fGMR$twKy&Vg@Te<;Fby6#F<Z?M5kdu=ml1imFhlXt564KC+11uI7 zzOM^BwhIvd{0Q)mgzebfeWoL2si8I_8Q}vY5($-^oqe&gvTAT-WCEozVA%<<+b3a^ zZHG5ACGg`@Gf=qwOSl?d+K;Vz&9q|HMDqb+v6#xr%1X}6%&gPt>ZcqI&z{pc3oe%z zURYG{akUCUK_!fh)<baREUYZ$ZhIKIYtlf|TmX4QA`z9EntB+i5sM|AEiDfM<Bn%A z=R5<O>-i8_lX5p8HL`XJ=Bz0`cQ1W95g<U4ks|_uAVVk=79=Gl-G1D9bTj13-rM?c z0=C{Chn??@TqUggGPWE~>Fz{;5J^W)B2ofP)3O?^VCG>X9er|#3Lq<lu2$-8_dV*h g{yyb1v{Riw0rYt%B#?}dAOHXW07*qoM6N<$f-bXNEdT%j diff --git a/interface/web/themes/default-304/icons/x16/shield__minus.png b/interface/web/themes/default-304/icons/x16/shield__minus.png deleted file mode 100644 index 3c0d04aa38a1657d3f3bb8c8b7301021bfa08284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007oNkl<ZILnQa zPiT^H7{^~lENO?N(K<wUsFj2h^q{cAs2v1L^i>D*Pqv`3(aAx72MZ6o*lp0kh;43j z{@Lccshf&UGTQ8t81673J?JrE*LH}Wp67iPDtG7yAAUcc=lOi!A3t6O02r2KdCX=r zzuWD0W^8P%ADQUTPqja1x-kC+5LT;IX0zE`>2!LZpflDkbo)I47K_D=7_ccv2Jk!{ z3WcJrRtuWVCPbrA4r?yz(G1OY93jADGEE;G9Mqgnr`P3j&BWvJbfeMuRjE{fsMqU& zwH);v4u`i;DAdS7gaD(_IEBJ#tyY8M<6~Ybl}dk6E|=lx=m@ISD($D}Od~>o!C-id z(n+ycg#Q5pPsl-pfYH%W&*9-=E1%Cp7koUrHiSa!5Dc!u(o&G$*Ve+YwZ%2jd4LE3 zBO@cWWHMPHF_XzaBocwe#bsVvUS35p1S>0Hl%p890fE5#GCEd72pAq7zU%k<cX9Dw zIZFzMw=kH4&CMjt&d%+ka|aOubUK}KV&c&P$0g2`VzC5@DZKg~BoaAryB{u)qu1+& z0F6c?(`vO(W3hPqEQ#Z?u)Uo_xq$yfs!g-(;GitRFhYP@t!9RXhVD&HPOb0kWP7Ad z!+qGeev>D7QGODXNWP)`CCo7I_yCnk#VD1^K7~Rt<MlqvCldQVlgST|N_~XAy-%=o z;}-nzczOt62p>R8CX+F8x%?9HM5R){_4(dZGno=(v!7vJt8c$JcmDfxvAFqKB>L(@ zk(lq^0GAl)LoSQO;;Ryg#3+?Y=U8?;MbMdQ)Wewpn!SdOulokLB%Q`>L`#T7A{|OE kkymu?))5tQrQ<Na0lDk?KKA`u-T(jq07*qoM6N<$g7oA}s{jB1 diff --git a/interface/web/themes/default-304/icons/x16/shield__pencil.png b/interface/web/themes/default-304/icons/x16/shield__pencil.png deleted file mode 100644 index c717e4da62922eab93a6b84cd2796e3201c9980b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmV+k1NQuhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008eNkl<ZI8SYo zUr1AN6vywCA&h)zBpK3!Pz<JQLxnbxVI?$h$lRtN&dQ*n7?_HJu7shGEU;K*vrMLL z?oV#hZMsdTrRY{KG4LS`G;j~S2tEb#K{}mtH%C-I`0zWNb3WgDxm*SS7>!25p;oK8 zyRos6X=-XJMB1_xQqMASh5F1?Sy|P0mR(4&>~-ev079$P@^w0$J{%6O5maOE+#7Q- zg<pLrmk)u-1Ob-a<N_KR8d?!0$^xVa>t=_;;ZCJeaCmqKZnxWyJ-v0bSglg2`qSw& zsD;868^he<0_yAQJGQsC_gY$7y7hW}kI&}|9~>O~N+y#)?C<ZxqUX_P`?K?3(?15G ztE=lsp-_zU355(7P*+#ij>5^_-X84k?s8Hhk;t*NZiN+>0!VheyawyhsS|WMkW7G5 zsl1QU@y5mm{LP2x3s|yOakA}sIRw396nab!k_o7-t-TYE$5XLb49>uh2R_$0cqhv_ z+4`gu-i{A|-R=ah*MEr4Z6p&=Q&Xc027^fwBasNWTrQZJvZ15_`1uVcMoZz{Ya_~T za5&z>#KhzmbhJn&pt`#HrrB&>!UNOOvtYB$;_Uzi$B!RWfz>h$PNx@x{V+ct1fy|i z37s2ACO{^WiQ3xkS^WM0%*;4*Pdbx4o&bs=eD!4r1XiK7^{#~+xm=zJsHmvmS5{W` zc|5+O|4Dv-6c!d%QC`P?B6LK%<RF;<sZ`2HBodXu&_1`g82v{I20ub5v<b`0TVODB z&e1M81Q#F{iy4tfR8Ue<($n4D9}5K5PXCm`;W*ygr@g(#812w5IRqC#htKCT0)gNH z(kT{8Uzto#cOsDlM5CWzczA3_A}JrI8ST(+?qmb<kOJglUS8g19*<X-pPxUZ(KLq$ zs;Nga+$qZLl9LPIWd~(QCBd?+45a~Nkm|EOg73{-$~w$%)5Y*FgEgG{00000NkvXX Hu0mjfCD>=L diff --git a/interface/web/themes/default-304/icons/x16/shield__plus.png b/interface/web/themes/default-304/icons/x16/shield__plus.png deleted file mode 100644 index 5ea1cb9c5d2f66ae26cbd8e21e3342bd7303df05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmV<00ww*4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007^Nkl<ZILnQY zT}V@57=S;=TnuG29gU(3AuGn3gDsmNVK!p0So;rk6$YBp)r5o+1icESE`karf9IT= z+m3G2Z8%4Zblq$WCgC6@wl0DMuf2%g-tQa-`E${MhwtP4zUMiILjZu7&1M#((a5eg zn~m7*b_vpXh=k7my;Fu94^S)?i_mJdI-=3&I)(0WR#iSf5iprd4-g$5iV-R9+uUxq zw^S-Yu~-DJ*UR9{LC@$NdiT)b0tSPjcVlCt(9zN1bT}M+!C)}DySw`*m&*ZVXJ-d+ zwnop|+uNPVWU@dVgbV2P`W_Sx3WWk}Z*Q|wI-Nd3Hk*a5tu4ss^K?Bxrx)P@I-RZy zrTtVY1^)vE_o;($0j*a1XmfM3lt?6?4E{X&+2D51!_15erlw}tb#BfBfdErP=OMxc zT3TAH;cz%d#aJu`3kwS{IXTTr)6*^#-7q`rLD`GJMHn0VkVVIWaDnFL=G!A9BP;l@ zZ#hl!cmfz^!0!*kz`)=NI;{v7&}cNW&d$eg7$$V8<nx74jKG~m8`S%6!1<R~v(#y7 zYT^Pal}e~qtDpIN!M)>BAg~Gy6NjaxHK_MALf3vj2*#v8uH2Ig$z%-|P%4$Ap`qb! zcX!YH@^bu$6bdClH-8`MU5zaEy(hqbFZqUYhD_9qvjK%dL1Z#nbzNOupVQf&2!+;v zhr=Hs68QwHtDoWW#C2%>X*mITcQ(TY=pz&giC8SIMV=}Y%C|#9qxo1Y4e|IFP><f) zJ2PDSi#IGPUMt-M@=BCpc`X_*2Y5&|a*oI2UF7rmdVxSNXg0S+D0EL}WT+~C;kz8j zaCMGc;`1;<$^kwiMdXN@Qc+Q%LFqa2g6`S5p^_opm0yXm(sk&NzhplEu?KCkxc~qF M07*qoM6N<$f)nUZ`2YX_ diff --git a/interface/web/themes/default-304/icons/x16/shield_disable.png b/interface/web/themes/default-304/icons/x16/shield_disable.png deleted file mode 100644 index d2dc3c5a68bf9f1445ad7d1191dc749bb48477d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005VNkl<ZILnQa zOG^S#7=}+Rx+zEyN+kn9U=&?!(Ix^bq(z|+lVx|zA0W7Op@M=4Zd|w!T!@N_Kf#qt z!G#FoKTy~16twq^@eonuzysfW?`38VBPNrH$mjE4<Z?MtC=^7gR1)QKc@4a4tZ_$; zo~fT%@v}fHSuPffkDX5Eo^ZxaH`RYDcm#HctH6laRj=3G&@M=$(QsqurbZ9F%*cXl zHtX$nyDFAmJjvT^Ht(@N2S?x#*jlZYiyA%jG9wEznT%&N8rd<QX`F!lADm2edXf2% z1?hD9bubv%Fz?O+z0AmhR4V1_^?H|>Ewg}6xMW5aB$LT&oc1;5?OABI+c(U}f<z*5 zTC3Gm?Fn1|V4;^8SrCuMw{a*>m=A#R4+r!zBMTyt$Wk;K_4fOHp0XKi{(+eudYO?0 z;c!@lLLnRexI5hMf%QMwqlaE*WI-?(6oEis#qak&S1J|fa5y~F-o&V3=8hUY^fDt0 zcqxh^oKB~~<MG`3e7?78wR$xkk9P=X?x@j2FR$+fb6^4JOeT}TYPBA#s`?U(#Z<zX zJ8JOg!6Gx?3+6S!2sVgbuU8xn#{=O!-2;>6ooDtF%O+#K1Wvn=00000NkvXXu0mjf D-oWSf diff --git a/interface/web/themes/default-304/icons/x16/slash.png b/interface/web/themes/default-304/icons/x16/slash.png deleted file mode 100644 index f941cff72132c3895512fc7a426918704f8c6c9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006gNkl<ZILoDy zF=!J}7{@>Eu3S=5E=S;+9;F#NHR8|`+A&!Q8QLy_Q<jo$E$z@imx4l4Ym|ayP$(rs zsU{XFmV#8N+#(w6g%mBqxn3Q_;RHcB6hFT&Uc$3f96b1imwVs;_ul*70V2Zx(Eiy5 zfcr$9cnDzb0xS?U;za<D7kI87)N<w`!Sr4@Y@JL@xS!|d{BKK3_;qm+y?owpjgPxL z$2ETwOz%gdO<Y+)4sMyIv#zQwhR4T~lirv4d3>yCO|CsJFzca^^`lV0@5{?r9UOG7 z1FRBSK$_Uy8yPwKI6I3qRkb+N6;$bbFUQ8*Px*X1%qvmACb9$s#8~n)mGYh^lP+hv zf=z%2&diKoiAFms+aGedizMmWs_HyTCVkFy1$U{_r&Ci{Qj}J(We(YIGMV!dttd&Y zCy4}drYoq>pOb7BOS0S%Ku7X=bX1gRB@!GC3}8hRY|wTZsg!@Gr^g8z2BPHE@Nh@6 z$~A|vn7<(&p-c^VWEk#&u6x|5pkaSV8u55rvLA_fJK?Zf7Mr+6S8_|1t+zu%SnKUQ z3nXdb8rzLM*7cvZu47q}tTpi(i?q@;`Z&sp(tKwac+}VD-J`AEpz|_3KBARRDST6w zn_OEIKO}w<#1)z-ki8lTxwfYH?<v6WnBVan*CgQgBMKCvpSTpKGiLzSuL2z802&OB v`5n(u&1E9a8Brh+5yBwMf6yP)N}T-#)*yef;UL(P00000NkvXXu0mjfMK=?= diff --git a/interface/web/themes/default-304/icons/x16/slash_small.png b/interface/web/themes/default-304/icons/x16/slash_small.png deleted file mode 100644 index c1259eb2c2b1eb7bc553cb27acd2fe4c7e73ce30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`b39!fLo7}|y=2JO<RHL$A-q^- z$I*MuO-<Gk8-t{{xwtb9_`cZFcJdx4x6J`HHL)n4I^)WpGkbDx*BI3aL~IZWd*oG> z9&v*CS?y2D;QN~Irf~PqoWR<1q_axp?g}-ZDawZ25+2M)d$SZ`zw59CiCqxZpOXG1 z#P+4r-REW&f>v_ur<jjU-1WHf)LzH-X%_^fgPe29zvSC}e0_jB_VmmT%jW(8I+KCH M)78&qol`;+0E+xk-~a#s diff --git a/interface/web/themes/default-304/icons/x16/socket.png b/interface/web/themes/default-304/icons/x16/socket.png deleted file mode 100644 index 640f225f4b253d5fee07ebac262e259898c94bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004xNkl<ZILob* zF>At56op+B7irgaXqP&P^dC4C@&m-dIYwNa6#}KB;3h65qsibVIMzjL(pEGPqL?Ux ziD1OBDuTD~27IKYXrTr^@;IFHkp$uc0N;P`okdWoRD7Z+-bs?g5z;5%u!|ci5CkDm ztybCje6H{JdpHJmu!|ciD3wZKS(b(Eb_?tE`Y4;t2HNemfEy|(6bg)O+v;ky0)$~0 zIGlgWrqij48!F&=KDk^j9m}!+$z(F_eKwoHcsz#TaOh^buDfT`G#%VfK{lIBEf$L% zmXUlu58ZB$JgN-M=Bo>4hqI!*?QlZ{EX$_IE9?xz08Q&du~-CI{`iJBQ<TmQH&hUh z$CHL(I=!9_olYMn6UV)K@n)^oyMr4lh{a+|qtR3~%>*yy^0Uj&yk37%aYF@>NF>bj zPr_helMiK45{ZP1H$!r{M*%lf5DJ9?(da!ZNi}^ma^QeveY$uvQLO3M#SImZ>&EZ* yKLmq8j*vb9hh4I{^$IQsSA^?7g5Arr{Ec6qkF)pU>$+(G0000<MNUMnLSTYf^2r<k diff --git a/interface/web/themes/default-304/icons/x16/socket_arrow.png b/interface/web/themes/default-304/icons/x16/socket_arrow.png deleted file mode 100644 index 671342c8f99fa73d71c9a478b333e7dbe3f89b71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006XNkl<ZILocl zPlys>7zXfxP$ZHLLA4#a)E>gDOAtYLTJR8*i&<^!rDokEIwS<kg5<>@NH9WNx7`?) zDD@!ip{?syNNQ&Ot69-;H5>&MyRC}g)A!9VWf1P627bKXyu9zj%rFc9=3g-XB_J3K zGNDlDcsLxk5%asS(OJ4fNdX+ksUwjH+h{cS;c$p?=nS2uJA@qI_xmT~@i^D-_tEWk z$LjTZh{a+Y-SPQ+a)8I<G1lw#Y^T!!Wi%S0od4FVR;yXML&yOxmusfoZns2H1ZB6| zrCO`iP%f8IC={d~&-2n*5QG-pA>;su!!g%vHV1T=ayp$zr!(YH<A_E-N@!0xCla3q zbcc`wSeBh5uP`W;O33B%@Or(7$3OpJw3kSv26Tsz1I%XgOsOQaG8rDJR36*gEvb&8 zy@mA(W`i|6+4%Z{?htZ-!C)|MZbq}YoPbe*z%z+*e|2pe%OY@brMPqc?o;<U+aozZ zr_)WkTyAb_t4=<Y_>0A2!PMeQn3ldt&MdsaY(&80@4zW{GOvG-wn_n7tyZnqpJv11 z*L<<qf<hE`V0u-@!wPUS2VD8`+r0vCZ1F=<{+}7<s7j@p(r7d`Vt&+t3-{k2yz!z! z?Y*{IIlCrcIt3iMwVs{0^VX^a>?bCOBjaeVKhK<e2hgg$9AFRM-e8n~U9UYSE-~uq m)n%1wB}uAvpLvO)0Y3rIXOYkBu}ND10000<MNUMnLSTaZ${v^i diff --git a/interface/web/themes/default-304/icons/x16/socket_exclamation.png b/interface/web/themes/default-304/icons/x16/socket_exclamation.png deleted file mode 100644 index 8f01300eccbd98a5b63ca63babda6ac1e42f1495..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00070Nkl<ZILocl zU1(BK00;1E;P6Ev2%?ByY7ohYsD~CI<$_Bu1&vXA=*dlFK_GoVWcbp<R)P%7Em<=* z$XUn=)}V~GJ?PYZG^cWPdffy+nAfZkqGIgdIrm}+)q1E4KhELY^Z#?s<uU-6f5H5h z0;ki-OiWB1ak*T*gzhhT>0X+l!~%!I(c*TywfTIW+uq*BPUs%Gmu3j5z-F_x1_A*` ztyV*&QrS_pT7}>5chHR0YLyDiW;2`1<yK3j5-65s(U|{kEuBuU(hMOLm`tYbVzDS> zvsqAjy<QwMnG8~?6you?xW;juIOlm@pcz6cFc=Iyg+ifDH&aHV5i2Vpa?}94-g%LI z@DhUWI^dsqfM9T;PBVm5pw()7$QA0zWD?<U1Qv@0fxuFec}%}JjV)muiytnN0)L%m z2&tg6v$H#y<b_a(!}4+j>+6CzHY|FdU?Xx1-^;I%{B#4}kLDuH5K@6!t!8Iuy{q9c zk7mQe&oDG($Aaf7zUBwf)zyVBnSRW@)(9P%vlmHDDp09ZttQh$M=X{jA1eD34cxw| zLDY90TNxwy?HJ@^ddy9p$UnNj=i1%AeNur^scdO$JFa!Prnp2xKtncL#`25~X|4}k zn8n+vI|zr)kt?0~<{95*e?KOZN&hp$9FoiB7ZeIbFQIEV-`+AXIl4Es5!Zl^o)k|& zM?QKA9;b3?dQ{flDA-NxCk`|l>6g9ae20shiDTGYJBsq>d*VpNd<TU$Ph}&Gf?u91 mEW?aFW~|Q#7~h}J_dftN)1kRb;=pMD0000<MNUMnLSTY?bS_x{ diff --git a/interface/web/themes/default-304/icons/x16/socket_minus.png b/interface/web/themes/default-304/icons/x16/socket_minus.png deleted file mode 100644 index 4dfeaaf4b2cebc5d891bed17b947a38ac15d51fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005fNkl<ZILocm z&r2d<7zglI!SEs*w3qg<hp3bN_zye<^9P6vvC(BRym}}IjM+m+!Hb9;Vh;O5=ing- zf-Xg1>$t7tC`@iMwt}PJh{sd}pWf$vnQ+^sU1)_5^YZX~zsw9H0RZw6<i8YTG8vN1 zX6F?}2~%5t5yoB2AXXsD@>DLD6Wi^!J|2(ZIk<znn4x$<DwSGLRaG7ihtTi$pEVc^ zpin5tm`Ns+ydWNr3$0d5>-Bno1VI4j{HIx?(a<nM@d8Pb*1FxUZCMteNF>6p&1Mto z^*YpQH8#_Aot;h7v@t{Rf@n0l+39pfxQt@47+hbM>8+}e&wpib=A4VgZzIf5yg(Gi zP5KBU!!V#ysX`)=09F0|i^*BBSQ=r5;swEAaLq7GyIj_xRI0+=oz1S3CTEwIS2kuS zUJwWbg!A*fR;idUDV;uKp3YBB&NR&I%+2uvzu&(gN&E86O^d!L>rp5aVou+!!;yda z(WjZ$-H&c}^$Q^ftib2<O)V|0h>CKo-`?8bu&jIL^WqBhH#UBgCgh5L&xE}7cs#3K zuQyC>J@wx0zSwrTemZttt{;1ZX#36`(BCU+mU{D#aCiCxCSUq*d;p9!p7ntZS@Hk? N002ovPDHLkV1mUc`osVL diff --git a/interface/web/themes/default-304/icons/x16/socket_pencil.png b/interface/web/themes/default-304/icons/x16/socket_pencil.png deleted file mode 100644 index e38a0d142f11a93fc408f61f77863b4efb23e0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006dNkl<ZILob( zL5LDj7{_NK#fuc|saWcgT|}&7L{iI^mm)|!?5V@3YfFc`6br%#8|=mKkPQ;l(4p1Y z#X}ImmWM5Hb7HeqmqyvqMR1f<JVh$o`tAGPFk!H5hkEeiJ-+$>f6TmL0D$=ynExV3 zCX-Aml{zCylAjRx3x3RE2cZH{6wT>$nrpRM%4jr#!@vw?u|v=Wf*{yrSr&)GA@uwG zLm3PPkjv#n?8M`7T@Z~%-OXmR*z5HGal74MoDZ7S>-8db2)cmh`I&CF+tD-)kYF%K z_eP@uwOS1-l?t6HibBuTYPEx%rKu@h5DJBS?RI+?!$>$BhRw|ac~u#**^d;Q8Rw1X z;?MlVM1GxRFH-@>aX#`1yQ-=}sk8;LSPW$O^KTfl)zu8V<Rg0!iNGtCeNP1*k7q_z ztDQnYfqZ@oc6K^+9|vc-4=+Fvp3=*_VY9s<|KJ)GxLhvx+FG_)Dpg^eMB*6*&l~G0 zcq?6jesdmXXYYP<I-S0`$w~bV>~_12=O2pYa+6$?_6x7qOZoCC4eyqxX?f|%MVRwn zU%`&U;m`$EtJUmqI5|mrt!!_1z(CV}fciB9nU$-woD?p><45-u%wmV23&=WUGMT0= z7K@({FgSPC98N48DPeix9$UU}{%8y{m?fRlSTqF32qy?9$5{+8i}1Yyv3WMjd6-*c s&oFy@T=1s_cW$!F4{ozApXcDfK3-jSK!!9bM*si-07*qoM6N<$f*alzVE_OC diff --git a/interface/web/themes/default-304/icons/x16/socket_plus.png b/interface/web/themes/default-304/icons/x16/socket_plus.png deleted file mode 100644 index 9854d70a03a154aeb130958e006f62343d2b7591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00066Nkl<ZILocl zKWG|J90%~1P(=vZ&`ixxN=b(H5(?c)QXx=q>JqUK=+d5w9SU{mCR~Or1&fQ77*cNN zpf@-a96E-A)U&C?KX9?R(^@<QPuv<6!C&9+9aroh%+LxS-g`gZ_siWO0RZwZ$bTtF zrBWoFPOnIk6rh3^2;g1JAXXrXqCJzz@SRRanM@`y3*N!In4!#qL?W>&%d$8cjbJbs z%rqPhA)n8Sn2E>ZW<fL>^|agVa=+gP<negG+W&3VY&Of7q09n75O#XKo}ueHpin5p z)>f+p^?Ds@wHli#io*7qrWu%_%z|(@?C*BFW4w$akqDfel<1?%kjs5!aAxfbg->J5 zP-X$o^M3jYV^vk5QmH~L76V!S{EO*Xp->!ShB6DhUhj^oYDTG~K(SbbM#Et1G@Na} ze+)O@ZNP)<qwkoZ%mTOD?KwKil`9nurtR;)VXX75%qIBzFW`Fm&N*goJm<^;j^kDZ zVNX0gZPO2>|K#)en1|UQaMC8@GlH;mxYC<HSgMl4D@j)1bUN+p>$iDH$|`4P23U0c zoLPIj0b8BzKakgp$L9Z;kZU%Z?Y_g|2vEV_%|BWAFt_Xciq^i}gSkED7xL0oCa+vc ztKc$qm0F%@ccHZ0-~d;8UL;W$u?jB!-MvJ}GkcOewH>n+&$QqN{nd5e3n=kn00000 LNkvXXu0mjfzVZ^a diff --git a/interface/web/themes/default-304/icons/x16/sort.png b/interface/web/themes/default-304/icons/x16/sort.png deleted file mode 100644 index a3d410e0e206b8cc837896448fc4ddf1230abe36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmV;D0d4+?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00045Nkl<ZILnQb zy=uZ>6o$XH2o8Z}Yw6M;S=*(zkedjZ{YGa;SI2CbOa>ji9lZh(gv5w{D1w^P^PUEY z!NMmz98S*rK7oKLj$@T1$sME7NR7v1m(iHm>lyTjNU2AH;c$qO<^W-0|5q>=3|hSS zjIL4?1zoRK!mQtrM^6M%6#03cPcN4XRXLx}H|jU!(Gx)!h8m&M>0}J@=!u};?`u3f z91g}HkDds6y`DZEkF?wEj6ohf5p=s<z2EO?y<QuGJbEJNbUJ#w-QvR-gFJd7Xt&!M z)-+9xK^{F31VNxzs}(I43uBN+PXwOl`IE_Hx?C<P%d#8u`TR!pIdaIOCj!@XTaM%S zjIOfTY-l!{5oY~{JbEJFMOl`0N2Aej8TmGt*y|bFw*USM<?oq!Wj>iN=7;eZT~6%Z wjKkQ>3rbbN6Voh@Z_LL7-phNle4z+_0Y?dpyq0CpSO5S307*qoM6N<$g37<OJOBUy diff --git a/interface/web/themes/default-304/icons/x16/sort__arrow.png b/interface/web/themes/default-304/icons/x16/sort__arrow.png deleted file mode 100644 index 9aa43cbaab5d19f6a0f39060ac55663fe96250d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005@Nkl<ZILnRD zJ7`m36bJBQCD0+z3;|o0hI)q#wu1^Swy8_Hbx;H$B$G7XR0BSSw1T8VADJ}OAwj)~ zm<$;@=+J^4L|s!22?`F?q@ii^A}<mGc^uEV#5N6q=7S%H?|%RPcP|&bUN883zB2-W z00e_Ui3py&H@r^5?3*Lct+&S^nwF_oe_>)h0?_LMzu(U#fwXw?e){=Opi;<lh{$vD z<sXZ3fh@~obcu<GPOVl8o6RP!Y$tHaxff%@)?m!MwT~|j5U*{7qvNY#3%K2GQ#PB8 zHX04=RIk?+cRw8AMhx+O6!G4VQ%`;)URnAU0+-7rI9RLIdV2IejB{&W6*r%K!pV30 zc;`EnAAF3BEbdsq>2wMXRw|Wq%`9)@)h~#Kr#m?R*dyOwk^vkJhp1MoSSppywXpda zZ#>*W-|jEu9s#i1?V?;RV?Lkn8|S%40Bkm!C>D!IKeBI}=N<vDTCIX_O{G$O<2?5W zfZ1#oxm*sD$z<O+&piTQG#X8jNF<ucWH6mhpGYJUCpw>Vj`Q3j0Foq)>2x|15uFN! z0><NU<k@}3dG6`;dH~vhTCF}qrBX>m`8Pay-<{EDG@#XL;r|*SLu8bUlk0@O4@7(N xeuC(ThFpZMb%6}F4=<6+Jq)+c2iq@H)<2O2VuKbmtFZt8002ovPDHLkV1mTs_W%F@ diff --git a/interface/web/themes/default-304/icons/x16/sort__exclamation.png b/interface/web/themes/default-304/icons/x16/sort__exclamation.png deleted file mode 100644 index 9f7aa3160b87ead9060a9b31d4d6aef28d2cf507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006&Nkl<ZILnRD zUuaTM90%~<Ed(Egd=QGg<c1GY6vU#@TZFKOUMeyWM-=5D2<)ja=)s=C3c}`tll-%# zEEzrAwnjA~d>FK9!gR~6<u-9yUKRgMk@@G>ITsVBKJ37UFXx`$?{^Lt+-^5`Jf1y# zJ|Fn~eicPnet2^QzE5-4si|fH>vKAt0KEoyy<Qa^LXa+&y#Ma;#Tm)?PR99{<*fgb zv^Buxat+Xpjw0<EjRw~1b!5p;j@VWgw41fk6h;;<Z}O9R3+odH*zI;*I-L&JYBg+E ztyV?5yA@pjb`y)jC~CD@%qO1UQsAQC7_;eVFM!o*C9JSgsq`eo-{Y^v8<^jIhyZ|p zR&QhE%T;{k7<oSW;u(O&Vj--sR4VnbgUj;<jIZ6nNO&0E&D_KA(m7lXUO?W}ANV-I zabPx^Nx59cLZQ&*_tqy2ejdiHweuKV85Cc@GP-ga=U(@1%(}R<U^1CVu~@`xHrwUv z+%?<?4q<Zr7$$$Jv6OirCi7#yzrc@iFTrRul6*do^hb6HOy5G@eWuIX@ga0PmPIF? zf(;A?17Wu%lgWK!^{nsF{ZjyXy`E$;8B8P+`^M^79|fS%Xmp`aD4a^AP!NQccs$<H z{+-pade%n)s8p%}rBbP*NV{Avhp|`;S$3YWde)~_s{!Z+WHQ+v5{X1biT{Qr+jrK; z<#JFc6!3o?pbk+-sT0&7Mc)UcnQVWOQc`m2AapE_k~R+yQ++)gX`V})7mDj2dVEhs TV_Nhf00000NkvXXu0mjf|DGpk diff --git a/interface/web/themes/default-304/icons/x16/sort__minus.png b/interface/web/themes/default-304/icons/x16/sort__minus.png deleted file mode 100644 index 5cec83208fe74199f1ae5dad2514486bc9eebc5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmV;r0Y(0aP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004jNkl<ZILnRF zJ8QyF7zW_aisB%&TT7P)iDR3ge<6P&74761ogD*qap>S?2aQ84ICW|F{s1T4OGOa8 z;SE#4%jx%qU^Q6Cfya;IdEcW%$+9e})oMrT^*S{g4V4K@?EM+^DwPV+sS9k|MoCCs znArb&LA6><@Wx=`&~CSr+wE3j`p=L@&%K~rE*qoKsJ+>2<e~L?z2`qe9z8}>DwPC6 ztJNwn<k4e9#bQz5&E;|#81m>bBGWX5<2Z6Yp9h9KdW<Na&x^%kAt#ebV92A#h;q4{ zn9XK*Fo7YD9wW+TvjVsF`~AR>M~@MuQYkSWk7cjd3k-Sm3Ytcw>$=fuwc5ksP!0xz zy>7R=_nA)1cTIDBu(xE=v7*thSE3hERW+d~iowL8>2xYPosPtO4u`*gG8yT|f1@UG znBwvHkw_$>GWXeFK88Xz|6onOCwv2Mow0Lv!*1C<)0yxl_IFHS7cBh1FDCu15Q}+- km+bn4EAKq!eV}{6FW?k>zpIF;r~m)}07*qoM6N<$g4)8-vH$=8 diff --git a/interface/web/themes/default-304/icons/x16/sort__pencil.png b/interface/web/themes/default-304/icons/x16/sort__pencil.png deleted file mode 100644 index 1bc1fae69acf397fed9a91b0c233924dea47b663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmV-E0>S->P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00067Nkl<ZILnRD zJ7`m36bJBgl|YAp83Kxnq1@p@(Z!`M+98PA!6g|&=6q&~o1}vfa0<8t93tA}3JGnX z53O;Lf-P#Dq?n*m1mP06<>o<N<^g#e&$%WcFQFg&IGpc0|L<Nth{xlgs_KMfG6|_v zN+yCU_q?BY6$ZE44eLuwH-1af?vW&|z`P3*i3EoP(&Ebf@B)|1B|ltVevF|IzLBIu zh{a-ybcu(Eas7TDd%YfV9qw(a51#t{{*6|vg)T)=;{dlI8jX62#bUPG?c%sjr!&HR zQU8EP@9tqsU!#wQj6fjp==tg@KqL|oJk)Nt|I5hj<LC5UGrY6Dg1>(3Bj*S}I2;x{ z)Mzy3I@R9er?>yY+b?h7Nj7a>$~gi+zayH>Ce~`T8K>GYe%!lbhPNpE^V^=e&-0uk z0Ks5T)a!LDm&-E_cGnR9oZ!}roA~|s^=O~xIY$8KF+{amMS92?0D#Y)+{dq9(i8hU z&p86%^Z5kdY8b|u@jT}UfY<94rBVrXT|YCP=NtiWI-Q<OCX+1`3YgF5M{>E`$oM|b z@jT}UfGo?44u``-#JEbOf|{lw*Xc8!=bWM_0MvlhYMo%QSY%?p4Oi}`XKXeb*zI;0 zu5;u9xk9dz>xBLf#GrD2jW~#noQJ6;k%htGMRIwLOM~-;!3WLt7kx5Rp?_ZC<p2Nx M07*qoM6N<$f`3>RIRF3v diff --git a/interface/web/themes/default-304/icons/x16/sort__plus.png b/interface/web/themes/default-304/icons/x16/sort__plus.png deleted file mode 100644 index d4e7fca1e0d5fdd20e2025e03bb703e2a086deef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV<b0RaAqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005TNkl<ZILnRD zy=zlp6bA68mc&ADYwJ);7DKsCYE#JKQa>Pnf#48=g3!E5Apr*=OKHHx&^lyL($ahk z2_=Jr2riC-Q*=mn+Zc%C%Y2a#$j9-V(1s*bdN2Gq_r3Rd&hR1{jUpC{O-LjXNG6jy zQ!?c|osnKR90o305Rb>Dq=+Axa{ljvNF=hx2PaeG27>|h`+br*{ZI1J8!iZiLe6rz zoayy?G_Kq2j!gfPy!03l3<i~iI-QPTl9wI>0)c>%kF8eAFv&}g0e-(<wcBlKG#Z9U zUV04h`FyI`Y*MvaHB9o-V}RG|RrPvZF2*p)OOF9=w_C~9LZNV}XWzET_T>RR|L!5_ zF~H?=sY<0n`F#FT>!0q^*5B8(@%bT1&$e?9a5x;!bUK|Wl}c1B7DsZq+{n|fFUa<B zbLdG)(XC^9+x%hW7mltUK-cv(tJUgcYFw>Wqii-yGH3UePapkxOw;gwDFqHg)3gaD zlSya8yOBAg=Hu93Oo=<cH|hKx?-mbm_FQ4t*iCkq*_nf>vnl6w>}nay$!)?L?FZg2 zfR~*2F~jEA61%}H7g)u%IgFR4pYWIu@#^Yu!9R?Ney_)pVgvvH002ovPDHLkV1k>w B^DzJb diff --git a/interface/web/themes/default-304/icons/x16/sort_alphabet.png b/interface/web/themes/default-304/icons/x16/sort_alphabet.png deleted file mode 100644 index 92c4a9cf417626875a2b1f40e2e1b5c0b3e73d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmV<M0T2F(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005ENkl<ZILnQb zyJ`Yq5QR4hLJA>v327o>+oZ`W_!6S6e<Runf{m7HB?wxnpdvni*jiaxnO+b@@P;=O z!OLXMWL?(9Ko&m6^UpcQ-G$YP#iCX!m9D5(t6IHY*BONgZTBEYM4EQ1pi-$Iq}V{1 z(0>*b3WawTUPf6tpU-qUoe0yugC995$mjFk*=+WGJRZr);czgq@8CyH3No3Df@#0s z{~P#`lY(S2sc^X6ZmHR9Qn_5FTCFDfLN1pRu!DvlIVp(8<7&6t(R#f$NvG3S8gx1x zYBU=18-C=ZAR3LT&1OT3#e(>`D3wZ4EEW@enY~_*5{U#2heOfuBPRvna9FKYE4&yA z27_1gLN=SFR;y)d_>q%>Kp>#dIv$U4TNH^zC=?1&yWN&Ez-IFM{Q@-n$Vq|E=Tr0f zoJOP3zkwe)De!na-fp-1J)KTzGMShR1_Kl8IehRVCk48$zq{RTFQcq1mrLsR`-ExV z!H=92u+W@N=M@fzLucgOU_#qHE|=@~TQIJB=81V@KA11Y!zg1ye==^y#XKNnEx2PI mjpZ}*dV?2Z|7iT76#M|vm~cz+=ra%i0000<MNUMnLSTYz?BA~d diff --git a/interface/web/themes/default-304/icons/x16/sort_alphabet_descending.png b/interface/web/themes/default-304/icons/x16/sort_alphabet_descending.png deleted file mode 100644 index 8dca34cfd1013acde472448e0ed612e6b2cdb80c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmV<J0TTX+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005BNkl<ZILnQb zyJ`Yq5QR4hLJA>v327o>+oZ`W_!6S6e<Runf{m7HB?wxnpdvni*jiaxX)lN(c*7ft z;AJvrvRT$80fmp*^UpbFFQ8T|7PV5TbVapV)#~-S&L~W1y9YTU(zL${DwPUCiVcJb z{ck~`P<UtIWt5f6<wEE4nK11;_>q%>d_M1;&*#0<=|onJ$D@gT2S0LBkjZ2eOozka zX5dFo3X;jB!r^YWqg*a0l*?t&zciaoIjhxbqTxqQ3gYp&+VA(Y*=&SPr$dcK!_-#N z>9kDvk&}XGG^)1SEiIQz>i7GUNF-=98i|g@Vlw%CDV0i@8h+%YARG>>^?HpDL)mPW zTCJ8`TL}h(R}+5Zq#zIoD6~!{6C9G??-!td;m4&&BtoH3h}!M8JOy%6;Pd&^VzHp{ zcziSPBPRtOkH_2Xc6+ngjHc76$#6I{v7W;RKXOu_>-xLf?e;Rt%4)Tu!C*j`_8t7l zNdXJZ>2zM<a5!{Ez6~a{-Q#k(e*O!_@1A*L-k1;Oi}5hZn9!e$n{hD@2w4m6m`7vz j%)I`=i?M$+ZYTxc5npgi8cd)$00000NkvXXu0mjfnF;6Z diff --git a/interface/web/themes/default-304/icons/x16/sort_date.png b/interface/web/themes/default-304/icons/x16/sort_date.png deleted file mode 100644 index 21e367c2aa0b5fe60080cb8ae331d495be3f2ea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004mNkl<ZILnQb zF>At56ovCz1P7tnTDmk8*LLaJ(k0H$(M1G<IEXqq>g3<(QUvMJsXxFj-HIJ79Tc%B zYQ)5VNEL4Hc?}^Ig#<osZr(XxAQ0tK2<2;sKJzWa9rJ|Q-;+U)h!ka?peMvVm!7H7 zAWZBB1zjO-d3j)7f>6Cq+fs=zch8VVPYT|Jcyv=KYg?(%rd;+}=kq?n=g1+Co)o+( z%Ii;|K$~ut+*XU6W|PM4Ho2M1L6ApJ3fk;gXS38xBxsyWN^ox*#zBxrPYP<anz>r7 zXt`X526^<Ppjxe(uItibu?P+F=t)7bSTr5SA<MEtgFJdtkjv#vSSOQ7Xpl!w3exGc zIiJsIG#Z5ldGw?}*L9=Q>3qy)Gn!7PKEvVAC-@vW<k6FYcszcoX_~>9L2TQm!C*j` zyJyIwCk4DHu~_UMkw_%Y$Zvy*eK(`3>fgWMT}R9bbHQ9OH;m4h-o$>*XpG7nqZAYf nCh8rYGUt0Z^UkB*3#H%};!HGUrLScM00000NkvXXu0mjf1Ix>k diff --git a/interface/web/themes/default-304/icons/x16/sort_date_descending.png b/interface/web/themes/default-304/icons/x16/sort_date_descending.png deleted file mode 100644 index 69217fa5337e8e124d1fc1c8d378d87aceee28fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Y)-aSX9I-8;e1n<-J^`24KG z)oU{}7j2zp=j45xb*oI1!l`Zxi`&m$y-4f6x8Rba#}~mlcbV*+1Uar(YK52o`tm1U zZ=-mtaGlNfAAkPa^RK*{H~F!}{}*MupX_?KbAiFe*^*yo%*>d);PT4_OH>ZbxUrop zYVEa|I@=api`1LGCqhT!@*c(hd15BBeXDKc_8%=g^V%hF%OQxE6mM&QMB7S7Ia}Qo z*I#qRpG(_(MFFVzN|veV{PUGYGncSce%Z1hYV9fojvJr%faOB8M4$e)`!@s3*(1PP ze=2p}v(I2NUN{G66`DvDKG^l<d(|I9iGm5Ib6J1>oBv?ui?5eA{V6}4bbgy@#kb8j zMH3fpc(gkr<;lg%Ow(Wd@)S$l!FM{lu9FAi))P+UZ2T_fd@7$-&A4&)%-#j8C)2}k zi2Jp0KYTUK!`4eucz1#394_`la*|E5ij!sdTOaevsDAhP)ExDJ+u6IQ{NbKSw!kQ0 N@O1TaS?83{1ON(;#4Z2; diff --git a/interface/web/themes/default-304/icons/x16/sort_number.png b/interface/web/themes/default-304/icons/x16/sort_number.png deleted file mode 100644 index dce9aad5387c062b9c562f75afb934c028301ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmV<50U-W~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004|Nkl<ZILnQb zyJ`Yq5QR4hf`yRn64FFu+oZ`W>`N?K>fZ<!R)U4LVkHP#sf8BW*xL96cKQS&2;T69 zB6yk1nXJpY7;xd^%>4g3M_gE~TCHleTJ45LqoFmMO@mQT>|PIYM5Jl=3hMPbLW&Ip z#r|(WrBVs;Vlm3i<#M6(`Aksn9sI~iLAhME=JWaBbUKln<MHU=y@MY)DJT>Q3Z}#1 z@G$TrCk44&PT_F3+flpSrc$XSvzu<WE9X$`@FOP$*=$zr_j}rGHbOq1cV_R|RpCcY z3R0<*+HSYBTrP!lIxX7o_no=bYRP=v;YUsi5{ZObuh)1nLOdRKW;eZFkCMrx%<v;8 z1+iF6p>;BuP$rY1NF*YP{YtS|q-ZosolZw~_>q%>a5$_Miv^9x<A;GCIVmtr)8hX- zn9XK1olYG_qmhIA96tDwlLEsqLcw6rVw9WJYDL50kf7c>_>q$WUbH|UaD&h1GZ=X{ zQ0!ihuIqo_g8e)*ugoX&#r!ZPqin_g%>)^pc|pis@WlA-%QxoZ4)6B8-~K@<_ytyO VbD24WXTJad002ovPDHLkV1hHN<$VAE diff --git a/interface/web/themes/default-304/icons/x16/sort_number_descending.png b/interface/web/themes/default-304/icons/x16/sort_number_descending.png deleted file mode 100644 index eadec7c7e2d352ad36fe815fb8abfd8c172b44c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004{Nkl<ZILnQb zyJ`Yq6ofYkf`t&fgfv-X+oZ`W>`RE2`Zt1wm0+Q*SP6nwYN3TTwl+S2oj!pGf;YUO z2wqOkoa`>^VnE?zcK&~6#09llt)|uM^&6Varq*h;3`RlWy&3d~NYm~OG#U+*6bA?j z|L;JxS`D!YGs?~NdZo+dLQwA=^61GxrBVqm7K`Eed?q)i)5*bmhdg>RP%IV|LdWCr zVUR~p2J-p5!r^|ur(Ul|<#JgR-lo&($hqy2M^6TFxtuy24z%5FsZc1~s2leg^61Gx zI-OR#-HukP6}8)K%49MEJajM^IL}akJbE&aOeWQ4v%!lI`u#qoQYpvVBoYbd8F}<% zARdn^tWKv>DwRqUi^Zth?TWX_X0sHHMn&O~M^6SKk%(F@mo%A79tL^zWWY4dF#pcs zd_JeyZ00Z?j~(3S$RUrO3>bzH(sez|C^zf%nnt4$LA`g#qbCDwv_K$mgU{zP7<o5P zcyA^c4F3HWtj{y^%6u|k%nxHS%2N1mMrVS|3rg;RC&q7GzA+znc(?BT))&gaFAX+x UnQv1NMgRZ+07*qoM6N<$g0ETD-~a#s diff --git a/interface/web/themes/default-304/icons/x16/sort_quantity.png b/interface/web/themes/default-304/icons/x16/sort_quantity.png deleted file mode 100644 index fb2c1e33dd6158107762163e9dae20339184f8d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU@Z4^aSX9I-8*@2)}aECqnE`F zDqhIZjg?Z#-u*@NlaOQh|HYdhJbER;al})$<ihcb>Ku#*_5W~mJvjb#-fe-T4XTIw zi}T-EstW|XF54Zo{`&4@1Br~o4=*H%h*V!|mJ!UnwYaHnfB%FeX2*^HBQLxx@!Dh2 z<5j#j?q$(V0h8)xc}vZV?YGYr?VK~`e7aY$)m))X=07G*X1ZP~>T~?Dq4@`8b=I|E z-VYzv?f)-+|2yj$kiglrU|Bx)TW`yDHUjmpxc*wJO9^Oqd5@cNmWkA&8-~naWm}_s zbGJv=%(!!)e~w7V>d@9}H*?&kdbu8WQ#tR<g*Uu)PnIl*(OZ2r%k}b06R=I&a;+bK ztk@KxlVLYsy(MwRggQR?KPNmJQzKO`o5;E?y_sVs!oujd8SKP3li2I;HAJ|?l<%{3 z*}gX9dHj99!2fwO!=Fw5nN%k+J8)yt|1_Ut32_2m;x>jyfBZOBWAngvpZH^OuY<g< XAFHOScy#Rs#sq_>tDnm{r-UW|WURn^ diff --git a/interface/web/themes/default-304/icons/x16/sort_quantity_descending.png b/interface/web/themes/default-304/icons/x16/sort_quantity_descending.png deleted file mode 100644 index abacec96033f65ed210839cf4f8153b026d43ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004ZNkl<ZILnQb zy=ua66vfjP!9i%YmM#sFwO#rOd5NH_|Is<%;_4U>bW#T$^l|hFL<qzW{6Y~DbG_#_ zgcxjz@Z;Q@d(H_2)cXCtHW&=<7>!2Scsw>41;w8AAV)-+_NZVu93rIHKv3*|7W8_( zGA}lx(nL{2*Xxy_*&F=GNkO;Uwb$$QEDS?R69hp*_69$4QsBC-g6VR(<OY7^q@dMm zDLg!#PSoji1kC>dKXOvgY&O;Te5S+UkQ?}slLE(a)bV(v?RHCzMnk|nnM`DcVow7< za#B#Q*VTT%$A`%c{K!c`tyWWL^?jeJ)vAEG-EPYa&EDWgP6{fOirQ>8<au6h;73jh zEX%T|)9GxrTG4X3Ojs-y3F+tX!H=92n5J1a48vwrn%!<k^ZA^h*&F=GNdYffsZ_e7 zP$-y;d>bhCtVh@N-~U4VduCplPv(pHVJt?)iv6207@c`RC|&Tx6yxI?^YMW9_+E@( aC<QmX5_*-FAYM=a0000<MNUMnLSTaQ0?aJ{ diff --git a/interface/web/themes/default-304/icons/x16/sort_small.png b/interface/web/themes/default-304/icons/x16/sort_small.png deleted file mode 100644 index a5cf900ebd27ffbcbca03e5f4a890eb90ef33912..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`S3F%DLo808outUs8X({*zl(Eo z$6MWFKg<js2<5nSpIsMGV$Wut5Y+7G5-{Wcx(E7)rpWI*lscohUAd`i=2iW`_d+3| zOJD8Ucge)}!ZzK+dpvtJG)`aI?tZN8lF3=!WS=(=Ubs32iloh2_RhxNuJ5rlSYTS} zmiN~Ax4&^%R0U2@;avOr)agw&Onq@8M+$u`<c@z7EcmkMz>Veaf9K6huQBF7T;L1R z)_Cm}|KSTa0z_Ob?{#&`%IwwH;C|}!9_@9n+4>#}JUe?~|DW)G-4B>kQm;)+Z@eA} P^dEz#tDnm{r-UW|bEA1r diff --git a/interface/web/themes/default-304/icons/x16/stamp.png b/interface/web/themes/default-304/icons/x16/stamp.png deleted file mode 100644 index ca9475d3dc362d1e422533c0f2ec52e93be276a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006INkl<ZILoDw z&r6eW9LJwS*A97nl>USY21Do|f`uK#Lp>`S)L6RtY;Hc7k84`XhRFKikTHpcY#=dh z5Yeeih#=IV4p9xF4nahaK`G76$+maj_s3=@Md*Ro^WpP+Uhnte(QYm+X=Jic&=tOe z%w`6FrrpTrwb<gKKA1}R)d!r5#eDlsdi0r-g6P5m@i){)>W#*pG#&cPNr9csYGb*a z-W!b$)|BLWjvbz?!9QF0w<~z3N1r(<ure89*3?$5*U`5O;ljfr0{61JJK>!kedeSf zkWOpCxw+QvkrA^}tKsqr1b6Z=toYsCo$yYNK66qqkW7+5Rc)p1ZS=1~aF0%6G-6}m z@6O3PJ^IW^fhUn5t(~SB+^AL&d;tu<R0VDq0$2LbpUey6uK?cZ(PvHyF2>_zsI0c1 zTU)sH8kj8t=eyex@fpY@BDj^F$JCphJ3ac$Nx|8P3DVZ?@q~U<D#(2Tj4lU!Mwd)7 ze5nUh&x+uk9)0GdpvSgJ__x}=m&=&{2t4`>-2VVP{i6Q36@=Gy2G_^0%AFp4=A__s zIINuth1!l8hV^Z86Sv<14^+v_d*F^@`YmA2<S;ay0`K(bGbaTny<TFit8GpF<*%jE zp72hOK66sQM|V1p>Kz^SFZJb!(>b=^q(`5*W&xMuhgw=X4?7%@gG}Y0U``77`XBxP X4IhPM3d1uC00000NkvXXu0mjfU)vyD diff --git a/interface/web/themes/default-304/icons/x16/stamp_arrow.png b/interface/web/themes/default-304/icons/x16/stamp_arrow.png deleted file mode 100644 index 28e494064d698b204c58791a06f65c857664de86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007jNkl<ZILnQY zTS${(7{{NB41~PMn{tXb-qyO1rfH;-g<VKWZD|`NOQ+jB40En&9vX(T!!n!5QnVy= z2@+m}M9~2|2#u0zQHdF230ZU?Pm}4t_xYTf7fCPtczD0(_y6<pQk~mPOnqOUOrZOp zxtw9Brl*H$dwXR?EiHu*=WuPUZoSDK`<!FQ+TG0*E{Y|yu(<e7mL2v(IU;jsCslTJ z$qrhrML{8{?qP{rlPGNNTfGZ-&mQ}nW60!kG5Vlr4lFDn_dX<YZg^q1(7AGFc+VdD zp&XIH=_F%oYjj3=xqdbn#PNraP&@izvYlVKGrVVyea<md;BYX8fM}kYpGW=>B-9o4 zsIZt(5W4f^J$vkjazuG{I}@Fz*BgHY0x&)W%ASb=wF-t4xyX0)NK`!sc+VdDp&Zds zn~f=+5zXJ{=5WdbG<$&~8HupylyKQCIOFU<!^qN}J@!L6qC?fyOiW^4Udh+lS#*s8 z%Jg{Xl<CrB%8q5CVbBZPgKyZ=HtI`tjTI$2$4TD!iYU`;W=emH<}Wid==cEK90%Io z0Rukq;wB@ssslJ(brNc~AFj_p(q*qN;mSviRItCal=hXB#K@IO)5P>NnqC7}MajiC zz&U}c*N>#8VI(&`K|;+PsQbszEQ&?gv;FLdhLW{f#`IJC!K8R)|J2kPvIZt#{{(17 zvFhb274LyK>yU@|$P|iLSxSoehbY;sP*nasqcoR>_u3z0OTOE`tL`omu8$%61+dj{ z+Y?nhsNsC9V8@2Y$h3&~c+0vor`^Bp5fG7c?QQt(;<8OU)wJe>%jN6NjoBTpu&j2E fn3}M-RO#CvK%Q7BkE`be00000NkvXXu0mjfH|SRs diff --git a/interface/web/themes/default-304/icons/x16/stamp_exclamation.png b/interface/web/themes/default-304/icons/x16/stamp_exclamation.png deleted file mode 100644 index 6e6cf3062fa65153ca5f1d0983d6fb0227f83013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007<Nkl<ZILnQY zT}abm7{%X#HxUMT*Bsu|MRZ{oi(y2lW#x@{VSmfK$d*pGrA=|JWvL9puNoo~TiCQE z&ip{6G6+pW+e)PmboiCjN)okFaZ@ML)BCJxc473wkHf=r&f(!@g^i7jC~9gFa}@uh zn;C-LY-nHwHk&x3vN9d~oh>L({7cD4e##L{Z?zKX8+=KuZ*1(yric829AjFGh2_=O zisSYA3?DZocH%c}vq-OK`ZIHAPd@Tfj$j(InNa$8vv++RNiX2%e7zH@+m@}FpgsA> zAILGLGMSjVswy-#Cr7#B^WkC-{3IJ&p)r(i%>?bqM}Eo?EX`;nR9@cfURy(IFZ?9u z79m%sMOt7cr9Jt`AILG5Qc^;MMk|%-MXwiXJ8;#(3z8F|x}1bmV}qajeRUY?Pe8@p zsE6ba<QThPFc4RkdGpWJRa_ecDxAQ%*a+wp0?Z{k7%EM8+%1QD!G@3T<+ya~dUhbk zSVDe2A&E#y$(&nRLG1(}#7LnKV*E-J=SuPJjS4<bGv4;bxw>0+Cpp?gj9_tEEs?dv zFPK?gM$I_z=o3&q3bcO#a<Wyhlu0n>Duo~jSe!0H^8<;auUQntVeE8P7CV)hDG3(@ z%{Pw+r9;3yUUFv`DC1PW?n2kIcq~rc0Amc(qZ#P$I55!DC_33~;|0g$azeAfFPP=O zJmq$8V+jL&sc?;{F*0-pPoHQp^dSm^_T%o(dePnIRuOODPb`y#i6bMm^SorQOqRE) zUuPX?t=s4NJaz(;PO1L_(n;qLyle?}bXY`3DIdl;9261~9W0gVwrg?Wp8nxi`{!pS z4q;~eAUr?xekDfilJD(iQ4QPvc7=!krPgw0sw-voouK_MZ<S~F-q}*V00000NkvXX Hu0mjf@A^=& diff --git a/interface/web/themes/default-304/icons/x16/stamp_minus.png b/interface/web/themes/default-304/icons/x16/stamp_minus.png deleted file mode 100644 index 55582ff30b85dde5965216d4dbedb4a1bbbd1899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006$Nkl<ZILoDy z-%C?*7{<S7C|-1tmz(TQsN}#Bx-h}QE~JZ^WrHP4k8VpH=3LV>lM$<Ih-tML8%S*? zR0Kgc5kXKFc@dTnb`g{W8T5mubF%sLKF6a$QV4zF!^@ZV^E~HpIO^Qwq#}b;Qx-wr z%3RM7)t^eKfppr^Hagl0IY$Nt^nXoy^qC_nG%-P1S7k{GtE+!y-Jx&hlnNvgswbJW z914Zn@**`n#v1n*&^j{p`z~-#k3Mrm`C~ES$xCytP(b4o7#zDb3-54Z<4(AzN8ijT z<sBPSzVUHuU00VUo6qCKQy4g-ci|tpym2So)1%KEQ7zFZ@#dsCv$BHbXE1Pf528C5 zK#O_j<enaVGpAHjBton;9*^%wE(hOpp!0<kI2+(S*@)(7%Aofpz&$<sW=^T&Lqp`$ zk~Du^UdEYeU}P3JT33aj?m#RO#QCu}!mrl$^yr&8r4IM?k&3FOruHw{ERyd4N390k zQEN=n>8eNg(JZ*9N8jsmskD+)9|(|+pVIt!X$kQ;;LdyC`di?^2l?WDAKVQGaklrg zv8PA>s?D}maG;|@?Qd_d*y(WiKP@ie;%nfhlw5fOToNwK0K?iI#H}_wtgJ-5tnB0M z;^G+zPs@K8Q+wTR;{Ptq3-XocGnq}KC75-&HgQ8r_!7!ux7#e$)q!tPvcqog`E%aW zb##}M%wN+q1WHTi`-_TZ1|=Nk8_2N<yS9~=*KF6c;8v#iyP4a^v^?a$_ysQ_X2+d! R81Dc8002ovPDHLkV1kRaF$(|y diff --git a/interface/web/themes/default-304/icons/x16/stamp_pencil.png b/interface/web/themes/default-304/icons/x16/stamp_pencil.png deleted file mode 100644 index 2cd7319d116780378223a64d621e301d52c9819a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007tNkl<ZILnQY zT}YE*6vv+zf<CB=cKIsNjSvJ=5Qou7M>Z6cg*wfo6w|qnoKu{0S+<7M${HqG7-Ito zwMB?n2qBgQM$|=A153?_QZlfj>6}deJ?C{ZcTsfU$Kkx^_dh(m?0kPeBOHFe$kF{z zk7WpUuD6%9^!17Qj*e>ZDr{-d{i~BlKII5z@980`*Z7iHU0eGrF^BwUjxnp(%Nl(? zQDe93BU~yP!8!x;sBZWFnK`s4k9^7z%+lRW7$W>~cy$#eqmVduI{@QV@5W5fo;>oS zImV2goy^qLm5^OuZwN&qD0>WvQujSroNXI3L3{GZch%Lg=YqgkmD^1i!~Ak^Wd)T_ zAyL}kK!eSSs_0Ce_T-WOBq?eAK)K6BB&ZAq)6Z}irg5P589z{31mmd^RJwa5&b$C< zPhO8oRq#O&2F3*;lO1<DiPKB`^1|{mnqC6!0iZZL9X6d7-7Xt0bb8SGYJER5HwSZW z?tM5M7!-stR?yr`B&L^_*L(|w;F|=rS*g%zv!qVcp3Fn*Z~)UEAL4L+{@oDw)S~G2 zF{WmDRx4rt#b5AsX$hY9z?~W3<^(YKiT`nn2^B>-Xmb`~Y$ykzSvyjc$_Fx;OzvU4 z)Mhg~Qd5&C*J>@Zi;KAY2DrtKTzd;#;aq$ToV{*`r(?eqzSOjHQd69Kbe~emYSYpf zJ6KUcSbp#q%=5qeIT(y%VtN>lhO(uw-<yfR<Os-*=9pBXLa|58$gqCrM|LX|jj{e^ zVG1`~J0>XXY}htUVe-gln~H|yEi##ES8A$lbJw4c4I}uD!c!Rsw${bIb3Y}Ti?8i+ pd0giOgGTV%%7jCE6XL#a)Nks4KTW*CsB8cL002ovPDHLkV1mK3O_Bfr diff --git a/interface/web/themes/default-304/icons/x16/stamp_plus.png b/interface/web/themes/default-304/icons/x16/stamp_plus.png deleted file mode 100644 index c3de4596947329410f695f2853fe9162ec1c5087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007JNkl<ZILnQY zUr3W-6vj`Ztcc7;7EJR#k{Jw!5GD%~yO5xoWuqE4H@CGvm~%PP%p}Zom?-hZa<M{} z5E2Ak6cGe=(JsPTL|q6&iWIC!os;R)dp<vnlB5@Y91iFAJbZj~IT|IVWoSqvu>Q|n z&M?$8FhI?NgPNM29vj3v-rQ_mYqG~a=NM{;L>SwmI5G>1i~nTVVPDA+`TF~*J{;B@ zX=tcP3#sB6mKdIZt$XPAF5o+R>~oGGuOu<{v}jH(ETHl^WKQ0X!_nElvNL>Vk9{Ra z<ml}sXJ21VS#7O7nNH*E3&@y)58-XSv9dFKXODf(F;pE4GLDpJo}QnF<t1cHbuFm# z`%tayJo(NZ`$~?;+}_UQ80>cEk5mfI5y10G6qqXDI9CZva6l&T8sIy7>?=8<Q?0Gc z`B~9CH8+QgF`zpRoG2@V-)e-^?#Gqh5Zc}>-PvPb$q^lEY-Dl^&1TnRGKugfz*wS# z)mS1=#&f0|ZBODjJ>o`2WOqUp-4&+j4x&41qH>>)asL#}UuS0#`UpH218#i)9wo#d z_c~EkaTu2Z7f|rn0LzpQo5G^xZuU|^soPD5T&`TL(dhj=GlT1If!m^_>mAS`xHbyx zxp@#frF>|Ii(#C!LKVs$72z0#)DrEls$#s~#TQJ7zdSxYy$Wr#2!=05S3!MQG2*Au z>+>|l#lCN%WV>Ep|MxUM^+0u1J-+YW0pur&u&!g<D0ODWs4G+Ae4e0Sy;^P9s?+(` znyNt7xMplGsA<c4Iaj)o{&<_U+BGM+G9<EZh{;oVzW|QkJfh~;m~{XE002ovPDHLk FV1n1zIP3rb diff --git a/interface/web/themes/default-304/icons/x16/star.png b/interface/web/themes/default-304/icons/x16/star.png deleted file mode 100644 index a23dbdfe07d1c39fec6fe03984354c8b11b4b55b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006<Nkl<ZILn2Q z?@Lo*6vxkVM=p(uupmg&^hKK359viO66;k#duI|vkp|H}P%89`6fxK^%*|X*%=KfV zU=tSw6D@DlTuo@>?lxLhG`FU>JElk*2v5(kyUXSlJ@Db4=bX>?z;j{z5dp;G$jf<| zoLM@j6mKkf7u=P}>Z6;p0CCv~d>m8QEllotg<zfTqm!A*x*+due_`U8kiS_7`7a1q zr~B*uoW|r+0{k-qZ=VzW%3^<fWzi7F8hbeV?*intg_OBpluo2115L*IsM}F8fxUb# zIL+i`K0doNVj^^vCVpO_;=7aLzdSJ9g0lO!VR-CeZ6FrWCx1)*bUE5Zmw$CqY4-9O zOW_-IY3>^9b<p{*tx3D7B7hmp;sO}zCY)KvowfEA@#6HkNMi0foe#FqA7T>?e9}<C zbAo+OQ@67rV!5a0(ZvjA(+l8n4+r)EuGC>tjRd_-F~6^#3f`j%UUx$bXXv1dnRN>Y zSb7OO>49GVhkEIoSVuGQxeiD;LkC@D0iNMI3I%2@Hx&&YS&as(*?SMNr|hTEFV!>> zs97~@$rL(iUpZA30H&@r4vh|O7UJJ)XxP6uWj7WHHe;a>7Rpo7Y$Y9iP$-~-E@rZh z<~YDW2VCN9#i5z;oeM+V+_bS1nh~sLoI4hH+qMuo=w=>{v5B!=e-j2rbQ^ryHn5&L z28UU1D`N|*>vZj4#Th#2${EapN^VrKpW<n0gf?{n)UtaeqlB@GQNB?P`z|&@D>~@P a8Py-irK@cb%siF=0000<MNUMnLSTY<i6Sxp diff --git a/interface/web/themes/default-304/icons/x16/star__arrow.png b/interface/web/themes/default-304/icons/x16/star__arrow.png deleted file mode 100644 index b011f0e81577403e0c7dd70f77060d144830ed0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmV;}0w?{6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007?Nkl<ZILn2Q zYe<t(9LE3eYiSr(P#=smOF!6cRuU+YX+l`!moh7Cl}0K=*cVO3E~uD-<|U_YI5Tf; zbaAGYplCTUUA>iC@0PJlabCks)GW2&-#Kernu`wnc>m`)&+~B33%61jID3o%uE8#6 zEG#*r8JdOWD#pwUncads3yXB>wdQOCrBlJc>v|g-`PR*i6gpdV>RFgsw4uDL{S7gm zG-xAvgZ3OxXRH3Ve~Hj~j{)U<2HGDmqM7mHiJ9@D2|81ap8dCg@?6GvsGhjD%$bUC z)>w$D2DcWf+4DkECG*T4A38&IlZFJG9Ee9<$06Ond{A@)JW5iby#B7B$2csS{cbA8 z>Cp_F9!W=2Z>*WAp=&rbm_oEP9Q$--Rw4E5p&6Q`1yGjBu$4J%guKvMsp}FBPYzzi zF?|&F>%y_8I}~{?gnW;qswr?-cH2owy);9!)&i)`WkDfk-5aD16?%2JQL70+UcJwT zS`}!FkxKf5%M6<R(h;G*s1FX`ytA-?0a*b9HMvlreHCE(tn<Z%XgYVA4vIR)BtwWK z%=s057W!mrz`V+{Y&ceCvu&e#|DU7!t>nGCFiD<=Vd6RrD|w7wG5OP{AN6AX03r!< zf{bpVxnPSYfHcF*?z&PJexh$X4r#sT6cT4Xq((iT)sJ}oJ>rRXe~ABx=#|{gfpvu* z01&4^w6b=s;Z3vam$FQ@OOg(e-f>kAeJ+c??oBTFA&ASH_p9i|qi+#iFFxhgUurbp zfF-OXtP@>_(u$nrn(Rc79|?jzL|aW*MP}ceB#?Vw$o{sY4bdf{TJ0R17;VXd0}a!c zkRQrLg+Zc|BM8Xei{M7sK-jdx3AU{XifwW~l{&M`H!{JJargy__R$eMWp0810000< KMNUMnLSTZjg;mu6 diff --git a/interface/web/themes/default-304/icons/x16/star__exclamation.png b/interface/web/themes/default-304/icons/x16/star__exclamation.png deleted file mode 100644 index 46a204de975b80fa72eb1e9103b65cf4121a7ec7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00080Nkl<ZILn2R z>r2y77{{OU^AZ@ovY;25G+$(vkm-w}1WUpo3o1s?-4{}SKqAroVhg;a=)APe%Q7`B zXKD)Byk&0AnNIhcTXSa4%eLHf*+@fr`km=SbJ2kh=Q+>$e!u+A?}5yl1TLK>pl<NW z#T7Q(Q4jS(%X8wUz0zyI(-qeBsn+9LEhq{Zf!_L6wrg8=G*f8p=~K;G&$<JpyLK5) zc-G8b(VE%IT3UPhf9p3iS}O>2RulM8L-JfR`LnJW;Vi9bkKX+^fYMe;LVFrR<ckg= zF4%Liry*EQd)~D0PD+}*F|0_`In62P9KVjbkH>WX(t+?UgcjU~lKRp}y?rWg;in@X z=PhYCKm8CLrmJqgPu|9f!INm{+JhsigkLf-PftD6O9Mb6AdEDFIaie%(5X{im~u|s zLaQ+e$8>zu4<w?t_b6&wc{u;A2s>W-*($P`B<i7FPXLr>F(4~sLK?(AWkwC(&JM<+ zR&&UWMiGIdnp3}*Ts3G^#rG@g$O+Fl*8~u#%pve13vyUhtYcKS50{C;0r^&RS_H`F z^KowC-dy)<M$%P7d^y0qN}jCZFHL7UEXMsy7UM3oj_k$JPdwCjM<aa}C&g*~HB>i; zDcY+@JU5x;fN&mwIL%E|ohVQ{`(-yyvO5=L&jQ${Vqg3C@Oc~_O2D^`DLABwLru@Y znfK+Skek9v0=E(m0~9`h<j&e4b6?9gn?%4U%QH!KTXm3W%y0xvY_$6e=x$<Tu;W#r zqN$i1pk9V!Gsl*^J0L2{@Ec4|g{tFm5K~(~N)5^|o7EVB*3aSSvfps;6oVqz_NItP zXn+qj)0c2RRGoANQaAZSBzF!=NrqBU8mKw?iXK6~=rMdP7Qhc$iv^&Pri1VgOz!0L T5U#&T00000NkvXXu0mjf;n7<z diff --git a/interface/web/themes/default-304/icons/x16/star__minus.png b/interface/web/themes/default-304/icons/x16/star__minus.png deleted file mode 100644 index d150e00d6a037a60b46336c6b92e067473d28552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007ONkl<ZILn2S zZAepL7>1wsEM3|cQACjDSCA?8A^qq_VnI;Qeq~ZbO%0+S{Vfgbb0!AUg>Bk~6LZ;) zE!e_Ifuh->bhV<5vo%=X(>23QR79=l?S1CiaJuNg#d*&C-1p6U4hI^l3CNESa99&^ zN@U5-q$Xh16M)`(B*Flnu;7+RoQ~dTE;b;876PxkVr&-rvz{P0M|Jcp%)~t)FU|8X z<1xRxT=2Wg1e~M#V*e7M-$=k_BJlhn(M*puk57*^jpK|O?*3bVJmpD-y*s^cF5E<C zLuzWbruCtg$O}CN@;DLi2W6fK{{=en?L76oIOO@451Ot*#+~cX)^)eQ8wzM<XTr^N zDp*UWzSq$3$FmV8M=sOJ;cBKS=;(*aS&Kf~iy6#f0kqZ;&QQ;t=v1fLJVPe~6T_G2 zsIP*4@sv{UI~f%m2ig57wf7VU_}fw&dNG69XaRJnIIw8BbgN#{?sJxg+^!-jIQPbI z+KWTDLyz$s2OS4kCNr*p0N+U9z6u)MuZqH-JcV>2uE8B)+&$O=V1jvg5U;kIF_H~R z?pe^c=XcPzjlJ(q_A1-y!11-TJ3oc;8^{#<3E#4y12F>VA_ckG0Q%YpyB@Wy62?F0 z(-HU9Ig2h;FzZqTK2Q2*MlPp|(Xx{0AwaetK&yZ=HuF0Fo8FB-TI;wWT@92Y%0d!Q z<s|)T$XfPOu@b&sV?pGGcmj^Gg0Wt61zOtclU&Lw=sdg+b~9}aV>O!#>n}nl?$Co? zF@sr<h(a#=ppJ?XsFEf_0ejA2q%k%zGM7ss?{o=Nq6fWVM)DWCKd&RuR85)y0000< KMNUMnLSTaEZ9oYC diff --git a/interface/web/themes/default-304/icons/x16/star__pencil.png b/interface/web/themes/default-304/icons/x16/star__pencil.png deleted file mode 100644 index cf0d77b16a2bc3934489d4b24f6cdaa82b4a2b4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmV<50wDc~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007}Nkl<ZILmF2 zYe>^k7>D08$y+zFg0M`RLE6wt3@j2g!VhL&azltN8q}wvZ`#dEiWq1MYx9ybb7hXq z&D0Dgna=Q*Ldt(@wz3b)HN{QBWD3IDd39TAzVN{LpY!~F+d1&y4ugwl84R_q%LO+} z-yP2x$Ye68kw}h>Gp6fhEOBX*=xSKE;GrA%*tqOTrPBR3;^J~JKOf&P*6l4I`g9CF zwRqVpbnbgc(E0=a0lk_fq@<)=bGclY92_jK1xQ|1K=f*t;brMoV}@WgUJ__c;pPhV z)@8eeVzD?UC@3ge1$@>PbiQO@c*UTnktyb;%V*}Ml`~x$rt^fAxvcZdN&lqdv74Zc zzu$ia1pm9C18pJi7o1A8k6p+1r~cEPaCsg(rLFkq(!JW(<4a$v$tGOIo~Cf5u&RhT z8Wn7Ctq00H2(7pWwJp!0%nqAk-sLRES$h%A{wl<-`dGw2WB9r<3{Ac1e6Ii}zh%wq zRAMt_C`$!UQ_Mu_Qqeih<3NL{|Ge$@&$~Ej$wdA{D8C(ydfibpf0p8aKEc-T$j?A7 zWhm<@fERKR=qg1atty{7%ZSWj9F0d|<b;=zfdmJgkwY$J))X*kC}U7Bhce?}ymQ<X zgDV;BJLIG@a>(@-(A3`d;;SwZb=xg*i*`#Szwcpwm1wkojYOMSvZyX$-Q;+D??i|J zR7Fc1X|CQZ%>0nxgz><Ft}0N_Rs{$XLfC@ydpI^f2@uF3molp+H3^`y0InFc+pWVL zyQXT2Mg3KUkU`LTSif`1pxtIAhuoDT;%wyXP~<{&UFn9=l5EhNPJ~##x0SPnuVYGY zf`-n>A=jOuEcm!LBKV^WWu`&4pD#r5?{Ll@&TdYazaJdDoCaCskn7I)`~?xas@0Sj RqzwQ7002ovPDHLkV1kB3X378n diff --git a/interface/web/themes/default-304/icons/x16/star__plus.png b/interface/web/themes/default-304/icons/x16/star__plus.png deleted file mode 100644 index 9f32f79793c36577d461d9be42499c333fc02c34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmV;y0zUnTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007rNkl<ZILn2Q zZAep57{{M`=SymC;WjE?vMjQ<SxFxv8s?{hB*+>;WGVFWrH`3`y`VCToQCPl;l#F9 zn*}ah7)-QUl&)^j#@!Oui#VNIxs557R&+Y&wvDNa4*a;!`Jd<aaL$FsY6?!4Qoxwv zQWj>(8F7dU{dXyjXZpAUZiZQqlir9IEeJzK3f}ZaS;G#ldqN;}Bqu$w&Vmi$RnK2= z<1x3RoOL@+v80aVi~E-ZgZC-0JfPskL#lOlsx3G>r3{jqWaR9>0|-y`RIc@L&cJ*? ziRSz*$ZE<SAX&U#Fl(v4c)TAfafaNLC^U8fIbR-d{;Lm^*C6+H4RrP1k&O5~t#jW4 zZD__TM>CUkDDd$d$MnP%G(BF8vs&c)aB<G4&Kn^PamfJatfy$Lf<A6&NwqkKPk2J( zmyyp^fkvG&H1e(lvCMw_J&LU6B9H!7vW4^#hq#deplhPR*iPq|)I5#LCi6S&QpDQ! zMzL9o{8F7@G_hN3hi<V73?kUr#*ZC9fxel7dri>ncr6Wlau%Xk>_giFVoiqcbf6M} zPQ-vlh{X)xR@e0?N!kYbx!1M(m)Er!zjp_IN&zbC%R&X+D^X^LU`F=!EW#qgq0Ufo z12*LWsO20xA9bX&!OvUKgd>06s7hsfR4J@PEBswNS&9||$`uSmR!K2Hdo7%?^a$N= z`&WJGtfz-nbx=;&b0fu*uN3^;&?5M;ZA^+l!Dl!c`P>a?Od3YidKEe}ibQ)u6&Mcg zgIzciVEDK$R9pf>wmj`yCcYiiEVqRn;sTGz<R$orG8IRlDme)xc)uQ#jmg5SU6u@6 n(hnz?SD#Oqg+qyku*3TUFu%0Ak|g(z00000NkvXXu0mjfTFXi- diff --git a/interface/web/themes/default-304/icons/x16/star_empty.png b/interface/web/themes/default-304/icons/x16/star_empty.png deleted file mode 100644 index 019e358ddd97fd560ec9c1a421f8c94859ed11d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005fNkl<ZI8SYo zO-lk%6oyYF6$Kd*#Z-$HL68{qfz=`kf{>^za2Ab)PDr}Yje;UB^cRSNA|fu-jkxs> zxNs}}1y{Oo?@~Lj%$0HM!UJdC^SpOpl!Cz^IUEjZG#dYLqhZXa9ds#^$xJB}3JVe= zYs}?vMQ=8MTCGO)dR<^?Hk&HIEOI#d&fEj2R4P-d)#_!Z(@_9sksJMmAeYNgsZ^qJ zxhxNd!&iVA8Fog0AprS&-okJ7P9~FkfEk(51C&mufB&P^YJGC~0$?`o1tiO|Sy7bt zR4Vm77!01d@W5PaoM?#W2RLxiK^GU0-|t_FL?UO2L_%%1+aKfc_=@FYJ;<<w0~Z~1 z#RU|L#VDK2nv2Dv-0St8xOAik8Fp~sqBD0vI2@*EG)kdR=%w53K62?$4>IiFz@1%y z<Ma6hD}g}ZXEYj}bLoIN)i^+g9US4$jwDIs^?HF6kH-}*So{6{Z8Dks0+^9u2L~=X zbH`@05r5fB{>`2I_jPzY9@Xu3p99Ruu!93vf0me4X2a!jy{W3|aXOu{)oR`6Y@J!- zSwe;#9JpEsU0P-~nH~NpzjnL*&SWy}@w0_7Gh56yXS>+Jfva_v{{Yqmz3TQCaUK8w N002ovPDHLkV1iv<?SudT diff --git a/interface/web/themes/default-304/icons/x16/star_half.png b/interface/web/themes/default-304/icons/x16/star_half.png deleted file mode 100644 index 7fdbd3759ed5c78aa8e0bc59db5b2f22149b60f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmV<00ww*4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007^Nkl<ZILn37 zZ%7ky7{Kx8PE#<-u!u&Q{R6A9$Um4tk`crxYn2|+)V2$AzR)*H4p}ry#6Vk)Hs_eb zwpES=8ZHWwY?-8$LzHa=>(9X2G;<=7C4|@WTeflydf@ZsxaWI!KMt-bC^&nHf?<19 zB{rKa2SFsEPzV(j6#%^!D#XzlHE<noW+In$IvupMw1k8M#9%iCuX@5Zx%##|wA<~h z)oM*bKv*o6@bW(a;(6CE7&|@gmb#oyr`T*ZXPQhVApTyC8tA)2LBEZHXLl*h*DtLz zQ&UsNj7B44Fc?6i(fmI^Jn5uTU))c5yb#oKI0x_zq*|>uDRMa!cx0v?MDuzu-!nUY zfdn!f4#ydlN>vsOXqAwvy9^yYHwAB|{hIIJg00-#L<2V$sON(3WF(M=_Abc_1Oi9u z>gr0wV(|%vVG>CIjExj+Zl=Z78wvfMp<@5+$BW#gm*spOh6J_~i;Ig{0|Nsm6$%Ag zU0uCfCX-PZfZqYQrJ|v`jZU$*$C$jM%(QzfmvfEoCxOj`&*wX=*XtRzTAe7D%K-xr z5ul(`O~GvysNFAfgYP{V9D$QejEsyNs;sQcuc@hls;a6#0Wuv|!{W?M^wSA%&W{Q2 zPHyt;9unAvHqOt_r<a$PpDQgbjX^+!XUA56_J)x3dxll6nGbyKlRIspTc6-kDwV~4 zzkeS___ejQVyRThL%`$lVA<p!1ZcYg=li?Xjyrodd^R@HL;8A<78MnxOC%B&e`z89 z4<bDMOo2eKY?nqW(K^i~FqoQGj5W!@dNdER@LD2@=kxhIkx0a_EGsE2EIf|a5>OnX zNFatRlP|#o9cBwa9v=tf5!+BQT8-Ak#>TGC&d$!ogDYFQpFEWQ3DlRgnW3FPjsO4v M07*qoM6N<$g2C=c1poj5 diff --git a/interface/web/themes/default-304/icons/x16/star_small.png b/interface/web/themes/default-304/icons/x16/star_small.png deleted file mode 100644 index c1378cfe49a4639124b8f503bce0c538acf8cf47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002}Nkl<ZILl-B z|NlP&C75Aw8E|M7Bg66aj0|TsgE0pXuZGfKagaPg13>uHMz8^vPy;MMe3%?j1{__( z$Z&E4W68~<Mh8GNh)<LO2Uaj{M#f)XbbLk^!)w6wMn;qQot#G>T+aUV`C0w{kB`g# ze|l2+|Ni;-PxCrCj)LUz8Zfh&kzv&oCgZi!nGQX>ll1@AMbG~?&U^m{@j>DsdAtV9 zZDRmo*_BhdE<C$!`S0op?N3i{8vI*1h5Z6Z93+p|fN2d3AndTDpY8I(Zq^Gx_S^;C zEEg8{v0Vm<gXHlVFtwfmgwud{H4y7V`T9^kNPMs-<pD7O0Qi8Px0<l1%K!iX07*qo IM6N<$f&sOP761SM diff --git a/interface/web/themes/default-304/icons/x16/star_small_empty.png b/interface/web/themes/default-304/icons/x16/star_small_empty.png deleted file mode 100644 index bcadeaa4c43d6fd2f14287603629454214cc9df2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmV+!0p|XRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002sNkl<ZILpnF zv8sY#9L4|3om=C!L_LCIG+i2_rU)fJaBvbFeFP^3!9@^37x8hNd<tK{#l9aD#2qYX zsNu))oP+245M>-kc?bEffh0*J&vU8k8h)ClaZx-u{nG&`ibBe=Tvb)&qWF9F(m<M~ zl4aRW-{6emUmA$x*nOn$`~ClHa=<jrU&nD&*L6qjcbYAVC#Rnrux(qyFkD1Y#7Tx` zjpE7aCkH&wgIN#+mthz-ZQK5#cyjv50ewwa`o7N#N<SY^JURWdZvckoWLef+DJ3ZW fmVf)N{E>kxEEA&UuFPEy00000NkvXXu0mjf$#Z*Q diff --git a/interface/web/themes/default-304/icons/x16/star_small_half.png b/interface/web/themes/default-304/icons/x16/star_small_half.png deleted file mode 100644 index 6b1cb6d2c5415db202be45b0707b30bcaa37f1e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003eNkl<ZILl-B z|NlP&C75Aw8E|M7Bg66aj0|TsgE7bMb)lWhmoH}pVum?$<}gg0IFYacAbe^g*Z|Az ztAjchE?lTIZ{9qxW}*!^x`vVA<Oar)gWL0ZX3m`HI%Ucf;tV*jf^jo4{`h+Lg1)}K zG-Qm|fa#5lCi6Qvk3P7Z{ps_w`u{&Z?w$t}cfEf7dO%WAQhZcYloVbAW;Qc2teV1P zymmU%p=WoJ{=a>>bRtmPxVN`At-ZZnIxa2_zZd4VF@Uh_%Bfrzp53<mclm7n>|eir zS(lfW$L8eZ@B=Y^1Ew`FfUv`oezwaCyIC*P6dINRHO1%W=f?uQpa8`94VYTb0K#cN yyc&r0tMUyPqNAfFfPN1HVq+j4>`8e*3;+P~R-uVcm+1`v0000<MNUMnLSTYqsGs`) diff --git a/interface/web/themes/default-304/icons/x16/sticky_note.png b/interface/web/themes/default-304/icons/x16/sticky_note.png deleted file mode 100644 index ff9d467d72410b6173d0ed0fc86aa2dfb9b0b9a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004QNkl<ZILoDz z%}N4M7>2*2yOu3nbOj<|H`JzmxNIL0fe>X;W`;vyPK}8s=7=u50+(JxL{R?BOl8h| zomV{rK~9AO&teYm^K#C2W{8<-5vbXm(rVF$WcwH5$Tk{8ra8qgknDK2!Q)|`KL=Nm z9DnrA`2F>W-(FJO?QStLlK8g*yv*1g4|OT!q;w&r3|r49Ja{_b-eZzGolRyZ!^lb2 z{DOMjXV0~6dDPc_ENQpbeKalfAR$1tnouNN%a8?^b4#!j90ytDQMD=*`>u62Ie$<I zW`eBps9Y9`L(eYxL!4KF!6K_XDwTxd*t5&B;5x8m)Xy=p$|J)NinM1}*tH6QC0IjN zd8F$?an8;?d$t}}f;D87N3ocod_Dv;cB-=ACa`2YEHJWg;7*=sR8Te>DzalTN~Sxh zFlK_m;&yPw_)a{#$jHJ`&$47SkqDorQepEiAPZ;a(vl=1S@|cCiM#0U`~`T9Z-_K$ R*`5FZ002ovPDHLkV1kd!y~zLo diff --git a/interface/web/themes/default-304/icons/x16/sticky_note__arrow.png b/interface/web/themes/default-304/icons/x16/sticky_note__arrow.png deleted file mode 100644 index 2488b94955d79991d653da2dd18a8f099255d5cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmV-10?z%3P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005_Nkl<ZILoDw zUr19?9LIlm!yfwcP!9#Y^w5h9TaP~U8iY?df`S@>feoTWp#sT=BE%9THz~VrY+0*o ztIOOlCrXX#rC|2Q*h7RRhC~SI^xjqG?zi*XJU0}lK?gn@&f)w0aL$ha(EmWg!zD&W zs7`Qs9o(E98X`)iO4tIy70ZlaaXyOQb9V$`{F=RmpECjc`0htGdjXsgxR(j|ute+P zye3LvQ3{EY3S;^P=DuCW?ALaTj-CPXDmW+DXA1@gZQ2UP11#hst4h*ouT3Q4cq|}> z1_l&Kd%=haL2p?Jzl6WTS=pmxQjv5Nj7P=)uO;D`a8~vx9#<rtmZ{rAEGOZ?a#r?8 z*A+>ZWyXcz-kOqyTo{~{J&MH?Nw;P8qhQ=GE4lXc73$+3aWU$9(sa9t&Z?)0G)<B8 zAfJF`YGoxSv@xhtz`^e4)74#{yzaI!B9}{{Xw<<(kWUIh-!jRiL>fm!FN^GN>BDh- z9G#PZC};MzzV#BX%1VWTLB~VnQ(#HyCH>%;98P@3)d}F_d*H~MznuF3>~4OM;r=#3 zRYQaGrr+;Ot>i%S`7f@<o*c8w=g(F5j>GdB*l|kFZmntYv0$TMyI|*fY&mxKUDY#y z_syO_{ZjYemUGV`+TaPP6}7>P*u9%-1I7D4SRPm-1u`hM00000NkvXXu0mjfW%v#W diff --git a/interface/web/themes/default-304/icons/x16/sticky_note__exclamation.png b/interface/web/themes/default-304/icons/x16/sticky_note__exclamation.png deleted file mode 100644 index e201d16f6cc5fb836711cc56757bb5dcb6d9b29f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006UNkl<ZILoDz zPe@cj9LGPu*{9FeRhQi?D+sd$se{p;!YBx(gB~h~2s+fgYnSk*hp0<Lmngc`VVCG) z5O@hXL_`uRnjH)wwm@Ci*7eW6_hzQU+qWtz9UAz-F!TL>e!uz6j96>=pW%#;3jiYA z20H(te{C&!V<5`wL_5~f)!&yLHpatR0|bO~4{I$yeitYd9;li;ANiCqPzz;@Mr#kP zJ%Yf;_cflUsaC6OY^*VG?&+{GTnBpVM=+*do)S@r2oNTU#Wrg%mzR0}=>x8N^WNOt ztJA<>4Iq&w2BBHR?0{rWW-!LbbzN3hUry~-K`b;2*6t1on=KeaeZ|pw6CfgpD8TH1 ztQ0@8vXm#;-iy|ofUQl8h2jtr^&+fDvsRwvNY5QA%d=o`BcIY5YT<-t*#W7PzR}du zjqA41lsHbKrPFG#dOM(YgzXTpl;*$EnmWaeTUnahPS9lKScl+r2&j<}&|1)18p2!H z4k?$uqnuWZUm};wu~z;`JbpA4XfF5xsOf3T=%{6Vodh%>60e6+`&cMU;I<y*SLriv z$L_LNoxx2XY6}9cy~rXCkeZpXhbJf1!sBN{@3ubtxI?n@K(eQMzn^SWe;6Ek$m~=G zTBLEF=Cf6AbwGePkl6Y!qVfE`JnB2&burcMrm==Z`U;ie8vvFTE5-bm!kFy!?XF&e j%l$kthBJF<lw#s9Weo2f)F`WF00000NkvXXu0mjfyjB?g diff --git a/interface/web/themes/default-304/icons/x16/sticky_note__minus.png b/interface/web/themes/default-304/icons/x16/sticky_note__minus.png deleted file mode 100644 index 56833a170bcd6411dd65489de5e1103d9202571b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004*Nkl<ZILoDz zyG{Z@6o$`2XQu^)mC?o!<E8Kcd<Z*Zv^SJCR)iQ0iBU9O5W}iLR#pf|ltn0PEwtnb zER2_^$nN58_jnFCn-~FOD86KN^8a6E&SU`*p&g)5s8cM$G~xe)LC)s$0Gd|E5fA~} zQ1P=8!;hDJB8qR%Tlo64iq*#umP)h88Dj8<fIq&O|Ewrfic)EZN@3LR*YV|c8J};0 zcy%>{Xoit<#E>J%<s23)J%R6KxuN9ze8NGNU8e*vaB?CEf|jn5V6Ul!Pr}#Xtmr{D zD+!h?Jz2YdD+$kpv!Vy-v?N%ujg&LQW)dDOXGITEDM_$q8)*_8w3NJ;qsUp&167p- zo3@cbOOLmd@E&KmlNcv~qDX>mG>_3Xl$H|S<E-kX4!t6HX%UOL7#Ynh2@ZcrE~dvY zKipH}Y@`<z4?Ix$G7b=C2lV$#5Q(^s(A1D6^^;_fXTpO`j`U%5a`G2jB;kG+G2rvL zH$ow|)`-PX={n$nvcTU7cXI%xDS%xTbPyh*`=5Af-FAQHFJk*@RA0v19smFU07*qo IM6N<$f^R&{Hvj+t diff --git a/interface/web/themes/default-304/icons/x16/sticky_note__pencil.png b/interface/web/themes/default-304/icons/x16/sticky_note__pencil.png deleted file mode 100644 index 83cebec94e5078d0f6dac6383e229485a38cb7ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005|Nkl<ZILoDx zPe_w-7{{My>r%%-9(L)Nn9QJibn+S`2vQJYhYsP<k_e^}kucX*n&$AOSglRR+%h-j zVR&#<<gFcwlIl<_u}t50Z-3mr{T}zeqikD;9{3#I_x*l9{C>|%0O)_9Y_`hM67?#E z{((obnG8`nU8N>aj8u#mcDBR#xphx5gYTP@`1U0T^K$@&!T=<r@cbc=2aBsa+Ywco zQKgV7O+jBD$5zpg&5xs4UA+L5rXV>*M@_J}SmRn*kK)Hyt*#`OJ5xi`9FG+w(82=S zjF$D765MSlk(0=EBrBcVX(mdg*v41Z=XUSkOd>mxY{A3yl$9WnV4E8iBVJo#BZ(|F zJG3vl#+=AApP+c0ZEjYKgc96uDtZ4Z2w(4^C-8caWL~CNjBRdLjCqvx2Mr~~*8@n- zU4dzu=ybcsG@?$5MA+sIN=a0VNL@+s%_Xd)I$(YnM0fYW=PsAa6H<SX+S-`HVTYih zlv09+e@WKYE+d~hx?4_!j$ktA$n^B=r^94TYb(?Av||>fG(=K8$vk8y8*hh^e{{?$ zx8vOlFC;4+dt8e4{(k2~AmB{@&iI&fIXc0gq<m|bH~iO~&*Z&irDJvJfTBg=-pfcI z`=Gyse~?%Dy6DuN?=4oh>EQfHp1pXMkDu$RANU2eT0{!jmGrFu0000<MNUMnLSTZ< CMiE;8 diff --git a/interface/web/themes/default-304/icons/x16/sticky_note__plus.png b/interface/web/themes/default-304/icons/x16/sticky_note__plus.png deleted file mode 100644 index 6dcb51a09cd35c328831b00f5ddd0de7af6ac0c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005mNkl<ZILoDw zy-!nN6vodj$WT543?29j2#_|`I2gj<ERzWv114xR0XCQ+#E=kCi$SSi3+8HRu@=fl z8yGsdm4TtNi4H_-kixy?LwX<2X?bsApkTtA{PN~ap68eI9s)qufi^ZuY;Mv6X5<Ro zl1(Ow5{VMFfEl&S2u=@l{Mmoc1aQ1JjicX_INbFilNo|!823K{d7Sa|^dQ8g0GDRD z<cE=+!v2pJ*xMP$)>a>o_d{}w#}=%w+l&>AFivv83ni&kw@onUSYt?_)m2R~UN9mo zm@g}lN#r|{RXvKwHN`~1_*DG=WfIwmWL1x1F-`H(GNbkq%SmLhl2tv5Mm5DN%Z#z$ z!=;jwTmX_)J&Hs$#T(09Lc#c0R?_?B9=yq$Xb;zAdcscX(w#)1kfwNx{4y*vR950$ z@t}8i5H7tTTQ%QE^p0t1(MZ=FLJ;{l3l`2v9;Q0s{p>E%m3;(Pp#B$^(=^-YCppc{ z8qLf&7LiXtB&A7~AUl!8-dgbB?#}&l&{Ta|`aB1<4GdJg_W3Fj7jgT!^Sf)JCMUFg z>p;V^nx8aQo1w?mb0XkPkc(-$lHuy@rmwA#`>f-n|2}sriTbPj^yEgmc*~p5UwWB7 UY$FXimH+?%07*qoM6N<$f+~^svj6}9 diff --git a/interface/web/themes/default-304/icons/x16/sticky_note_pin.png b/interface/web/themes/default-304/icons/x16/sticky_note_pin.png deleted file mode 100644 index 6e64b83415bb618b7bb4e4bb7c9de54a8b3331c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004}Nkl<ZILoDw zOG`pQ7=~wZ*Rq9+Hf=@v3;h@&gf=aMY7r53qbLazQqs`UEVEQpY}Kk=t7;cW(G{}1 zm$$e1j(v7cZHf*&49vXG`^_AY%?d#rAAfNz<<O0k`?Tu!^{^*&1vbSraV}-NX19Y@ z-us5_M}cCdQCvqY??i5U1et*W?2HZLA-AIKF^!@Nl<gK|GF=>RFB^EdTTqe%R~J(_ zJsF4JJAwS|e3x3@1<JA~QmHO;jbZ?$Cnp|rvs%IB*`x-`ulGx+7kr>Bdm@>X%wn?? z0^Nd2=qCEfBv+r^XqL7?S@uLcE}7+4Iie<P{wQJj{nd+BISk6OCt@+lthOsr^^>*? zC3?AD@T-D7P?kLrjY?*%U5TkH1`Q>8xmgOJT{!?{*%Oh7WZbA8sX)k3qL*9c9iVy$ z%CaXyA<3w52^HA=R`MmcD`9mW2W8n4R;v`jU=QKz6hsUqMw!kMpe#A$YM;d-g~!vg zhiV#~5`vx+)80(irpcZCG$>0Be|?I<(NWX7(`ico2FjB2>55*3S<(MT%$f_}Uwi<7 Wa#;b1#Rjeb0000<MNUMnLSTXeWYbLm diff --git a/interface/web/themes/default-304/icons/x16/sticky_note_shred.png b/interface/web/themes/default-304/icons/x16/sticky_note_shred.png deleted file mode 100644 index 934c3d834890e479dcdc380bfcb70a9bd1fe841c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005*Nkl<ZI8UXH zzfTi!7{>3eqednd{{tCta9836gCSwW#l;1Tix5dzNJEGO#7YRpvlg||Qd3IF@gp!W zfobEhkr+_}p#oa5rFX?5M_=COOJ5QKF(x$m^v!+W=lSH-h)6pR+U)ERb935Vrt=@v zAU89kY17k3oDeYnaxq5xg)sA)_VOl`a)b2e_cK~vZX@iOno|NiROs@Y2$zCfGO74$ zkP1KgDZkl6w%x+n7$L)4J0X~wI;I<fz5J_FlKJ^N$Am)0B%=W(uq<8ZIdG%&cW3xa z2`+K7PY5~bD8a;pF7$a$l=54TGiOP*R@*afwx5ubjuIpiy6_Yitbci6?-$-sZnHZB z$@cfI3?$z^-Lu{703jzGC5Xp$VW3<brH`pwNzZvpYb*DcaLMZD<|SN`{%|9?yZxMy zla3O^V!AK{L2|q*=sE8wy;y7ElGMUY3zsAlmx86-OF~XMN)U<YLT@Q&Iy_$-xFa+c zuNuZBn79P*g`WZJd!?fUjg7h%4jZ7!PTgMM87dc}go#TqaS3L6u@3tt<k3?C`871? z7fsV>W!|rU?byKdoNyU)ZRL^r#vVE8h``5OX09^Vf#2`ztFJd61_C|{6W_99sw;V) p2n^;z<?+gYfE@CM65#JV90H}4If8}PKL`K-002ovPDHLkV1h}v`=bB= diff --git a/interface/web/themes/default-304/icons/x16/sticky_note_small.png b/interface/web/themes/default-304/icons/x16/sticky_note_small.png deleted file mode 100644 index 8ce81781a099c7ce54014ffb8590715ba3da685e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmV+!0p|XRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002sNkl<ZILp<N z%?g4*6h_B-pXh<wv~S%$h+4F1VSz$aLReTxNQSuZ30n3VVLuv``ZZTVFoFq!sKtTH ze3vu#4#NPjPhh_%a9vjAG@d9q4r8{>!~)*fOoAD12MyP~itV-zI^&ey67Z&Wbe!Vi z4{+Wo*lcP*sDREnWud^bq)vP?`0b-q;(3*f;jpk03QSY#Cc)yd!YG^M;;W!cC@>7E zmjouF<0L1cnlhn4*CiF<67fmTNvKXUkwDW5V}xsvgeIYN=uMJfjx-Yq`u$={mW$Ra fDEou2{B^+{ww>yUicU!J00000NkvXXu0mjfY3h39 diff --git a/interface/web/themes/default-304/icons/x16/sticky_note_small_pin.png b/interface/web/themes/default-304/icons/x16/sticky_note_small_pin.png deleted file mode 100644 index 67357e8a7d53f5831c6275fb551c23347c6ff275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002}Nkl<ZILp<N zU24KW6ou#3g}4$IBZ$xq_+CgMJ_MxHS}IzKi4xG#2-1K%=$p_5NQ)8?tocz9V~)9l zeG^6~l=k5;%>6ju+=meW#7`pro?ti>G9N^_PogfL-!slRf_$2*ccT8LSOlMZKPImf zxUSIR@Bw4%5^gq&cBue=R>3Z~12d&yFcA7KXu<akEG9a<v5wK(HMYwJm?;I0L&iR` zv02om<ZD_+G`~e0cEC(2==JC(Sv{vKKS>Ffx63B>Q5VdV0^6p0tov!fk`gY*VGGIX z1(K-*rg`y*^($DyoAAqA=9y$FL9Le2s@05hD$M@DSN?Uu0U%4^+8Y!DfdBvi07*qo IM6N<$f<Cu~LI3~& diff --git a/interface/web/themes/default-304/icons/x16/sticky_note_text.png b/interface/web/themes/default-304/icons/x16/sticky_note_text.png deleted file mode 100644 index 94d2e94d49d3f1feb76c14d78fe258bad4881336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005aNkl<ZILoDz zziU%b6vsd3-o$5<r}-fW?I2=Zw1U!(I_jjmi;Mq8=+@A|(M_Cn5Zr|>f|KCX(vYP! zORQ3m5}Nn=lH79~l9#0Zz(NlkxIfPQp3k}W9x*e{V}-3P0YHT3!1e#czc*uB74p1= ze8-F%5AVNQR~=xcz=-j9fSIv>(52gb;U?kR`8lTw6L+eC5C()WU^E&s90mr1K$c~k zoFqJY@M>L^r@-B5393^(C*t_BdyJ}5Ehi+IXXR!LK(BYi$IqXLqGydx=j}b<@kBs! z0T06R(h+8cs!=n=`zioyx7Sb|5=9aH{+r#u5qNNPeq5naPWai2P*wI163mQBsZWx5 zR#z^fik}LEFcT1&5!B*zN@AwtHC06FgfJ)YJHglQb<Av>bwW}pCzvWp=2=|4@K1um z{2k=JeC;Z5X);$t3WP9w{y$2{394~Qnt5t9!OS6|fJ4NcE@5K>8Vvy`g0On40vKkO z8GmyF^pr>lQUuuCG+e7?G@C}65<?M@($t+R;oJhwmGFK6?@KsWBu$B%O{3K^3P8Qx zwxyjNclh%4lMiQUpuIggY`66e@J)ac5YP9;8Epg{%X!=R7aWHK?WgQ`8~^|S07*qo IM6N<$f>goood5s; diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes.png b/interface/web/themes/default-304/icons/x16/sticky_notes.png deleted file mode 100644 index 9940a558172ee87da276965ba9edce614d79f673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004*Nkl<ZILoDy zO-lk%6o$`Cf1sAR3EH_4e?~&os$HA*;j(oS1VK<t5<;d)HK-YuFp9cx)haCd5Gh&( z6+v35V_!O_b210VuDIyJ19N$~?|sf?01@FoKqdo_&9>n0-~9~X>477i21um<l1Z=@ zFdPyKh91R6bqBvHLHu~};rp|Kg~A+iMmTyF@SeiOMm0<aH|gL8>QC!fd0fGKewM7G z$T{KcEU+lk4M#V{DZDOBV)?;imgI8NCc&Vr5&e~~E+?>b@3EM?l@&}Rq-CP@82yxs z=i^wqn>RDQARd=i2>?y|VX0Y*;^*s@rKD3ilX99FTgGCNmjGZ5)@j!EC<y&2X)9lx zy3CA6jYK3L0l*rpW9a)7Yzs?R`7A$XW{s+fsw(*j0M=j~LyuFiD=cB<lVcaMC68+8 zF$@G`)o!N()?gj1A5f?YOISG+l5Z7dKx^Z6%U=2mMu9b02kVE_92S<avfnSMbimfd z5U>X8U_FIg!X`Wpzll&;utrE{ty52gsVrE7#IQimCRFZP-;~x`XvqD=DgXcg07*qo IM6N<$g7e_Y>Hq)$ diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes__arrow.png b/interface/web/themes/default-304/icons/x16/sticky_notes__arrow.png deleted file mode 100644 index 6451cfe6e60edfa498f691954f955bb7444ae7d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006RNkl<ZILoDy zUr1A77{=eT$eS>_%pknzY7`>fMAt$jL}p+VjaCr^A%gVpvPLnof^12w++6F=+}3PM znMY@^x+n-Yt=2)5j0h}>W~n<X%kAlXvrdj_yXfKv=i~X_=lgvhhXBz3K(QFnz`#86 z{d;|Yu`NMWe?O6`67}{{VSykab0)6`F*kD?Kc+pH{o=&8&kktX2}s6NEm<II4()R@ zejar5U_10rS26wJ5|YVAwhlsarg~vPfij=)_|-@Q#<V(2zPA}A@wmmn<1s~<(#oSR zw<G<|R$%gV(t+-7<svix7^Rd)UTi~p;<S;;0pYOH$`D1Pzi7#2g7`jlqo8D=a!jo@ zGO-MWls1M)G(;ztxyymKsN|1wYPi<O<f?&y;$(<KLv-?b7YDZ%EfMAC$*njaAH<=1 zW9ZZ3@c9%MLnIoalh?ysaA(mHQ63tsg|$<|wF$uL*KqXu{wEu2%tWFgI><(l%lL{) zPDLJIxBDq-E`(+)4_}_z+cl2Xx4>q5-^aBLXPZehL<iaX$m{;1lAV#)IQIrPm;!bU z|K->yu<qo;XJj@j)X`z`A*(`4#6+$mZz2zS{ALff*n6<P*_B>l4JI~u$5B57tUeM= zR5Yp<{uimTsmXN3;aC>^7rdvfe2+J^;So@7=}fHL7qD=N%+o5Sf>~3FvO1@G`HuEP gS-s1`B_stu0m+|(@(<s)hX4Qo07*qoM6N<$f?44lod5s; diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes__exclamation.png b/interface/web/themes/default-304/icons/x16/sticky_notes__exclamation.png deleted file mode 100644 index 72aa718c43fd71720d20b5aacf5565f9fef6652c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006yNkl<ZILoDy zQAkr^6vxk9&q4H7M21hT2Ma2qpa=<i3F~EVJtXu{5I&U<^^k~(R1|BJrtVtVnsc#~ zwxL2pq%K*OWovD2pqQ?O+nnysEZx6zW{Pu(4?X<&?)lFB{@?E&E&-tbfx5eidU_U- z=f8D1Q?&*qU0p<8FOkPX`2m77nd+?W!2C=reow2Io2tjpq#1sHC8WoctQjCRH?Pmn z*!f^HA8dp^c@NXE+ZY(Qz}5~(pV_lAAWxZZcohzq5b~cyB3iW^;`5zeMpX@NW_{)0 z=Q6}6s`5-`6J~UFDmR(MVXUVd_;dpC@oURHxxnR8?l44dcaFM+v;)6VEqNg;m3uu! z7}oY9`n5b~>2xX<hDbC-XCd9rjfVvxVv?D>g%2;cLr<uP^dIJTRJ64z^$d|{h)!02 z#xr>Q&yerK=Mfn^g?YUl<6q7oK2iyrO=)6?L_>74x{Cvz6okws8W7TsU@BS*lgWhC zL=D1kjzP5=>_#I8h=%AO^BfClTS3T=$VG(TmLc`+D*v~{GdPF7&K=3>D+W8)#UvV{ zgG>jqx_wnh3;cbh7z>_7VCXp9FD_x|<59fV4kaBHrFFMa*-WBgwHj>5cp)KTBA+8O ziI3J`(02eM!BRy0dvgY|M*REG>)fb$tja;&qoRrm!(Fp^gL^ek?;FMfTJc<Lco$-! zozUZ#bE^>4w#7OclqLz-#B5=<uBNeu9x(5gXs)IHmO6U9#G@Nz`2))ri>piBp`ic( N002ovPDHLkV1jDQA?*MF diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes__minus.png b/interface/web/themes/default-304/icons/x16/sticky_notes__minus.png deleted file mode 100644 index 0197d57db5aa5cedc435baf5e20cd49664ed763f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV<T0SNwyP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005LNkl<ZILoDy z-77<39LK+B{sC?jCFRbI_zzr(61i|A3D?>sx!WS86pch)MmX6_LuQ!^S4uJOOXL=j zdD)zKoBjNLww*ScmvZWJI#1u{`97cL>41pvAK>u-Yim*DJ2q}&%->M7x(c}6z{(1e z3j_(7j)-QbaB!O50#<stAEM_w3;BGlBpFlmZGntA><R~GdEpo@93kyykOEh|<n^|& zwVfnqiW3WxlzE4Zv*TJi^;OgDrCBdoU$57(S`9Adcjc3#D)L{LlT4m&Ewr?x^f1xO z_)YovppyLOCOwl4oKB^W0bH(6y5Aq|^!hN7RFbIdaTn{ESUMca00W4I=)6D9aWI)u z5?4Olt<W<$s?DYhF@R`@PDGpMU@C2iDDQjA^(-7zNmZ3m1`rL=iD*s^X4003^3GNT ziKQGhqB&@M+@RJJa)D@w4uuvtRMVDhHkOi_hnMMWJj9vG!gV{KLNr8&LW|ryo3_MJ zQb11)4Jix)dnjZL(V>u=q(n^QIC3X(<>lrw>dc1U1Z*eL2@LbUh<u~b&~LG1xPF4? t4Dj57I)1gqFd_P6GC54{AIQR&f)6j0Y!jimmR$e<002ovPDHLkV1lkZ=QscW diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes__pencil.png b/interface/web/themes/default-304/icons/x16/sticky_notes__pencil.png deleted file mode 100644 index afecdeeda04877387f171e3ee5da07268802a615..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006ANkl<ZILoDx zT}V@57{{M?UUX}hbrS>;b|GRnU3w9Hz$h>Zf^MQBqTyw*GT9P@KvIuGqz_kAW3I*g zU>=;Lc%k6Mh-yO|Er`fishQi^>BH^c^BnE4xrrCO@PqU6@cf_O`y2v5{{zKhL=zJm z$oJ;`BIDhL`tflhT_+kFqw)YjicEXa2w^?@41d=A__f-PpWihklQ$qWrheN1xpT2& zJsaf4N8I=T#!?^FGF^zrU2GkK)R~6TfHGyCF!O%?EK<qSSoz|$L#C!K*!ca9D6_Nj zLgEyb7rkXB=8A@q5!K0TEMq6-`L|9ifA-il84!u6?pNnIAR4u}TgZj*`^V$5kW%HC z-eA|VldVV`Q0ZBvnn*N6r;vNW`cEoC{wcqEebTCZOlg?(T?afK3@bHFtRi$5jhDQG zr&U8l`Az%;zNT+tDAWqmG~qg4oA47Iqi|RWzM>J~fag_1WU+J8M=(2j80MlIz4xx6 zt!<ZnkpChL4l1D^`5_c?fvO?jKHNh1zA~lRcSkLCcGS$Zv^ad+zMldCB|Joa7)2vk z5t2!}d2*vQxy!9)E}fxfZrr=cZmO$OG%(-@Ag@D0#6+GWJ6ZkIV>kD;tIXANbhPmh zRh)gS)2nGU(XI5{cBGJ7u(VxQRM1kca%!19C0eE6vQv#VHz}vByyg4_f}mb_c0knD P00000NkvXXu0mjf{h$(k diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes__plus.png b/interface/web/themes/default-304/icons/x16/sticky_notes__plus.png deleted file mode 100644 index 6152db1cdea0e84a35e06ade5749d2aad7759f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005}Nkl<ZILoDy zUr1A77{;Ho&~B!!8zCXO9>p+s-9>jvr4e}7O)v&U2?cdqLx=*ym=c<~71eOdSV{Bb zguJRQ+WKchiXaF|`m>d~v$EWt-gnl);cORO{P@ntbH3;Mecw4CiT?q~BrrL-j6VOF z9~1&>;F*{JOcNL%M`eMcq0n8jVq99d&R_FkE`A%}kFP;yGAF5-;90Xk=MtV-S{RXq z!?JLQ)|ZQ%|JciP`iNM^sJYOxvY<j)c6jh+rjxHT9n8%J?2@Ue12*BXBO%mQe)Y1Q z*$;sVlkd48$Ht5vVfiv@DbKvv!|eOhcBUJ|<HiL6NF>UfE9PVTId`R^WTkS_Y_T)7 z933_K1wb`ar<lJf!PQkIf0d`7w%M5;H5xSr1VA-Zr)1rd;9AuZReqk{Mc>1{Y`wRg z{zv;5i5Qm!Ks8jSWW}Z6M%5Bke)71D-n*^z<xa@xWhmr`xI5|q)leN4ZnKz=R4wt{ z-_6aT4U0`fuDQ<7e(JdKlIs(WH$<Qss>8w^maLJgCEloqJ7@Q=0)4J$aJvnt4htr= zL{0QKdMA3Z`gQzfJDYl)S@blfw!Pay9m||=9F%_%Te`X&eZk<m#J`Yt`f<uR-TZbd z(d|s(Yy+f3*TW@j5}IprxPBOi>QXpbKZs-N%LTsy?_F(1efgOE00000NkvXXu0mjf DRb~@L diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes_pin.png b/interface/web/themes/default-304/icons/x16/sticky_notes_pin.png deleted file mode 100644 index abe78e22c570347d7f211f3d976e115708df0373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005@Nkl<ZILmdB z%}X0W7{=d;|3G`xOTe3dMCl<1tKNF=Ay5P_ITl)lQbbX(v{h?8EWxz6ni{G`Li{)t zDpFdLYW#qff}}(&N;EMaR85|~@5EVyt^+@Yot@{I-_FwVGSSKk(I2HK!<c77TB&>d zE+TXNx*&V$mI6QXLfBF&TJG$G%x3KpziUDAk)ov~>OIeop`3k#y~!>tdcClpJjTJ^ zE4_A}e+${eTou%-#^cog@5I9K{ve0?@O%3?);>SQg!K&B%m9~+LH00Cfxljrn^%AB zJj8CQ4V&ved|$hduU|T_ljuh7;3dv-A;e-d$dKr2<xDtmL)9S4siaSb%h_>UoK7Jc zRYMGsXoyb!@4FkS22oBWd^&uV3!+k(!R)Mh%@B!(=oF7aNdFwbZn8(Kny^vc`q8Sx z7pL!0Eq+2IqDC1a(GZ<VAq=^=!r_R%JQFs`spJD4t`sJL(mcXpHO>%;hUip_5&qT* zr^JMf^2U1WWq6udfNd*_ArcMIsTSw>gbz-M2^;0aw|0H9gi(qk81&dJEnFZPqJvVD zH%>VvCTx^LAy0aExFKc;1U#es6PrmiM5osL(J8qK*OV<w*&JxP#$6H((Gjg$iI~i3 xZC7QN;bonXdObHBWtVY>X>`$Ra#g-I{sVLBJR|#iD&YVC002ovPDHLkV1o1#1j+ya diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes_stack.png b/interface/web/themes/default-304/icons/x16/sticky_notes_stack.png deleted file mode 100644 index ce4ae9bf3d715f88d6541585a42523fc3b350ec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004`Nkl<ZILnoi zO-lk%6o${(AIN2Gf_5&Fene6fwrbg?eYmrI1VIoKrXf^XRD+tK32N%XMT-crs2ofP z3R+YUeW+t!>gk**Vbsy^!ov*Qd*A22cLw5dfJ6eI;W<Ujw!j#R0Ysw!kq9(xRG<ZO zRoRE-!VZ4t-T3+H#E%ynO41DS9ARt~pqT0X=sG)rIcXeo88cpG#_-|Ris|$;BKnXv z&l7`n0son^m!p_Wnu$pTw_6t`Ix|b>BY1yf#rJ0$hC;$3p;$XIA4Ue0`9MHeCVp>| zJCzF_n%JO?YbZahV*YVS(|mC{tVsNR!A<~#!wL(Pq7T2`HtRxaR<-#oWl~P+^$Jb` zfO~MCN^y^px0*uuBx-Z|WQYPp6h&d30N@_nrz-E$#I|OL+MGHzVO92{%cT<y1`6OF z+@~rBXu+;#h}uk_?#^cG3R^5XJN*Uyz&*GRmV#I*ikcy6v%{ea(#GCD^uRs150(yS zfk!h$(_9<egZp49iX6fx;W~ULe6jp>G|j5fN2x2E-i{`-YIGAls`Pf~8#n&|;Qvk_ TSv=Cj00000NkvXXu0mjf0S(hL diff --git a/interface/web/themes/default-304/icons/x16/sticky_notes_text.png b/interface/web/themes/default-304/icons/x16/sticky_notes_text.png deleted file mode 100644 index 2274943a9175318bfebac0cfdb07eed75d2bb936..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005%Nkl<ZILoEd zO-mb56vpv0@e8!ex)Iz7B7TXYf?IcPx-ae&=|*aOK?rFWgN-zrhSou2N?I`nbs-|b z#xZJ3wAzMLMJ=|zMkm!)^LWl!gE1p69QZ?q%RTpZhY$d|Pc$}0G(LWr{Qm#`gnNEV zWuv1+;V{w22;~ltWRZK3G5k0?dWU~0FHR5KIN4XRxYz($<H~LwAn&}`c6QXy8+&-; zYZyCSNNvAFEcTSue#kmketkd=nNNr$zSbZ%Q;i=hjadDznnNZgYO{I0wh(tWIlfSV z&18L!<j<app&`Z2U4D$a$TOd+u=M2_63Z@pTXLEQ1cQo`BMODgI?j*%h(uJx=i3pT z?#LsDhfA@)<uDHrWgwuqI3i&P=lpmOzt&ptGue#IL{lDFk3Pmm@|CHSs}2k(ZjMM8 z!pRu#5sh|XC2lt*Q&Ub%PCEE>yGi~WtK^e?_<Q(<2WZeV#lsN^LpT{Dh~15L{9bR( zlL&cEuYxG$su?4I-d>wlQo;j-AsnPXV0N|}y6)x=<uE04x+6>W`E2W|S`fObuFmG- ze?c(`LpVr(<jMVfg2o&AxVJfEk4MpXL*b1ck}!mWbQm&3Byt`3CYEH2r-(V7*LhZD l$rjH8?vVwr(2{)Pxd6x~Q39-nkc9vM002ovPDHLkV1kKb^=kkC diff --git a/interface/web/themes/default-304/icons/x16/switch.png b/interface/web/themes/default-304/icons/x16/switch.png deleted file mode 100644 index d91ec21d1163b033130d33d2a8af1698c360aa08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005YNkl<ZILoEd zPiq=M9LDi^1M0ERL*IcfC3y7aar7#9@g^R{lQ*Ftgov(5DCosYO41~Dwb`{*Fv2FL z{tFR{pn`&;Pv;rhg<L|V3m+JE=KDL$t^gqZhbR_{!Z3^@MIPvgt;px|B-J$R_xpds zhYeei%jHOJw_B7-C9K!$H}TA7vjH2nBAd;UT&-51*=&ZvV1Q1i^9tW_k7t(4CD^bP znM{V{d_Ko`Jl0yR7J|XxE45k;?RHxa8xDtH!&anHDU#Fa6un+gvuzupP)H9Vt}B%a zE-pT6rdbCYwj!BKlAKH?aGVENRuh+(Ul55z(C_y(uFuXssrNUUX?_D6wjv&nlN^o4 zXf$lx-ZpT3{S~oT4CQiJ<GN5N={>5~ZLnc0qR}YH`}+qq;D=_KHWG;hcDtR%_3?4R z-M_nQgAH2|4u?q%ctW$;)hw%nbUKa2Vxe(;a&oE$e|OKYVJp-Hk?eLy>Xv{0@uY%+ zdx_cXM;JyKS67yMh7DU02n0wv&I`XSy4`12wR(f|^Qz0X9rp|yw!-W63cuekA0L0I ze_*A)#Pm&n&#+<3=Yz-N3Hp3Kc?dRaIl!m9Q{Eqljqf)-qLx%6rrRt40000<MNUMn GLSTZE8t&cz diff --git a/interface/web/themes/default-304/icons/x16/switch_arrow.png b/interface/web/themes/default-304/icons/x16/switch_arrow.png deleted file mode 100644 index 4c83fff291eed39cec5003950cc581bcc4eada07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmV-*0*d{KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006!Nkl<ZILoEd zJ!lhQ9LMozsf#oj97G2fR|BGgql1Ejwy{HvXz3vGBx^88vq)?av=)^vdP}3VH7{1h zWUwHWYTEP~n~QBAjiz}|#1IK2ffN#wpU?lHC|RuH!H0XeyYK(txnls>|6p#nn|VB* zK7s$EK5E(Q>@4A88akcMU!j8<YMImNB)rvX!Rz&6dwctj=$U4-32LZiilPwSXf!}7 zl?rmX9AdFp7rI9G=$U%G4r-`nlarH#SF2SNi$!T;V*@6WsY@^zL^K+e!}9q&sG*jP zkB<{xE|-x?r6f($Fg!dg2N7EP{eCPgyq8pU71U76Mn^{pFO^D2B(@L^N3gi~5f+OD z*=$y#_1xTRaeYZr)lZ;?T4uM~2`?0i2!%8(FNY8atiWco!RPZyw060?@*Y`T)j$ok z%xbj~zPY(22CPe}s=?uKpxtguw4R=J;l`^pE<Z0odG{66P|M6_GZ6#Qh(zL2I2^;o z!~|-!nndfFnHLyzZb2ym7oVhX;pVfc^CMG?i47t=9xsSp&g@8wz$G`(=856-Jr!r~ zui@zRH@NaLiHAAh*w{+OaQpKRGa8MAClcT3+aezS_RIYI63%%txRU{{M#Y;WzuCS3 zhwXtirqk(|!C>IY<PY%=G{l!EcQGq#ICX1LIx+GVC!Z!UpaBQ2xik9)?hY|=9O~`u zHR<(wz8l@3k~#7Lp!442mmW|{1N6dv;oxre^go*F>3_W5b7su4)98N!GXR{9*95c@ P00000NkvXXu0mjfb?+s= diff --git a/interface/web/themes/default-304/icons/x16/switch_exclamation.png b/interface/web/themes/default-304/icons/x16/switch_exclamation.png deleted file mode 100644 index b2e8e36badb2caa4e62e6ce9fa025d9189a96267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006`Nkl<ZILoDz zziU%L0LMS?SCS_8j5gXd)&_AA9UMvrJBgD>o}gn3inus9bg84@lF9x9;$E!@b<iSC z#ibxtFk6&1WGJoBhBSFE@A`fv4s9YWB8ms!<+#u1zIWUyy<U(18T#VlB8sBi0&@Sz zZufe<w|W#s0J)i&ndg7oMo|<N78V`?sJ`#x`#xb9QZASAJnxSwm&*h}K%din-v=NF z0xZiyN{Qn*IF55<S0MyK2rSFO^E~>T?s?uo(1-T+_9zyMM+CF8vzVrdrfHa_NuSgA z_xAzteSa_+h9U8IoVmF<0OsfCX*3#0d9b$Kw&`;NLATo_in_GhHn#1MOeRUE(*Pus zNs!B=jPFGH6ma{OKuURdgpg*lO%Q}=nt>34N~Hoo`os_^<13dY9`LPF0_EVYjx?}s z31}FGMz<RwgrHC;0I<3KiZj^@q*4h^WzNy;d>J%QUDw5R-9tEjm;^!yI-L$3r%i5n zgR}X|Oy7S^W+YEfe#G-^)pcD|DJ4=$6vaT-6X<$^SZs*V(J|`vIvdp`vf0z<G%1xz zcut*|5s*7sz3BTkYOB?v)oP(>I;*Q6FpL<65odDp8e3Z}wrfjd$H&-eerEaIV|KkN zn(1*qTb-D`{!&p_R#vFhYN)D?W!**7j6udm95TZJnz2qy-KAhXBdOb@hIUAwh{nT^ zs|t`eO>;_B)%5W<|KyQ-@5asim66f7Nw15@+`(zQ0bu7xr@i)R^SuJ3fdrr(7rZF) h6qxw^hXPe)?I+>eD~)?l7RLYp002ovPDHLkV1m47FeU&1 diff --git a/interface/web/themes/default-304/icons/x16/switch_minus.png b/interface/web/themes/default-304/icons/x16/switch_minus.png deleted file mode 100644 index 8d2e7d38c8ebe58593a39e00074b4461f06738aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005?Nkl<ZILoDz zziSjh7>1wSnaze}mTN2$1P@GMEjfz>A%8$N*dJJ1UUQZGb@>Ox$`l6&S14i~Qdx+H zDFh4Av(VGx$ldL)+nwE6i`;EYBL)Yi8NTQJ-j{DatEwvg=g7fefMr=n!1fK<NmW&^ zWm%R0+wFGy*}uB6EQ@}>{{+C!^PD`-DT;#Oa7dPAf4#%u5Un+9PUd+IfYzEI2uRbE zD2j-p=vr5$6iO+AARx;!)|||;tQJ^9v)PPZuXjzL)9K**K0*k5-)GIq<#Gu?p6B&r zQ53kYOSjtv;Q08M>2yk(Ue+!aA#1J{Fvd`phQ%Tz3?n?xqtR#p;CUWdR^a;^D?j#? zK$@nj2n81x3$!i}!a*s;`T2RBUu%uyY^<grSaY?5FiZh~;|Po?QA%-mcnH8~G(zhV z$8j(F+kZGnl4NB|)CI;Elv2cTTsyFBi7^$fy9q#&B-|a1t|C~LgOt`vtYT~HHskRa zfLkwLA%9Hx?l=e`0oeQc`RPWQ?#lUme%W70&d%O&aBu`bt98J5{DnA<C?-F7^l<<B zcWm8nzBoDAm8YktG@DIqTM`71Ns_p(+1a@Vz`F<gJRg0i^BZHBeERt97reKCJHGGl w*|y!d$tD?N=3yAVwSWe&35XkRV+kyO16218QH*DgdH?_b07*qoM6N<$f`wlLKmY&$ diff --git a/interface/web/themes/default-304/icons/x16/switch_pencil.png b/interface/web/themes/default-304/icons/x16/switch_pencil.png deleted file mode 100644 index 1fd85c5c7cc72739ec8b100b70d89152a02d9ed7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006&Nkl<ZILoEd z&uh|g9LMpGM9^h=ThO8ZV7sg+g2gVi%Z4xrZ=T{a4;_-cxXYZ-#Ri4Qm{1Cv;*V{t zl+gy;vbH%VsHETw_alFe#1Pzuf}*cJ?++m@MihPF0Uy4f@AG~5e7+0-`yb5f^)jE& zH!ARdG)gUVyWNC~Y3Ou1e}x`usAW#4lkirn1;5{qMx*gZ^i8wb1U1w$yWLKBy<P{Y zR;$S8^GK)D7tlM}qi@d6&Oi;d%xbj~UaQqmDwU*UG6{`Fb3r&9Mk<w(!wQ80sG*iw zEEd8ml?slIj-+@z4y{%z2N7BagF$R;Y)X;H9;jIu9%jsJHWOYhmyyjLAQnp?6#4|6 zPKR7BC((Lwaap|ImZEQ*Nc8q5!V1L@Ga8MA7mFoCqjBu)M6tEC3xmOcKp-H|+T-!d zy_J<UxF)9nlL_w>ijPdM*Au?Ke;@{YmLie3*f*iwZcDVDoAY4jg9A3(th|j!{r&6W z4j!`c@o^#s93zp)NU>NN)6>&9Jw26Z?VX>(d-r`bPK=nCn1oubHct%<FeVO&@JyyC zPWkIk$8fnk-9vQDKEu-M+cI|B?qPGyO9#uTWnvQH+3YvETVygPU8}3xc<X<GWyc*E z&s*<e=9OOVQ9~_LDwV9Sua6%dei#2hUED;aD;3+r`oaSldu9f)8(QjqLk+d`-0bP; z(Wq1^{<|k*SA#hJg6B`KWCm|td->}gHPq4om2h3SaS1#gQ3S_^6eE}HQKR|+pGuQ+ Tfu$BR00000NkvXXu0mjfq9Z3) diff --git a/interface/web/themes/default-304/icons/x16/switch_plus.png b/interface/web/themes/default-304/icons/x16/switch_plus.png deleted file mode 100644 index a81d6c36bdfaee9963f459d80d8df35df9378015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006hNkl<ZILoEd zPiT^H9LMo5Q9+biU7{U2)FHO=P!PmcL8neb8ibujLHx9Cf<e29brMfPgkxlkiOwm- z2IXZj+Mk|TJ~9O-xH;#v5<}Pq3X}Qi_x&vfW6+8oc=7x3JkR@k_&pB+p#MSPaF|9% zM|&mlk9xVKU@*vpoQ8J0{a5(nhFb~*0!*}8Ekq&_G@H#o;&-;Tw!jUy<oElTXfzsN z^?DtpQVH2?b`QSC&-k6q%}sE_E%|&tCf3*2QK?jvbUF>I)w;*r+#E8Qj2gDKwgzsv zC6C9$M6Fgsp-@nCT}OX^zZ%4NKQS?Z$;pq3rp<#JZprO-Gf}Npk<Tw7nM`47>J#jC zJ62a$72ZdqZ{__NMbo~38*XV}V1S8oxq?JO$LwqZ)6<{fbUHCUKCbXS6pE;4Y<^w` zH{6oL;b3BMaY+tXP&7@4%jLrM_O`<N;o%VOzJGwucirgw@DSW^OE#O0$pI@!rE*F# znT6Nu#m2^l!uyetF?5b~<5B%7x}rVc=GyaHMDl=`$mPoNl#9Qu$RM<Ph&KlB;QX7b zxEQ>Sdo_Wsa1V~XI$NZn(|)p8EKKC{Kls}sm;1IW9-l!h7RQCbE4cl=Zy$Pj@+%pQ zMlzetVtM(e{0AEHOVswcAG6`|Q1_0~O|>3=ajHm9j>|uZ=$ye|u$oLJagamLP82&< wE`e8Wxa9#R>5SBIpvOmFlQ^=V)}6-m3+*+B>UMykY5)KL07*qoM6N<$f+ChGumAu6 diff --git a/interface/web/themes/default-304/icons/x16/table.png b/interface/web/themes/default-304/icons/x16/table.png deleted file mode 100644 index 9deb778b8b0dcd449c20c1ebaf4b0b75a00a2ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmV<U0SEqxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005MNkl<ZILn=o zJxE(&7=^!Cadqe@A_0ejf*>M@NO8&3O%NpDzs68vTN|m8Dr9nUadF6yK|}-xK{RM2 z7`0aoil~THiPe}A8}lD;a{Nw&aH9|~FPz~F&*9+}<8yO*nXV$E7o!eGH;O#6V#IFm z&dAd88))9ipvjX)qgzG&MhbP#1Zq}d__!QJ^->tR#Sp3%{-bjK0c6Mu^XzPon#p7b zY(ZoPCIc!a?w?@2OJeNiWx#Uvh#!|Be7|_e4v--$OfxgR$#gnrU{E6Xbr8U~;>XXO zTUb0d7;*dX)pZT?`X#<N|G>0%0WxGo|MYZkTvc-hliq(w$*zs-@G!5hDhkMu6`fO4 zeUVfuXTX8&voma+oWOm2jLoAXDCg%`_j=*n-^beCUUq;CS<zv$^@ozlJcFq0+R#AT zIY5T2XtP=ef{8>ygI(EQ8;~I@K3gn<fp|R6ASAmsG|+YqkRdDd!^1{@ELPB9`}FjU z0U5I5lhHWzHyX_|2+FPv4YZvDWXOsJgTdsBL<$;k;I#o6vZA83)$Eray$*-p6*6Q+ usZQ5kR$Ke6n2;6nN@U7qKD;wzN}d5g9pW(iuJvmG0000<MNUMnLSTZ<JLEqA diff --git a/interface/web/themes/default-304/icons/x16/table__arrow.png b/interface/web/themes/default-304/icons/x16/table__arrow.png deleted file mode 100644 index 31122510ab561e1123b52b1ea6e5a8d3874baad1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006jNkl<ZILn=o zPe{{Y9LC>^9SpA>qEmzn3W5YHB#;pC(1emgiXaB%-`0p}=`>}w+G%u<YDA+f23c0% zA+j7!8L73cwK1Gbn{%tyVr%XH+V=E*f7RNeEPUbN%X9cVzYjk)I65lkIknD+S)X3t zf^|M(S<lEwOP-gySHS-HJZfii*k{UOuQ7vaLkhbl64?19j_u=7h#p5!`S3HgJqUvs zVwqg0Yt82K!hkviVL%nk;^N1zP<}{b!2f+fvGN7Io(Rq_hlK%Rh-EUZwk@5@6$~Wi z7=~U4F=!6p!u)$EX8q_f`OrP>g?!3`vxc{jO)i5NVp+%Va9c8)Ef}b5pOE3bIMa4} zNq=rOgBW7jNsXpGmdO+hXkcz}5ib@NU~)P!<8Z+2c4NwBgTZRWq{Si(5JN0Gp;mW9 z(&-X|IPb+FgW^sD#1PAlDwUm~RBBCwm%RUOKn$_0Nuf9$OeRYVBD@!e4Cr1mh9G$q zgyxwO#1PBGU0u>ZBC)2yoXaH`9J=L()(_#{cZ5MKtCvd8yo<+63_`sBjAGn_16SYR z@J$!?^gqS1u_avb0!_Tv^y==g8i_>ai^cwGARb$V+5<@Jz!B@O$X!5X_rxmO+Rz{m z@IUH}M*o=3yEfFSj6$lp!S35jIB4M?yF7y}&3$^dQ6xHEQB`&BztViex5Eg~t*CFm yM=ay7oM#iy=6_{F<27Ab<8@nE-B9Zfru-ZBe%Z^oe;4}z0000<MNUMnLSTX>K_W8% diff --git a/interface/web/themes/default-304/icons/x16/table__exclamation.png b/interface/web/themes/default-304/icons/x16/table__exclamation.png deleted file mode 100644 index 7a5d0c87efbb26f2eb72ccd52a5bb4677dcfd252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007FNkl<ZILn=o zPe_wt9LJw?VaE;~Iz+{&L(n3K3S>m{(1;--1wpJ#%~~c~wI(Smb3|B>1eQn`c(90| z#ESiEI-ReZI=AUu>eQyTmeaYt)2-Kid!IKNTbTzR`0(R<_<Z^DklOZk8PBCnA|usp zZKc@cqb||3ww9*(aKZsdm^AY3YdCJ>aO86ehfS+E_$h${oh<ghi$U}@ioI`^u>18Q zs6$<%YH2Cs(rKYUAAwL%7v^y9`%mb;B~df`yFfd=jN4OD+?rez3aCR}QrXm0o?KhY zEKoS(xH}X^tuur>%sjOAS!irQ+_26-Wtl>iDS%4jB&b7OQqkC0zQS>t1$C|;Nbxxv ztJ|HE4NfPhLtRqR&~Q1PN@W(%f<C_=y*?joBO~bYc;Fl#hsEWBX>bt6fdQd_I@BfS z_4<lvGMTf0<#RT4!Casjex^{kw17I)C1-WIE0NXJ4Hr1ZJg}SPSPH*Hujw=ljvi2l zx};F6y&7Iw$ypHPb2i<5jR^YG;MiCA>Z^jK`w^%^T_RJfm7zppg9R?wEyY-ze~hA{ zA}j>!Vf`pah+PJC$w{U1+8oQ~EQs*=4>Qvp7_yx~G*}Hn2<CldV2q~_2zG+H<fuYX z8H~sOv%m}UhhhXq%Q5PfqT{_9ZdX2r`lT4?DZ#M|itA)oL4hj7|L9CC_7A>*0gOqC zsWAyAykcPiy%XL;=r>CszbJk}wu(gO^2Fks>rr2`jT!FR6Ayjahmc<cc0nUtip#n) z{!o|K#g~#TJllD8{LS+^@{Gr^9?kbj|BDCY=`X|r=@R8acqRY<002ovPDHLkV1jjH BJUsva diff --git a/interface/web/themes/default-304/icons/x16/table__minus.png b/interface/web/themes/default-304/icons/x16/table__minus.png deleted file mode 100644 index ff295443bdfde471fc38b929a886e8791beded82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmV+z0_XjSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005sNkl<ZILn=o zOGu(o9L4Y2Xj{-SWUyL920=s+Lqr=_Lz|!&q<53aV6SnQ!U|luau#i3Xwf1hqM{&5 zng+=pUnNCUMALK149k4mr>FaOKt79vyzt|47Qb^3mkmrzs5nh&qGI32$D5JnA(!=y zjWx%3sN4iTuE$VekD}ZrqV#tJCDss>3jq|)`%y6Cg<{Hs50ej&Tkb&)xlA`Y+9Jkc z@dBe8@q%HOh@smj7;eJozxrRGKYPTtQxAGi?&AgIkju0qBdy_RG_gP}_%OKR!hqn! zkM(Ql?N{itU7~yC9J=LGe6{|CcIgD<kjvW5=GLGnCKe1k?hxTw%F6C;QeG4UkV7tO zG@06bkw{_z6|5Z{VfEkuw*7tl+1rC~e2is>1J><rENyMY3&<gteKs1~J>hWD0zc1E zXn{0S0XgKdT7%(>I}}Q}V1wtE3&<gtebVbYT)|+{0uRqpXn{0S0XgI{RackB83?3Y zuy%O(Y5_UqvMP<H^Pk_Jw7|`?l<Arp%oP<Su;k@omfuFX+{Vh(YVD=ZmvX_c{CouK z>tA7#$u3xKb+yjPfArkzeG^MV1I+wIDL<7;sI#-}EJLBF%PcPLNe6NnKQc}hC+D4z aBYOr43CVJp$QpkD0000<MNUMnLSTY88Tv#3 diff --git a/interface/web/themes/default-304/icons/x16/table__pencil.png b/interface/web/themes/default-304/icons/x16/table__pencil.png deleted file mode 100644 index e17739c2c9c016959c534e5b11cf56e3dcfb8d4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006xNkl<ZILn=p zUuaTc7{<Td#UfZYU33)@A#@Qm7*woAL|9B1bu)?}q_VX#3s*Cv#9DYYf>yK&S6-~O zm5kg9T8gt|Zly~$h7MU~Ze@nc{BP>h_nt_!Y#00B;hcw;-~0VIhiUrzB|OKM840`8 z+bhE|53x*TFvtqL?0yIAnkb;bkw?8fhpnSo)LGKl@-m6dFA~^fia|6O#YW?IY<RK= zVu)o*z5Yb5P!JaAA`ljIgmbv|^(VAnGPpATdx84n4_x#|(LT2*EFgwhrs(c&$>j4z z1F18PtM9|mI77HR@fm8zJXH1|&f5Y|TKza@`2dA^4#W`4TD!VhQn_5wpu_zQS>8)y zo0=-?ubfU0Lo7Si*?BUa%@z%4!T9Vf#ylR_XJ+tvdKylj4_3DumdQz&T`pk(F~qVX zI$ditlPNPu@Ln1+DC-6Tf=x}h-rRhH9n@-1Mbhad4c_wp$G~VdL$A>QJdbK>eC&W) zeL9><l^H~NFAW*c^HX3114biK{Qb5{1%*U%i%Htr<e_A8NrQ2(7Z!UDhWhG}T2SFE zhu?4;V%Z+K{LDfkQDzX~y)@Rb2e6s;3h==Fop?HQ7sL?Dwo9doU_Aa`gHgvr3_so> zz&$tXF!=nA@E3?7maP|yl_CCR1F_gY@%UY^JQE9WAHUf(JzSg-Lo8b<5*=PuTYI5W zWQSIdAnt`$xx%+?-@1E$&xvLHRP(IiSz94E+E``U-%!<9VMa{#FV2YAQ}Tj(ng9R* M07*qoM6N<$f+#Q^sQ>@~ diff --git a/interface/web/themes/default-304/icons/x16/table__plus.png b/interface/web/themes/default-304/icons/x16/table__plus.png deleted file mode 100644 index c1a918d87fee20225459eabed0d61ac4ca5f0c23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006LNkl<ZILn=o zPe_wt9LFDmJS>7vA)X>)4GbL#iO8rVLWp%Jx&&p7nk{XP*eYF=tc0CL2QOX*?O-5M zfd?^im@(R{R~w3`h=111)?&8yf4$qc=l2NXUC|03`0#tbhtHQUFY6r|(sPVEM9=OI z4z^>5k6hO6@w69tIQ0Q&nJVIhzW|+2M$?--j(M{<`YMh3(G+S&641PiL;d_a4h?UC z9CDe}?Y<!wi=x08gDB{W%6R<sCmdgLc(}1$U|;`%p0zmct!#+`a>!+tfdNylP$(@h zNJ%{U7)7rX!Gozy*!>&m_Jwh0G6d_y8g6@6VHsZmIpngA{(e(NmP-rzg5QwmS;^$= zY*~ISNg#(@cHQN=nat-)3#cHlw1jsH3-Ha)<L%rWq~&Ey1cUI-%wT+aS`?5&F1zA% zcEoeJvIQxgmCyoZrUG)vWfvWe&R8~Ealw0@e_ucjx$L~%ek+>Elr4z!tb`WOy&C9( zcB}<wM%zFRxlC`fnIq|R#RY-IMX^9V+=Oc}o4DkV%TAlkU7u5_vIQ}om7E=EgZ9O7 z!G)+1>Sv9p<KNXTt&cSu43=;*S#iN(Pa{rlp8JEUC)J<W!PZu5g#Xb{BJo!)k9DH% zX|v!+NGEQ+M+cSdfS>KrXfEw-Xt?`7?CRMUu34=GUCQJ#{#2a(oSJ`Ps&X^q?x48a aj_Mb^bI1{yO_t^W0000<MNUMnLSTYWAQvqF diff --git a/interface/web/themes/default-304/icons/x16/table_delete.png b/interface/web/themes/default-304/icons/x16/table_delete.png deleted file mode 100644 index f67ac0d5649835a2f6578412bc0fdfd827e9e091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T0<!&yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006MNkl<ZILn=p zPe_w-7{{M$MdxC8l86NzLW{zJFd|-vow@}{4ARV6BPW&)w57O{ClBr7!Gobl5OpX} zY$(oh&Of;P$82*pTIOu+pIh6$J<nV3OM@NK7e2hd=g0T^<;(A(&f#GbQ-1(V9YaGz z_QAmh9N-flL-b@|prObYSG~ZMk40Se6mV(s7cRWd;_PS!XWpi9`b`q2Uj4+$mp^b~ zWEY|rA46p8@4uTb7S#Y}3~E64b{@~7IXsR039xS_&=!p2@y4ziAbRmJL{^upF<U6; z4b0vo9CP2$;r$BxhX~rHzMyp?44XTIN8_Ji9ovBD#m5je_4PGo@_D^M*TQ$?c-EL$ zS}K`GXJ;XL@i9bqdVB9Bb2+_%1Wd24VrqFAbAbT1c6Q)hTf+?BeF}x(XGHH*lyg0b zLUh~dY>H>IB@I$MYrLzfLd4_I&l)d?yu1S!-E=ta$M*KhHt>hTcwJkI5u*{2cwGHw z>gsf!a|qpNZ-20z$&@sR^Q_@A7!Yu~^|MANo4cfesinmdO{dE?m|0)PLNJKwl@)k+ z_VJqtqQBnUe7?S>hUl8b@-UK0l{AR)tRY+Yca|-PUVIGEMYGwul}wgxFzNTJ0q(^` zjL*+w%;!@BL@z#us8UgEQGVggMB={@z4$6+jYo{eTSu#_Tlb6j4pmf;e21B1jA0)f b|LddQ!Hlr-=)_@#00000NkvXXu0mjflJy-4 diff --git a/interface/web/themes/default-304/icons/x16/table_delete_column.png b/interface/web/themes/default-304/icons/x16/table_delete_column.png deleted file mode 100644 index a8721c36a9526ae95257128706d21387fb26f035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006hNkl<ZILn=o zPe_w-9L9g=V&|fhM5IB;&<;U^A}aJSJaiibF<WNV8a1)zpjri^gC{S$c-X;%MGyr= zXeJZw&zv^YC5T&YducglbMH2{w)g4x{nk6ScJl`h-}n1_pXbB#zT&~egjwq99%Kd} zgnN9v4|_QOazfnm`};KcbS?;-{jA~id=;kI-#Gc9gcFlR7~d9f{I!Z>FL!YC#V;Ir zz76tIjsecGv1=7gV}LgU20YoS;8CiKhss}odou@DEQ`Av+YBH-<rv`b`T9%MYOR4a zsKT@O6ZeBZ;Qpk*HJ8LtAP(oucif(i!ZEc0@>7lh1EZt;#Y&~t;PKZq%5v8gSYB?} zCl?k#e#$YxHZpQuEthKz2=H-j4RetQW>;1aT3^RZIE?9~B}|1v3?M({7;xF^9mtkS z4Gr>g*R>jtH|zu;Kjj!;@px`zc6XZ^tR@n8V>IG@cQ?;)ELLkke#$Z6;_&dztzxmE zL00ahXdnQ8OAAl^jsWDR90SaQgZ5OR(9|F(zx|t{Aev4il1yS={u8|c`6<VM3wHZ0 zC7*9-kdZs-T}MYv`W*qtPdNshvRWMpRc&gpD8Kntdpk6zljj%NNN+%X$}!+@SC=y- z|LSHg*Q95yttj>O@~ponKjj#(zpd?(p|f-7e_gRyOizUf?)3D4=6RdVRR5lG43KA^ w)B&kO^*SSj!6k(6jttY3cZRz62PsE@KbB_Il8Vkxk^lez07*qoM6N<$f;jmeTL1t6 diff --git a/interface/web/themes/default-304/icons/x16/table_insert.png b/interface/web/themes/default-304/icons/x16/table_insert.png deleted file mode 100644 index 5be705b7cad78650b83bb4defffd8eb5b36152b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00066Nkl<ZILnoj z%}Z2K7{-4`?^XQBzJz8>%pu7Uv0bz>sD)t^1g%`O?=NT<1pO1O+O!ZvaM40=k>V;B z2`1$vnqR}rMxpf1l=qzTzAf&Z3uOdz;9b0Mp7;4ZyyuvgGc%8XJk6h~s=f=HbA7L- zrd~Izelb1$3?T5%p}@pP5K+8Wyce8nl;WJ=eNrOI=93F}=Ku(-b4FAF!^Dtb{;M)M zY!ESshq+Ji_@*L~)a)vVD%Lpz5IAd%PX{b)Dc8fF_;NjSe9)uVJ;940B0RjPc<sSi zn+&klk`Tbekii}N;`!*MEbB_C#O-1+>zCKo5FNl;n?#7?*mx13m4z+kUOTLAZzCdf zw6#&l=lNExqN=DW`QBc<2-e!_X5j;YjpH;zg8;?`2Q$a<rO7iJSj^4y<?8bHddCk< z2+{!!g7w{9M1=F*-PBJ`7`Zc+i8q$l@v0oQlovT+FE~9tJwq@uFpvq3kB(TGTl#~* zs}de|-aRr0i$NU6M*bq$*xyG)2!nw6`|q>-n%)ytu5I1AT)T2?{z-77zdv*PytBh- zp^){fr4qSZjyR6{hYrRGYEg8CV6$9C(!B$$r(0?CqDn1_l6O$8RDv)Jc{3cP9_>Ki zfB!)khEyw+0Kjw=i%(m+y84>^Oj4^=B#Pb|pc6O;v^Jv$j)D4b<VsJN*)vAW00000 LNkvXXu0mjf!1569 diff --git a/interface/web/themes/default-304/icons/x16/table_insert_column.png b/interface/web/themes/default-304/icons/x16/table_insert_column.png deleted file mode 100644 index 4348fb6ad7dcf49c4fb6a37d28eccdf7650eab5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006WNkl<ZILn=p zOK1~O7=>r8h#-o^jiRFUNwFyi1}whlCM&^(C}=?Y(ilogwGF6IA*;ISrkjFUbWueR z1w~qFX{fI>sj&|VC8kM?#%gNJBxz!j<2~2T&@mh7z~P_&&N&}vW|Uh40~VpntB?hN zqB#5e8?lOOIj1N$Jf6m~xI5tkj=d}6=<5>9-rqR<Di70O4mB^b*#At$o+rPs>+w(Q ze6$GqnUerVUtd$PT$TWL5)yE4p@=()0&d6u0-TXFI>RYk4=qXn{me;#y|=eHUn=Ph ztUeX4z&G6VeTDOF9GzpI(J>l@V`Ls}!=GRu3W0v+B%rmYr#V+F>J9FG_>O|uHH}VA z8ur2QanR441YGLwZcz&by#WDlW@j-rGXw9`6#R2@7zqY3JTZYGzh46AXHEhxxZSO( zeBRI?BX&*G(Wqf3fPUsA;H=AaCAqXz(O^0j!=abQbp^v=y#f8qNx<o@uB!{VoS{KV z?9{=hW?cNyCZ~2r0R7BKfTg|NmdIu+8hngIu=}A2C%>GLGY|^t4d`c10#4a%*W#Is zp+QpY)Yb=kv18sOr*=jF{me<g5v$c6Q`L$F0rAco?pNu0FaCzsfPUsAV0%M@BO$(O zB%S_m(a)R&tgWs-zpl2n<6o_>t23YTw$#@=uLmdhmCu=z0CBAm+AOqXg*I+#I-qRx l?1NC4lRM9spI0$Qz#sfW)S{iC{YU@+002ovPDHLkV1o437NY<F diff --git a/interface/web/themes/default-304/icons/x16/tables.png b/interface/web/themes/default-304/icons/x16/tables.png deleted file mode 100644 index f0eb51f90ca3f764e0c745ccbf9b7e90ce2d1739..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006aNkl<ZILnog zK}b_^9LN8+4lx+r>f*&i2fIj+hk_lVP7-+9A*h3tEmI`esHBZi;35jsgAk<<jyXN7 zLlBj-H1?jGb8S5~Y;zmPM2BszZO^u`eS5!uyw@}h`@x4lfB62t@ArAkIyJ@ayIdN| zy;I@ZA?c(CoO_d#D%Wwyp)7xFbG!N1&Ew-lPrcE=XhO!bZ)H4<74ca5fuV3750`VW z2ex2a%z`qM)e49~r<3)Mjoql$>llfbF;}YNiBd3IsN#M8Cmsa9<Ly=%R&f)Qq3mDI z=7|ZXFCNDuAqIypiV;D=OEHWW!WTSWjAA;v4!4wnT&tmHc-Zt`&aeG`l&e*IO{Y<) zRB+YdxT!gxUjhtb17|<iaAvN8_IEN)y(!_Or-0U(Ja_hpA|k02!pS6ZJ3BDiY`vN@ z6%6IT3+x*eSTny1?xePP0cBkC^VpVUEU&I2tDKiCmRpQG$Vc7aioXbJU;}rB3@i(4 zxcxDWf!QQ?e&zLIDUm=x`A6%e5-#-h^)vDyA9VwJD9b&GPmu^eKLmr^c}5VhRxENh zm3zC<IKaq*eAEr7z!!^QL6YEKS%Ehc;sumB*WK+o*3n^B(YLi-X5>LW%^Q#>K^xFX z1(dmHG7U1uPBfuo<Uv0BZ9oO;2CDPvt}eD~$b)=Tw}Vif6<Djm@TY)0n!Wx7Wpynr pj5wm#YaK@wj_+|h2p!uqzW~=5lpGY8%FqA+002ovPDHLkV1oDV6}bQa diff --git a/interface/web/themes/default-304/icons/x16/tables_arrow.png b/interface/web/themes/default-304/icons/x16/tables_arrow.png deleted file mode 100644 index c364e6956e5e08b2bb484126fe7d1fa6f425c302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007WNkl<ZILnog zTS${(9LB$!you~^m0blzbTMxv(2FiAqMMQwB8*mAkg0h<iisI*h?47U7APLeT-$14 zgcOytIoalpZ4SrO9cWE-sMB_^P3F`0|6(ghXua^`<%Q>c-v94qgfba(Qz}itp7U8s z(<GlRa5M}IB)N<<7iGE2BDtJ<UC`T0lqJ^J@pvYRM^h0zaD;Hz{v9pWAezlfXf!N9 zG#&tDD4QxEZb&3dO?!KJJdr@#bOa;e1n#p1!z*!o4E{iqX%X)iA`t54K^e;a<t*sy zlW3-=aa-$vSTl(>tsOl&E4sB`&^bPdmy@%Q+x>{Ht)Z;7wc@{=-{|#-#N(Loda)9V zp+qdcl5#$31P<xead2!6xg#;;e25}@D2)AsE7<!g$T<({bg+3mu)5t?T3tnvNK~0} zrh=9wa0QKXF$n#?3hF(}TmfaIqoY`kMqzfj5McL{b#+w?d5}+Xf?|CLLc<)cYyGHG z`*8KM7q!D~&beQygmGpD2KJ9;!(kk&uC8IogM5+`G+F|jC!w<0xc!sK#5tEMrcm-a z0Eul8^XxgNsHm195AsP)Km{6y18Tb+dZ!agi-jwoOx`_Hu)_}=xMTjd?~+)$jmP6N z<Uu}vPC%XnP0;Yxi{nqMIMwaM_6z;~vkDg;eg(3dOxE4!T1y%7AfJsUpn?+$A6mS? z#R=fF<u})yz@B=wks%NA@r6PgQuW-5!_6ujxuwR|;%C0xr!Ewlft?jY#;nSBe1<%B z<mCy{A@fX+ho=Iz@Lw1+&&&912}5f$OBTznf00qp(Y2|d)0k1%#b-+xD)<S?)V}9h SyD57B0000<MNUMnLSTY8Btn${ diff --git a/interface/web/themes/default-304/icons/x16/tables_exclamation.png b/interface/web/themes/default-304/icons/x16/tables_exclamation.png deleted file mode 100644 index faad227f26ce96cd0f555d49ac222b112402bb02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmV;(0yq7MP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007yNkl<ZILnof zTS${}7{>p*4oSL+qN^y7up0|B?7|}QN}`LwE`q$Oby7ssENM%WTt(&K!aO4>I=xUx zG4q(Zqs}(xj?Rsi=7vt^4z}5R`ra=#BE7H=e*AgieV_07F-dnfd)C#JfSYqT?i`XF zI^cQQ(Glk^4*Ah8e=L>D`M(#pwi4pl-X7|f!l<!@@YWo_YvVSm^qZ*E`B1K1hg9ta z?a*!_fGF$iWcl^=_oA^FYV9G62V;1{1&sQm_`LZO6>}RHS`R^@@_=?|cb{`{TU)2X zZpTZd88U?lwMrveRC+WkzoJoXLXT+`a^niZySorqSKt3H=YEX_p=cBfE*Jcf2y$hz z2MOnEvp|+=50|HRkv<+l+He@>2ZBiH^W#kKChy#*Qo-PKLchEW-_8z1Qt88lGX+%n zzz3ACMIc%E6Hw~h;se%P&6pUv0=J_9I)?+^a2PjAN**!tAfI@H+nN9*+BG~;uApSf zjlu~R3Pvng(&fVEZO7b{5L%lNtHB_y=jG)y@*tmhgYtPV?@3G=4E#GW^A2uH5q^bw z;4&A$wk(H-yGav?3K)5iPrLyID9mO|8I90btr*kI;>)L-*!I*wC=|lul<YKBAJrbu zOn;o5ntF?o2l@QnV2hgxYT*7hi1}#|{NKyK7{d>X7&HB+brppI5jQ6>@*tms8cZ7W z7#$G8X%fS{kd1+lMOe^hL9fnSANe4tA8r>27<rJ7I}q51#W@1aST<bNt8gq{;2Y5E zSiFeI-X!H<i{KI?k7F4b#RnmKo~$uUpACBK=isrWAhc1+zl2qJ%G3W|(8PtZBOE6< uPX0?{C2QcAjnndisoP{s5vTnXtNRVo^Ty5gy_#PD0000<MNUMnLSTY5o>IX8 diff --git a/interface/web/themes/default-304/icons/x16/tables_minus.png b/interface/web/themes/default-304/icons/x16/tables_minus.png deleted file mode 100644 index d166635372033dbe7963cfe364900df9a76d9cdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006rNkl<ZILnog zU1(Ba7{}k+(Sqo%uDfWkF6K?UDCi=(8^Nw5Vs#;HeQk_D`xq&*U`9073LJen7!zk+ z*u@~Kx!S_x{FrG6W$9E9$0kc>ex;)S&hyrh(MH${KVDw=KmYUm4%5!fvHKQF6Y1R} zaiv9iXn=EXc2=ezEgs79VV%{=zpgf!h=F>efv3?Do_s4}Je<cP@dw5NSv*+HK=0Xx zZY2%MP_|h>jF`=A$Y{J;t=BObDPplu$788rAy>uw>`#pPzT@q75n9(4C_~vj&g$uD zvojLGLm>=<GlWSA?-FNH67z7oRg&<3nx3Z+^N0}~V1{>%A|+l^wiim!<Ta+L}$ z8w}T*&S$;A8CL_RKG$$^u>!@r5>Ct)aNM55F<X{9+g&aM<8cIHF=WbRD0R9UO=l_? z%YYZ?H!IMleiz({@9+Z3SeBNsQz~I~eI04(KCjW-WaL3U@&=dOd1yVGxGSWfSx(~C z#{`BKV%&Mg;ea<9g-7~F8-)VS4Gs=5@*p311HC`ZJ&8}jAiqEOeB9Y42uSAhoGt0C zP%4KRd61910TnpIVJwRx+-qxa`2D<qGN)B4`{C|xwalT;&WnsZ$Y=Kk<Vny5blZD- zG2hjN7wzq-8O8!KBaE3Cd63V38&CmlVCv{Vxvy^zM#j91Jjh3O+Yg&cg=Y!{Znw21 zb<&W`C}UHMJa&8i3(8(#jA{NLmGE;w;)ul27C6ZMD)<E>n4puaav4?t0000<MNUMn GLSTZa!5+K- diff --git a/interface/web/themes/default-304/icons/x16/tables_pencil.png b/interface/web/themes/default-304/icons/x16/tables_pencil.png deleted file mode 100644 index f2c107c52ce96f5af1184f892b307b72219ce5a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007fNkl<ZILnof zT}YE*7=~Z*AR;vJsDkjI4n*|C0~0jxK&-%@>S%$G2T|IOVufOpHmqP1Nz}4|nSyD$ zL@Wzp(=D~!oc}f)Q`uIc=rDiUUz^Ok?|Exqp&r-+7cU<?&;8vOlXY~k`|a%_!grRy z)qRph2OMc@Ylv&u=g=-cmaEnL?<Gx5M1F948&BrFsGaqo+Tuc$`3DqJ>v%N2hKi9@ z$cLSv9oiKGi1M~JR-{rD1cE`-&3T}A2k}@4=-UiHyZ#do$G+pkss}RT3TTIRcR80d zH@6MV&7sm@fpTaDbp|tD7^l!^m_)<y3|`MHL2X`ycWVpzH8t1&%lVDT1WzD<FAfJb z{eI*rl{ZA^^id$qxQ*0LTR5fnBT?f;!h1JjyEk#NbDcYP8;zK@+c9OcVa?}*L@vK6 zI#YmR4LqP?*$>&`?|?G<1`nW}_JILxc)ghH>cY3297waXYZ-ZvPpH9VlMAwuW!y6? zqI7TpcRo5$+-Kv?Ejk^vLW@>~0+7q`GBR?Wkq7yN8dOX;xhK&-J<Z?Vu`%x4)mx92 z&QAD*`cI`&TuMq(G4ddvPy-4WvRE)^Hp67KLN_tN1MFWlsINM*;#(@i@whlmbV5RP zRD66c%PB3r<rKXBZ9tv`HK12J@ErX;=Rn8RWnrH)Qo_$O#*PU@u#CdOq9wO`&ju9G zH`s`GuTJyh%JRdr%G)gcOiDNtCs86PUJ?8jT&`VM9pliyJ<E^PjcK@$m-I}M7t4|} z;{FDZM|5&>$zBxXMr+}=;=$d6^Ql=U8fZ5nCWa9QqN2o%Ljp(tIPC;iGQ)Z<riEpS b&O7E8I4+oAyQ){X00000NkvXXu0mjfKHWm+ diff --git a/interface/web/themes/default-304/icons/x16/tables_plus.png b/interface/web/themes/default-304/icons/x16/tables_plus.png deleted file mode 100644 index 56d6bd5ac0a206f456de359375ec7f2c26bbbf51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007FNkl<ZILnog zTS${(7{^}(tticci0q=9h#*VwqP$2@kgk#-2o@bL!nAo{gc}_<R?!w#m_=#_tx$9Y zEhw;qS}NO|n>HI8rf#D((`B1$2is)+`<^#80*ma09}h1)@BjP%J|=H(XXo46k_h)= zfs#d1Ob<9`T3Qku$085y^2Z8|hJRh!)I^lV=jU;AEP@*!!?<n_qQ?3iDvKYN27OQt zOheJ{1?|voGJrVS+RCcx>&s&CIO;~j=nlnkO$g`=#PHhx0~gKT&@ml`+%N^&q1^?} z(&pw?-RLN;=<QJJY^c*)ao=FUJ^g#!>9^srZ2}sr2a&lsl-Aas_%G*YMkB(p7(TdM z2t=bes#c4W&P67mz%Y-UeRJ5+9YyY|2)4cmVY4=XjZggCS!*z0*y)7D;ec;;79xeB zJn2jUDj#@&axx0J=U2cf=L`>^owlAH%tRs>93O{Qn0sWh3Pv8}lW1_n7=(Oa5~uYZ z$a>v4`PKzVr-M5`>gs}NYzza!Kbi=Iu&c7NijfETBpN7(yxfy`H$2Se8?%`^7d=0K zZ5@T!-zUbDaL*NqB#b=BC((ccbap#>tyUOEM$k1h!~<w&S>p!(F<&)O>eqf=otG!g z%+5Z@$b)=-Z$O>|HK4g$dk8sC3$XO|de6SEC18!KES&1}CPp6Q^QQ(BKn*rM*p9+4 zdl$fNWttdykdHeU{40lFmLun3K2k5Qac6(Z2dl|2ajs@GF!CUu#gKAtr8CR91?<8K z6H}!#A%xLcF0f7@>z|0z?y|B}6RSvTV3H*~;3xMUr-8vj+_(S$002ovPDHLkV1gcb BFxCJ7 diff --git a/interface/web/themes/default-304/icons/x16/tables_stacks.png b/interface/web/themes/default-304/icons/x16/tables_stacks.png deleted file mode 100644 index a7e9e871655705422889ec073bc36414296f80fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmV<G0Tup<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00058Nkl<ZI8U9A zJ4ixd7>56?Ap&WuxuL<98ggi8h_-4q2x{tH5<${cE24}Rp&?pq@IXaF1TIp?%C2^i zt|mwYQJ8}%nxdj_=R0-im{H;fFCRag^E}_nbSo=tY<Zc<cAb#cEK?`{QOq#MwIR!) zZ!^pz9A|cTJeWJW!|b68hW%Si+ix(nbA`$6D~$6O(A!){rcxL%nc8zQk6O<WPbQ&R zSm?;fJkK8^l1QN4Xza|%yt=!KU@V3fgQ1I252Dtb0@X(;RP7~DX^WxU8bO&QjMDWW zO4i=e%pA|dAB{q-*LO4OK~w_F_#px&yfNsWKLLXe0TCcKFIlbdMIva>YI_*<AgXjh zvm*rEi5EkM&(PYR(7*kNzODN-^P<Iqmv9)hy}cSnJ%}n@FyZv!Jsuacb9pK5&9k#K zvsnPW3h#2Yx{py0qDmJK;K1dA{rVaXw;R0EDFWo?ipIu`LX~Pjp;R_8>OoZb1p(nr zp$ljeKyFsn*XtQ$#X<@g^&skR7Z5<Y;HNoHp<v=r528MWLVqU1EDh0!noZKovdI@x g#6HRY<=gx<A0zmr`#oH>ZU6uP07*qoM6N<$f)@7Npa1{> diff --git a/interface/web/themes/default-304/icons/x16/tag.png b/interface/web/themes/default-304/icons/x16/tag.png deleted file mode 100644 index dcc294569b1d019f79614ff7e2d9792cc62c8382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006TNkl<ZILn2S zPe{{Y7{{NA5W}!UV;wYc{eDwYgdqcod65l<e<%+X=t51}()|)~k`vS&)Ps6ZK?N^6 zco4h@T|Ig#uO1{y5s}=SbJNYOHhTL$Ym@!fvIjoAyzle8pY8i@L>cu^tEE;&A;;1Z z4XmutkjF!=)m0i@TO;@S`eX1mi<acY2j%5t?&+cKnHjRp&*u_I!1hZBk%o)U$k^Ua zFUQBpIyw0-fdp&`T==}RBRm@$$(1F1PS0Jg>jV<8$1(gPkr12P+v4Na7V*jg?p-I4 zfc+;1!?Bo%#^d7K@v-={yDRp*-lTy0xdn@h5+v_p7z$oqit}jnO2XfS<8WVDUY7nA z%+1M=^hPn{4~In{5>ZJw4)^T~3;ZFZ5_C;Z%aHU%Fysw|gzw@)CE+;Se=|EPr=wm8 zIwmG$NczGUIyyTO--AJwgyV4k_0*J{`Bq86i?J~o6301)4o*+SVIZKAa2)Qxa=Yd1 z$EIh)!#YTm5Qg?nPQ<?7uaa;a?zfGM=rZ4`&SLrV_iY*+d>_Qn7yL9|eLj_h<8Z&( z>C~m8);2bhs?3U_GdUdn*%FS!=iG;cs*Fa;Sz3dE>N`6t4OZ(wTEcO7&*$9#U)=)t zN~)_H9+^x|mhf6qQ}Yz(#o#_D1O?y@$OE@i_ij*XQwH>T8jYnuum6D6jQtZJg9=az iG@uCF1^KCaH-7_7v-a7{gCijT0000<MNUMnLSTZO&mRQ< diff --git a/interface/web/themes/default-304/icons/x16/tag__arrow.png b/interface/web/themes/default-304/icons/x16/tag__arrow.png deleted file mode 100644 index 9d88ddaeadc291b97c0c14497edf193e55fc583a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007cNkl<ZILm#L zT}YF06vj`cgs4=Iur4ad_O58F*oE4M>p~_}Nb_c0Y^E7B)2$MX9Mtr}VW`CXMk$6^ z34;*&rmjM|C|@;d7Zy$XKy*6i)Xl9NozAgly=K1faQL6+`TzDl8w2?3iAzj`%z^?i zx3xi8XD3{CI>FlA4cB^lpxWiyMLM@axyzULXJ<oEeLa{O8&?C!Nv0o&7!yCdgFRVU zaH^^b^6mEj0pui8lrFq>yV2R(yEGZXd&sj|*8<2%#fudF7LDTb{(ijQ*9SZqz}{K_ zIjQ(N1%r_Yh8GvnGckd$hKF&)>s<n{zdE3`RZfue5efws7H}>cUWV|Sa2@t7?d|e^ z0S<>ikdiQke8C|4Lm>%->#$$k)WjbG62O_dI)NaiAqshCXK`|VUIO7d?4NCD5MouA z0mhmdfgq(p3XRRo;CLV)fp8u6^$kuz*YXT>%}*is#=~C#z0D>N#5_l#&(qWR)$f-; zxDNZ;)`7=IZ%v4ro8!jJmQmPO`xZb~S*ak1WtKuCQ&TwV^GP6FhyCNWMg?6GJH`-s zW;Bl&mjEZq%P#~d^nrewkCT%U2-nG|e(>@@?U0+oVp4%iG~Dx`;|n66RrWVV$gx-y zTC@4$N(k5Cz2^3)@A@bD^4=lphyJMIJz|=*PlUAebU0X8xH~;RzbppfI(+8+R`Zh% zS;-@j#cz<&<-xo`L_U*e<p0rn(xz0UQnN#=tzZbxRF?YEFNlQxo)Qw(<ol`jxe z40i{Tv{z5lZXE*>NZU#34KmrWWVQMV%^W)KB?+XRq-`Ww{E_mmgp-{^@rN!I{k|9X Y6SxpP#XzCRVgLXD07*qoM6N<$f;2NocK`qY diff --git a/interface/web/themes/default-304/icons/x16/tag__exclamation.png b/interface/web/themes/default-304/icons/x16/tag__exclamation.png deleted file mode 100644 index 4b0b38afe9ee9264cf983cd729e0ed367d992cd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmV<H0u=p;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008ANkl<ZILm#L zT}YE*6oAiXMF|ykA$TEmVVhP;uwo=)L^7p9s9<%|&@6K0R*6~;^5?>zP%l*cspTB0 zV5n)@A7oIWICT<=TK>(n6#eF$+uWSx@O0jRqnY`_!{L3;InVbVzV8G0Yx(&4!pYcJ zP?VQLl3ER^S}mw*Y9PI?4zlX&4-q#v5aVe+78wcg1qF~$T)de;KqRao;yP@xGdLU( z0ar3JL6(#AKY@Tqa8X0g;2>(7o86H~*g0HOskRab2>B`%|8lvoO|Qq+_I6;A30Q6` zfq;<zrb7G53OZL;(J(iM-NVB;!Sikb%Wp0yD-)39)(RC_mY31ybb2K0CTtv*S5{OA z{uLAz2}yF>Nkt~R9nB7hmxPVO^74`r_7LzAT+7cFk|fbVMZDFD#-$~X<cC3xW4%(W z&_>r>FDw+UkLnRz&CV8*B+*XIGmDEjYq5AF^EMM2`r^^dYiu1Ydz<vF+%5tbZo%b@ z3?WGrHfo+)SiqlVvzLUQdxd?Sm!@2f1{~K*db(b6F}h|B7;qsiEr=vaD>YBd&*OKK z$xGr`b75n3fX+OV?~qERXqnEkbiVM>bTn|=34rs-$#*Q&JW8)-+-UTYuyO9^oh#M1 zi3hCH50O4toE?^9@4G<Vr{`Sc$2t;3DV0GIh2ri;2^%L$nRu_Ea(~n0SDESCKs3I2 zor(kfr?I~~-1MQAd;Gqd;~-EhhOoG}V6jY=v@T)euzhm6D7L-HPd7Po1`R{U-8W#- zFmwVxH}28Bt>VJif3%I*=NA%k>YzlD!XzyEg@%SVmT}KUx&n>-*b(GMgVC{|a!1C9 zE`V=&!c{WC4&neI+Uf6qcDG3MfMOKwkEYy!T6H#jd71;gmARnT<U)@o54x-JpiBD* dbSgQN{s9VuR{He^Mc)7b002ovPDHLkV1nMtVx9m1 diff --git a/interface/web/themes/default-304/icons/x16/tag__minus.png b/interface/web/themes/default-304/icons/x16/tag__minus.png deleted file mode 100644 index 5df09a80d91c7df986163db21de85ee301b0a8dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006sNkl<ZILm#K zUr1A77>D1CkcH775(d(e);TLuf(4@pyO9Yog1V`|HqAj>c~*%<+eNyI>BSUMVQSv& zLTIoXp_?wc^s4OA3lTFyA~)yUbn~n>`ue?V8=aGR;NjzY-{1Fq=j9xtzn(gSfi8D- zkuo_+eKRxkJQ}6I>@2;E#V8n$p9K$e+^8MC*xpV(BO~M)AKyzL0naZXL=}FxM(5kw z=+59EIfsV+Cy;=rgaaQJ7e#b#uDr5@>vSs+*iRq<ZxP`irIL8Rupr*f&l9gK;NE@$ z33z`Zm@5>7S}cms>+9mf(vnzBB+3Hr?=6T#BuE|>5X$WCifvV`N%&289Paz3rlfxb zV`DNTk5q(GxtvJn^BM_{!+r0>1YbfL!ToSphNL%-P$HWZ$(<dIgva5&dvsK;j#?Ak z3x#AzdUFVU+u9P}GZ~G9$Kk$fc$hCCzoJms;rJuCJuo0cqHH7db#qg!rPCS-kHh`D z!Jz!q?WSq7nd10&V*CT$^!qK4__7GCZfuAzsgy>-<8a^G*=dP1H<u4qDGMC^{f{#U zE#uRyB$FBmkHh^}Ceu5FKk0cx^qM++K8syZp6De!4%fLqjj-x+2|ZjVv&}|Vy1UQW zoX)<ggva4M*Dp0SQ3y8$5!S<Xp5h=l*4WZ=?X=zgj3vA_wzghH{UkUJj)Deo7}SG9 zm2(HEvM~W`z0r8R!D@YhwFCPLKn7>PDPROAz!6}moU8i{R96hnf&+mS00000NkvXX Hu0mjfk<K8K diff --git a/interface/web/themes/default-304/icons/x16/tag__pencil.png b/interface/web/themes/default-304/icons/x16/tag__pencil.png deleted file mode 100644 index 94921f6e5e4189ae5d50359062245429d8e53c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007!Nkl<ZILn2T zZAepL6vxjkLJPyPBoQiDZY$IR3sJ&l*=Ej+jIH|MLJgYbmY9l8ao!Iqq#`Kfz+MIo z682?QM35nv5SX6=Kd6-vQaN9zOlLVdopad@t`t4+<Ka2yJimMY+zs9eLiUs(_#P%F zXPV7s81M)ZF82kfal66c@jzo=ABbLW5^-Y_1@Kf5hENo-A|s>GWHKfFL!c(CzYtM| z7uUcIU@#;mc7{SBG#ZVzSC55Ln*?gY8m0^H#>UX?^GQ2PxDF2hATBQMs7j@341IH8 zze{+*l88V}lx@)Pk8l_VMo014@G$Vs0`5tI*w|PoI1_#Po>Lf<CB2XIMU}n1Wj|>! zxW0~|jSc)XGlL`J<2dE_O9Jly5#(n_!`(Y@R+c<*?HlvYyurZQ8m>@0S;B9^acn(3 zH|;K$8fvq$;COB>m`V*$<1|2ns4M9d_e`*4==nLEo_?>8a2#t_*R8VdZZ$~&3LOr( z($oZ&mKG>!Ytxjrx0g?Tc#YosI(qjB9PDqv#nn|w!g08Ny`w`z5>N<=nwvEwDG$=n z*QF&K8GVV}Erm!4aXuKtb*gj!T5Bsm1QdeHPN#+>wiO!svao>Di;I%vdmw=R<z);} zo%>fsksksI!Ns~dElKRlG&D6gho9%?6_Qn|bN^C(y;hFOf)japAg%nWs@nk?nxs$j zaduWA;W*qsUtO)0qaMr20mU-d?OMIfR<T*aak$QXlE4xAT7O-K($gWcxcG3o#ZoCt zI1Zn=&i((bt;DYQloZ`Ty}p_yyvL`eo}~I-VmJTRh!|oA5k+i^+!G*jI6$ODB_!m< wq@~r;ZlH5Ap&?Ynej<VYHpEV1d*t4h-<>z~ck@SKLjV8(07*qoM6N<$f@=jx`v3p{ diff --git a/interface/web/themes/default-304/icons/x16/tag__plus.png b/interface/web/themes/default-304/icons/x16/tag__plus.png deleted file mode 100644 index 8014448ebc0dcc2bc425a3da2a30cda8105ad29f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00070Nkl<ZILm#J zUr1AN6vt1-2w|AoMkA=8x_5<>aKtKNLdXUY!TSHwaAmlqTOlU7hcrrGbde6GY&3=# zSiT57)I*Oxl`CI-kVvH>bbp+iZf>>F>740CcbONyoO{pr`}^Gc-2nc&%F4^(RAVF9 zhlZfd=Yx(w0Gy+v@NjGl9*vJ5AvKriLh<nNh6cFR-w)Qo!L0xS$@&`+3*w7+a7?d< z>)qX8?(O{_Kp<Ijbl}6x3<f49@{=LFhl@_<b^w87%ToAfE{E@?rttOTB=BSad)om7 zlI<4-lbH;rvss*5TEh3Uvp63L<pJz(4e)pbg51eaD89aqtLbzR!e7F5*mn#M3;zNJ z21J6iq$w0lCNY*uNg!N@eVg0OF98YQW?!F3kk%B1LWu;1*VZHuuETzl%Ow`776CVU zdPIV>CMon|Wd#@GaS4R$uy1_UBG&m#aKe8XPWrBF0Iqd)i3G8)Qt0dQGJcQ6BoMB{ z{@y^{8+fG*lDzOz0pPC&Fm-mS3F1glXg(6bg=ka);X3T=pIFrJLJ_<j>p-3`vS$Nu zzP<f!oI;=JulW)VOCVf_eT7@|mcl{S)krfI?%{d07mN;v+F-ZeD}`_!-m?#$%HY|> zOIRx2!(p8cPFpNTb!Ky00m60onfF!o2LPT{c)?W>WNE(Xv2dT?)3uXSsnlrd4;l>j z8NyRpTYHA~^h-e%X*Wp@kL92CEz}^*kDKRqFhEA4*MN4HN_9@I)jptUq~{uvNIFE? mPf~$NHUc);G)@2Jxw1dA-x`#EIrIGh0000<MNUMnLSTYdx-wV* diff --git a/interface/web/themes/default-304/icons/x16/tag_label.png b/interface/web/themes/default-304/icons/x16/tag_label.png deleted file mode 100644 index c2dc2e037f928077b803eacdf653d1e7bdacac0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006xNkl<ZILn2S zUr3Wt7>8etl7;;xVO>;^ecy_dV#G+oAY{U*pt`6oT3SJ_+zN4#6VhF%kV>fF1aC%o zA!)Q~H^HuA7h%#xFxtpWC}PtVs2H1V_4a$$_AzbQfrrC6zxO;l@7YI`H;Q#SI$Bpp zc8`aehKK2n*GsOE5xO@zO75|-ec<{kPHTq`)zr|{o*ruG?=K`!K*KL)&LKng=s<Nf zU1)D7YiH-b1PW+K<G|}sh`l~vW)_L;(^;2mEr9}TDHJcK(;S$b<mbU4$t(iN))FYd z_5+1W$s{LIDV~nScp?(vkF&EGf#ih+gM$hrH<Bm{&L#N7#7}+|U(QJ6Cen`Nj-est zZ$V$53dzj`iUOY(`S6Q*4Y`T5Be`v0Kz@W)2(EN@tB^E)N0I+SoOeE)(FlB6U};D4 zYrVZ{u2oHNsiQ-Mq;UyFkKaXk!-KaP{;4=iJCa}S>QeLHDkC`G)}}&YUqsQP&=)Sc z|3<?Xj<K{O`9-%|UH#Z}rlrLIiDLmp<KZZ8_JlQ_L}D!MNPe!h)sX*IM=X{<U*O5+ z=3Db9dXK-Rd_1c0bZU;J9m!8QorYYi^2M$gwGM~DY`5PQ$+PLNT=g=+{+Vwq?a035 zkYv8tf}`AIqN@7({U)omDR&cTN7k}0`Txc`u(hnB;`ko3*(nm4%PK36VSfkM2DX4w zuo0Ai_1SYplwIrw#uB~WQff5b#axT^L7;-YU>DGX?O+qoWzQA=2K)-y%bsJ0ivR!s M07*qoM6N<$g1s;;!2kdN diff --git a/interface/web/themes/default-304/icons/x16/tag_small.png b/interface/web/themes/default-304/icons/x16/tag_small.png deleted file mode 100644 index 69e01163b72e57d3a48088f904fde740389fc2e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmV-20nPr2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002_Nkl<ZILl-B z|NlP&C75Aw8Iai7$&fX9GDFeq*$h>S7c<naSfNtCa%CDEuUO$rv;mci7O4UaN&gF! z`1c<IKzyPMD4aD*7idVvFQDL$KY#ukgohV_3;~G|G$3=*Bt4)ZS>J&IZ@+&1|M}-n zupuCqfW+|{kkHYg4>TnE3y|~d<H!H6K7R%q0&)pRJgKWo4X*)V_4PR)fsFfa-u!>` z?j6_=kV`<~5e*G$AQ$2_z_+wi-KV%X4`v9+B_KXf+yH0@13?3TiWwZz)75Q~lM6tG zfM_7!03=Sd0YFU*(oRmA;<mP>K-w6@C)$8vkQd0o0N)A3R10=0i~s-t07*qoM6N<$ Ef@wf}lmGw# diff --git a/interface/web/themes/default-304/icons/x16/tags.png b/interface/web/themes/default-304/icons/x16/tags.png deleted file mode 100644 index d06ba8bcc8ae628478fdee10c8bc84770990de8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmV-D0>b@?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00066Nkl<ZILl-B z|NlP&C72<kriLM=rG+86r-vbH$`ppeS+f|*7c5|?Ub>W_e&tFPAWlQVzI7{BFf^=M z1;#)=UISEtIQ<{c8W08n5Fez8paEs`=c@t@$@l}*^!xAM{|4dVMIb{e7A~wscM*mG z1v6)=0u9Od1=R5M=g<E?{`>(O0y3a<-n^ygE<!ONbMj<Wpdpz*fRZ1+ef$6E#}BX} zAeZFNn6d2nhYu(&0=W`yKvH+N9?+1iZ$ODxpFjV9`{fJR5RgkUCQe-b<o$aL7lB*~ zHXypWSs!Rf_7|YwQ=l!+KYj!o0&+=WSJ#S1@7`g!2;|c2sZ&)Mf~%|bfrjLM0t!BO z^X5NDF~|^*OCp<^R^0=Np}Pp=(v;p_HBgu__>`37eE<sHdG+f5z1Oe7hJaiWR8_V5 zHjt0*B9KdCTU*s&fzIHXo2%}UlamiK1mqI0qM|jIo;<;D5y+*XwY6%nKsWXBVqgGj zW&nn&hE8yB5y%kpxVZIa?%&675y+*!rKReiFw=8#Vn6|6T3QUkmX=xqW@cp?{{BJe zE&}m^E;UfIvSPpnn1NUTh$Vqo3Pj79nc2Wx1fmtJt!;tgJV49^#Oy%K3f0HR0OiO5 zu@Mj(1F<0x>v2j;yMSE8t*Gb*<jVrF1P}`WF)t8vLiI5*P@0_q-Ka`I#>=Rc00000 LNkvXXu0mjfMuP$$ diff --git a/interface/web/themes/default-304/icons/x16/tags__arrow.png b/interface/web/themes/default-304/icons/x16/tags__arrow.png deleted file mode 100644 index 8647dbf2ce6559b7c87fee71091935e6605abc9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmV;b0#*HqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007UNkl<ZILoDw zUr5tY6vr>tf*i&`2u%{CRx)gA!A$BYRu7W@W+<^`&7wASS!1)B_6Prvse_gioQ8AI zY_npJ(R&y~uvDxb#6Pn!5!7_kC9`IybAI4bNA=K!FPC%fJ)isGG5}!z6LzMymMIz< z*u~aXR&F-4>z$qKMo$l`vD?{Qr*l8%@`mKzaX8q$zCJEk{}mv_T=|L5P-sz2L;nO+ zTdhKbsKPk(V{HvGN=mc@xoNZA-f9#DxMr~k5u*Bz1K(CxAruaC5CZ7CyX{+zHUZRa zZ9;^oLwM+4S%IZch=Y(xRYynfjNiY>h%6(3vX&MxLdsY0V0L*Kz6OIFgiKT>(^KE# zVw4e?asYXKeL6xag4mqKS7rhM4nii%=4OX?VIj(hOe@;kg{-KiCLJM~C2UU3&jVd1 z2$`I%tLvM@-c}<ry<{{Vpg&`$b-Js5Y>v;)!sOf>2O$%g!SHMh>y1Va-Ui@Am*-24 zc|f0Mdd+f;{fwQ|Xbws%E34KaWRj!RJ|FS<qKu9``s}q#0~|Gb+*xgt3i16B#&DS7 zucoFI6=?~QRa)wDdpr>%y=xqbtz(ec_};rq>HH*rF#!*~066SE)HtkQw04U`EIvD1 zB#=m|Q}gp>8;xWyXP{{cpzI?+@zC$+MgjKS8gSG6HjDt1h}lDXvP5!x-6&aUewV0n zjV7r3hxq56gITr-C>#VxD1Y@KzM$zG0eF~X%wfzCOeRLWGbu?*M*NhNQ&{iCB*e*| z45z&Th?DmY#!3wruouJrv|{*t7Mqd5whIK2-j2e@7G6P@8+Qdyl*jdc0ej?CNZsUr QBLDyZ07*qoM6N<$f`fNB$p8QV diff --git a/interface/web/themes/default-304/icons/x16/tags__exclamation.png b/interface/web/themes/default-304/icons/x16/tags__exclamation.png deleted file mode 100644 index 3d0e27f84832c73c8294ae59d2e479a5d455164c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007&Nkl<ZILoDy zYe<t(7=Yhd{Rjz!ASlZ}xsnlT84If)QHIb3LlcQ&kw(p1tD#nECAuHwg%A~{;T4zj zQb`m+1o=ZWMIs&IWlo1qWS`Dm++^15?R~#cQn7w?;Nfu2`Ofn_e0+e2@IS!i++4V( z(LhphF{G52!@a61xL;QXIXWFYX>JZCZvDZ<$9g^FwX}%P`mX{har-B|hT*|$zVuH) zR&A}6BuXD$`mwx>;Ry+9mOQAhf3&`6gWzsurIaMf?{vYlw1i%tPn57Av!+J3zG#gg zxvWe|l4LI(Iu;kv<@JgZE>UT<FJ~N%HAP&xDo89U3MEO(A{__|3utq@MG2QEOG}$9 zcKe1RE)@k=3kt$WlIo_-X?n|y(<w^0<VInkesX>uC&#LAq&F6)Ctip}T$)-@A%(b{ zoG_B4yJ*uqH;4Q%OSt4petye1?OC0(INYZ|kG%;^-x4w9xkh!fq~rj9Gq{kEamPUq zj|l>f&(4YxE{V;~ZZ*=HW#gu1oE*+TpQjc3yDpg<>%)^OYNDaC;XJ_E^z?&KX=$nz z374ExtJ?-FmfuA-fi5Y~C6r-&d_3Bx@|<0-{Hi-!C0hvqx(xJHLk`8osabMNp?K3b zF|k@SWPFXIUz5;j$)*1maAsJEeINFBcjzT&J~xqo$1a%+c1A|Z0_5_nkeHa*l_I0n ziUU2#Xf#}R4;iBI{ku#w^q<21o)dGQ8YS9~4HD6?g$N*a6MJ|LlFLtW(Uj1QZ*}|3 z=8@BA8jKJNcs30l#g4WeU$h#@aTaVNf`}tT1aX)M-5wYi^)xS_*U%a4vKnP*9SuQ` z?V&g`Bi(z2cCDluHXDBa{?Jea<#o@XYcu%#7k#2*wky7rKmY&$07*qoM6N<$g7@}C AZU6uP diff --git a/interface/web/themes/default-304/icons/x16/tags__minus.png b/interface/web/themes/default-304/icons/x16/tags__minus.png deleted file mode 100644 index c9692628e973a66c8c514593ed0d4c95abd286cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006SNkl<ZILoDz z-Ahwp9LIl{UdRlFLR6A4@GKdjy}(51(z+Om-~y5KK$dHpE_0}bvlL%0e1pUnwp~mG zr*j2Ce?(VW5Zx6TV<Ak_scX%gJ$-)%C+-aD!UG=;&vVZ2^L#jPNC-h^f$sJ6P{ZIL zJscY&`_vS*d%g5*ZjM}jKlLsz7X!;Fs$T{I)E5jYVEs>l1RnpvF$`b4=Ar)zx@Ko3 zNUTW=9UdKt>veTbmOP)If1xhQ5IpsGBuK2kG4S)?KqQh$MZ$tkpU<x@N)y;7CnZR1 z2|SF(<6<w7P$XQ^=5{Y`M5Ad%TzMjB8XYZ##2&|k$o{_g5sN7jF0oEbEQNP=GK#oV z5!@dbD1)RWhRyFdWn*_&k#Na_k&!@Xdpo0uOIxO=B{I8QWso@bu=#CkOYqAq;gb6P z{@@z+)J0tSXnb7H-;Am{I-W$a`85&|Ynz*jgiC6>yI+67T3y7YjYC8FPMeK}O(vo{ z4#(BX*4DO^giB0L=bKOAa7GcA+GSZkqtj84h?W3hnDA9gu9?kFmXyo#+m-e8w4(PG zi}2;;g%+~2KVxVm#Uhc19dyB9pn{4DgVt#5DygZdRTsU|XhOeaS*USC!t>{V7F+_C z`Ceo+-cA+qy;-Y$*Gu#fd^l#c4>S>ZS&##Yz)f%q+yJGyg@u(|q|xc_VtoZ%1o_}R h$UUCRqO<<ae*w*4Uhmcp#L@r&002ovPDHLkV1j0&5Jdn0 diff --git a/interface/web/themes/default-304/icons/x16/tags__pencil.png b/interface/web/themes/default-304/icons/x16/tags__pencil.png deleted file mode 100644 index 20c2bc59b61230b4727a7115ae8be2b1489244ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmV;w0zmzVP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007pNkl<ZI8UXJ zYe-XJ7=YhXMA-#pLKh`zqElu}D_UO4)i9$&BDszIXbIiSyd(`RFPkmYUuq#Z8e*n~ z*8-F1Pf3tLzk;G0sG(siW13D~+pO8w`<^y&+s_U>9Nw4nJ?G(rmmGI^oZ|-WBqXG0 zG#Yq%kAs%ZlTg*w1=sufz|`Nr0?pOEy?!$ca@=!fGO?26WTRTGjtLONAbG3E3KHA} z$jpq0xao4a7|-)XPdYh;R}hO_{KFU{=%IOal^|#Z0Fg)}i;j*qy1rGghqt-Mt?kEj z*V^0jJ$UH%@-j=(YV{;3@8~cF772pT&``)yZa8AD=AMzH$Fl96?fWqMxwORG9*-a) zL0MZ{S6~s8r>BFQ=RuptgW-na%q>&+2uX$?9cR|bAwfbVB^FEfl-=%EM3ta67(iEB z3uo)=W#<|i3P#6<SbwX6`6RP5qb$FvsmD4u7gThmrRAUCR837HN(vpg{EB~h{bo>* zFvke1u1J1AIXlbjPA6M%yH|<|nwu{bn$5AGs;WvvN$~<MKhMlC`j{jiKE7ZVbmA{~ zMa;Ii$bL8+g5(!|N2TW*8zm?KI8j=9*^bLkHX9qCo)#ojl2ciEe+*}mP0h~>5;yLt z^mJXF1SKE{jusckWfT>a_#{-q>-7)bTCILXPTW(e#%Pq#osnQaUOwPqz*~*qty1Yp zav(Q%;MK%LP!W}8m6gTOoyn9+@O!pOr4XKyA`O$vuf}I*=L8nfjHOAE)Kve2-e)Zm zhU`Eh=p7}OAM_Q`dskZ8A>409HX`ehb>4Fv322By_9FX`J%}tMGBSgTHi^ZVIPXNZ lBO+uA65>6#2Jk2U#b0!CC^}bm$GHFi002ovPDHLkV1i0pLNNdU diff --git a/interface/web/themes/default-304/icons/x16/tags__plus.png b/interface/web/themes/default-304/icons/x16/tags__plus.png deleted file mode 100644 index fa7b68516c5b58a2745a346bcaf19e575e4a0b56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006=Nkl<ZILoDw z-%C?r7=T|iYc`RChU8WYp;NL%m(@b3i@>^w!q^IlLdb?~(`Bw{;q2G+%FT<R1J5wG zL9@AnpueHJmPK?|xEhPWW^?Kqvu0oKd(d(l)kPmXe0<+I?{gjwFvj42fb&B`aCu|| zt~wlGoS1+<w;OJGy<qkG;oj`*UZiUiXYU3Aa6cFn!Si1QJaX*^eukh$XBzsaV8G+y zQKHY`(D$`9rfP3DljOF~cc-wZNN__Cc$DbB;lS6`RhG@=L<tG{r>FgeMR@|l_&ARe zLlz&VG8wj<&59B#>7AUMiKS9`MO67q&}p|fqQscN2l15^_9dMbB~+q!Iv+<D7mJFh zR1{nq9&SQOcN#B0<5yx!OQM8Iu8fWbBFSV?5tVkkTs&y4)+UsgmhtlA!UCh0NkSzT zZMNV%-W3*6scvj+AN?~pW3gOM;pK;ToXsZ^qJ&B`gM&}r<9TzD?&VEZKC|bO+;iC9 z>^=ua1TDZxlWBizPfzcLgi21E%}?J(qeVp$uOgyL_A_|2BLu!`fQMB8I1Kn#>l?IM zGf9qibUX`%!+AxWFZ!57*cB<As(E)I(Zz5uBr;Vc0IeFO5~^ETl$=^UP~X<3DJ<IN ztc{$AX;>lP;zBfEif~9RBBNcQRv+6aqFrK<JqLT`Yh<n=a-4yq@|B2D>Lx)MqClFF zL&!m-v0N^1r6Orv-6=fpMs~u3iZ`<G0S2~;x%Igc_|qzpN@2T71zR}o_oZp80EV)V bxUa9D8AUol=MQI}00000NkvXXu0mjfZ|)_b diff --git a/interface/web/themes/default-304/icons/x16/tags_label.png b/interface/web/themes/default-304/icons/x16/tags_label.png deleted file mode 100644 index f9a02448ced12c8615c7589db32cf2afbd4f8a85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006UNkl<ZILl-B z|NlP&C72<kriLM=rG+86r-vbH$`ppeS+f|*7c5|?Ub>W_e&tFPAWlQVzI7{BFf^=M z1;#)=UISEtIQ<{c8W08n5Fez8paEs`=c@t@$@l}*^!xAM{|4dVMIb{e7A~wscM*mG z1v6)=0u9Od1=KM2@t^-c{`>(O0y3a<-n^ygE<!ONbMj<Wpdpz*fRah4KL0n}`}zOW z+u#0!T#`Ry#<J%hKA^Y=<Vv^!N!{IgKtr;=0VTXPJ^C*`|K5N9?N9%MT#_+y;_@f& z-($E4<WjH!(ap{JKtr;>00pg=T>H=5eeS>QvK#+FE=la_TJh-JI}8_rT$(*~swzWp zb+tawklar|LC00M|8q^c{NH}X&Ho^mL^d_8y7%S{hKoQhP3i4b1BDrbPf1DM2cTfX z>6iai*S`24wEM+>kV}H9s#f2A{TjnXAeY9rwyMDboxwFXSKTEiCm&=;_qC7zK`!ws zDq3^t$rB70fm|9|TdM{ObW<-c1_q#J24JXa=mZBBfebN^i(7x@{(TG=fn4faTB;5T zGd(9K1{5HsrNtm@X{jY(W>%)*?;nKjA`l<wQUf(BD+X+U8HfddSQ3b(K(w5hnGMWE zAX>rN+7>9z1H@cF%nrn?P<@OHP>viB8v(H~5E}xq9;dXl3&=&>ii&PPzAO++0I?7d j^8zs^R38%qrP&z(eON2chu=%z00000NkvXXu0mjfsKEwB diff --git a/interface/web/themes/default-304/icons/x16/tick.png b/interface/web/themes/default-304/icons/x16/tick.png deleted file mode 100644 index 3d89b351515619a1342026edff245f3dbbc903c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 575 zcmV-F0>J%=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00068Nkl<ZILl-B z|NlP&C76LK1~5z)WMG&r#K15|2ttGSi-Z{%mWn{|G9X?d%D}KnR33=W0I>(dauEUs z%mm{3LJ$lwOaQ29L)yFY|3LZ-5POhf02{+%k$Hy4oS#NM%=#byvfww6e}-5C7#S7_ zw<_!~z87#K@xS-gm|r|A<SsER6!t+kzypZSfN2naGCxc_Q+Soi4Y%{*|6I<7{uNlR zcnxS#GSE<@FqkF?(sU;2Rq;O%4d#Okm?r4MF<0`k&NkcMYU|Da@hy<M1(dG_yAJ45 zgaMQI&%`{<{pE2X@_)p`%s(JL5a+T?6+W%J#pH+LCZqrS^X2aY#d;W~2rw~B6<`2i zgaLhg9t^#FXZ&x*|5Vyz{NMgUzz+~#YLnJy=^Z-%`4`DO0rKZD^z(B74FGFq@a8}= zpqGz<p@Y|hp`G`P@hRtT5{EVaYn-wCFMdelKmRJZS3vP~3|+heKm))UVE|!(J39kI zDi;GoGq(pr6ZaYE1KMAN&MN=s+a~*-v6*K#Lo1IogDX1&IzSiz0}9Lx4B>1Z3`Oi` zxR#5(U@YS}0_1Bl$T2Zs1IPw|Q~=$_AP>a448}}p4Dn277_^x}fqYFMRsv!vAO<E$ z1|A@017b#G0~moA<T+sIFo;7HOG4SeOuzt)HwIoH=7MTwMlpaA3;=&#h<!)>)?oku N002ovPDHLkV1mp9^27iD diff --git a/interface/web/themes/default-304/icons/x16/tick_circle.png b/interface/web/themes/default-304/icons/x16/tick_circle.png deleted file mode 100644 index 26b2d5ad86831ec0c067d7f304112ed25548a5cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006#Nkl<ZILoDt zZ%7ki9LFDSmJ8k1-I}Wtvu&AyW<;?!A(>qn$VRiMl!ifXg7&ia1`%n{n_l=L$ZFuW zCT`LnDN1kDi3_=vi<J!BiyiEJFYewQzn<TzJC{W-df;>S@cVr~--iGI`5)FlQ70jj zdk9HTUbuLYbVVp}inKx8nBfjHn5E923If*YX7OmYR|&2Tt3%2yeUO6puEidup6)R7 zw}OB@?U94U>)Jr^1_Zwk*MPJBm9S<@9gs2mdjVe`=f(aX*R=Cr2jN`q$~N%yeYpx} z^Ov=qv3(*sX2Ap(>CAL1XO=EO_d;+Rxu4%)^PK)X0Bvvm3OZ)NV>Z^a6jJ^3eXz-~ zcfHV-_QRx{gi@&l<#HLqZ*D@<({}L9oKVp*3&wX#^mYCCd%<|6WvUCfs1JmhP*ooJ zcpup3UW4Xjr;d(U@W>&Z%3jdNS0^B!&qJY50AV%+Yo#?qewK@YGjR~uq}RZmI;^8( z7Cf}aI_6HQT*_z2#bUAg^4v-W*c26CZz1hb(J>3gY!PR|tGF_UfSvYM<w~Uj>?<nF z*Rm_>R?smE?ltn32M*DlY1g={57?L9b(#LzY%Puttr|0C7tt{b?lurI(h#T{wacvJ z(YR$=GE0T!S{$GDYnD-)j9GNd0z9o2LN4wIFt@Fu^@&rlOD!r}@aPEMafUn07+FGU z3hF3sN(bQ?fe6eUGQ>=gFtcEQcbwslkRz16=xi-uD2<dR3jYt>8(9Y3Uz2?Em4>2) Q{{R3007*qoM6N<$f)({Fe*gdg diff --git a/interface/web/themes/default-304/icons/x16/tick_circle_frame.png b/interface/web/themes/default-304/icons/x16/tick_circle_frame.png deleted file mode 100644 index 92282dca54b60c527f860c2c08ac0ca53454775e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmV+t1MU2YP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008nNkl<ZILlp< z-Aj{U7{(tG8RkiAs3nP}woznSiKAJQhD+0>dpB3$M-XLXNe4=xB1$196w%j-pe<*P z(2+9nqbQwCO=~%wI>*#0DiU_qKXCQlkLE`Y{NU!kuHW;#2QSOb&1HJMo*4`VW;7aE zUS3|9$z)QCTot*w1<h*8s6$<H$Yr}OkcgqWyu7?(Y;4T4v9W>m^>q%-qobpqva+%Y z>QMLp3nYRd=*(tw3kgk=7Tg_qfYi^~9GYpjwzi7q=H?dalEW{^$;lzo#K5w&v;<+` zIyB#nFfHCj{>nX0-a;`hjvIKkurQCt#zqS{<T9O37hYOgTD`oygq%<L$ePNBasC#v zrwjK$=hDPA-tqZ-C@CqaCYNPqW@-ip2WOr;Uqd~71zDZ~q<z!x!To0%|IRtbWjq^t z3A^1sLoU;5wT1Lqg+0Z{5MM|c$l#p*sKK$$6tw+pM<5Wu%E}6gdhXyvw~BXNt{)(m zX*8Nrx7&?GTPn0J6MrSD;}j0I#v#2+*p_R*K8Dm1izr(H?>e1MkjvC+^?jGig_G}< zX#Hh_$K%25>@3pz1uO;@x%_s*3R!zRq_$Wb>N?K54u=EeGL=eo!|k4g$yS88p0ix` z`~BN5fAKjWwZ}r*zez-of_I08oFJDemCB6vcH3Ni-%}j@kbp3|d|Re}LfR*a!#hNF zC{Wk?1ZJ~kj$D?UoP1ai4D}NeGdTZFi^zTjWWDj5a<3>&?hxJ=$2;TWlhEshdU9D( zQW8r{Ow6pQd1RZKnuoGU4QX2>q}FIiXJR)QiRL@X+-^Urs~_6PA(ur&M6j5cm=L*K zUQk(C+v)YLp`rH$bZ-neP$%QiOgpc471W_FIposWC$e86ksOi9WJM~~g;!Q<_k!R5 z8@r($Wz?ZAIa@9Z5|N3>Ma~2V2Wvt?LW)B}L#sp@wy2^VWz-Q-Y&k)H0oVWt`BL-V Q761SM07*qoM6N<$f@@-RK>z>% diff --git a/interface/web/themes/default-304/icons/x16/tick_shield.png b/interface/web/themes/default-304/icons/x16/tick_shield.png deleted file mode 100644 index bfdaf4e79636301419a37e12bf0c592bd8688d50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007jNkl<ZILmF1 zZAepL6vxkeX_ZsE*E^k%W}8c-l*E)M&?sr7#3nSbGAJX7`e=O%tRSO;zJvu9rl!NG z6HD5H5-qT;!cAx53vJXGqo5ZM1pT0==RDIrNgnud&pqe-{+A1g2+*ZO>15cn0Cq-? zHjgp9N*<rlu2YHKbN9ah9-_$5tqdL<KmLQDp3Ste{RRPpjJs^Pld*^OeFdY3LZ?EP z@#MElxYvC+%x2H|j&A6dIU=AV&0RTLJD+INc{kZIeI*}E5o@3xO}-k=i7ywh#AEu- z_P)d}o%e{}I!}%WXq88;!TM#(%sDhqpXE~7d-FP|swQi((tjGOKG!ajBLW^vZ%h+4 zOZ!KT;YN)8nZUK8_cD)pi5wB|Na`#9Xjv$JU4d&9I?FNFQG%Ugb_@oC7z%~(%*%_Y zZQX^&fzk!$^ooE7sSiuv9{o)sRaQ?S${hx*7^sfPjqh%w)UM}b+Vg)gr&$EtPq}Iw z*cWd3`V9SkKTb_eVTH3A1Hk~7+q^bR>&`{Vu1BTUh}+tCgqd?i1l&t8rL=6H&T$oS zd2Vhl_T{0O5tRDbmj|PyJM&Q8tW1+50&ZziRZYq6oZ+HH*<pyukw_#e4hdwJei529 zZgNDxO%1?}q(;q?%z*AwK1wh2QJFm@k3jYqP~D;g=$0H2a6Jj&+SW8^P`}c&>B8D^ z<BIGupfsTu`1C7Vo+@Fw;kV2Y0aV#>0Oo{jsEhB2Z`eGkab*0IW|_#Ko@TV;H*^cI zE`TQNKOh}4R9R4@sspRaslJmOB&cVz^Lz)8v3eW#Z$QH8VmG6hlMDyI3=XhBKkwJ( f00j&kIpqEYxBSzauehT=00000NkvXXu0mjf)gDR! diff --git a/interface/web/themes/default-304/icons/x16/tick_small.png b/interface/web/themes/default-304/icons/x16/tick_small.png deleted file mode 100644 index cc72367b2bd351e15fa377d8d01a9a917c571677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^F3W0Lo7}w|M>sko>_H9qJ-1| z1OJZ3L_UG@LMaIm3TF;%h-qm|T)M*Wu+~MBPdpK7j~Gp!@NfucJ4jt%NZ!Esxz)Cz zZH{MM_$PT6;q(JM2aN+_co+SRSN+5OIi0IYAl*U!zT{=~y#Et3+v@807bv>0B}w<Q zJ8Pepy!pH8zoW^F`^S$v>|tDM!^89QjT}#8PWl0p4*xF3#hx=uco-s!7G)ZKx8?^r OmBG{1&t;ucLK6VQ^iEI! diff --git a/interface/web/themes/default-304/icons/x16/tick_small_circle.png b/interface/web/themes/default-304/icons/x16/tick_small_circle.png deleted file mode 100644 index 37ef5cdfab0c1baad72eeb465c6d02853ecf6608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmV+d0sa1oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002VNkl<ZILl-B z|NlP&C759t8o;nbgn?nDs230~1LC7l+6yF3oB@kPy!h5DUGTmc^Ev!M#$V4H(VzL& zDP91H6KB9&p=Hh&LO<Ic_4{wU+vWeFXRH5%07#rT1EvZb1!)jlss4ZI$yNXF-MjZ+ zbcx(Qs5lV@^zbd~IMea}>eZ`Y%|dIX{tIkU_zV&!&VUvkFP1)m3#-no`Y*Ue@-N>3 zxzEhK{1-st#2L`c!@!Ws=Eac7x(tYqf@u&RC_YkBBHaxD08Hb;#tu|ZB>(^b07*qo IM6N<$f?CpXr2qf` diff --git a/interface/web/themes/default-304/icons/x16/ticket.png b/interface/web/themes/default-304/icons/x16/ticket.png deleted file mode 100644 index 543ee24206a64a661fe0f25d970788ae6c2a0402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006bNkl<ZILl+` zNU~z+O|xT|nB~MUEzgx<R*?t8yiy;Ag%y4bOREDJme&O{tZE2V0pc_u)(7#I)dqp( zLFyQYFhCWE)Bk>c^&dn7u|6pVr~+}upN}v8|9W}jKgbXee{od+Q3j|2apv#$Pyc^^ zcJ=?y7uWy)e*55ms1`#SNF0a_@EM>6#MwXJKKg%V_p1Njo?d|%^6EC&5Rgki@<42e z%>XqZ&iV2B{{K%8FZ}=f=;Hqq+m|5>0lEa{9gsQ{1E%J=ssjzl{r2+C|M&OK{{L|Q z9NdsY8yCP00fh-j-Sm7nbz}q7fjIx`^PB(Q+&=aH?VZyYhU{H4`#&g5K<XxCJA*8P zgh5Z5od(d5!p~2y{eOAm`2SZoPhd3!6eb{bed+cZFfW4)&;;V5Pmizse|GiA|L50^ zVl@O5CLnd4$<`XkVaCuLYhLp4;l=-tFCF~<^vYqZhJeBZq^>2-ToXCWye*U&80w=; zOzR?z%Rq*_x^?RR3!p}1LqK5yk_W2O0vZDLvb%`_0~`P)8LGkz%qm0m%biqMx<H1& zTmlLckT_6Y3#86TUxooIu+^4e2(wXO$n{dIhIt1RCLn%+kA^l#9v@%=Vs0Q7wbKyv zjj|MP0vQ6LEmZ~Vf#SkIEC9s3K+FZi96-zp#LQ5=V1_6VYXY&co-})yw>EdXsu-I$ qR7?ek<$+iVh(&;yA8HWD5GDZfC*wg?wW&}50000<MNUMnLSTYy%@jER diff --git a/interface/web/themes/default-304/icons/x16/ticket_arrow.png b/interface/web/themes/default-304/icons/x16/ticket_arrow.png deleted file mode 100644 index fe6e698d6614d430543b70aa2d28313953db5c7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007lNkl<ZILnQb zYe>^k6u>Vv>%$O?sH{FDxJ}K{iPn77q=gl&m&F$8D%yuxKFjQ(riCGjWK{ORl2F45 zl0+ZE57CEZq1fMNn>pXkrrT<mjx4h{oim*eTG53cmviqqzyG-h{){bH@^D}FFnteu zd|@A}xO{+BWyiAW+#{^!nnHkRkYI|nIftG1l;>Q#!+hB7L>arE8sknNL=t{EY(P5_ zyhu=}j%39e>E8rG<n+&R3;eKl0ZAx+l6C061VZG@^q3jGjTm6c@&TspgP_>RG<1%L z|0NJ1NmF(ca4&0M(yX76*m|52>V)o*5O)F*lKlPC089+Efy2}ejdj|233lRo4&^Np z+)It|LrKb{wHL<vo8ikq%beu(^YS?f&4ltEr0w!sDDXqlzK$B<b59f4d*A&bdG+)W z&`c=rPSQ^L*vt%WXr%rqIp;8Ug0-swY{o{n5}FC+-Ast~cRiT|0Z979upUMXZ(y|Z zty>Ar<Y>{e23eWOAT1kJh2I@uK?NO*T|X|#7$0hf;SL>`_4RHgG!x2;Dlr;L%>Y=; zNlN-vPQlf<ur0aALNAiU*4+daEL<qbsnvrdPxmn-pEK}J)^PE)eQ?VJfW_SA{5BQC zVwR;8Z_QK$Uy=!UMI>=`LNnP>**#G>2%vrsplqEd!wBG;S<gBDh3$dfOu5a6rR)`D zyPiWcp;&yXxY|4M1xHW^l8QcvZ2_QoZE~H8>X#sVWR=u^#s0X6HF+eVJwoUejpr*7 zFT~R`zN%%D4!|>B+su!-a$>fYEu~^400|9Rzg#H~<QE86FO$!n36KrQI$qTIN{@r3 ht-Q#yYK%Qd@EfU&A#_6lZ3F-S002ovPDHLkV1jDRN=E<y diff --git a/interface/web/themes/default-304/icons/x16/ticket_exclamation.png b/interface/web/themes/default-304/icons/x16/ticket_exclamation.png deleted file mode 100644 index b9b2d1c379aa12b4b66d20fe6b12f8b8a709e22d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcmV<O0uB9%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008HNkl<ZILnQb zdq`7Z6u{3lt3RZ`Kgz)V5OhAF6)wvj5}FyAVa1FD|0!CQsbyNJWs><I3M(*Eb6NQa zElRM2US?_c`ouLi-F)lj+;qOiG}AbJ-(=>{q7Qx?zWbf?yXQOH3$SPfZg+&-nEfD* zI|xs%9D<_6!%&iR6iSnYP6QEwPxr;wj+oAAo@oUL9N^wrUw9DZznp+aIQ`3@LmCNu z3qi(-9dJkF^EUyH5I#3Cgg>?INF{XtEFt*61U$l-*)cUv56W<6s10ZJy(n}C5q(bB z{4aqsA!0_~kB#q3aZ24fFVS_FB(xKHPS~=Xz?pFF$8Zl$_O+m)UxHj^@gE84#C#o^ zXCcUn@^>MU$SG|nj&(QTcu(_!<V$(Mf`rb5=4D6kb6G5KAw(NB3LNREM}235g+$$w zf^4|}wTeundG{my=*#A3a9iZ#N+cHyYB_4#S=1>w3&~hFhsxSuG>#TwRiSM|_C+tg z`N~w_Mu?dlXvINU4Qk}IOC$p=nW&bZ$2nseD!IK9?llv{zG8p^DPh}UC;B8f@Vy$< ztzVZ&hLtQTYL4NkDq~tG6ymrldHmZ;tNfZW#+m?dJyftY>A2@5D$yzHaflQymT2S! zSXUwFn^0Xv^3kHEJscY=9of&%8NaF$A|S<(5VF}TUdX@f>tub4O3a-YRB|l4yO!&g zh8fzV0r;jO4yBSkD5={y@}ZD<`0gpgnEr*`9vdKJmjgr|a85K|ht4GRlzq;pQafp{ z!WX+_o~90H?2-wv`o$Xdt(ftq^;QHM!a5&U+n`WyyBkzOqd0BlM+N7o({{L{R_TgH zeY`1B6zoQAc@Fc43Rci!f*Zkell|(DKo6UA-uhL6u_vK8_a-#wr9x9)8Z_poK|_8z k)QQu9dz=Amd^lwN2K_5GsawXqvj6}907*qoM6N<$g5m;QHvj+t diff --git a/interface/web/themes/default-304/icons/x16/ticket_minus.png b/interface/web/themes/default-304/icons/x16/ticket_minus.png deleted file mode 100644 index f82a363f8ab926e320b50496352fba86f6a86ecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006?Nkl<ZILl*T zKmy(t$_%rLJQ(Jc`Y<f4@MBn79mue}E|_6eL#PT6rvb4(h`+2h2rLg$2L|pY3Jepo zoEWC%xneUw6^PUSetz{IL<6xtiUA!-Rt&vqcDM{s1>%f9A7A|c_43AlkRc%c;;I0m z3{VB)%-`>y{{Q~$>i?fFuK)l2_QC&9Erv9ZI1n4)Ge8Z9vwyyQ^#9E6RsX*|y#g`h z)orjLAeVsTf!Gk60ct>;^W*jX|DPUS`2YFQ#s4R^FGCmtbP3EmAay7POwDsu2O5(5 z?d6^S@9&-c|Ka{QxFLr&E`S>X3KNjJ>G^Kz$OfnbasJomH~+u6ed_<)JEt)W*}G=; ze^8i!)J@8E23ZCPgPt@y4WJ=~pPyd)|MJH1|F3SIz-kC6OhD@T((N^1UIrPU3B*O8 z9$)$Y?CO#K&#xWDY6vJyK<YY^tu?0j>N6~n7GzisN<_`E<|Q8=Ui|;~(!u{vuN=l| z2q;WI>U!O@G#5$oGpqvY17WZM^-(6Kb&<wpAVXf=I`#hrP$RM-pfH&wCwOuh3)5Ag zhBL@`83V&i2B2n!sxSky%254sCl!`1kRdRafWibMJ`Je(dtBUqbUXuS2skg;YD+ML z*(fmNdZ|^zyaNgo5Wm1jL%RiNQv*;jItGb@^fLi5HxP^3X$bm8S&BD-3<1%Wssi>v zabX}90AgMs<^p04AZ7((W~g2;LllTLf!J72nmx>0o4Z|AjLjP=rUJzBKr98sB0$U! dH3(z~69DPo^yowHX{7)F002ovPDHLkV1lwOAZh>r diff --git a/interface/web/themes/default-304/icons/x16/ticket_pencil.png b/interface/web/themes/default-304/icons/x16/ticket_pencil.png deleted file mode 100644 index b795e5f71f773a4558d5ef59530de01c1ed040c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmV<L0ucR)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008ENkl<ZILm#K zdq|T}6u|FiT9SljSz$q9Tbo-rOG{VzXsN}f(PI-5>W_kH`AmAL%%lfplwtV59`=wF zEK&c6Kq)k{#4=LUG(}U}bSp8nTxM}P=gZ9n(uE)QyZ4;?<DA3CUUFPWFUM8fmP+Ls zjfT|}b3FG>?_v+q_ps88eXJ}~BS5r>jLs#xy?ngrL<D1199IXKnUE9^pi`^Wf;j|2 zB<A;o31~-T{|N3d79Q^Io^3XpL8(;6SKsG?Z3IFj_Se`j{4{m~N$6ahwtH4^i!tWv z>gw(3>8UdtQlYYddrT5c5F$sWNA+Mfw8PZ!dzc>i2pS2~(mmp16*xOPvq**Gw!94P z8A&Sg9coK2Y`8WxG5~LC%3xC8_E%!+<|R}KK8{1yTLr2RN0ybsLi2R?jU;KPRKTZ} zBA6IxfyO5#vl6Vt($0;Po$>6_q0Q{7Hi+dMRj|CoFi}qOy4><YIgq5jJP-`6RlMYR z)m^KEW|E&6mQausF0vJfkfiTJUC>&a3lH=C0KRoWZAmPQ_rK#MPaoX`nhE7ykJ~On z3F8G<v_WE&9GlR0fU)xxn7SIFxw;T?b)kSA!q>jHyo6>#dD$_+Vyf68@Iq3?2iw5V z{sM+N8my8p-Aypk^BP8bo8iajKA^m;!&}6bmU+Rs1OCUy`deVIwGQ-c^>a!ljXgkl z=MVaO+0INAu!gZS(S92<_WPbBiRnWV4C6yv3C)D!m?uFA-|`MW4`y8$WNA@8n^HBh zQwo9oWs+Dbp_$M<#wC=ekgZ~Ku0ZJu7PZxbB`DXXTiT(S&^b9mET#DWmL1}RxCMz9 zM@Gw+pCt+Ha-mBw-Y-F1kVVKs#1U~o=FPn2Kim*6#MgV}f+&^L>7sDieAUdI09lQ= hBTMPWoe`15?hkTt->WgRh9>|3002ovPDHLkV1mEJW_<tv diff --git a/interface/web/themes/default-304/icons/x16/ticket_plus.png b/interface/web/themes/default-304/icons/x16/ticket_plus.png deleted file mode 100644 index 63439302a5fed3bf79f53914ca575685ce78a5a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007MNkl<ZILnQb zT}abW6u=MF>_HR1W?@89`_ff2v=1XE8CEn4Gd4)*C1R^gEy+HVtn9%E4Kgg28Lba3 z>7}P0qKCfFY+A-<n$mJI_hHL)WSPb3od2B7TG53c_nvdl{r&Gf@COJQn$?Tpa>*vR zTABl<qg&xt`8H^(*bdDnwGu*4s5ovso+s>coiH}0CBpfAS#Yr^JCs057=HLX$TOju zCOETe4b<q>e-lWFJ>N%M_|4soEaCV@S?+%cq{QBdVF!L0wBoqy4NiF9qc$1zoF`KL zC6EyX<6b+OA2j2b!{V2CdIbsJg!hT%p#(Bw|JNZKj`qJopS=@X?>GLE&`ko*;ks#p zx}t13Neai@eK`EC9Y5JRrX-K=U7M0{Pq^+<@dkOYKu#2YcJ|<h-Zu31z4$}&@NPYF zPq?nOU_F1#--BwsT0xS7K1Ub2yIauH(;8C3J>j}@hD=4^$t*}BN=64PIB0!}&aP)6 zCESyxwToK9n&Pc+M{I=KaR3c50H=4ZIyBPXi36`6p~Lbdq=b9Ibt044y8B}(!p%4{ zm}32c6ZvT?Dt4qEW{Kx*8@lLVu!MV(T(#i2s6N(82h7?bJ@PDYCB_JJ7|L`hE01Ya zN3tZd&axzM6YdG;MHiy2>zsM`J5U#87XF0{<vh@>O@zYDvhu)lxF;MR$WbVvCejGi zk!EIzJp%)4Ax~ol5l)EJis&u*>2oVt!gIPbDwFc`ScoF#z^RCi1e+3}GNPU0nUiOQ zg_uYpQkTu2t<xyOtEBN^n#r7mSV$y5uIM@#L@#M>pjgC$pGmI*hhC42Q2+n{07*qo IM6N<$g1kIEUjP6A diff --git a/interface/web/themes/default-304/icons/x16/ticket_small.png b/interface/web/themes/default-304/icons/x16/ticket_small.png deleted file mode 100644 index 01dd7bfba41e31caf786e1cf6450bd11ece201f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmV-I0lof-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003ANkl<ZILl-B z|NlP&C75Aw889K!kzq!GJHz}kABLsXfeb6_LsWq{9Yn9F3kHi5ZNQT1Kvke28Gk>& z{12iRRr(Wez`Rl)HK5|GU+<s%|M~jf|4=Q4G!P#oPSAkq`EKe!Lvp{ry8Hk1u9g44 zJ-ZGz1mqHsI9>z#GaS@`hU9;FcH{r+TPOd&yL;yU!432OgIod<pP1#Oj@N+pM605Y zk1qXxbLY(eH@8oN4FS0XB;Ju^tpRc&UIQAUO*HGHj7yzVSh_%lfLsFNgT#S`Fc35V zsF<N5RF9#^U$YA25)fS)q@x8AC)$80OL2y9Gf}-@W1&_M4K##-Xaj~pULXep0FuV1 Ud>@80b^rhX07*qoM6N<$f@VL7VgLXD diff --git a/interface/web/themes/default-304/icons/x16/trophy.png b/interface/web/themes/default-304/icons/x16/trophy.png deleted file mode 100644 index 747b6b1562ecfed69e35164622f58b3c4e0e2ebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 790 zcmV+x1L^#UP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008rNkl<ZILm#K zYe>^k7{=fK7Af_qus-;$28z)|u`7Krh}39isA<i-gIZ95m%<BqNt3PF#Fb`=TRCT5 z(x41WH%sSjZjx=uNXtkOFNKCKb);|SH5J3`z{4NT^Lw6i{)ZRdWbp0lQ~7=saXfkP zMXsVKhN~)!=4zy&Ttj9c=raPLD@O!vvM^3t6wN(XUE!72Ci3!G#=j|@Zx5{C^oLT9 zI%|)_YBkAlyfYgYhLkw_`2mh~XJcP|1di!KaPD0weyu%>KeS#r)#Pn8KNP%V1-_t3 z<7e4=Wz)**P8K?i^y^~*P8h}5-w=oGr9vEd;e*yze_ZyJ@eY>RR-b9gLUjU9vCw}X z*)>~oL>$m}y@J1(PCuk9u>UTdG3Cxy-f-&3i{K=(aPAcqOm<7~Q)4`~tAzNa?oR=E z#8f0XbXc2(vy=sSBp1~r_b^QuvaIbTrz|xY&bs-&LY(T!#R2U#>?jlBP`xkCwEJUK z@)ljI+{yC2!PBah?le&r*z0b(9l|B5k_1N6)5vl2vr9HA_-W3=!R8dytA#k$cn0S> z0??>9XzNk9jjIy28Yx3rDgbdXK=yfX%{m9^Os@^<;1QeUE{?RNp`l!elW+Y{U+g|Y z9x=pHhO(;*ATtPny|O?Yx>=(y6OE2_-bCXQA?ga;M#Ui;HRKUP?79W%XBQ>7CE|47 z^x4?W3fQTgv`5~W0&iCiPV8kHCjq3#0rEVV!a1NxTrQwVlw9BzJz|KZ3}siA^ayJ_ z3UKcj02^grb&8;Cs3mpr5fyO`W_DT-dBhOAW-S%C$UUH$$uQlUzcR|hnn0vI@`(9o zLF_JewL{R{Ee@J55jkT~zz!^r+=ox1-LW`)4?c?7kK_?U?CQ0FX&aMc@@_CxvVbPp z3w!g!aQN|698_M$_jiI(ljMoju?LVCVwW<M1v@4eCU>9hppJ3`!~aAKu}c}d-&efG URXv_&pa1{>07*qoM6N<$g4)4!F8}}l diff --git a/interface/web/themes/default-304/icons/x16/trophy_arrow.png b/interface/web/themes/default-304/icons/x16/trophy_arrow.png deleted file mode 100644 index 61777f7ec2c4cb19e6ae27b05245b5a5402437f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 881 zcmV-%1CIQOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0009xNkl<ZILmdC zeN4=89LGPu&M@W=hT%VMt1%CyO{`5e6Xp^{xE@YtOXax-R30jKaw*+9Pe*i=QXVoy z<chjf=XXag?L1UQNO_!2X?Xj7Baidj-urC7@8|XUKI}u+lO+91wn+R6qMUSD5ki4} zrEuy%m~b{NL?}%TAahax-Aa+u%?yQ5rVkS?<gRtfFN$@_WQ>1#qNG1D!TftUUd4{O zRENWsf%aN8zP1?9)pQ7LRy7`$grdz9j8At$@T6!e-j~hBhw?d&`oq#oOyEn#?GjaY zLq>;Tle3-g#`F2Xe!R74@TfEj)j2XWU-W^a${)S!hUlU8t}34n&eG`^r|hqf4uT!C zGDR*Bum2PL(NpUO&Jw$KPNyxst8klhjW$$B%~&p6;evP8R5V_TMs=<XkBh$x_!{pi zh#OktsE~DWmUK#CMY+z)_EuCms*ldIpG|TxeR+5QAL`Q4T(%K4CuC?T@kM8~KTgFD zHdX1I?XOF{9c5`_Y@8+bx&w9x3$eLzQj6`3vc3LXWH%Rltk>dcMFPxuGPGS=fKN4x zV9B1+U6<|Fo*Og7!WqtT0ciq>)XT_KwUiQBu8Mhqt=;y$XuY`|V!jOTZur5R<=)EI zcn|O83}=5AQ1TKY_R3OC$Uvj{g#2Y&?G9K@%3#{>_EHnv*SI0vQyQ8OOAFJBD0K6B zQbb4oD@a`26X{O5V0vX%!^#9~*INE>de#fQ*O69{)u5?+n`vUoU7|Uz0?nF8q?t>U zHj_x}&9Yn|K8d{oK8f>^48$N&{|w;OL)R44Bk29orm@p_678Eo#75aSFF|^%rE&{a zWoBWf>U`%ERb|saMWGmYrV-jF0E5K|>N`Py3&!fasDef8XvpjtW#2+Oc0C4^HXz{k zuf*I3q;ZwvPeJ%Nb`1}zuxgfkIVyL7e$i;;D<{D}A{mpz55Ya+Fx*)6IM#@TR$xSA zu{d(|<(?DtVHw6UDt<hPg<<Y6#?MAWrUK88uftQr8r<Cz2xFW#CMdKRe*+jK<Q zBWleLmin=bWpVczPI)Uvk@&y3cq-e6%-#7$;u^H|2h;Bx8LRz4FqVP|00000NkvXX Hu0mjfptYs? diff --git a/interface/web/themes/default-304/icons/x16/trophy_exclamation.png b/interface/web/themes/default-304/icons/x16/trophy_exclamation.png deleted file mode 100644 index 4b12dbe470f65f67bbdee9288bd4ce8d79671fd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 914 zcmV;D18w|?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV000A7Nkl<ZILmdC zT}+c#7{{Me{2*Jr&^Ry5cCpo<662UG+lUvK8AW3m3y8WJ5H(@yg(eEyKr#VAQ-%Sl zibeTQY7r_F6&&(W6bo-DEn8FQDj(ChCPIN&lvj|b|DA);X|}z|FVDq!{=fG*ClB4q z2ncLQ3y7{fsL-C@%PMu>Gh<;QtI3ULO_^KBma&Dpj;pC7ZwE8$64`bAeno{TSy8|< zF|FwVfy4#h^p=O$%g!8GcI9EDGaE0xWtjT22)^!Y^f&B;&k~1czsKW&=_`zzBk-hk zgWPjYd4mh0sO3mN*0eisqU^^YkNBJ5dEXg4a%eEnbP!Ux3is+FA-Bii^?BK$g`TPQ z$O)09D@lsdmjh?P$Gme~%}CV$6TH*Y84Zyoe(&;0*NLgBpM$LVJ6TR%0=p>${_Y$M zHXnkdSK)sBD}gu@J(Vd7t#X@cN@Pj9i|uaJhPxiwvt+4clcy$QspUm~A)Yu-;GX#h zSTCvIZHU686a!=Gd`r7F$TQZoUN+}`;u2ZnulwFFaV%M%qI9^bca8Ma?wb~Zr#<=j ztL-ps1{HkG-{P5dGaRK~Ogl?I8__2%aEOe^3IS=h6J>u#Az9lfozrMHY#*BToWfAY z5!fqK@ZXMx+Z6Ql=6N=3)G(9i6&aCzTR@pxiTEokHSzDa*e<DueVs?)xU52lE@Y(f z+?=7uzM?Tl-Ruip*H~avF{5hDe+bfJXHXtfGs~zg8{J$`l+60>N)bKJWg`Z<*4eDJ zEK)Kt63~VaM(b7*X*Lq&t|iJ}&q-h;Hu05U6Rw_A_{JY<{IRjI@O#t!9o33ri;>OZ z(3>wej8C(g==2&QzRFRC!^$r2ois>>Fxcx>O^$ohz}xW9vj_HHmC~)tY;9}BzXi*+ z;nc>lPq+(aR@qh)j0f%n{Nai~eO)qK&NXm$t{!dHv$KsC**}Io!TcIuQd_rX>x&Zg zQs_2+jH&}mU@rRz_wRm<!QRlB2}B+2{T#Qi%#&`EurQIG#rc4<ICTZts}e)ek{SVb z!46nUKgFPR1%~^BG2FKd@>t4D6?mi%eYHAPECh2o%Q>Nui^#BhG1*^pERKAql4#;> oPX9!sg_-2k9i`tc<j|SF0a1z$XyAG|qyPW_07*qoM6N<$f(PHcN&o-= diff --git a/interface/web/themes/default-304/icons/x16/trophy_minus.png b/interface/web/themes/default-304/icons/x16/trophy_minus.png deleted file mode 100644 index 29147431ffa1f212563db2fc8f921470270b7ffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 811 zcmV+`1JwM9P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008=Nkl<ZILm#K zYe<t(7{{M?N{W8UG)VeVgNY$!NH_Xm5UJ73P}7<?Z(tTw;HB_FZZ?y79j?5jxRrBW z)1VAXH%sSjZj#Mpq-mstPD4YNI?|_eyrtb<`18Vh{=eTj@8N;hLMz**6f6JgSeCT( zDpOs2g{du!X6m!~OmkWgXoW%0o56$5yf8*x9L+pa++bBUB(U-c6VNKKvIQbI|GwO_ z(cGVDHXHJAswW*+#^ty;@(@jZ={VFBfhJ8TF1_XB=Z53>P3?_ytv=>~67~xs@B>w< zmB=!fH!r`<G1A>=etamv8NC>Xn`5!7oQtE+ebL+zfE(-bI7j1RhwnUPp)Q^!TNy4w za?JJ&9s~6KFTu7>k3Uit$bXkF7;+YC?r^##5lm)YIP;PUX8SVnV@n)%DY*ElaZNzi zXs0^SvD@6nU8F2XBblgHsi$E^Co*@Hoio-8T{O!>g*exrgQMzO*j>TJ@g_f9=nBBv zq@9`$DaZJ=*~_fX-fy5RklVG(3S|-$iEO>$N#xYP(`yzg_&y-Pv9@H?D!FKCxqwUE zfvA@qwe-slPbuOZ^pv426@WMdApJ79i!OnH<dsetGGQ^^$BE8V)KzkE_KiPkOFbs& z8tu?7WhlE<0BOMh<d)fDzP(CY!J9Po+(msA7c~WkC&i&VRCJAYXqPf2?tc*oF0O`s zkH=`HwdvSL1Z3A9`Yr1eK!F=T4XmY-1bm3)%t2y23y^&pK;lIb&H$an4FR3RM|*yO z+XNd=_6c&DlK>CME@YJbl*#Pg@%EI}OO&}-Pb+O;gaEp&Q34eIE^w84LK}&0elUM? zl&d%nxWMQCks>156vP}Lzi|xO`ozJ@Wjq%w4%~;8k%zD<+5>Z4c43B-JxcaEpwJHH z1O%iJt)IY}#EHZ?$qjTh1W+Y;<6wRmetCQo$K==XU2X`f61}i4<_OXb?XEMF1sf7q p5)a?qpp0?`-Ty*6w7bsO`~>Dp)7e|{F5LhC002ovPDHLkV1gC$e_j9p diff --git a/interface/web/themes/default-304/icons/x16/trophy_pencil.png b/interface/web/themes/default-304/icons/x16/trophy_pencil.png deleted file mode 100644 index 3990eee8ff826309501eab568f5f11cc441f50e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 zcmV-x1C;!UP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0009rNkl<ZI8Sww zdq@*d6vofh$Wf3rOk)4#!bgN8QfU!dk(SL2U9X9n7PBIXEGu6%O_SMb<|;KsCFja_ zQHH6TW%D(+k<4VK*-OGl4<px1($l@BU{n`AF5L6|zI*TCz>{QKPHm!XaA}N<BL4^} z&5b7I*<w;93n%p{dq9`G2RhP4&?1i@np`n?pgeAKr#jXqi!vdN5?c<?fSoUjeQGS7 z85WC4jw9`9I5kj&<NddA*qDaBwUIci4Z|PL!|`3U7k<_F<G03bmaaVhBN`9{>I=51 z6W#K$qO;Csb{o^rmpAc?L5h9#G1yuxz}F80(b61(v-P4=4(9RZz%j-`#c7+uslFVf z&wQ3HBEa_l1^nS@4@SlU{dcj|bY;BkymMP-B*~B;AdgwVs4)XyHJrj$r2ya5{0?9> z<|&PHXtOj4#u*EWC~~k-;bZ!uPqnlb>@Zg)yJ#nSv+-N!6@0BZgKZ@O9H<RKYikIW z$1l+~E1b=r>isMlnUjgJK)bu(au|tK#_<iN%BYd9dq*c&!1u09eBYFSI+Xy28+PH3 zHX#}c*G_a6dW<Mfa}A8C@E{9V07ydt()PpZ)O{eKs?)1N2Pe$eaj@kA>hB0}^l32a z@;wJxjd}9cJBs@Wscs>}cWwZr>;<4*=1apDs&yrzq2cz6Xt*mt?M;s%Y1n*q<`Kdd z3WY09czGqEM1uDTdHPp?WcRfAmqbMSQJ02B8bEJtms7azHt`7v2smc7TG5ZkyIKg~ z2isN?*y;`--3}nz0+8uPb$|ey#MuBgi44A%O=_$k;?T*-DT&MFy63~3CG!T5ZveRA z3qVIXNR`0v7<iUA-Nd`e+_x3ih>^iJ&J#`GX3i#idwcj-fSbYxnyB<+-C5J4+)ZcT z$!#7o`1(mQDhq|^V;koIhr^kR0~}sSzp)OQjMBZ61tJ&B6)s1W*cB_Ki>Kk7bBj=& z>O09i%sY3@qgqPEi(du$GO;JB<NdKaD*_v&-iTv8s7zUgm9ZXJad-_f5A)72j0HO? zH!9CSM^GK)fqqu>45NL?=R>ZfXZDPFn0JP;`vr3_+r8-Z@mK%=002ovPDHLkV1gu_ BomBt; diff --git a/interface/web/themes/default-304/icons/x16/trophy_plus.png b/interface/web/themes/default-304/icons/x16/trophy_plus.png deleted file mode 100644 index 7b351302796d82195d726328699a235f1a8195c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmV-g1Eu_lP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0009aNkl<ZILmdC zc}UY?7{{NV%M1leTm4}X<w&uj1EGuvlkkXU#w@LgnilJ#0*^uyuUs~pO<Y+kQ_DH8 z(x3y&rnP3e^_#S2GCDL&%3LS9oFjXB-+9nMKlt##?|r_X_uzpCIh+|y85}`vl9Rl2 zKU1sN%haD2F%8l<ra3nX^f^)RBwq-RW${dlLd4uu9(Jm3Om!+InaI{`&I}-eEzc_h zZ(EH8R;x*d7M&P>_E(^-=OPYvit%Mr0uE|par9{%_B96Jx0X;GY7Mh?UE<v#f(TG& zaq{flvf+wjK4!Wb<;RN>{9=&ctL7wZujFIzt#GuqMdIXoMKafHYYQKyS-6(sRQ~hT z1tiCOlrLm}*8d6q=+Oy~W`W$ha>P_<tIPE1C`w=oWV@KVRPeR40AJrv#&#ti-`pM- z&^6jqo5t<1YWOyq1$iQ~yHy@&`oiW}+siha8*+TLV=vF+kg*VZTaIE!6(9SXB5<TV z66@1Fv~6-9^QYzzYm3y|M6*C%*Y$KPld4SP8BEs`EnPPb*s0)qR}sF|97ny1kAwHO z;%LV<G?cHl8_QQ&lqsGDnxR=L07(phcqgpP+X2~xd#oyEz-~T^1CO(it>)v`hXT}> z`VY`G+CzJ3hGu^kKyEYud1am?&P}ba5`Gxeoj^kkAGIZ`K1gDxs}l}R=LO}sfp^I) z2+nnduq@Yq1=-sj@J<RD?MJ;BJBfhos-yp)c8-F;I%*9U;Ibz`*h&V1mjg&P0Z2Cj z6on9WF+eAAQa~qhvCJJn$z}I^PDNVb%ItB$<R@KAPO}c++y($L$`PvLyeIvSG8~T> zaBAj9H-$$J39#EOBBa$psi)#^fuB4OGz50IyLf7pmzOQTp!b4*fOE6hDZ#!a<Qi*0 z(<zA_D--&nV%s9DPF#UCB7Y3bn1>6+bJ0&aAD8v5N07R+4hr2JCzwW<L-0yp25cP( zsMABSyEq=-T|I(tD-PkaGcl-63qf8c7rlCyB4oQ6Co(h(E(AY<fB0Nb?e+rpfAILz kEbej6pCR12VIt%53%T~)<xQ<*WB>pF07*qoM6N<$g2Ew*LjV8( diff --git a/interface/web/themes/default-304/icons/x16/tux.png b/interface/web/themes/default-304/icons/x16/tux.png deleted file mode 100644 index 2e6d9d85143278b2362a0ac631ad8f5b217f1536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006?Nkl<ZILnpM zUr19?90zdo$(Nq$tsd{)x%akv_eYIMe_%!tM!{MwSeO<?82Bdx!OEf}2+E)+iVCD~ z_+W%<tH^Yti7XS^imbf|8DwEa8>`LP-Tn5vGZ)fEdf*G^9M1im-}&7V040UO^Xx9i z@fkr7;ug!gW5v!D++>Vx<v32GfB;ynR`9%3w*){sVY5|1GRj!LVIyQ&0b!394ajok zVb{(Y#KyyT`os&n-L3<nB~&19k329zoiHK&&Wz5M3UCI~E9y(xq5x4+_6P1aV=}Y_ z)6wHN-O&z<rGomvoc{%=RMyng{66_3g{hC9plU!U^o;r->(6*=FtAlc0lJ}-4h?y| zUg$$rvlJDHL>$%Cn{+_0!cWMuf&d+`xm<hHWHLcZ4cV-ki#{J74#8%#fqt<@h`kta z-Q)4(ZqH=Wbo;M7pvU2GP!&9db^Ze|UR-UpnB&1<C<mm|DFSBy0NLDLZSB6?GYGi4 z02sNYtngn{4n%tewdY0)raphqefSq3BH~2-ZoQEVjrH=)1wgFN+CLMPfrx_9I~<&j zZFn;t!`#p?O9i9?Yw@9nVf3<qpMLRcvfsEX4@}%s{OXv3nGqRUSi<eI<#_%gg8AX~ z4PdaV92gWRA~edkK4UBoyzVweryt5l4(Wi5FFq4aw$|ZjYn$eF@6{MvgY$<BKtMvu zCt>V@6nxZX-kb+|+ohG)8pWEfBjP!lzr55SOjas<6*a7EF2eGIJEV?*Q$o7CLA-Lt dEtbyr;5Rb<nO7Q<wjcli002ovPDHLkV1luxFrfed diff --git a/interface/web/themes/default-304/icons/x16/user.png b/interface/web/themes/default-304/icons/x16/user.png deleted file mode 100644 index 6e051f3c4262f4600a376f03fa68c3ae132b0adb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmV;h0#E&kP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007aNkl<ZILoDz zZAjBm6o(Be>BZKzRs_OoDWsxb)KAsWrLs9)1C6YeZ7SxBS&HH7mZ@betf**~wvD;9 zEzQtTno1UFnoP?YMxUfI2*HKqrcAxR{z{AlnMEHSI9$%}Irnn7egORbhZPTVqqiw* z`Hbls!mUvAX;AX$E=eS-`mY41A{j+@M08T0#=u>QTPbwZB+`)2-9m&B%nPduG(sA5 zR8UQYYJ`i>aWRR7bFmB@kEBhlDyZRZMu(;x<Lzn;G~^>MhJ}K-oj4uOLH0hn$55Q? z?^95p&Yqn4{s~ik8hq=zh7s#|j6Jym=hzU;IeVtw>vPxp6x@`A_Bsb2V8Y%6_d7F% zWvO-!nQ<>8-0t%UJA|fn!TWO!W<?Zc?G2c5JYK^6)`XVAD1>u!9<k!<H>@aNC7S)2 ze4{*&-wnr?X;{ldu#_b)u~@$v{fWSY=V0*epJDRqHZBt|1=ckI305gPsTZT;ZWzab z0tX;}17yAcPCf-HUIMQ_y1^FoVG~y?r^Ra4dIe!AT5(*e8chT9s2c$k{RBBZ1X<4r z(pw3RS_o403n*=;L{<Wx_%gzhu1dXv;qtxn6SiX9*4iMYnlh=0vNnPf%~aS#kfL3H zNJDV27O1@5jmZub`U^umUcrbmgg84Zk(RAPb(ag0X5bh#^@xEAHxL|d1jIU^xMdcJ z=|=qMuEJnZDDetD7!)N#CBbtt*`>K?X%A%7)ieG;_M0F<D->C!u3=TgES0HRwuLc^ zJU~@i&D<rn)v;srUpes)U7Unw4=1k4vpd%8W*^W^1RZMYJeyas{j*gb;PW^B3%>wH W->LPo+T1Jv0000<MNUMnLSTZmI62t> diff --git a/interface/web/themes/default-304/icons/x16/user_add.png b/interface/web/themes/default-304/icons/x16/user_add.png deleted file mode 100644 index 6d84550327293a4fc45f2ed5bde73a0c333d31d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007fNkl<ZILoDw ze@IhN6vyq4k|JB%8X*YALa<^{s00;a!^zszgaxxS+m=n8Xefm<e}rYtmO8O)t1Xq` zd|NX^SDJHVkdcL!(;@ViP!=IHu+)Xh`}W=|L_wy|g%9W4%RQfS?hOGD@;|J3sEONE zQ77iiHb{3uFJ_@a$ezoH;Z<))kQ2ixxu41=&FLIGptvhzLnmROD1HYiJ;<$ES74N~ z&_WgJsUn?}hK-xaJX|@!L1qkVW?g|Uemh<m%Q4lf$B?B6g$X<qCx#<m#E1GAd%>zr z2@NVRXGQ)9eE)=*H%5HzuZP!h4U^Ar!#_C!B6si1SgU4BP(fqH{z3oyc1#aDF+WOB z*qPivLg1lFFdXy=yQQ|xQO7k_q97K(hb;*Bo-)jTw4w8IEClhnPk18p)-?q@2@%Q_ zx8+5MJ@9>=g`+GL_OcWPI)6R!3lT{#!4W>X#1)#htrBogIyQwRITVq}gP53_N81!o z>;v-N0T*5Y=X(IHvlGQe1=RJYAip6Dh)WJtE(;FGn$r?b>){+)g2@XMyd{x4Kq9-3 zL{=9GrI|pLQ;BE3CX9Y_!_cpR+#tY_{P0>v@S!|<Y1*a5y=E5_y;N7Kqq3XCxegL% zY*eg~pliGVT@#I<SFPtF44xcX5MTt}ihZQteI4oQ7F74oA)^C0YbPPMl8{+QB$pjV zkI#aYt9z`87X1B)ace>8NNLofQh94JPB8!_HM(jAM+^D5<5ofERxri7KE>(@XeRA> zVU<^_xqH%FrpScWFMQGCIet>d0zc8YAdqJ+%4(xg=gww2(~;gU|G`F}F4s`}q{sdj bYv}VoMiHX}-A0R000000NkvXXu0mjfnFKYo diff --git a/interface/web/themes/default-304/icons/x16/user_comment.png b/interface/web/themes/default-304/icons/x16/user_comment.png deleted file mode 100644 index 34405692b2adc733b3e6eaf47959a739916e7e7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007cNkl<ZILm#K zZAep57{{kZNEp--qAz_i5=x1zDC>g|LFEf(%Pq}tY81Ml`LaPK`IchNl+>A#FyC_v z)2VYBgbKA3L``!xXHw2g8#*l0aQFN>cj6+s>%fnD&f)xj&*3?j2Y|N~QNEr}si*v= zzy;kDAD#<AYg4ZY>vjgNMtlD>E1Bd9dr|BRA+Y@-m|rHaED?NOB=}?{m|S3BUf2+) zs|=jg_e;uq90z7?1Yc-y>N|mHo`LZjgR!p+Ml2hG0`(yNdjq!mG_CrPhR5d^jMDJ1 zg%#Kxf{dDXe}f4}`P=TC^v-%5y4!Y3mbcFKfR$_x_9nwKj6=%V1Nj-gR2l3E#l`I? z66`}_N(MxEI!DK=^dFp}r5|gKHQgWm=M{>BJUcb=3+Pcqp+I;Lw*z-Te0(SFhWpmg zgXX!#mCfKPC1W$^6qH8nsh%;Yu{_j-_b(oxUnRp(%Oj*@Dn=@GV{GszMY^?T&dHS! zLFz<f8d)801x#A38Qalcmrg{vS}P4EaQ!b%!QPMt4_-jU6LoPmnN;1xL|qEZbrPrw zbBOzqvU2Zpl^!kyyUsVcd7Red%1fshy%msa-$JT3KvHeMvtb}H-(+_`QJd)%RN=-c zI2G|QH7%zN&y57h1Hg?w;JO}&)BsoO339s##L3MhF!Y{`Q!rb22m|U;B&p{S+X2LA z2!u5R5mf|XPXU2q0fWs-OlA9mQ(#sGzp0hSAXM6ixGo^R8xZR#^n0xZI2+f2m-nMF zQ5M$ADKIr8@n4n1`v*ieWF5HNX7P*eTJewSUh@-nuK0v&t;a4^6}>KrJ#1=}@VNwk Y0N#k)bQ(-0DgXcg07*qoM6N<$f@5qp5dZ)H diff --git a/interface/web/themes/default-304/icons/x16/user_delete.png b/interface/web/themes/default-304/icons/x16/user_delete.png deleted file mode 100644 index 95792e2bd515fe3eb5d6fef3112cf34cc6b8f1c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007!Nkl<ZILoDz zYe>^k7>AX)q>HU>jS7tAO3K2%sGlmawZAOqL^9AaFH^CptWYfPNn%P1LoCzsHiovX znO5T6vdGHBS(XTWs8Oy6qlM(AsGVPD`yd9QLI)ns;f3GxzK6qc0pRjKEL%(s*ji8~ z<xQ8%wm>cApg_#EMf(Yg*CaUW$IH4E#w9gTJlv+-h~T0$goE_J%|v#Pe|c3wm5hT1 z8dTFzsmuWvS3(82aFmBLew?XQ1*L(T&{dTWOQ#xxwdpt)BtV8_2htc3k`Hm`wApg^ z6$Lf1!k;tWKVa%b6~6Xf$EcwY=Ju<wnoZCtcTc_3q^?_0P!YX<z&dmnlfy>X-|8rO z=h<q~;ZB0@@QPR1CTn7QA5PWkRQ{M9uEoq)s}uX1CbVSw!#7ZQU%=F?UsfOp(Yf=b zjVYeeK8$^th9NHu`aHQ4$NBmAZ+Hej0Z&|ao-eN6@Q;9h+~DdFY={?z4q)73N23ME z7z0vX1Bp+8xDG&5UWsQhKIj#*@qpQA?O@osi-H3Y_2H6}Y8VF>P(2E$UJ)q!36i=A zVjmJ*E2_ju<`K-amw}9T!KTl^P@3<bo?~t*r(h(1-@;^DHg49pA-<D#r5zQI2x6KE zPBjr2!}q{W!>Eu0SzMsR3qRCB=$5cPIR&EyKE&Engs9{O6!+Q?-3*-86GUnWB5Dcx z=-9;6f~D(M;dWYgBTm74tt!Wq<2|oXl*|Xj_d`KPPgp|h2_dHI5&;^Tz32if<+GB7 zZiZ!9d<C;U#p6<LF@INhTeUDqGa+K`*+jw3b0UdxE;BT4{$=7`e9Q8}WDXl2lU(sw w?zYgyuyWV@Z3iNEX48&l$JlhAaD*N8zjl|Qc9Qf_djJ3c07*qoM6N<$g3-HB-v9sr diff --git a/interface/web/themes/default-304/icons/x16/user_edit.png b/interface/web/themes/default-304/icons/x16/user_edit.png deleted file mode 100644 index b26a1caf0952af8f442e8c32e446775ed08413e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008hNkl<ZILoDz zeJm7U9LM!X^G~{t)M{-SX<o+K<ga2#x^swOS(mq%oH~oqah%BeMMGXAHZPq^OSy7} zTs3yc$-N}4bciwKyyWh@-nZ-4Y}Q6we|)xQ&-VH3+4DR<Jpg+D!(SUw_6J${B*Wzb z$^o!R1h8C)N~)c4#y<tF*%>lQy@;C107F!0x$jFvwmShaj{7wfTcfmH17#EfYP2F- zD`iuDLqw*BG2)#Kam9|XxN9KWaUa^sk}=6=qqiys(N4yQbv=UX=S>lDhPYOn;Hkf3 zpfbp0PCfGpi#=tS>bM6n_cr7&bD@xnz=<?l9BsD0G|~`&&(AY4^w16B66>ICfg-9^ zx1#?MW(S&}8scba)U6dF4)_@sU#GhmSdhE`eokRt@&v*>(#)28n9{J<{A^S$hkhC> z165GVnsun&H$cF)#dm4S=IXZ=OuxPhmGmh##=0S`iBRigV|R|e5viVbjMNF)#4@-^ zUT946)X|>j0)>o)O;tBkqc<?uPshi)Fi0u`fAkmmoYXTSbN3jyaYIZzx-mSdLj5EV zD+6eKKvstU3TYxX)j}x01VcSR#nLbn@(QOJQNHUb-6dN4R(repvC-7KfpRfG7ithG z&>)rb4Abuzf8-#j$1h`1mIPU$8)73OQ@37WFxg^bmY0CyY92!PKv*lls^dZ0c1wHg zw@}N&urd*d1?@>jN-kiwB_6^!%eAe5m}RL^wBJEML=7@Jl!z<h;6p1DVtxT8`~0Dl zQ!zJ`07<D20>eu&-<ghnhLvV3Ag!e*iW1G&LqoIH?L!23oO=#f8pFr~KXfsVqNkh; zehwKfepR4{GnIoWwkujEecMNpH_{AJm>EXLy?Nzn;Wk(m7Gt%q5Pg}>sK06k2Xe0B z#Ko5Oo6)I<#<?_u9jDRXfvC<7wpf3aLtgL9cX`8O*qH7#&c6WV(YG^u$24~U0000< KMNUMnLSTZ8sb|js diff --git a/interface/web/themes/default-304/icons/x16/user_female.png b/interface/web/themes/default-304/icons/x16/user_female.png deleted file mode 100644 index 0c7293e86bd11287a3336788cedb03ce7686f1ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006hNkl<ZILoDz zU1(Ba7{?d%K`}j3XWe%l-AK2(xyfv<Ai5~1izv!GS++qGh&7pZL_4XiHce?V(9@=) zi#1^kg4X)lW@8oB>SB#uG>RE5mz(G4KVL5fGSQ-oA1^%b|M~GeFT6DXYW|0^MfyO! zh1E*a9$g)rS_&4mWc7qXZu={NULn2Ob6AoO9GAjhp!=u<Oe=+Ur8uwKFSAw^bZe<3 zs}X}y)q+ur!005fx5;s(QHqla>St8}qpXEXQ;*TEV|W*{;q#aukKG1b(Cmeyfy(z^ zJG7&!AhR%qUz2@Up5m~a7{t=6FjDggxYQKhhUo1T1rC)cmzs<qH4{U6cCbJc-=?ET zB{;a6>V%3b?9qj{*_C4cb>Je_rh~}5e^li6Oc>Aao`R!Ez9!cMc9s>$Te;$HovPj7 zpM1i&&sYLK_5tSReIOZ`+PAAjAUim)g`98BFz}siKra3f!mXzetRoOCLlACo$n}mO z*l`3TL$Xw3@79tD$VGN^9O<D62*GFIox|WQ9I~BZ2y7Htvk!td3gKR8L$V<tBNq3) z-G@2ajf^vfb!!;k+wb6u$%)nLeyn$}m^*DlrYBO&lAcY16;}Ysb}tr9ZhSSd$Xxbd z#pu8y&0tAyNAePjA2<D*1uyO!6QmG7XU|XQ9pKH8vXIf^`YwTF3q7+XZ!rJRAPTk6 w9<I$aOoHX;Z$AI>K@06&7%+$`{>Fdd54ShNg&d12CjbBd07*qoM6N<$g81_r-T(jq diff --git a/interface/web/themes/default-304/icons/x16/user_go.png b/interface/web/themes/default-304/icons/x16/user_go.png deleted file mode 100644 index 868ed2889b67e68dd5a75d061add3a5dd4918804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmV<A0vr8_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00083Nkl<ZILoDz zYe<s;6ox;$jWAoA4UsO(iJ*yrsRiE9)G?i!VUaj9r!=Qxq8Pb!dC#1vv&5}5=WT6s zmeKH%3X*AxI?WQJUqTs_ks#?zCwu$ck0?qF`tiWw!256xheH4${)ayr$sPyA<sABw zlzRXY4i(}vv}K+fqv)RmiEi}kHQ_W<Z4@2%NbW|`P!d8#y6=7y_k?x+wgMTK3I!RI zkf9Rp1~e3hGH}hGju<!U;<kbk-+kzo<zTK$f|0s(T=iohBhVHpK`aQoXlqSbVU#Te zwXw{vE1%wBaY%-by%m_!<YKm?6brL@sD$>5uN#v0Y$>?IJ3hED`VjNuS{PobNYv(f zL9fF7c$e`lSFqtKcRP3|H>pzH@qN4wE7R>}43kPc&UA<Hf#>QKg)9ClV1%eB)|{54 z!<;@$zh8nTI~?llFf$wVi<xh@B=<(XE*cl*j=xC=>tKzA6<ZU>3?0PGoB=I!K*ltX zru0E-vnLW8Pk~>55;^S`&^lIyOzl|&RoWPR%4im5fpcViMBsS|v?J?~PXVdJCJ6gY zNNGNeClfVzq^~vy)nigf`!dluEP+tThDQm-=u&85K}_U0uFvbTP+hM>To;hg3Gknq zkU;Lc5w7S-Luq#kiaQ0!)A3QzkqG%fAz~W5;gCzL5>sL)(?U-Hq67*Q^)7?g21Kh( z;MF=oGb)90q#TVeC8!^|O-hm>8z_K4$$_1iczZ}h>?PhbrHb?-2P2<<%jgl;5B@U~ z;z`cQ>=9gb1Ob&c@G7GrR^f@7=Xr>4X2Uh#^0Tdop!~eTtUAf+=8YojV-Y$z)34zJ zE2wpu#co?;1!~vq{8a{~k7C|A&vNZ@V*pq=J0{8So=v}TGsuy@9L?SdhKShpYySth WZI9i}(5{XE0000<MNUMnLSTXct5Y-p diff --git a/interface/web/themes/default-304/icons/x16/user_gray.png b/interface/web/themes/default-304/icons/x16/user_gray.png deleted file mode 100644 index 7b4a507a0007c2d7237c9450d344eb51877ad155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00071Nkl<ZILoDz zTWFGD9L7gbM7h-}BC5+4o0N<}=_nTq=V2ZZKTVy7{ERXZX<KvJ6zj857tM>oln(1K z-2sDwT_n+s&~docs@oXd#X!5;jKZh)doP5+a77mn?}6v}@qc)E>j2dKkJi1s;4t3~ zpW2N`M?D5k3gBzs1=g&)|5pGX>xxCR%@{j-6gO2nFzP;nz77H0(gR?f){zYXA)^?h zwk8aa&<)ce5^g}8ISgONUKm>UR5k>hKi-JTY9Yq2XfVQ_fc;n_t{R(RZ9fR6Z6`+h z&TOv<7*y_CU3`8Q#rG5V{`vvtANAwwvujwG9Ya*J|L3QN7q`>|Bpj{pN^_G~E@ZLt zaf)b~?o0DixZ@EOYF22I`?gA@((HJk6Xn7^tbTb)welf@$$?IY#o{NT)91FW3s5SR z4Jwt2Q>)cTrBdkW>A}PhL#5GZ=$%fd<M(mm6|4b};HF?Oc#Ajkrerb+tJR8ZHj7Lq z1Cz;w;o)I;JRWp+cUNRG*&u;zt^!E#63enkr_(SP3@{pvu-om(<#Nd9^RQSf&}y}? z*=&eLqj0<36}epAR|PB#HUD0o9Yi=B2FG#K<Zw7ZCZpps3<Iy%3zy3Uzu%8yE{eDP zE#)d;G15{gy|_*di9~{eNF{3KEA{sFA`l259*<MlkCz<gg2GA_@cFSnG#_gE<#als z*XyZ~S1cBz{rRc*GwF}6t}ZM@MP-uV*1W>fw6C6YY$DJ2iu7F~<Chf*1$glxvKA#0 n$s4oTEc`a(tFQSR|3!ZQ2Frfw_P7`!00000NkvXXu0mjfxbQTw diff --git a/interface/web/themes/default-304/icons/x16/user_green.png b/interface/web/themes/default-304/icons/x16/user_green.png deleted file mode 100644 index 264381ed231b9b8bb751be7d8dbff44cf472fbe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007HNkl<ZILoDz zTS${(9EYWgh`=c5ZlBVPZAw~E5m7`*1y(vuMawK);+SXBbcz|x)11;$m*vdEr(2tD zYH6B{Nfx9g+pO$x6E;c1v~Aj)Nr(M<{e*!av*_aCJ@EfM?}^s~fXDx^>f~f6`;%S8 z!n~Hkyqdxs&BB<L{rRs1lii##M-K~*9%`9RBGFKoZS{irK4*MQfkWrT1m|0+<sA_0 zgjt%xL=}ZK1@?LtOd1|09!W4Wa2S>b3RZ;|W|ZFeBB!929ophn(3ax;&Gx<zmKV*K zdR_;c=@@Lr7|eZ8qc3mU!t2Jw^=<_>;&u#Khwow9puxgR6+zAPtwt4Uc>V^rM@U!F z8-p&N9<9mTi$%j-e1FryurQ(oox2Yw5>JlC->%)fsvu2CZ;GwTQHB(;G34liv@{5f z*G@4k^>tG%2rk@?v*j7>skD6S3PGwuu}*95ki^RNW8ilKdTkYGcqc@)F%8lI0mM&u zxHFQ0$FnkoiFYBQMA)3%Si8X`NUkd^PHH-i7PE+9DR^^GfU;-tDAHd*es>hI+e1+? zlmtmX9|>|U;w!VNT>?`c=ht+X5Z8Opp|qdJP~3Ns8RvCHBCCyybX5@e^+%DZ35KON zAA^~`KU{)WSACsUorn}1!7W273C56Bqmla{99Ohl(nb(T7$i^mIA3`XHhlqxv;CYd z!Dv%TjxopQC%-Nb(bC<d@Y1S;OZ*Wo-U(BFz#_>MtaycwYJn%Mm-<ANC%la;3v`|- z-9s)c0HG!R2q_969B_t+xL<1?mivvj2t3{X#(&`t(yF|Unlk_P00000NkvXXu0mjf DcF8s& diff --git a/interface/web/themes/default-304/icons/x16/user_orange.png b/interface/web/themes/default-304/icons/x16/user_orange.png deleted file mode 100644 index d4fee607d06a34f682b0696ea8da9ec5d5355888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007INkl<ZILoDz zYe<t(7{_I=x|+A_%4&uoj;1Mv5S9wkg`g<<&?k|kFm!e?)JVgbn?hk2Nu@RyGhKV9 z4h*|Y*A;Te#->i4Hpq#~DAqO&*_@Z&f3I&a5M&m8_`!27|KE8IhZ6)K=zmysa_~u< z&QVUlRmp<$1`FSc2<WA;gMTG3E8}0gWNb{=6AbQJ0!|SNU&=#ZYK`k#Q{W;wn5q90 zaxQmJN#KW=z*Hdtb51bU6gaNX?JCY<N>hWcJt>&DM8IAWjPYwBu;vla)@4Km6tv~- z_&GiH7A}1&zUv;t@$mqhx-*!uD$!lc^9(f?ga#BybNB|gK?#Sk1KvTBM#a=_6A9`0 zBxArUG!~o)e|Rpz_Od7uKBEkCBb^N1fv3=x?m=z#-tjxRr#7uBXcQigmS4=!Sj3_5 z*?VEA+J`RDQHJH(V^L#-UX$ggy_e=6;;s-#a<f=A>FMUrx7GnuT41aJ_>c`~j)8i% zA5=RZRL@CJpPDdQ9gYVVGG8?09p?B2WMSr`nfq)&UqVyN1ksfWs1revu~=x~!YkVd zsw*A8)XA{l<w0JMPWlD?<-3<0&r7kShygnI43ugYJ?3G)c^e&$#%x0voONt?q#NMs zu0UUjV8Jgiiv*NgE1@^gFZAjN78N@&-?AM(`4)JZqA@4m3Xg0vbGof264P(0V7Q(@ z`31u*m&;6L@r#ao>tVZ1OF9IrVy$LlSR97_iew+1sao+06DnauuP804{c7sufFy>p zR7YV{!odj5kT?>in_Q~1FlqK(*};^_Hep1--}o>523McHZU)3qy#N3J07*qoM6N<$ Ef?0Ynr2qf` diff --git a/interface/web/themes/default-304/icons/x16/user_red.png b/interface/web/themes/default-304/icons/x16/user_red.png deleted file mode 100644 index 165bc9cc2161236edbb1e53c44015458e754e00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmV;J0%!e+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007CNkl<ZILoDz zYe-XJ7{{d#ekiA|%cp`qM4(X;MGYYxsiU&a&e?Hojar(^a$RgTn@*eQ7PXdIY6P0) zCDTP$DzS?eW+4t|rBOD}Fr;FpgA5gN@4vGR2Ev#{AAaz>FZ_Sc^YHS900{XX0$ye+ zWu^JTMKHwkpxYD%b?ic@Wa6uTB~YtUiwsm0EZZVr<|r10LmMB4w78{E?NyY`DbTY5 zT;PH_E~NDm4vmnHeH$adtX)jz6levJq@^+sBdr#6RvyIe4Sb}=E`cI;8FsFVM45Ki zf}nz`J<DCLkL?)izK-v&Yhka?!QlO3jP|#pF=NF<U)`b5pn__}YTLN23C^Bdn0(vJ zVfEJI_GVP4$MghU!J5R*f3|sR$CFF}rh95I_5Plh$u~FfTqA&0nEawqDCGqdlqaR} zJ495Clch1`_=LV=$!N*l?!{C8vUTGtL!&b>`C@&XB660%oFbh!pwZTTlQ4ke1JLyn zXsQLSRDe{R12GrEeeE(x_bYs181f*2Dy>VTLj8iaEsT+*%Ya9Bd~iWjT7VKGa5^6- z$Oeud0J&5GcZmr<(`4kXh(7BV^q!2GaX!ogPMrWOMLy0H_|Ez)AUgw4E8$j3fGicp z9v7l3Cwkg1cxQ+v<4=tsN^XU!au6;^JY98%K{We8bVuOkCh&CsA!p%gGr^X-iueWn z4M+8M{mS1noM1GC2F@1;WQ1nmpcwQP#!Pb=)2vtcY*q8x<<d1xBIWP^D<?xViy^TD ygOmi09W46AGIBdXG11DVtRKFq<^}zY|H2>BS+!W^7|W3W0000<MNUMnLSTY>OEKL5 diff --git a/interface/web/themes/default-304/icons/x16/user_suit.png b/interface/web/themes/default-304/icons/x16/user_suit.png deleted file mode 100644 index 44d0db7d5a9cc7ffdf9120004e35c2102149505a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmV;o0!aOdP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007hNkl<ZILoDz zT}YEr7{`U6E_8lXR|Q=}pk3H^GMF1nx6oAVW7g1|x@xT`Kj!9M+th7}YvjZh!c3c~ zn>tIE%T2}n4sA?R7i3UG(nT2Rg<wMQ{(E~b27=6@iyxfx@ce%~=NwKDfS~_j%i_(e z>D48i-B7a`P_RNEWky1rp4#|V0;yP3u1<-9Au$Yk3Jot5GIj{E<Mu(EB{Xg;ATGqB zh6*aEkc=i2`J4#koDM_U(LLn00$FT0*=thbtJ{EalLQ&3A|PV!g^;-)g5%*Z%B}<l z6qqv)tggO)h2=Lb`1aa@>8C~b<j~-|&yCjW2iNACZtV;xxG!RQRy;N=c{{N_+eXn& zuUDqqV9q__4R{2;;#n~JcHL-g;YDnC8}Q>@H_iH6E9!~!U|oAK!Y{BgwiK}Q?2$Z$ zwUMKKfu^Aa6lm+vS|~toRy;&RGgbS5GvzPAm$yHTFR+Dg5-^KgJM!ztEL?RD-SlMm zBa#h67<5fwN|J>XjT3r@55n3puuHm0Zl1-+mDzXs1xdwLUB<(4I6R9;(7M3WxgpT^ zVKyTP^Vw-gt{MQh%!yRPFw`BhxLiF%^79(1{DK)()UPF{5`=9Ax~_S;NvL<jmYM=p zZZXbPxR7a@fWSBkN&O_2`${oc6usdW%&DWvl>sdTHKTaczW^mAlDBw~ZyG>CSr6`7 zJdid_p|Z<|#EL$w4(i}3K1})rzUDi`G;!$XCF2O<HNB|p_R*Ae&f#ojKRwl-J?EYS zEJX)qN@F&tjBe8_d~TOAB-+N9lQ+zZT<W6Yh%T^{&uN%)J6Li%c`V1YCRUkGeCd!f d0{+H-;Wyq$r{*3$RyhCw002ovPDHLkV1henMXvw= diff --git a/interface/web/themes/default-304/icons/x16/vcard.png b/interface/web/themes/default-304/icons/x16/vcard.png deleted file mode 100644 index 767f4988bcfc24f99f26e0d18fe176cdd9ff2e58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmV<C0U7>@P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00054Nkl<ZILpP8 z&u<b@5XV2;UBDuiTBtQ`NT}h`15H{;#ET}Lkh6b*SO0+~J@qf};Gf{hgC}ktC6b`_ zuua7u@qliGghtxbbX|6t_j;hafwX$z;3SiompAV_-<daKXsww==9p1t2C#a)-VX2> zKq-aR8l}{fipV8<p)ZVXw>!#avnIe~KSKX18~V0wi>0+TW3d>|_66Vl&GDBv=-`aG z<qdAF7pbMbQ79DHd3}QG`M7_4Trc3|lL8`QT9a9~KR;*Geb0Btp>yP-cMkvvf`GjT z^C*>w$^sA(tndI3tZZ?AbB%{_i?<&Ru}w1yY&05E&8t?cV*n8uKOQOG^;fa1V^RwX z?E7~a3_M7U0V<VBls#lU#o)yG%JTXhURm1=e)wEligWwyXB60Kwf@au?fNMne=VYx z7P+|+$2;}7p^kugM1)eQ#ALbQw?_a^AKi;CT-Rkd9HLY%qMb-2NT<_(2XGvRe!ov9 zlOdnalT0QrO<lX)rqk(=%jGB*izuZqY};;&$cBheE|-mFv#GC|zEEqmno+OU^+h?K cjQ_rk=Qdn0^d$mYSpWb407*qoM6N<$f<;^5x&QzG diff --git a/interface/web/themes/default-304/icons/x16/vcard_add.png b/interface/web/themes/default-304/icons/x16/vcard_add.png deleted file mode 100644 index dd9d4144f151aa75c44c5462f150baf34c2e2e47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006fNkl<ZILoDz z%S%*Y6u^Ho_l~bdGaqTAf)nGyg@z(^lQ1x(nN~sl1J$nFwHa^~v~UwG5*M{-5d>j@ z+9I(aNE@P(VNA;&^qT38jQGy$oyYfmEo?@IS_mFEoO9rOzw_Wb4y6=(5hr_;Jp=T3 zJRStj14t=RN+G4pQz67Z_OIS^n5LPjs;bfecJ3qV|IcRqNF*Y3rIhA!xwttcNLlMF ze|&*TZ{VzM=AgHQGwv_=d_IEXD_C|4Ycqvqr+IMEhY&*3cUEnmyG6!)!;ff`?+X^H zZyJDfI?c6{#YkD08w)@Pfu0Qj(lu>#wbs#Hp!4$W3=vJsB~DCC<Sozd_iq7&5L=Hk zlGh0jy1tCNtc<DDF_xBWaBl$&!^l<7cAeM3O7s)e-orf7+gbXVqNt*P+Kpei#QS4+ z__{K~Z+i_pxrzViIm$)Db_aF))|g!^M^=<`pr!zO&8Ac?0L45F53}f+qr1zXzM_fe zv%`!`4^S)Gw*glI$8+;pmPIm|M9K!Fl#GoIaW-%o;S?M>)Wfs)Ll`ZcJREtl4Twgg zBoYZKD=TSiY^0>5BnMnroyX;H6KK8!z|~W?dHimWj2uN5LVO5^!_7hnIyyQWp-@Q0 zVzInmx4OQ}tQjI=P7>_7OaJ%<inKyBr>-2kxkjVcbG_cXzpu0P1WmPVe4Y;znw})~ uZS{s@x94p1disIOKq;^e489sLgMR=<FHC&8!-@p}0000<MNUMnLSTXvjura= diff --git a/interface/web/themes/default-304/icons/x16/vcard_delete.png b/interface/web/themes/default-304/icons/x16/vcard_delete.png deleted file mode 100644 index 2c944dd9f37c785b135949d06a1f24bd9cbc9d13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006VNkl<ZILoDz zPe@d85XV1n-_P~GZo8V6RBo)GL_#9Cr-Ckt=K`TlU4pz+CqW3kbnVcgOPxAIhb~1B zo+AGc)v~Q5TT-CCb<JH}Me(`2@6G#luw7m1AUH7049tAzJHw2jwdN?|<A`!(0JXBR zG74M;@H`K#HJ;~HsEGVy|LQX%old(gEiER%!F`nc|JjnCNF+pQt<9>cDjvp!qP@+= z_xEUL2VZLs$HV6tYWP7U5@B?56FXnT-YsJ19bVjwAR?wZ*tPH5Bi!^SmMn|Ktc@O< z1Hf?{CN9<DdDZ2y07L{;3ILq83ta5&;Idya^Z6?Y(<~=WO-)rSZ*XvM4?slrid~P7 znUg5BK|@m$vEl%^Tpk+s0HV=oxqFFq1%pj%f!6R@UaCHFzlziZ{j~2amlNYpCh)~y zBdZn?2-0=!F4Ek)&!D4zi~02cUNFG1Hb42TJdIu!s3rUMDXnWUx^9e69X`kI+$71F z=NN5E7|CQ(cXxMJ%xBv+g+ifBdHzn6f$JmG{(J|^)6g7XO`Re3VPT(vWm#l08A72D zot>T3)zy^&W!0jlJq$zl_AhY!1Zr~~B_hdqJl-QB^!N80v$L~0l}c4!Uvm)q%Ny!n z-KMbn8ync(GI1LNu5p-eoF48N_czv$oeH^1`BH3WT^3hOaq{}UaoBgB89qI_lS|(+ k#W*9TUe@sV%B1_?54Ph_K1q%rKL7v#07*qoM6N<$f@~rfeE<Le diff --git a/interface/web/themes/default-304/icons/x16/vcard_edit.png b/interface/web/themes/default-304/icons/x16/vcard_edit.png deleted file mode 100644 index d7026e7731020f14ed8d1bb0f051e758e45f8b5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmV;?0xtcDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007*Nkl<ZI8UXM zPi#z46vlsV-kVpQPCM<Gwt|+ap(-iSG^9}#HfXRCD;7vB*olO&vXfX?Sg>Fr5@BIy z!$QL7C^};3ziEorn3;B}?X-CF-kZ7iSupy~&Ph(rIXB<=&Ua376~}S-AJfw5^abEB zfRqx)agb6ja3RE!_{Z-msZ^>E2n1As`D%*!zhW_u#bQEp97lD#-CT<bY~wrA@#i@C zpSY@<s0lXH=^Z8%3UT2{7Q?hLayEvU=fQ~(LI_oxKec7>I)&65MiU7}CJdZQ?*Yi? z^IYClij*aP*8&hipcM;%eC<{`Hm_ojuF=)gOH5V&0>j}j<+6`Jwg=VQ%;>jgxT|)f z2_b$r7bLGUE77!RycHEh?d?oWnc)3R&>EVikeHyf?kK+CR<fTP8F+ecPC+&?M0K!% zhgu6$Uu>57byoaL0$^nxqgrwN>vu5qaR6PhDX&<8x3YFl!K$)Z`X(!p{z|H9b<A0l zayfyT>qm1B;%nH8mA;SeQ5bzUh;($4zV<nSGyB^pnqe4NmW4H$pv3IOx9$*T@+L05 zfZMx<GUqFSeOLL|-H)qCkVqtmMx%_3jNtKju*SlW?ZOv2gqgg7%bmxbUCY?Bx6Cvg zr?h$<Qc9FqEY>fCXc9uu+S;l_A`!<Pe@TsJoQ)j^vB&SAs5a)zYBJ%sNMj~AwBh3C zKeroD7XO9Yr|VC)9XxicpwzJ3-$hl8jyY4u<cn7sY314)&%XRLAFs_X04mmQxV5SM z6!H7#7z#%ysoz2&6His?>fYw_-3yulT#Fy#!(#=z?-9W*J1Hw`B-!)fhncfGo6mRm zF2({ZS>Z^BKiASwt8Hrv;<&9yE;Dibz?Jt)CKv4&bVhQ}R~}?@00000NkvXXu0mjf Do#0!r diff --git a/interface/web/themes/default-304/icons/x16/wall.png b/interface/web/themes/default-304/icons/x16/wall.png deleted file mode 100644 index 8a1ea1684ba6f9bc95b388eeef259f70131ca071..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmV<R0Sf+!P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005JNkl<ZILoEe zT}#_g90u^i|6JI$gRJZDLcJ0FRs%2AT@+DMv147gvn?$RCF`UnM9`4*!k3gVR&8KY zbE)6!**RHzDD+|u13&Vd=e#5Y!T_+RU__PI(uXOP+0>(YRea2{drT&GP<d|Qqk2_{ z>+4&LMpvp3w6?^kR9NUsRA6hgw9qrEl&ZZ!ABxN!+9aEd!m*tE+UpIVsBBQ-c$3Jk zP^mNM^`XdIWwb&4^dUu(CEC%6k2KAYBopoA$j3vPB1;l&gQ(AFoxJ!aMl_Bz%jqJH z$B3d!&9S<;iDQhTNLwfJ7?q2=!nUAn*Z1<fXm=n)7u%+Z*<9QH0^1g-n>(<Dl`B(m zSALY2hw5p=VJsJX$1LaLLkH^ZhF3!^@1|?iUU@*-4T3Yc?kO6LPnhL=ESd;@1aQw> zE$^ml)Lv%rVykH$U|w~r3e$WKv+)jQ^B}kN_RZg{IyEQB1NPY}=aZjdh)dts+O5wB z!wdL+sI^+wLdSVIU@M&eKKDEXj-&0@cHnsd9LLpawfaKG`HK;I#rZ%UlFc*tvs=!M rU;p;}8<SU2T9#J+({jG|slW3dNQdyUw9Tyd00000NkvXXu0mjfU{m^Y diff --git a/interface/web/themes/default-304/icons/x16/wall__arrow.png b/interface/web/themes/default-304/icons/x16/wall__arrow.png deleted file mode 100644 index b0ebdffed6ac9da27a9f6dd3fedc5d5279f0bc0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006xNkl<ZILoEb z&ui0A00;2L3%ahIlv?Lu4rFWx1@Y=dyc7|<xLyQT8Msauqca<;SgTRn+E7AQyM#=- zEG<%PW>CAepxX+HIwq(n>Pc`QidSKO!PmUd#=#C2419Rs_kBMSLI9BeK`8ZyELWRY zCQWVithm-_yhg3I29~#NY^!I5u)MsA#l<C72(-6@P>*Xz@1ZWzOFMS-g!(<<Og;<7 z$|*WPMe23US&O$anLHSlz0@@~K&j}bo>V@Q1!Ltfq5U*lU$4V#n2y<kih8{P)2ulP zvntl>bu>)V(NAfX&_1ddD+Y?yq9Y-tVHi~uixr2INMpq?P%Rc6eUvJM`rH$Om;f_A zdC4AyWD0_i#yHQTwU!ibLKFo|@)3wa!sesy3G1iq&9S$YN`|#z2CZz*a}wCsm6l2l zyKC-YXRQl-vZj?G%kzjvucMXixe$Z)NP}FKZ5K)#IDPjsV)JYEIy+0eoI4)lr?Fjl zI1HY@0zP^fd~Dh_JUW8Fowq3b0s=Gd5E68D!4x^bakVG9j*6-}lJOhR^#@Q@9p`e- z5s=>C#O+r&6nTiy<4xp$!0x(_kG>#19QW+LqCk@*$JAH^ilRZ1WSpveL*_d$@&!2i z@vrDt;NY0~o9yGbymd)qJ1^I{%5mPOjPGRpXZO&;7SkD2wvOG~MDPQ^=3PgF6=FSZ z%YIAGzw8+*e>(CKU}INMzSun5-oqU}Lv{xj3cCii_ttpcGbr2r9}7z0g_?pZCjbBd M07*qoM6N<$f~k}vaR2}S diff --git a/interface/web/themes/default-304/icons/x16/wall__exclamation.png b/interface/web/themes/default-304/icons/x16/wall__exclamation.png deleted file mode 100644 index 96e59b3234b71b58bc0cf3e19d095ccbce374d16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007FNkl<ZILoDz zO-K}R6u^J;cN}MPGuQD0SJX!7!z~O{q)WG;Lmi@%QHM?uos38*k3p9TBBIV6yyPL2 zx+KyeNTL)Y+f{KDD%X$PFK2dUc6DYt_<<IJ(1Qo>{odn!!IOO7=YK>JLc0PqZ2CWd zzD;|7TnMdqXy}7KIQY&NLhBVmV^jCX0byAdmSq75!X^ZA{LKU82xI=kWkOCOHur5~ zppc`Wu023j%7NurEVi|3kqpmO)-oX+cP_S(AHqpUqFFo|csX#}w(af1EX@9<DSVWj zEWPlP6HN`f*p05P$1)xzrfKd9WU?8|vfV73$zYllyO;+hG8uI`IyMbJayf}st--n= z8jX@%T}G>^0N`--IIi2ruca`Cb!MXx>a<K&)gyW<j^hv@fvz{<I1T`TbTN9Qo<iQB zP7Kr5*@Hj)f}Ci<vR$&Mx&U7`O%uZ~NTt$j*@j_|N~bVQ6Jd>_RqB)lOR1{S@$8Qn zh5`7pI4I>8;}hc~;#0_LHt~sZzJB>cJRWDwc8QM0kXA<s*G9N}?G=rB1lM}c-0Td% zoE#*7y0bO1JvPA1{1SD|$8a2npfX8QeIu%D(BI$B)B76r^%b~^k0cQhJ``J)MJ|`y z)^sYx7E`<ts%mRUq(Afa%^g<qlay8p6mJAc^2_7`O!ahk%R3(=hvJzi?x_|xbnANH zc(JOKi}ft$FFYjvy`2MxBntL)ru}5WkXKyy9uNd}6tMxDn^&bL9UV1C0%8%0J#xvr zn90`wbas}xYSFwb?e(UY&cVgAJo7x-_R0~0u|F_jKf$zdi|zmb002ovPDHLkV1ihD BF>L?< diff --git a/interface/web/themes/default-304/icons/x16/wall__minus.png b/interface/web/themes/default-304/icons/x16/wall__minus.png deleted file mode 100644 index 4f4dd35be97337fbfeaa1b923095ff31f03d8eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005tNkl<ZILoEe zU2D@&90u^S|3O#Vi%=_L)cR7k&ms67+?CJ^y9*iHvayPF8nrDACDhR+WH3Wha4#7_ z?ACyG=F)u!KY;gwS6)7z6Wc?vH<JZ^<T=lINeF}iU{}G2a*u@<BQmp*OZBpN8OPr+ z7<`4y6ALfZ%fdK2JIBe%sVodC%reTPruqz}Sb=7zdPccSxz%Yy61hQ(WRjNJ6O(US ztqvraHA?L*5}7&5G&-#|B$3OE7N{LvL<r+h+1+;$MKQu~pzQCuxQHUeVW=z+wHX!3 z35EguzOU4*CW4?3-#=EYS`)({K;QS3B9X%=n_e@_8l;tt_2h2U8!(I}R&*WXxw`oV zrfFb9UxjJZ5?M;GiH~w~M?S6B3&etV80TcXV?n-M@3f~R-Dr*6D-Ouoo_7G-eveA! z6~;Lk8&!B8J=h1fl60draxc?(db_G`VN$tNhOR${UU>$+x|Jv`Klz(wC+7rlz$UxR z`QTHxi(}VS>f5i;?H<8(yNM4E9>Sl`<LG`7hj;HO>oeECvpnZt4jl)cWht9aSK&Aw zEXz)~g**6NDotrH`pIr_-VukylQe$goOA8-*wW0kAL4WW`qv{yLnf}YFel{y(_FIm bs=xCe0HpAY_Q_7^00000NkvXXu0mjf%f|Tr diff --git a/interface/web/themes/default-304/icons/x16/wall__pencil.png b/interface/web/themes/default-304/icons/x16/wall__pencil.png deleted file mode 100644 index 4ba4414a70fafe5a3fd52e3bbd19dbb98bf50692..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006&Nkl<ZILoEc z&1(}u7zXgkJCVku5M!iZ?WMG66}@}%D)dm%f)~MnskM~W?MJjpbv12FNVjQ{X5Bzs zlL)ch62-O&XlqVtz4#w^7Y~9rA;-s^rCmcSQgGnMzVpnyGs`Xm!2Sm#^4~B;c8Qwp zI#e!#2aU!j)N1b`>Xwa%%0(b=Zf;|3Z9@byb+s|_xDMnVa<MLIJCHN-dxFVq3W8b3 zsFxDtb>+>)Xfm0FAZjnU^1Va}KY3!=WD0^=2O0HHs=iZ4wNbS#7c|uC4OFW&TVYwl zPQ8vswQB1jN-^pt)z~snS})n=lsF7y9i`H$O__^h%P_EBD%rY;R7O7cxSW`SFgkJ9 zddl-L$Z{N`l7zjr`NU%+5;7*FF%*V|@$u|AT&E*T=0`c67PpnlhPh!0d$l!BD-ds2 z-YDCm$r#k}DIgj}-r@Xa9^lLAdIh=MGlW79u~%DjISl=^j$9>Yd0vrl>&|U7n@vaq zS8<WrH<*{ZXT#DoS_N+gAxSfkLiZqrr!7;Hmr+djp!q$5{{8_30>kFt@lCQ*oY&qI zi&)h(+x+Y!6pJg+w4$Y4h~P!$jMc0?=|g%UWaXUubk@oFyO*j8T~Tb4BV$li9g32J zmXWZcp0}Ex#`>@rAG30S^J8o51m{`vkVY#nKf2Ai_igvd_74m9oj*i#c-Z;#!fE#x zk^j-Y$jsq3b(lK$iv=A^`1KW;h~sl`kX_ri-m%;J&w-IEj#o1Q$EBgczi;>rXA076 TSt>y_00000NkvXXu0mjfAPg<Z diff --git a/interface/web/themes/default-304/icons/x16/wall__plus.png b/interface/web/themes/default-304/icons/x16/wall__plus.png deleted file mode 100644 index 4cc0acedbab1f78b3cea27993c592f97e865e85d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006WNkl<ZILoEb z&1(}u7zXg^tlF4`#xxQo2C=kY{Xowm6+C(AN$_H!2UGkgjoZ?c#_DR5kR>d!q**o) zx0{I7Zdt^%3217L_UOfvN1+}(2nGLw$C)8n0y!9P;Kw}kzVpt85CG(V5K2Q+%#${r zNn2laUU=GSeL=nc89aAg?5oZT>hA6ywzqe9L8Z|_LS<i1U8X(~rGq_nLPK&aSIC27 zIYY;&MgzVQYp&*U1#mnEsIN3esTQJgrjW~nV>w3XD9tza8*p2$XT5Bq(P+VS>z?wu ziTy?cE!XvoQko}pgc?rML8Vslr1UHtr-n*p%cG~VXgUsRm5OJCQiIT-Kdx#iaI^D| z#jd6^P}MAE6$PDMT6+OaQ!%g1K~qygkox27PZ?h0U#nIfcHt#DS)A8&@LyNmsd_}M zeTUDo2ZBY*+C;JV3W>xsbh0?BNm%bK6gP{)b>|jNy}p2nH<O~zXGuWvuOyX4bc;>L zpeV~w5=&5$i^BBGJ%p|Em^oZRxI8ZU?12SxMw03uY#Upq=}E6Vhi$)uY1+b#jY*s? zjpLks6?cB$$Jvc5!oY*!?<68gpWYe<EM503Je-4JSkU#N5H&91=C9j5Nb1BPIVnj6 z_DHK+KsvrBNr8_Y15-mk$@0)2?()F|I+@&+n}jVt6J{d+v?_m#{I~?Zw`cflpX=HY lLgL5D<k8WuV&`YJ{sOBP$MQ-i1nd9+002ovPDHLkV1m^A7wG^1 diff --git a/interface/web/themes/default-304/icons/x16/wall_brick.png b/interface/web/themes/default-304/icons/x16/wall_brick.png deleted file mode 100644 index 4b7d70adfa135695775b8ceac3a22920e4aefc1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmV-%0gnEOP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003vNkl<ZILoDz zze~eF7=~ZE2>z;C+o6jf3W5p+5$upnL%MW`E@tRr35bJ;prC_`pok(B6>bm*oy5UG zaT0Y@ZnKX5EwA@U6H4rG+Q5^0zvu3STMi`A4mis~8FT}6ngs+~kCQ>@uW*y~Fr;Jy z8d!N8o8L#Z%J=F#B_EkX%f0yJ#mQdM<1hntGdo4WWG$?xQJ1yZM=s$N_6MLpE34F% zO3dBD9BrI*vD***76g0=N-<Z?1Z|vjvC{{2SsbIVR~TlLTg^!)U2LVz4g4j(`aZ9{ zBBR`DPCDsgqX+t_T;_e*;dx<*QEoLSopiC*4OJV@vzhJD9BrI*vC;+o>@D)q^J0`U zNgF3!1Rc;1uFG3@I_6*`LmMYu%%pHpN<sez>B4-ShMXb)M{+;icAxV%(D>gRjY4sW P00000NkvXXu0mjf`mCY@ diff --git a/interface/web/themes/default-304/icons/x16/wall_disable.png b/interface/web/themes/default-304/icons/x16/wall_disable.png deleted file mode 100644 index 12b9dcaccde83fd3bb0ed010d702bb21bd9b5bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0002@Nkl<ZILoDz zF-yci5QSf3ch^~3YjuT{$W<D_LRPshg0TsvNS88QNSQKSAVr!$l0O;WlUq4LiqQ*v zF!SxcVRs>z=NadKaU2~<j<{hMAgmsJ-zS`OAdjjEj+i{Uu9J8mx2oH=g|K=wP2;9% zdKRpcQw-jru4_$vA$t!O_ZFuts;bg}J96XUW@mBAqAW{Y;UJ2l`0({wzjVqX&-33$ zp?vc7TEBG4BFi!j*pVwPzWaKuUpi%xrm3#*c?ypiTb#0p<5(xSUp&~W#VLy@iZtMw zTza_q%i@$p5Cm^w7$*NgS@63c8?yZ)o1g5tzw<YjQfLPPu@amB0000<MNUMnLSTYY C0EEN< diff --git a/interface/web/themes/default-304/icons/x16/wall_small.png b/interface/web/themes/default-304/icons/x16/wall_small.png deleted file mode 100644 index 9d41e1e991c234cfd42e3bfbd7b03530de0e160d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~auP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003PNkl<ZILl-B z|NlP&C75Aw8NkFO91X;kPz+*Yh!HZNX8ZR2|2J*g^&iBB8h|2(-vD9m<dXV|N7;o1 zAAyP+V7R)x=KtjG{{O;E+{yS2P-5y|w}0LL{Ho%|>(*`izjEb9Fz#>b`oDkOy8lW{ zO#S!`5ai0uEXjRZR#Wq-xw-p)Qbzh`ApcoTan`f^!n9{Xg3QGP!a%Tp(V|uV=gwUU z#>u(qFBWZH^ndQUxnRsJ&%6k)0sPEdmDNRM|I?Gw|Cg23{m;rT_!^s@_$n|W^aF@y z7T~JDYk)K}^X3)Pr~fa@E&M-y`uzWsC(j1s!oo^0pP5;39$o{an3=nQco#o2=Qd_$ j{!LhL>mX0c17ZLGIa-l$grZ9Y00000NkvXXu0mjfT_UHz diff --git a/interface/web/themes/default-304/icons/x16/wall_small_brick.png b/interface/web/themes/default-304/icons/x16/wall_small_brick.png deleted file mode 100644 index 7293179be7952a688225f246dfffb7e08c2e782d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`*F9YvLo7}w|M>sko>_H9Vu7TA z>y$(_f%%P(W=?jMG&u4>%D}PZ;hD2r{`?QWbm?F7jlW7f5=j-jF9g$O?7VdI#eWv> zxBnf!NlLJNbbO>xxrc2Fr{SEP0<*u>uiSgDUZB>>OsprdW`a!|vlNR&+PUple()cD z%jWfe;!lv`kWYqlEQKV#*4HN}NcfwF{OCW!e)6&Df{y8l&s=g>{=ce~^xx5h=kO1Z z;w8m~b8fzT_J4nL=o9;nd#|3c9W$`=kXz5#xQ560Z-m6T2Zt1XI?kKIeuROc$8g$v U)x#fO0KLfI>FVdQ&MBb@0QnAgE&u=k diff --git a/interface/web/themes/default-304/icons/x16/wallet.png b/interface/web/themes/default-304/icons/x16/wallet.png deleted file mode 100644 index 2632217942d22dfa0ddf6ada7dadddeca907459a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmV;*0X6=KP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004zNkl<ZILpP; z-77<390%}UDVr--nrJS(Y%wu2?=~cvPLd0SnPwO!GcQS$Tujl{hS|j~Nb)l8<+Y@g zT)23OQ1aLOJin)?h1J@HQ=d+!^L&5jd!Ew)M1*)i+ymBX0D`p;;#iDAl!aBJz&?UD zd|S3e^&YU|e!otfDMMNCRSE3X--VCv)~KGn9k^{Rz$Z^TQf9@#2P~BdjBY;6H~;E- zq7K7-x(ESkV1N)T=z%b{*oJqrrXNm+EAe=!Le!>*5Nhz^Go!m07|d&dFsgVnRsZdB z%!o&WCFnIN#kD;X@WN%ljZQUgb!+(Ga&%?$0W%sP?0!xXp)+R{?%E2)!u1Xn`Xwa> zT5|Aeyao>k^cd!wNcVR*a|$0YsRqJsryIlqn!ahti{NQY$C2E`2u(6zQWD<-XBH4f z^~B_!f<Nu`YSEQ17wag)8vvxq0IaFN&PS{9#8JjKtW>-^wIK)gV)5<2I8+JzD-<DR zC`(61r3|(uIj<B0%21XDBy$QX6C;Jl{`=qf30$BOF)sMQvj6}907*qoM6N<$f}T;! A&Hw-a diff --git a/interface/web/themes/default-304/icons/x16/wallet_arrow.png b/interface/web/themes/default-304/icons/x16/wallet_arrow.png deleted file mode 100644 index e0ebf3b7f5f1fc490e2b6bad242f44200b14faba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006RNkl<ZILoEc z-AmI^7zgkNqRoQpqQ=Cqi(ZtRnW?eTrbUFxC|jZAUS!UiTjrQKA}V8qf~NS=^5RD= z(tNG7e5oLW=;fk|L%IyY3n_x2f57W+=Q*G;GAsPShlj&C&-eFm4gsLmpj8LlE+FbY zOqwMAlg7PtD_;?F-5z}Ebgk%f#Es!|S*mgm_fmVFB4#_Bc;9GS(M(%8`rH|qZao9; z>9WXx7PBIF^IiD(vR>35!O+>PI1!$}LK-#Y5EG)g6tAup{pLwcE=K$Z)!6(K#uI#O zcc3ww1cft+2_Es~rK3xp)#c-{Z$H|KlGWO~oiG`+;GR7dy%i=Id;r0nGT@4dn0RyD zs+z_Fc^L5QRR^QxDd?~!BT}*p&o36>QFRW6<R$WczvM8;fKVziF?IPEYFc`5y6Y_( zLIK=&r7dYK+=|-Wx;Vvp64rI{4ob@W6xcz6$2)Oz3fgz5+E8DM{>qFvgH@RbrYEQg zxJOPvw5MrCGlxbOif>H9R2hL|WFDR0fWq)NuGL+@LvOZv`$gwd*2q`b2X`WgB)tqc z^x(^n=C6Qf7ATwkB{T=5d3zVE33AkB<m#zUwr`_E|3uX28;cpMpT^d^24d!(dDuPx zyf)Z1pFEWG2S#ZV8GRFE@Q%^us!`hD92DuV0j?V>hMimN8vXTK4A7m5lFoKlTYK`3 gkku(e=wAYU0`181Rj|VD`~Uy|07*qoM6N<$g0>$X>i_@% diff --git a/interface/web/themes/default-304/icons/x16/wallet_exclamation.png b/interface/web/themes/default-304/icons/x16/wallet_exclamation.png deleted file mode 100644 index c6e0ff708ad69420080133903c3c8118e4cc93b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmV-;0*C#HP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006%Nkl<ZILoEd zT}YEr90u_JOW5=xx+pPL8f4CzVdfSs!;cc0qR|HoQd=x5)5=(xhJDB`RwSFQat;QT zBGYLa7HA(vStyoqMx_niN)QTS^hFom2~X#|5MfOreBsBrI6VLJaL!8rXd!691Du&e zjalU8*ne`1EZxYEu|Q)n-d!`!YrMgP&ZDXFDl#HV_1k1@%y9rOt$XM7#$EuADH*SA z`yn#d)A@kfEixuHhb+6odQh<)9Y<1UX%G$4$xWBFBrtZ>fPo7+|L8f9hC5|j<=Wy9 zK{ObxFM?G=j4UZ6Fj4V&of^Z<G4k4XIs@IMn_<t1MSoQ`O4bm1&FQ#Rn26ScNqn#l z=Cypl`6Lq9pd}YWO-lUu=)!<28qG!(ZWgHE$csh8?gZRFlZmclT6FMBY%ku3Hm)d| z4>+4h0vohz;qTAK%ybt<AL`Lv6^9n1T4vL)MEUx~v*ap><wfy3I2BK1P9WbimlEHn zuE1b0;Ok@!9yylrlakSP=nwDV6qq+e$_;pq@diXn1<|E!Dad+s`1$D~|FsC8CrUBw zRpahC6>gVk<hTFrxM~r9g-tN6ASSXD5kafnmC}caSA{d<V|w)UR$}aJ7Dk@xW}GLb zFZogA%Zuc7|B|L450A%DO}Vu5N#}CkRA2`t{TjJ}SSS5jJoYZ}RhLP7MA0x}xTSQ@ zEj0y4;zObLYJ`I8F#WAsUWLGmRUxr&t&nKWuhmA*mRcH~i`e(n5$)55&;J70tpo7d SFOG@;0000<MNUMnLSTZ&HYaNU diff --git a/interface/web/themes/default-304/icons/x16/wallet_minus.png b/interface/web/themes/default-304/icons/x16/wallet_minus.png deleted file mode 100644 index 4945538c8e8300889c5e2fd8b0a64c7a59a80cb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmV<G0Tup<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00058Nkl<ZILl-B z|NlP&C76L?1E$zBFidq|m<hyZNW?QidKo6!f$^D}Q<MH*nGlN?U!R=te`Tr>m<H(q z>1F7%2IDiA`(yr}XbHrNFZ4wIUy`8r|9p4Ee~_Muwm<_q&B6E#Nb*R7FIK$0*zy00 z6eAQo8RP<6hM5elCJZ2a=1fQE|NYe-7<hfQ)&I4bmSAUtECFGV3oi9V|8Fs7IK$9j zzyQK$Ku+9M<_yPM3+?`|$uRxj;~@*?rztV~-%?=ve_oXO|3z`yK!Yv*7pMRYsM2Nt z;WLNoyuq3_<yrq<mZT3>I5$%5f4{fv|H=NU|F;#{|6iSM@_z*|5JB=wfjC+eXh4ZN z0|=klQ{f6$05W|+tQHFHc9;I2tI39fJ=qz~cyj{7pht*-Ay1j%49Iz4lN0rD;^oN( z{|j_D!0JGHfG%KQSjNCGa}Eo`*Hz*?|5u1|Be13@*hQ<-jKOga!&z#~z*sQ+pCG|- zMv5J1z!V0COW)(-{-fh=CWf!x96)E{z*g)GOMu$t7@8Ou=GHPWTtvqW3=H#t3Z(F0 gaUkYr81UQ(0A#2m57Sj-D*ylh07*qoM6N<$f(`5AsQ>@~ diff --git a/interface/web/themes/default-304/icons/x16/wallet_pencil.png b/interface/web/themes/default-304/icons/x16/wallet_pencil.png deleted file mode 100644 index 0094fe55005b6fa4f083ff9fae70951e3c678c6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005`Nkl<ZILoEc z?@Lor7zgm@5VZA1$q1t$OD&s=WxCRo%|iRd2q_aPwWdx>qj6L5M~2)NN}4ijYr!xC zL(3^5h$)C9gh4M36&Zy60lhDRz5I5b6A4m`h6g@eF86+)^W_`@K$}6E9`K}?D14G4 zicC<1vlMh|axGko&yT9(`V#UYTA!<*oZ&15iZr=8RE2jv7vuUkcokz_2R;m30cRe& z)PVkcP4dST^TIzZw4B0(FL#3wH*isedY#0i?5n_X*SWvU+%Cj);|X1xH(}i1Q=k$( zc_hiqAtt%vVq3|&<tiuMr>EdqeyV<NNGHr0E{t5u!t?8PHMjsqrW$b1PE5Y(_TbfB zH)j1s7_K>nz!^JWnuzYOB2;z&^UcMWy6MD(I>Z;XM=-8b?o<O>vxv#1j?=$?@bAa{ ziUP!9F|-}uhtbkB44mDAJGQMGoVSqlY*T08&mbnb-lUO<>AobyzICF$#D>Ak*%+^J ztb19P1LLq&H{gtFK(yOJ<lUtPbU85daJvo<cO+r7(WV<sHstBM|D);P7Ih0p!5Pl- z+S}w7^G{pFcMkXZ#E<Gj^wnck72_zh&=_aQ=OJe_D3&-p)G6N9mD43I_8(G}WD5F) ziJxl-cZ=8k%~a|ur-T=7m5HhL8^Zm-AWC$=FZY4apb%LafB*mh07*qoM6N<$f(@?> A1poj5 diff --git a/interface/web/themes/default-304/icons/x16/wallet_plus.png b/interface/web/themes/default-304/icons/x16/wallet_plus.png deleted file mode 100644 index ee68702740af25dcd1aac8a1982b575fc0bd12c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcmV+>0@?kEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005)Nkl<ZILoEc zOGs2v7zgkVBuAmE5=c6xq2q%Z@g2SxZ79eXGzx^wl=0D&g)%-DMIvbBG@{vPbj1+~ zEqf7&7PJY(MT-Na2H{F*(;{f+`rr2*FqpEz@WPLC59fUU``vR00PP3uJ7A)cX!0bP zO#LTQYUyExrZy*=@#R57SYHEfJik()N2!ro8ZFn<#@J<i96BG?=aD+hxpVNze-TnM z?%)7lv8H5kb)b4z@4B5>Xe|g4kPaMV(w!m_N)6ZI!>y{nytz?^*KMV`ZTX0h4%SEO zF;qy32J%QKY4LsEso$16EAZ;t35--F>$xY5u;g`M=28}(G}<}11m1KGxM?S$R{CAK zXtARlPn&b~#$a70#$3q=oXf!5u1dVTT7(5YL|LC__3<3glSM++JhsCYOoH=%3T7LQ zhwz_CLi@4E5N9o<T+w_6B~8)PVI!3>bp)+Hdy)Dm5%WzsyL#4=2XA(i?m%j|1Ae9t znQ`}Gx6>!AsQuxAEs%&bcKYs7-SP`hp}zYa*E1vd7V_avAZ4{kz<Auc^ZNz-$+&H7 zyP~+we<-ui99O3h`D23QGuA}*HwSj!Y1o+I4c0IYvseir-b^%jP+7O^kWtTl2JP*U ofKL9I_DGZ34k$g!e2)RY03&VCAA)La5C8xG07*qoM6N<$f`wNB7XSbN diff --git a/interface/web/themes/default-304/icons/x16/wand.png b/interface/web/themes/default-304/icons/x16/wand.png deleted file mode 100644 index c07acca983133ad8cb8f8aedd71d9f5e767f38fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004?Nkl<ZILn=o z&r1S96vy8bkx`O_Ya|+yut;E7C%qPe2ldinL(qf$u!D%uCfFehs)MJ92%;jys3Zbe zrLtd?x1vjbK+rwt<e{6rnM~K*D17kY?d;6w%bS7oeF8tZIUw*TF$CI+83MP5jNICS z1>A18#^G=P&+`CE0hFsWvEFBhL_1yYBsoZk7VvmHywmB7*zI-;3&`&hCHzR?{bi<1 zJ6$i&*W^;ERF)*^*=#nCz!|2?xlDhJo8Ke0qje~rZV}srhcw70lWEatGy+`XedXL8 z6L`oHp^(C{S7F*a2DH4$t6X-C>fk9ypkV^Uk6h3mpCwf}7K@dwR_h0q4F&^jEUDO| zLUx<fak5Dum4wMeq$Z1^$YlI}<2VlVdVTdg(EG_5cM*_}9gRk-GX1GmtLp=PDJF-* z;X3)h0Za~sLJjhFfL5!8l{w`ACI^E-MftB{av%_BUiSHXP00gP76hRwnN~M4C6jv* z9il~gD*I}r6X`(Okv60iVXxSa3?uPMA3_EZzA_!%??X65gLEOPN=VBmfbi9-G;(O{ P00000NkvXXu0mjf**?_e diff --git a/interface/web/themes/default-304/icons/x16/wand_arrow.png b/interface/web/themes/default-304/icons/x16/wand_arrow.png deleted file mode 100644 index 5a9c841188748ebe95c7d85b89dac40e5a4cf192..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006>Nkl<ZILmdB zO=uHQ5P;`N3qlBrm})~J(LfAhLMp{1#Xpol4@pG?SJE_M{E3uMa@a;AYV}Z+93-?w zSZ%4HwOS=uw$--&Ve3g*TYvD-L$nJ1px`M7Z_k-+NOo=e;A3{)yl-~iF1VcxGG`c! z_g8o}$l$fCB2b(jX7GGSW%Tk{Cj^7R)qcMp91aKQL@iGSm}_d7$rLHSnK40!=!8%x z<Ol=;Z9bpRsWuqvWlPb5O#UgH<P<5t)LxN`#Uhtw`JLTv-v*DcyOzfT3*(OUG0&YW zOy{pN&*2bTB-?DZ3s$QY;3?i$%Zs}VUX3teGKXV#!ilDRK&uIv*UF81Yd{%guxJ9L z1(~3jKE=v%DwX0cm+LRd7K;VCF0NERDvU@>$Ne4#xeOfZXsgJgD5^3(|2COSU^bh} z=Yj60<zOQN?byj=vMkf)X5k#{?)wSdQo}-nWtJ)@5(%B`IsE|k^#4*D_<BA=GTXYm z9FNC!vb#MGyLx{}C@UBv)WCh^{nBzQ7Awm}`*x_ye1!UIbM#h4`o=j$Z}+Fj{|!_* z8jY4^!^V1Wb-tDGph6gq+*6wK1)lxNIptW3=;UxXtQ*@L?t-0zU%p?R=REd-^Fy;0 z#5vCG>6Z$f+eES;2s)XT(Hnu<#JIG+^`S!01m0YMADH2sa;&KntU``!<aJ05vKCoW zsv8l5vHAAQ)+x@7k)bz+!1*ZdssC{UQir5V(T!|D9Hr@~UW=Hjc8IsC_urVUYDgZ% cyc${Y4{4A-M}~ifUjP6A07*qoM6N<$f<rhk7ytkO diff --git a/interface/web/themes/default-304/icons/x16/wand_exclamation.png b/interface/web/themes/default-304/icons/x16/wand_exclamation.png deleted file mode 100644 index ea33f5ef99fd7beba3bfcbdc1ff0373bdb443495..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007MNkl<ZILmdC zUr1A76u{33D_<%f(q6WZ24e`5_2<FSODHQJoCP6^g%Zo!0+B)6Xc4IoY3(UWBGD<+ z$YfeJSEiMvWp~c`FvQAg;Dcb6hSG!{g0FLKGVhpv@Z;Qb?)N*K@7@mzbqKyI2!kCP zyncWX4arzIj`bjnJd_z|ysCq;va%eb(Fj_t7Sco|FS}4b+JhmEoVWUNq0XfPv)QaQ znM}1sMMXNfLAVV!qmmf<mAEK4a^B$Hkdw)z2!%p%jYe|_o>O-v!(IQ!4g1m1eH+I5 z?xEp~88hVk{QT=`wHn|Roma`*M+g)BXc-F7*f-!pc?s|;C+3uLX>lIJ1`skPAS#I$ z9K8-q$sUhK==J(PEUQ#1xKp1ke^lsi!8C%+2mv3QudCgVT`rd_)ALXFr5w0y-<{eI zd_E<oOA(Y~JDpBhK6M;_)5t;M9FIQUx87ijCCfE6HL|>O2P{p6w+E8T{_h+oLzqp# zcrR`(+wJz$*pYrTCt{`1ziUD9ZPFCwTzZ1QY%1Gqwv>Fg0kb~zZS$`#+*+xqs1Pgj z^(&me4`LRPDOXihrDQ{a{98-nBL-=8{+ghgSorJ^u|bW*^*7y^E?ceEl+4B9PDHvJ z_vb!VE`6FlA)bZZVmf|I#3zm}ah>1uz5^^<ES5C+>`A&4?Pz@WI9HmREf$HH!}0_i z6EjD|XzwnG-}Bx*M72WRN8}NE=^6)SBbpzJUkk+I7oAvJ_R5i&l~jvQTd<8A>?aNq z-t|~W6cAc>HFVN-o@#A`n7<Jw{Y?-hCfb`I(s2_cuLGL@0ST;Sk|g0~p#T5?07*qo IM6N<$g8gVU%m4rY diff --git a/interface/web/themes/default-304/icons/x16/wand_minus.png b/interface/web/themes/default-304/icons/x16/wand_minus.png deleted file mode 100644 index 1217278f55c8ea0a0ada9ef7368be172d9e0a13b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0005lNkl<ZILmd> z%S#(k6bA5fS|myvDy5?|BoYh`p%775$+m64MaE5$DM7P{ZPP`NEMo8hK0v$3s+3YH zT0|7Bwgnlbt$m1f*OE>DfI|0$t^(~YerFt#xp`dpac1t^@8ryc`om1cX{HYwHD9-x zepohB>e(LC$&T&t$!wSsi9}~C79(BPNeQ}r-r~r&J+`FE{aR6@g?yL{!_edL_+&I1 z4ciTl*14H+IR5+VQAMiUFHP0L<#M@VS=P@`C^SUx(cSIS*2TC-uXtehDV@E0!2|aV zZU_g1!TCTSK=cLg>vsB@>H7hj$D0^?g&vOFAz35v+Z`Uh-9@ECriKY%96m~&dCb*t zp-`wqB9Z?R_WS+xY_Z+`sC2N(iZ{=hHj6Z|Fj))d^Laar>pz;Nk<aI=o+o)fw|m1( z?y+;ZTs174Uawbe&|=x)Y&NTeWsP|}w2vy@8r(XZ$z+u9s1tJAZ52+Z(@J>0Nw`@9 zJDf_Tl<*wv5Ut{Hsh;dB;bbzYg!|y-h0;GXt|$9)u2;gQX*PT?S$AO>zqE+M^_HCp zuE7IWxEs3Q23&WZd*KRnfCt*(GT47Z4-CSLQ~Ti-=+1QV{3dA730I-rX>#ctEvWsh Trel;300000NkvXXu0mjfF{%Mv diff --git a/interface/web/themes/default-304/icons/x16/wand_pencil.png b/interface/web/themes/default-304/icons/x16/wand_pencil.png deleted file mode 100644 index 1dfa9452a0dc64a0dbda40fc2b74dc1b71541764..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006VNkl<ZILm#L zO=uHQ5P)YCaRnhIm<lD4kjN4&39YBiscUUYNwWnpvJz~N_>&$&4HAP<o5X{P0e>j| zAf}XBu@({IHvY8MVtNo1FCIN8;=zmHDG+bZd22~_yQvR8=Di2sFf(r#0zQP&S%g>9 zE#5vv_^9cqJg&|otUS_LxO~nBkw~N?7z~0aieM6ryqQIRZ5}lq`T2gy0fmeY6h#q3 zq0qP_Nj^P6wT$f;B^G~wJ;`|F=Zj}ra=l(>nx=jBdcAw$C1p3VH2bgI>J;|O-GtSr zcd+NMf)?5BcIRC#7r-+0YvkQygbx)|7iXyKOK@UjKkzj|d^gHN{hjb>0l`uMF-pAV zF*k-yIh)Ngzu*6d%TA{gCX0eTRH)oT6Hjg-%#`3*VZ0@0G8tW_{V#{Z0XL}hA4so7 ztpV@P$iX25W7+9+x+(KZS(ag{yF2&|@!5Ms88%qDoJyrk^0o5_(P(t{DM^}O#Ugu- zSldueCX*I<=>hhI!{Jn;(O`pJUDu}p2HVPsM53)+xr;9vKXc6E@l4q5_CUFv9FNEU zE8ouJiqbFav)OD=UN6UDF_T<43Kse5X&4xm1rP+GDSNoAs;WsoMDv}?gScKEkgP+q z5yuVkPNI|8Q5wT5tp0^fUclNB1r)m5Mr<Xv5St18W7$RY61lY)AodXSs{u<4W3{gr k576F0bP(GKVJ*p~zfVCI=IT9$NB{r;07*qoM6N<$f-b}ieE<Le diff --git a/interface/web/themes/default-304/icons/x16/wand_plus.png b/interface/web/themes/default-304/icons/x16/wand_plus.png deleted file mode 100644 index e9ac4f0c5d40b0495a703ae72ecfef0e6957b38f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0<ryxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006NNkl<ZILmdB z%WD%+6o-FTjTIj;#7@PKNH91AHKn>r7A{nRT_nW^k`indv2D5tC5t3l7mbR#2nr%9 zgeGWc(MA!<w5aukcBhPre}GurxF~d$g}d>b+dO9axbSiAIdi|mxp&a*7bsp4c>TD| zhbe)tnk2??p(gP0sbu!{RX-w;h$9pVK~+^)L^JOuMc{KyXdF48C@Lsq{fI`RYB(Go z4F-dL*<h|L)?<K}U;Z_0aOC`Yt}WN=bwks%pFW@O7+z6#GjAtX#+|E(o@e*4@bZ!9 z>5qyvve)Y!_jo+Od%CZgPtyWlW<+ehN@L%`P~R!=>LV7-a_`A5=(7TACLjigHyp=C zL`%-+^F|;L_{Xx_?Z*9U+vKBSrX(!9cpy+M;!<I>EoZY?Dbs#QQ53jbuGV?*{mh*2 z6)=yT$z)nG7dtLGftrGwm8~lcHds<lr_&Z01qbk4kqt22iT;W08_TIw$|{fVX0b%* zGExInoa@WUWYQ{Mwgc5Yz*MI`xSTUM%6wG=DJK#MtDM^fl$|9ytTPvuhK=T4*3EJ} z9=FN|w*U_vjDF(pIb$_k=VJ$0j>TeDxw%ev0C(*r+_CG-kw3?c=3drm(d%H)B=04< z2zn(r8{g?3*nt~6zq@`PHYk3hd@~{c<9^~OG1iFP#34d$Ovm5%5em-Oo?yiG17~ez c%5B7^|IR)SyVjYj6aWAK07*qoM6N<$f@F9OJpcdz diff --git a/interface/web/themes/default-304/icons/x16/wrench.png b/interface/web/themes/default-304/icons/x16/wrench.png deleted file mode 100644 index 8c01122da620532336f7742f6d524356605d469c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006?Nkl<ZILnQa zU1(Ba7{{L#nmSYQYt!Ke%@6!WouBg~&rDj*raQV_1xeI6GlDLHpopT28r03`D(oVP zZoKp+bOl>ZB1ePK#Tx5QyXkIpe|lc$XfXHjz>fnj@B4fI|8ow&fw5RDFf%iAh<rXT zEffluk?RE9swVqsn%+Aom&+j%i9j}+Jwz^-lNO7``Q_#Mr%tD{t57KBi69gT?FnQu z8Duh<<G50-RzGiV|73%~z)N!2=kq~2ogP7f8YU+vPvYjr#`j%@VXAo8OA@D2sS#Yi zjq)2nQPi;{lgT@+);E^m^No=N-cqTw)NZ$T<MB8HX0sWrRx8-;c5t~|;PH5XL?j*Y zy$r-+vAfOY8e6M<>`E3Em@27LsZ`b+4hIb)k*NC~R4NtdbUH8^jbO9cx}rcJFolwP z^?HpZlJ)g&lE3A0`K#0Ee5lcAlt&8OZueEc-+#Z+_`;5kjy@3zh0l6CLavF$;vuC{ z34H}vX*wJZKVDf`VX@W&tT)Z)^Wh*UfW88Q!H|naV~eY+4c6-&dulS7vLw-|1X`_@ zP9&(MX0wIgJorMd*VFrz`UwUH2mcF(hlleNm3-Z5{b0w(qp#Fzb$-86_okz!Czzd> zNWI<M{Kdv%7vJEoJxdZvBoa7rP%xKBTzbE?^_z{ysdpG{P9PA#sRuVd-`V+tH&Y*Y zJl-u_8bU~BIU+^G$aw?{10OkuaFDae0B|^*DK3}0h))I=+=vsgA|~VlqD54Q0wJA* d2(KqO^ACX?&Ib`FWzPTr002ovPDHLkV1jefC%OOt diff --git a/interface/web/themes/default-304/icons/x16/wrench_arrow.png b/interface/web/themes/default-304/icons/x16/wrench_arrow.png deleted file mode 100644 index 77f2f3ea3278a4c55617129a2ba94f26ac3df916..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmV+s1Md8ZP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008mNkl<ZILn2T zYe<t(7=T}=6Ym4v<~DIkyNEg`bIwiOrF~Ax)ZE<EAFj)alBsk7i|j@bp+-fRe`X3v zW{~u2M4=YU%ZT>n!U|Nh8)`xSr2nV)tRh6S9}h3*@;>K%&v!oHa5%u_av?f88gg@U zp`oE+3oe%{wXv~r4|0eC01^b8PA32rh(sbVnM`1}+qd9wI8r?xPwV95#PhYawGDwl z&`JfRrKP_Fd_EuQ>gsl4uix)~v9z>E3<mv8nyl05pr)oK0|gSOuCD$cN5kQ{4X@Yh z$7C%ny{f7z1Lr$XegqhX*%6z~c03e%MJPI5F|9z`-rnA~y1Keyu~@v2lam8^d3m5x zsi3g15Q>V5fR;#mG#ZUjX0!QJFgQ!b$Dc(cZEapZZD(w3Y__1FzzHcSDUg<y24b-o zva+&3p-@16ettxx*XwIha(ZH7oKOkNMk@I+I5_xHtyW*i%*+)2Q=rjk_LY>BoSm7O zCNi1qN>Wl%_irvC`*}QGx=<*DZ3Wm;eOX!A<v<`nu&wjhUVVIgJjk70pm3dwM2W@* z+Y01zxx-{K_fAdC5UsZOs#2-6t1247bax%hgI|4?p>Hfkx1s+dsJrJk3#3x1(`se< zg251ebHk17>};p%#6!?re-FjC76Fr3-x?t_>hFATZxY~ZbTN!=AQXB>%F9jt5{bkm zx1WK6Yj1qGk)<Rae8jdqULm)?5JJbe=KdpSs;H<Mo}XVKX7lbLe4S0SB3aiom_|OY z_k1Gc@LNKf!hh*pBm~!4DrmM^D@PU<)``W!+{fE(PDn_g4-S&`ZV-1o^@-Y^uoPN> zet3mA<_Mu<Tyq0%?pa>`jwdstadC0SFfSd!>jgfNitwllNlb2eFsBL-lI$LRomhGC z0M13xU%56mHnta|7bi4`8p%VH$Sy>Rh!H`IvGX3cejprEcG81mF2eZ<OC&WA12tbu P00000NkvXXu0mjf-x+Gr diff --git a/interface/web/themes/default-304/icons/x16/wrench_exclamation.png b/interface/web/themes/default-304/icons/x16/wrench_exclamation.png deleted file mode 100644 index 597b5229ef4ae759d7f54c59262cbb4147fbd060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 832 zcmV-G1Hb%<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0009ANkl<ZILn2T zTS(JU7{I^3H-?yk+q}%Y#JuFZrE}i5xxdpiowrSeLdY)aG=v_6Bp-~(3)Dj*QMnnK zRIu#Av|^g2&TVcpQM1$(e3+S~prUWV>74Z-VcElvkMo^#e*f<~=lsFJ!2z6|ox#!3 z5yHd6p}4sC01Ab|v!tXX8*`Qb02~a+<#GTb@bU2hp->2gg@p$wDk}1<sHmtK8XA1N zy1Kf<X0xk^AUQetw}8cBflMYlj8j^zc6f1d0VO3R-Xfa?0s-Xa=K5g)2Xb<9{>R0s zsSi6!rBaJG^GWGhSy_HKe+kRa15MM1B9%((EEY2&2n6w@0)B06ZM)58+YyV!N(c)J z10IhDk&%%Q6B7e*adALOBt533rBNc0=(52uj&!;=c1cZ*QcK#=Xf)$dQBiVmcXtOS zlL@}Qz7QA~2q7UM5D^h!7bPYp=3z<w;Ghl>iPdVaWLKq9nWCek8~y$Lz5XePjg8Gu zNJzM%*N-7CmwT=9G-IImw$r?_oYCjz=2q_E;o<G&<pqBg;FbzfQc{{mMn({B>#8FE zSlML1bNBA1`WuOzt&R*)k{kS05F8v_BovC;Mo0CC&yT+z8X8(?dO^vSt=Z<Edm6N4 z$uyI(@i_&AKLh~*0dk3iZZ{Y#_|B7V1_cGlRc)?LhCT=N_FCH(euZeu*0e>&dJW}- z*%#o~sGw=-eT(HIN=+4Za5x-A-8m0<|Afkz9zJ2*wlyMrg=lTQ8d+a+jU@l>@xGum zBO|MOW@Z_QMCoe$I!h&~OwjdE)KD*VcjZ(0#^>3SXrR9y%}%GI>50@0k|*;-P$rRN z_Ri0LMPf1i5T9<DtE(%VDWKq07nMBrjBQ+5pwaRi-(CTU%X9H)<mnM3nFqYMb!q7b z{xbcD!C+M4Mcx>Eyuj+aLv=5hxZl^m@X-3=akRJDV2^|a<I(k(_b3(lmGfL&T-tC{ z;!UxbXbcY%T7Ln0I&Z*aXERvU&0tZtfEhE<)dHpmtzc}ZhK^r<PFjhidaX?W0000< KMNUMnLSTX*IEtzO diff --git a/interface/web/themes/default-304/icons/x16/wrench_minus.png b/interface/web/themes/default-304/icons/x16/wrench_minus.png deleted file mode 100644 index e0ac40e395c8af052fa10f35599a0369a2bab1dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007WNkl<ZILl*X zVq#)oW@cvi_wOHrnwlDerluwXIsmE>Vq|1A12QE*{MD;h?*dZKf`fw@7(oVziHR|& zs;V*w3kzdt25J-%5D*BBj*be`)YLLHFfb^6{rdH0OH0dVQc_Y3j3Oc;3_uP89^jRh zmR6#!uI3mQ7uR><#K~S$Q`2WaOQktDIQ}zwdU`St0I6+lt-Z5m%|1AN`t$}M|E!yv zn>5hdfh;U6-x-~pobc)fdNHrPy=@|hot2f<clz|1W!c%;@s*X83DMEf<&5g;>fk_x z1ttswO$X7SFe>QiXz%;-<uikzpb*3S`SZ6F6cqSeym;wYQ&UqPBOf0h11l>l0~;F~ z3T9_#2Z{Rtv1WaJT^BbuH&C3F;s1YzuRzULCQX{O<^B8jvv3*!#C||=t-ikA_W1aO zrk5{YvO#_I9f<D(UAGHp$xEyT0QvsFs55MDZ?DhG%d7eO_wSXvckgaQ4jY&&F$@5* z10^M;ELvOJ$_fh$T0VdNbXN7(uMPZ9pP~eA!0+D-e?jR4*#ICNtgNhJ-`d)lTU3<W z`{Kom<0`*@uT2JOX2udjC<Xv=h?bU)TW9Bl)PjP{srT>SJpdG2)B5ls0}}(oOhyI< zV{`-l1JeY|fG`6CWAFa{>2WzZ$@8vVyRs7~w#xebdj^*uKR{~F#K*;97_e~BBCrAB z#>VEp)2A<tPEU_na^b?+Ex&*NUit0YH?SfXAa(${;13oTuz*~^#l_We>C(gUq@?iW zr%oL^@Z-mijS$x{{Db1ZNNfzu2udu#9B2Fg|NjR-n@>PB{6WLN(da)=b$<cq+UjD0 STA=j+0000<MNUMnLSTZDvq2mH diff --git a/interface/web/themes/default-304/icons/x16/wrench_pencil.png b/interface/web/themes/default-304/icons/x16/wrench_pencil.png deleted file mode 100644 index 937788a6fe16a582cac4b85790f2c38d21c018ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmV<P0u23$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008INkl<ZILn2T zT}V@L6u{5jm~Ap<%*~H$>d-lH>SUX9^W*O0dK+zXxw%bWdPt*eDn&t1q-OMBO7$Q` z5Q`|o2w#d-#Ad=wM>I*02o-x%UwRW^kN?g!i)>{Ve%#C9p5Ol*&iR8tAOMj_1VW(@ zs;a7>qoX5(U@#~Tg+j-WlRN-GBM=A#0C+(`K>;uf13sTG1Ha!d@9ysIotcTh+uYpT zRw|Xfyr8kM@rOX6P=MF#JqUL+8l7ERTO}5Y`8J<yGMT{R@f4we2A9kAKTa<#ecBF( z!%<8&@})bS&LWHtp!^iDEPEgv$DK>1J`x_2sh+RE*x%njv9YnSZL`_JP+3_CTCEmp zYHFaat_}<a1MnsCJ+`#8P*$t;LNd8PVzIZolD@uhly7HxdU~O@wl)AVnGAAsbD^-X z5K2o+p`xM!s;jGaMP{?P4JDW2@fhJHi;KIJ>_j4w4?3N0u(-H5@1Fv_UVpryq2coU z{CiSfUVdFFm5%N)?3c;LzX$|xk`!hCs{mVSZ)$29NhA^k+q#PFwM!%t=;;*kJE1;r zu?&%s5%Q9v5*Y%uTJ2{T>)71fJTV&UZ)h|cU%N{M@kt6|Pbiz)?H)*{)5J;BcOKzD z_6bT#N&*fCJCRJLaORd<DwQhW=8pVIesQ0Ao!+`a%F4=y<Z`(#!q4=l0Jky7vfP7I z>N9C>X71879dwxUGm`HOQ?p)H?8wQ<f!_t4t*y?-%gbMh)oOo;+u6w&<na6&WF(JW z1kPg@gIFvE*b{U)97mt7tZWgRjh#euS9W$bgzNy%hC%aZGG~GP5B_{}ef=Ar%ub>8 z42JTNJVY^mmKr5Ht7Kx3N}RxJfiVek2oWJdgyOGqTUJ)q7{0?8&?7oTi)awi<Dp*J l^pqdJmB?X4iir0lg710E7S(4xx3mBN002ovPDHLkV1n;^U)BHs diff --git a/interface/web/themes/default-304/icons/x16/wrench_plus.png b/interface/web/themes/default-304/icons/x16/wrench_plus.png deleted file mode 100644 index c187f255fab2a22783606fa7cdfddcc928349c20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!E`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00082Nkl<ZILn2T zUr19?7{EU_u1#B8?w@YMInqts=48%o{<~YduBEBDzY0OnsI+MWJqSS&{dp)sU!)$a z2}u%(k9!HVK+_TJrXW3-7(r+~2t7#er|(?<P-%AI$9K-hIludT=bj59kq8)u0kK#N z6%`c_iA44hi^UZ2c)S_8Kmh<90?}v`fC`F=ihyNV2!%rX2#3RpL?Y2MGc)~qV`F1W ztycF?L0w(lwm_v)L3?}qVVp^)({EN+Katv6&k)`0a=D<jwN;M-9kjHx{Ey2^ON(2{ zWHODLowW2|FsR4;Rg_-@j^hp`5C~k$X5SNv%T+@waQ5}}4X>}SZ~1(_B$StzgT-P2 zo6QDQRaH=3T@AEE+GAs5V~*GBy`IS|kg2Ixf~2=MnWpVbPEIaVR#rwqCX<0usRXT7 z3ne8bU^1D&YPAX?kH^!7lK$!GDMBSYFI4g~l}f#{+wHfCi;Fe?6gV7?vu?Nh#{B$S zQd(MiS1Of0*x@#EUM`mxYBU-+P=GCU)YsSFnVp>_*w#&KuOlxn514cEJ*4geI8abl zRu*Pi@4(#LJaIZ}?wif#kg?eW@KOaZp&mhaA=3G%;!lCWV2Jwt+;Aq7#cy6aXfzt5 zdd|4La7+m>uHrBK=qEG^^WOz{8)F<7c#_S2Bn=JhBb`ncqZPr^0)Uia1Q+v^_+~fR z9Siv#L1$A_aBO+`Gx2&)j^gd?q!mdb#{nJ-@c!=+@;5Y31zmpssqvMSZ^Y;0p5y6u z<>%+a-gEj0z>sVN24y_O_LU{OV<C@=AFi!!;+we_5{aZ6w-h3Hynv?!*d)l2W5`js zCtcKiu@a0Qa4tr2=&#(Co0~g;F^LHWVn-~9899L%5G|sH5c3SKFiQ|-QaEQ2(J!pM V3HDZk?|c9N002ovPDHLkV1l(WPh$W8 diff --git a/interface/web/themes/default-304/icons/x16/wrench_screwdriver.png b/interface/web/themes/default-304/icons/x16/wrench_screwdriver.png deleted file mode 100644 index 123eec587ecbae490f92e354eb9fdd03c01285ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmV+_1J(SAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0008<Nkl<ZILmF4 zZAep57{{Lr+nmlcowIG?#5Xj=q3LYmUaxCpGI4L}m&%dNrXh~<5*AT{q){IdKZGbz zR#bkNv0|Y!2IU$}vWcLHeRCFsUqlLmxIJf0Q}Mu$d+)jD|GUq5&IP;O4*Rj$Y+$ii zcEIO!oIi=Q5&%GofYoXR&}y|Nym2Dr8k;1c#>U1NX0tin;c&G3{nIniXmnE~615XS zb#?VW0S@QJ#s=Hg*2WkN1|To0s;a<bGHr9p>-D}}S^2^$mB;UrutK4L`uh4T6vQeq z6&4mUp-?E&($d0^a7jrC=yW=$tE(fNpP&D<>2kTexVC}>j7DP?&R<0NIoKWr1qDnX z5Qw0eDJm+0;^JbUX&SJqu5kDxOHe2(Nd*<1ot;B#YipaheHZK=`T6;b&*zJ%)oMl} zk$_UEq%<0hI~bg0r>5S-Bpn?tFWJt-#KdfAX{i<VkG#A*#^dos%FD}{va&LZN~P+V zo}OZfWNt22$=2xTXh<%XU(3$U&V++TZf-8~!0ldoFAyv)c6YN_+0EqS<XdsBBd1eS zQ;%e3VxG_EgHR|0QgTjC4q!t8d(bqQkg(1U46q&^FWM^>ce%M-NK8!J0R<2fq@<+m z5nwaTYPDuCaJH4b&EtLh-q7%KnWA1UQPic+6a^RJq5}monarx!(?h{v7|&dJ$DWqv zeho0U<#e(bel<@~%m<XrApIN;oDm5A3&divjiwDF;qW3`Q==Z1N~N}T{K_OizXv71 zuooEi1u5zZ5xl@&Js}N?3z}+cjSm+VzOovPZY(1sqlr{hiT%MaS=|2|CBJ)nSq%IA z6m@mCpjod!@pyT8oz-gTaok&TQc}{MQ?VoCD0zgEKYe{HhTlB{xDgZJ;(^uGANXbZ zDV~TEr$oqM@(M{n_{bqd*aL8H3?<}rMgYPiM8M&2nt43lAeYPSz{g|AQA9=pq`<gL oLjHC{?gkjXj}iyKWfe~R1s>cK2xcaj?f?J)07*qoM6N<$f;qu@#Q*>R diff --git a/interface/web/themes/default-304/icons/x16_sprite.png b/interface/web/themes/default-304/icons/x16_sprite.png deleted file mode 100644 index f64f7ce7cf59c22c636e3e28ee86283436774c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8569 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 NWqEZ_1rQwg{{T^r?C}5q diff --git a/interface/web/themes/default-304/icons/x32/calculator.png b/interface/web/themes/default-304/icons/x32/calculator.png deleted file mode 100644 index 703031eea066640b72ae09e59bccabdd65124ff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80005<Nkl<ZSi{AZ zPl_5r6vls*?uC#HK|H`5LUApkE?frm28QfBMh=k8%y<J`xbY0L5LcdHE}#xf2;Kgv zmqoh7*6vAHb-@%!)wAS#AK&-hvy_OCwT8ptcRa4?bo!L_y~-jm7!157H)}SV-H-^g zekdXeU^1CJ_((h&jeg|a<q<gVyWOr-@@ln8p3S)g=JR<6AP534(i=SBu@C{^<dcBG zE3AN0>IiWE?cPgvHT{QIm;i7DsMqU=2qJ>k`sQ;woifjh#R7m{uV?%}+A6U3*?#Zg z<tcC|ld#|KpVjyu-n$k&|9bW%!qKS+!!Yz^fgOQ%yZr(%9*?~YqV;<HVnx7sXF8zF zG96?)ij^UvwPv|o0?=$W0jy%J^%>7b0d=Xs<$r_io+#i(z$nn|b^*@yU=t@8<p^vx zo7BBc>`EXd;cB%4pwVamSjA37c&&f|aM?>)U=-+dIw_BBVy7ZBZDR;*x7*acO`Kqq zE5b50;KhOun***jaNR}DZRk1&i~`qPRG7fwaQIYa4qRJc@Cp-%<2dwL0|u`!fhdXs zpL4+A<q}Xz-2tD0ufUgDtrlE9D6-BraU91%lBW**0bYUMBJ!50z<$3E09viqPfu^c tTm_Vf+$aE0sZ<6&pXN~%&5~nEfxoCVbXXi6gt!0z002ovPDHLkV1f+M{(1la diff --git a/interface/web/themes/default-304/icons/x32/client.png b/interface/web/themes/default-304/icons/x32/client.png deleted file mode 100644 index 1c9b5dc52d355fe67c9ef66bc26ee630610c363d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2410 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 diff --git a/interface/web/themes/default-304/icons/x32/dashboard.png b/interface/web/themes/default-304/icons/x32/dashboard.png deleted file mode 100644 index 240d3a2bad9989406171fe2546b439ec6259366e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2025 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 Hu0mjf=H1SI diff --git a/interface/web/themes/default-304/icons/x32/dns.png b/interface/web/themes/default-304/icons/x32/dns.png deleted file mode 100644 index 03e63b060048b3bcbb3e3aba8c98bc4a9ee5d582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2049 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 diff --git a/interface/web/themes/default-304/icons/x32/domain.png b/interface/web/themes/default-304/icons/x32/domain.png deleted file mode 100644 index f829d2cba2731923565b46a1011d206083f638a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmV<K1rhp*P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000HGNkl<ZSi{|x zdrZ~m8OJ{d4hIf!C^xwrxp=53qA)}@>J2MJ1ym|xVFkq_u+~{GxR_WoW^X#1g*sT% zR5Mn!Gqarwk)d5o-Lft<YdcG;)w-6g;$>cI%%~b&$@|?OP#X07kgfc&>`8ukf4|@7 z$#Z$1_kEui{x76%5Vp`}&2j>UGYFf9WpuKHGgNYxM*}(t@{7GE`^Hk+H+nf1ziXD3 z{^3WeIP?S25GS$&+WOd03+DH=p=Cad*Mtr&h{Z&*9JQZ)+uYK1wO>4FsI!X*|5uqp zyiXSCzZ-DeUBgOpD7DS(|JJkCj;rmxV-=fuE<ruIWzP1TR_^X1Q5f6<lu^wyZ1Tw} z2V`zrMkICIpx$4s2o#UF#H5JjLz;nVZdD&zuS-1_^zQZd46B@COyCDV7)!Zf!8~`? zvO95Sf&Ti%-^{^lZ<>j_CX3=&;dB%Z>b%@Go$veUFV{Xa$8H|e%EM2Ja;Jc2DYMP6 zV4DZlzluy&`RUW{F7saZyV`MKhn~6clwqk;B#(Rp@W0D(Wl--};rB*jbB-?QygF_l zQRHTi$aP%>a(L9Q&4SGwXl#+Kh$kHS==yQ9_wrtC>e?i4msftvgT=^{-l?=)fPPx{ z=Pl~E{=Rmf-(y%BAmW1#0uG<d9dr-~A7~`r7D|Ov-b0U@UEMpi`s`{=`csx+cAN-{ zZU=&WI$spHgcX50^2Ph+t?oZ+PHU+s4i~V3M*^!X*qVVxl-oN_kNG)eF1a_k74v+Q zSP(8!Gj96apyhqrb5YQVi7oj$diw(%=-zKw8zv^)*99a|?mTM2CR#734EJubQhP|x zFeIk_1K0?-eCn1uW2v;O`Q&!9|LT6N>v+<zFhm5|TX-NK*(Y<_UjYK|Hs(LzyiNsX z09ihj%lgXqu&dFwE=q@QzHM6n*(%T0v0_ThZD1~?uIDXS+3=nHr6FII?5osoueGW9 zT(e=ZLnMa10|c`$^tJ^{7#`<y!yjU?T|3XcYIa<DMRVGU#he%c8z>GhuwV^?8+{Cz zd&j>8cP##r=)M4=S|c_ls=d2S+plhuYeSUCjK2y@WPa4^7Hs;^`gsLOl#t&4ec*w+ z^&fVr`pr6Rzqn2HAFnkm2oaH?2Y}!~ScG-vfUO1>wVY>_zj!P_EDRT!_s#3qbN8Km zb7E^*;!w-Q7Snj4QR7=Ch-pazYAA~HTCm5hv#;uJ$A5P;rE5p$KC|`Y%O?EC31XI8 z&^H^i<Gu=@b6j(#wtxPz8qPHsyn(_K_bCuZQQS!jHh%E>SCY;un?Ahui8*oeBfWNc zkDfZS(NOLb39-BS^$Oexl!R!_k$Us=>8Dln`$9uOobdO5k=zj;pUiH539t_yz;{`~ z+7O-o*D15_%06v5y+w6hwX%ILShzj!^dH6fNlpGMTxz=VQ?vfudPQuE5E=L103M<s zxzU2nyZ5%rbBtkefL{3cXXY1ITD1DqYR%}FW+;vn;jzC1oK!@??08Mvlc$C=4XQd` zX_y}>qNCmd;s#+uy!*|HIZ92Crth7m3BOJgwGJ^p`|IYB@2R20sWm6+&C1VKD)aSp zG4*}{>&W*kvtS$U?bz9WF9_ya35UrYC9=ng<Z+(^P5l`>nDR;3`fxRz|Dn8HUfG`r z5-FoE18K}mIqrj90;Ucvd$;qeH$Na7m=8<=LV7!8ikre{6|@(ay3RU1csQ?jfrYq! z!|2Gd6!~DGu2#!N_8-fXv?g1vQ}t)onDWkYjo2C?GA0P9VCuL=3+5fZ#*;V7Wc@Nz z-p{<6eR7szQLu<fJ`Ti?=lRltr4EntoV0A_MJwZ1X&U!hszz)J6_e8i{DiF0-|@|C zFZjGi{?{^T>?yuIT4awA+2h5?q*FltJ=r&wtWo`YrSB$N*!N7v;jj;Z{qM`a0r#3p U*q-cj#{d8T07*qoM6N<$f+U^+_W%F@ diff --git a/interface/web/themes/default-304/icons/x32/drawer.png b/interface/web/themes/default-304/icons/x32/drawer.png deleted file mode 100644 index f94f6b68f13f7d2b0658c0f8af8af72077340ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 941 zcmV;e15*5nP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000AYNkl<ZSi`-S zy=xRf7{;Id-pyHD(o0A}u(L20+V}yn5G+KnvsUn{Rq_Y;2lxf15y8rUm0%<I(Fp2+ zfnbV+4QZ^x-6hKH%<S%rMRvy9*}3dRFBw>v{os9`dFTDj%vwSS=<Vrw>k5DcjJ7?v z`Ch!%A6mMBC+7}CT$#A_p=_dL;BlY$>5EtAMydSy?NUpcxZP*Mm7Pat%OiIjXQV^# z8|T8Kvli}r+%=&x@bHZF4FE1(yFLd1NkT?yAc{f&z?+wgEdaRtNt`TYK(9sL_f+3? zUHHC_AP5iy0es(w=XtPg8$t-=d5$zqK`BL=reKUAO;co92EE2~9c6$QFXA{xr_(8Y z<Tws|-&ZC)&odg(#dQPY<Ks%FV!%M-fizKPKnMXL1U9<ezZtMBxV8<~ap2oFyrS>g zHXO@BE(9{pk>xp3&cTX)#yRpL@Km!|#IBiwgKoUefXslLyAxAWa9tOk=hYS=V@%b6 ztb<k@m*Nht0d6)Rgh033MHq(2^Be%My1Hr{-Q?sX2q8$41e8)V8jVsMA%xPYor3=A zl_T5P*#Q82-`vFfy;q7F0En0FR}77fja4wzb?p8ZT%a_1JtOjp<4#2^jyuM0^*B;z z=qYH$afJc^SiEteV&XTYB?>mX-ThC2(Y^M3{?xI77!JxpZ4uT{APES=P_2fJ<3I?3 zEX&kVOes}0vo8vG4FypYq0wl-vMj8utQaYno}NaMBuJ73gpg7ZDg(7s(3f&~PZ<Mc z4BhQ*0Kku*KaCXVYgrgYr8r_w3V4wPApjx3IS1!l-S=OEC@_7i$5A@N*1*^G^<4@a z2cB)iFAgdu3Vu<FG|$0`Jz=BW-bWGg;VC#XH?1}#ML{82OTm6IJUKI?_JJsh5QZVb zFof^>B?=?~gb+nSmSy;|wl*3HWJTMyjpgNKBL%awv*`7D==FO4L4jcjC4_(wf_A$N z09f1FGE<<f`#}&Gm*TxCfZ0f;;)i%<iZhUcG(Q{)q)x>Ep~F*f`uNd*ra<ac4Y2Zy znTZMGsaRgF>y}PLS(cSfLur~KFE*$Crt7$tWz7M=<s*MH&}=p<#U%FviK2caV~l}P zs`ddw2pD7P6eVNRwD>11bX5lAi{~#|EgWLA0H~kPc?Zu9L-bva8?yfgyjc0wR<uoV P00000NkvXXu0mjf)atS@ diff --git a/interface/web/themes/default-304/icons/x32/email.png b/interface/web/themes/default-304/icons/x32/email.png deleted file mode 100644 index 27706144ec8420945b3862e3a54db3487c928af8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1503 zcmV<51t9u~P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000H1Nkl<ZSi|j? z3rtg27{@hkCT7{(!}<!wWn>f7fDk4|3e*XrF5p~<n^Vx?d`y?9aq2eQBXeUzg)z-| z2<SHFbC2l8TtFwH3}OLAUWEcJlt-bZw6z6Vpy$8u+)D)nV`gw!7Ekie?d7)TcfbGl zedioTje0o#Pa`n!yCHvDv7+U{gJrVsZ+{N(PkeIr?DUj*^Nu#Tx<&*%FlbQF;As8) zQfGL39X=lrcnX=BN__T7Cp<j&chIBpBMM%$=-WZ}{{Dx9e0)+$m%VZhX-AvTZU)QC z>0#M<4i>py4v9qe;Ru0`3<gWnw$GoR-W9nf3qPMVqN)~5Spx<dd!miVtpxIl9GEfV z0C(Z3`vxyv+7Fic?;j_Xro_u+N3rX@0_5cNqKcq3DnQf71o{t0EXd5a;jdCatp$r* zSAa>9;7|V%blI|Fqe4QGZ{G(8Cr$U4CjGQz$#HxUTLJlX2;kZ}psATbZ(y)k0gKsz zm>4}uYJoxpLy-c=FBDwpqG_JKCpawZ$Q`yP`343g$-~2cL{e%!Zj=FvYA_XnwJi(= zBf~8VLuZHJJobIA$4zB7N~(Y|B@?98gRNOtgh>;Z#M~9Ue0kcS`^AfsSG=?!sbTHf z44gPa5mkUGlwfKN(9+7#PGGB*p{t9*-Yr_MD7PUkU5A=_a;KI-Nvc*c)KYr#<cwU1 zv(eNOhJAtX@RPzdBqZfsnJmS&`JHT>J8wm)0<5wcsMj#G>KKeB0#meIHim8j_x3V4 z9Afm*yBpBZ?0|}Zb#)B&^`bQNTSGfo#G5xTWpe1gySfk>nqC_ldl`JbUI&=b1nAm; zHUnTZLx|Ys1Up19V<P;I3=^_44QOfv8mSnYni!g?Hndt%IvtRm2e`W>^bl&|UGkq? z85MN~udhDIwr~3#$%%!?zNA5&+KhXR=v_518mTU{l%f_6q{7rQw6%#cP?5G<z*a@v z#N^3gal^iVhsSE)O`9&G)e3g@stL!>X%L@OjNN;#VDpxX*tYd5Vq;2h>O=#s7nxva z>lWaN2b)n|Zib$_<%G41G8+5UL0yu01(@l6sF!e42f@u|^sVFZb){uJ$hiqzqZTTr z{41#9l~h<I6&B>nb@=U96%HnpVb2G}*s--732{nF4+sbWYN9$Zn?>Ea)h{b`i=JFq z{%Rp6NMw75b-~wn^Wu#guAq%vke4$QS29#oGrr0}O)t{e0JOG>FcW3QWa^=7uVB9u zXt9XmHN(}>(JwfFU$TH%?g<@3I)dEnTifGQ#l?2qpry22fHSDn3=JBwxLRAq{PLF& z!4M-H0PO4(Thys;$`-HLatdVcmwL?eJ;`A&4|;(yW5x>CxpOxyTo;uCtBqQ)MuazN z#H!|So@bs@XT*0xd8csM?YvWjGGSG;Fzwu_#$2B>aB+!Lj~@NVSA=pMl7ay)R2RtY zP}PI+$eXo8;oN4YwFAMtP5TBbECAl#SOHIuR7{x~Rzg#MO!6U(9kvFXF8I8-Az*D} zHZ3$@PTQUEfl)gx9suSm1G|uE!>W}<m^E`>k7S~ME={?W<VG5O&;3BH7G01^4^-vl z+9=;(9L_8JPPhmbqqW;WEow$sXb#-mqOIe{yJyfe5u|DNwGDfDN6laT#zkRr-rECh zcNP|ZW}-s;=8zV_3p4Qi3tM#K#!WiLH&oIy_k9L%)`Fk(K*iO|UA)g3kDkMwU?p|Q zt{n>aOHbfA*Hu(lW4@-JEFe8LV#lvJo{_#QU%MaxZFXVPWAglNY+QdGK0fgd7ncRs z=xguy71pC8diHD6^||1;zvR*dJO0eFP+{f5%j=`A2@;P?dh{0Q*#~~)_V$kS3<^qx z=bUYZ$Df#XitpYe$-nZC#_7{=ew@yihY>$wKOFys@i&X~fL;lPhU)+T002ovPDHLk FV1knW)B6Ab diff --git a/interface/web/themes/default-304/icons/x32/help.png b/interface/web/themes/default-304/icons/x32/help.png deleted file mode 100644 index b6a7afa49b744b630166c00cbafc140c82e9cb4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1950 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 diff --git a/interface/web/themes/default-304/icons/x32/login.png b/interface/web/themes/default-304/icons/x32/login.png deleted file mode 100644 index 7e81f556f71b42d7d3709d625e62fd3a3dfb3260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2357 zcmV-53Ci|~P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000R5Nkl<ZSi{Aa zdyG`o8Nh$%-r1SiVVB)ySsoQ!-k?0SyhISOuaJn8`k<}F7GsQwwi>CXwl!LtMk}>e z+9np;V63Q%fRC7f+5&=>*TN#OF0jk&F3Y}W=RJ4s+}GDXX4d7g#wKmjo1A>-o|~KV zJKy^Na2K%F$N%L~7rxvHbxLQX<0{)i5`q$etRPAt3y2Gj4SPO--vF$dJ({;Z?fk+G z?zrX(w$!zMIl#AI{^}bzxb~NY)e;TLfg%MeKrUW}oATi=y^>$tYx2U8Be&;ZYybai zW(-~IS-G!iKHnI}q1Vy<d*5t`?d<<v7Su_Y?qvX<E8c}0XU{6UTmkq!`DBw%y|%$) z^mvoUUI|KI>1su1hupBDMAaNQaz`s{{mEBDHxDTrR<rn)+e6b9Eg}^1V<x&eb722t zQ{LZAOMBn1HrJ<~Oqec1gBnTGyO`id1-Sxtr8Xe42a)55)FUgv2A;SE-rV!3UnF~{ zNajiD*u74s!Knx5YJYkA*K0&1B_at=GUr5MCq#PoiFEJuB(hERzVJP{Z%*-{FEWAe z<-%lSkn2l^7j&WlZh+|%s(el1^JB)K&zZIST2KK9jbZfoV=|HAscY9gICb`S9~UfJ ziLY3pOwfEFI@pd<sSHbQT`r|V^m*p<ufO$jy}RmC01aRv44*s>KShWr5Dz4flc#r- z%iHg)x@T*{@<|m}MMMH+2s&sc6X(xi%)%9r?m_Utwep4(0R$xPOKv)&=6qwBth{03 zw@Y-EUkacD%!V~LU(d~xX8|QB0(q&1_o&Lrr_e{FkkT0nsQ^`p%8GK$G8zw`Wct$i z3flrN2Tm4TBR?Di<!13*hg>$pun`q1a_n&B(OzE96JDT!44mrfE-Y&UbRr-@h3J8N z00Q7aXd+W*m2+(WQBYa1;*g7hod72dP8Q{vc%F^txp<zZ0>dkrK8m@(sLP_D73$ma z0BV4(pQ1llRbl9m4O3qmWx<lGA=v|N;hVVN=1^`190SjFa6Jdtbui5gRYO$>qzdS` zNCV9f>5Ak{cv+%Q3ibKs1!lXCV~1Orv1k$)5tJ1}S<!-wgO$Q@ayYh)>pA4IDYB_3 zF+;3Nlb`lvVG>Qzh5_mVGbjbggn%fNQlK;-0Gdb3i54bI9FCVuBDolniz8M7*G^+O z7Pe#IdN!76kV-@(-F1#*9kc_{K><>5)^LFsLSF$Q0MU&?G9zGQP^lhNssSV*V#FY% zi)EQuwux<<SXN%zwu$3f7)FvrUniM#FFg%SY(33BpmWen=!f?nS;vjbmcng6MMTT{ zL#P~F*9Ygr5<7X0c+XzdVa!)Xq|53)Uh6OY%49s-K^5G^^IRO;!Y~pT$tXr9MzTGu zYCddjOjy*APi_|j6#VQt(i|Rol#g!H2Fy@YR5048QR=aqBJAmGJ7dt+*f#FO^^4wl z+Q0bf9ZZ}zAIr4yTsN-?GlQ8;VdWC^ojt>up4n{5zEK4;&VvWzc0kMW0Vlk`EB2-g zAOxJwe^q)uF(FVA@Hh?YBXgq*&m5UizN=`xWXG?eX2WK}#}5+eK1)2(Okbph_QsPO zdassn)kAF4H%jfEY2_93K5K+=Gig~4rC%RBH~#>-)=xoXKc3`}_+}*1J6R;UKpq@j zA(ZWIOBy17+H~5hJ?qM$4v~Z1B0s+W5Ax!SA+l-ZmGakFCGzkC&&rFnp8Wo>$leB# zr#94kA|h1%GXs=ew(*S@nB|8Wj(m(r4#{joqLC>g(FNYx@-pw)H*5)a8Q#Z7BO)TQ zzuuOb1CBI_$Uo*Rmb##lcSm0(4X(&@yFJ;u-xd*(lc(eIS#!#Jb!SFU&%8D0>5B{U zF6fedh?q!vJJQoRMI<s$?hTbomxyfG+Ab+iq%Y%%Eh6!>Cn6%p@4j1(S69oc^A?IN zBGFWSJ(=?)D<Xg1eqJmQ8GBuw0M~JG;?1`_g^=txvkM4Apcu4*ljuIh@$)cYQaNo= zNLbL76mm)t^PoMMWN5(8ykTW@By8|0x-&u|r|5{o^y!uCYB1%V`>KKaAJQ)cSW}Sg z@JP)TpeSEiT_+zWx~4eQ2IW;DVx|x?`FxxYcXHE}V;QUIpexRYTWN|zYX;6Gp}tc{ zOOU1xOI^FD9Q;?^<U-X&0DmvYnSS1Td}F?BC@r6k`!l1fLvIQaCd3OPmW7`7E)KLb zb10j|@*E=J4*CqRMDbkRYC6-3=3YSsim?3(U*(A5K(%(MA5=nUNPu8Is}u^h07@g9 zvC%_?Q)dgqgs2Uv<}MagSF<piWk$s?l8voc9wcnxmI*a<m_nZ+=*0orV^ACn0+ef) z7QQ|(>QbzK_jf=SB1MHtEDF8Ihv61Z-oJSkViq`UZA2Z1qdh$wYHlUc(nQn*+Yr(j zA)OTBX(8)rM6-}HvH(79uoihAJo?((Kn|q<T`%BiK4Sf9&kbmzPayTt4y37xNx)>! zMIGFO5rS}^BAyW{%M?{3bs}l#jeA(#EjD0kgN5TaVdk=BKn0?L;8+48C<O^;!0}?) z0!T0PKJZ8EUT6cJj_R~M{5PUqkhB#h8u6SWk`Xc*a$x%@pe_uw4|*T+!xOjO3zVYh z2E9lF4RKsYHSA3=ZDE;Y(n=NSf=_`@7m`E9@Y@%6qBnKpA3qW;4Si|B6L36mJOv>o z?I&WY_N5PjH?{-eK>>!qBDW8SAj*&OqP+s+m6?glCqI8a*S2(NaQ2$HR8*JZ^MUdZ z<)Ks*+~Fg!5+E9gPYD{zaUkBF;nUaZRPzVBK|S*-!bS?c)L^%j>Xp#)(k7@_f*58s zPp#C|wzJ{dCiodFUjgI3uYBXHhF&q6;$da@ON;RZ{Ro0W;g~jdCWjeMl4xtkvl>%y z;w1cQ3$UfXExQb00dO!MebZJ!L(Tg^UVi0j)^9%AbPCo1?+!#PQ-NtPdMt!0z#q)l zPY<vyFbwF8fzt|{0~&#@FTJs@95BVq)gbfow0Hi8m)-tuLj70Q=I;zlM*vGoF6f^A bm(RZec}4<mFaLD-00000NkvXXu0mjfvV>cZ diff --git a/interface/web/themes/default-304/icons/x32/monitor.png b/interface/web/themes/default-304/icons/x32/monitor.png deleted file mode 100644 index ee733761f28ac55a35c071025de9d7aa2368c82e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmV<21S9*2P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000D|Nkl<ZSi{Aa zZD^Hc7{`D2^PF>b+;FzFHg%hu@8xvHJ_v@i4`N33MG6H?$w38CVPJ$<AHqI}1VS36 zLW<ItkWtD=GO?G5pjq=}Ik)LHmT%2%&U5C@bN1ZV)ra%43B|U2q6;3*&3z8{`9J^b zfBmoPHjELfiZO=b;^MWA;}{Xq%)Y9mKNZ!?o*EJB#$xdXpm(hE4daNqy1G-_w{L&S z7)Jfk2*C6zyXQC#TefUT?%)5#^szvM#si?Fq-4gFDO1?HcOS0nAfjLlghD8acuB-s z01}A=>(*_cqM|Ya)BwjH8i4Qnl1wIPZoWiiMFnQkBzk_oOz+8)SnCs6yqM^mISlpo z5+97SYSoKa>jOArojoo98JdkTm}r!XpMJ*U-5sp1+lYJf7L5%@Ih~i!BOBJE@%RHN z3Iu>iN^BTI$C<M{(|?oo{R7Z=3eGoCqb^kq_3S%)7A-GB6>K^sV}&z50O{8WhjAKz zWX;Z<aQu7pN(<WA3Ef>RABM8-b|f76FBq_?w-Ti|YKb&o0do~@-@>%F!{y6Zpfs$s zt0Iyr(EtG`polj_ys8E{`Xx@@3{1~0xPF~PGKufNz`XhRX$@E_L8d@Z1@V2n`A_my zE^y&Aen$uKWD*mG_GRV#`si#Nku(Duv<OosG<@eahpS)Ud_@<}-EAXc3_lgj<Xc;a zxzWX>+`JT9BEbTHlqD;$sB9{|C8g9iMX_Fjp1j$VON@kDoK0E43}_ZeG#bT;6!O-& zcbWUntKi1@bKf4`*NxbSCFyyn2F$?drsKIeENkAz+@n`f83wPF;-wY5y=ezq2i6kN z1R^?8x<QCAqi7LJA`Wv_IzTQYx*^#EgZ-30t7szg+rZ0kgn_W*apq1D<$ePsf#Eh7 zzCc@Y8oo{7x)MAC89}KkE(uO_tfBR{t(YnGn90W&l2&%quO#Z;&$jD8HDGPZ2}J~B z90vMY*t~5yv!)LacFSpMosGy93JZ(yJueF)PzExk<@-LhOP@wchd5Bu#Qv!liI??J zyQCJ($fPu01}5Z$)(RoV<?E*JnYF2iyB}WT+6TX|Y{xtfc7H=i97OGeQs7KPgrI~I z5q_>c!6)-~)1_T>YA0(Sd!GIcU6{cTDjK{IrF<Y|NTQaU!Z5w`(a&9C+{W?;;UWjM zinyAsm;iksGxZ9Cq5G`(VFhpU8cEZIXWBWyL8`x7Ld?0B)ysIh;e?z}M6qfqiIs5m zjcdH}@@7IgF4GRr!fCYF$%^_ip(>b=5s3()P>36SH^|dmsz0hhe8JE4(V|qdipA~$ z5_~rlQIbgy&kLuS@X;JaBl>_-dR_u+C0Hx=ecvfBFXqURV~CKQ4N_}WRbw(j1tk=6 z*|TT&xGp~9x)}kh7cHv(eDpO;M5MH|w9s`O)7jb8XN&`=NzDze)6&x14!jPW<6&aq z!m7-28n6I(BK?%^+O;cj=+Ger-UH^2`fdR*({UX0&?&fdsX4Q}nSQe2c^*SULjZk1 z+uu)80r<c_MSgyMq@bVxz~%pls;a7wD=RBc0WbaAGyVd9M-Kwv*D@ji0000<MNUMn GLSTYdqE-R` diff --git a/interface/web/themes/default-304/icons/x32/network.png b/interface/web/themes/default-304/icons/x32/network.png deleted file mode 100644 index cfafc0455ba97124dd0017170469d03b86c31ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2035 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 Rf`tG8002ovPDHLkV1oDm%^Cmz diff --git a/interface/web/themes/default-304/icons/x32/server.png b/interface/web/themes/default-304/icons/x32/server.png deleted file mode 100644 index 3471b9db5896781f9140d7d75d4cda6b91d8f3f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1440 zcmV;R1z-A!P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000GNNkl<ZSi`-S zTWl0n7{`C-oSEHiw_C2O6{`gygi91q+ahTs<x;E_U%W(XjH14n5Pcy*ga^F5i1MPw z7-FN*Mxz0vu}ZU`Q7i^yz$Gdn)UuYs(y}ev%l5+V%zQrVwkig;wv8v5WHx8^`~S}W zJKr~FV1lEjW<#F&x^cxZ6A@p#b{z)~9sr=CV&%JQ)~x+37!2JO2o%gLEG$m<_xE<S zwY4(kWBvM?vHN-R=55@x=?Q6VZ50ubzP>(*Mx*ln`;D??%X4!7{STj7x32c3DG{!% zt);rUdhB;)W#u=GjUS5RxROY8dlxPw<idq+NhEqCne6pMT#3h%a^HQA3Q%#i*j9eK z*Rp^AegNjrpZ`#G^_q`%?tGCzpg=l16G|ziF8hm$M1JDp#bJyw0HFy3)YQ}vi9`Ub zRjXDV-n{wQin_XuB$G)=r3U{YthFYSacOD!70(kwp<=XFdELD#KqL~Os%q5(3l}c^ zWc&7=7-OWXt6M3hl*s5)f^A!LcJ|WR+Cd=T#~6dpXOC--=S{)PnX_MLXxPKqvkB?z zODWg&u&iugr4+^(PM++bw>L#FScujdtu=nXjWKHS0H7Rz($cUhEe$g`I6`-KAIW42 z$8m_o&ZD&=7%V_*jWGtx(m4n61L(Z+N(q4DH~<8L0m{m*W%=^?oH+3ZmSyn!eOOl3 zcAw9}7=zXZrS#+hwAMI|ux;Dh?A!M(=guXN+y)2)d{~x+Wm(vER@fMYF&fKKQv(1B z5vZ!Vg#`<)=k)0~M~|M$wozlStn6is#+a<A)(WjP|E|yp0@$`fYeh8LN-8x>I6NKK zm7K82S)K*3ES-ayA^@c{!@~|g{&<3tl3C21TY~F)xUPdS)|imiqpR0Bm??7r3JNT? zZ-1P!vJw)Beg+1Ha9s~$^qAFuK`4yLreHkb$5V#5E~L{AbLPyZwDcO%X@^UfGPzZf zyZ(a6rp-)QAHa1zJkLV}JTF_0B5G`YRD2XfYlYu$qxBSYLZuWUf(W>-i|1wUl_F<3 z|8N1owtbRLr&Ui+&*T9-4~`!{jo+`CHm!(2z{d0BU(bnvh)7{!A+cCY?b`Lq@S#Ir zz5|?`6oA%->C;0D4yNepN&?{b`v`>sm$zC8g+i*S=_~f^dGmBz+b_F;MxcL^09u8^ z)39xY=efE4APfzq0YOC2T8q|7z542I_U?V}Kq}SyT2<9uk(QR`$){js<dPeW9;3Yc zc6>e`sewT`n>eGwGfRk{?<Q1GB<=0(>aDk4ANuaQrUu{*pmjXr;~mAbW?lD2dHL%0 zty^D^BQ3|IxpS`!WK#0=*T=mbJ9f+J)f+~DXMm#r8vLq-I%CExlF6~190FF%4qyM^ zq6N2X+;Dfzjj`AnS+ZoYI(YEY!RF@XDj>@LH0;{ix^E62J|c~cO;TU~ND8=hB7v^j zE9>j)uQZjJyJ-2v#mg#~Gj9>Yp2?ogrg|JZ_RAILet2r((RAaJ(!T3n`TXG<T;Pt0 zXyk3y&p*FI%F8RsWHKlPf}$`Uqi)4VQ2w%j1DzkMmJf=EFTD$$Yt>pCPMtc*wryK) z0%DUnl(KT=YDPvzMjHeCHVvnzL9DKX!pk5%15y^gS(R4a37K@R9oq~Ijgb2=nK;1t z^KqJ*zQA>JFCnEU`27rzRrV-)4}iERC&te|&ETB*a?AmxH1YVEyn7>W3YINf_H<WQ zXN6MP)3FBx2Oa%=Meh@KSpWodGQ&Ol?IUe7ihlk3iY&|ab#!zz0EZ?7AR?o0xXY_W ufVsem9Fxx39KAedadENq_xE4Xg+BpiHzfM=RQt~W0000<MNUMnLSTZhE6-#A diff --git a/interface/web/themes/default-304/icons/x32/sites.png b/interface/web/themes/default-304/icons/x32/sites.png deleted file mode 100644 index 64ea1b6b3b157dd0713987d48a2221def290145a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2363 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 diff --git a/interface/web/themes/default-304/icons/x32/state_critical.png b/interface/web/themes/default-304/icons/x32/state_critical.png deleted file mode 100644 index caeed331ff3d6e1c2cea29e11fa901cd7b45afd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2394 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 M07*qoM6N<$f|we89RL6T diff --git a/interface/web/themes/default-304/icons/x32/state_error.png b/interface/web/themes/default-304/icons/x32/state_error.png deleted file mode 100644 index 112a2642efd7f30452023a28f7322cc58195e482..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2200 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 amgiq<8e&06r^Y`30000<MNUMnLSTYN{4M7I diff --git a/interface/web/themes/default-304/icons/x32/state_info.png b/interface/web/themes/default-304/icons/x32/state_info.png deleted file mode 100644 index 91bd218e010df070e17f9a62c1ba49cb92a5378c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2175 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 BDg6Kd diff --git a/interface/web/themes/default-304/icons/x32/state_ok.png b/interface/web/themes/default-304/icons/x32/state_ok.png deleted file mode 100644 index a4a896407af1935b8134e2954e342a9aacda938a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1456 zcmV;h1yA~kP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000GdNkl<ZSi|j? zYc$kp9LN8|T$wRULYPEy{kv=`!dALyqmGue2Wd0NC31-v_milks70xvPHqjkZX9V( zyR~b#Y}=M1k}(afDXrSt_G~xbo#V}(J?nI8S9;Tn-`nT&InVQZp5ON&01)r9hz|l& z0b%ba=<iK{bClpyLy1nKeC-)iF2EKMe2rx0a8*wkT!f2WTICwqO_>0@gy5?uGvsx$ zlgO&eK<4RG*a|IPu)+zucP^lS&*UoLwX#a2o=QaY$#8_01z<t871)0C=X9UHB_<!P zICE|iLw-sDPp;dJsOm6;RBnPv1|N(l0)}Z?&<;?4Mt37Vnsfp7VFg^skk`m6kklB5 zt+gT8T)h#ddlm2$0<0Yhfr9C<3A6%rv63-;B|({RAzd+BNmtCFzZJZQ;HxFj<TZm8 z5Vpo5vN;&Rr~P4eL?6sN0-PcOnj$91P&0U^t+iyk)08LN0qrU#ixWq$SB<CsI77@b zdK0*sqTx6Sc=b>j63<5=;_E;JpYwyoNqw+O3GgbEp(o}*Cr|@(gGfuA^*ri?J)mAn zVbNlV#=hTrG5ACVl@y|jcS70lb#ToJ8lRg^msbxf;FqEh`F#*V+WleMG#k^!bnqKE zFgdLa%}r`haaFQZU9C)=@D_0M2_|DJ(b#eCBF^=<;?h7ndLP~dJ(1{|R!*HzLbpbh zKP{6buen!_l%KaD=5i<^Is|ZNv&5_>b(pqk!}gpZv;<r*S5Qc%J3*cB9ni{QvCI;T z8qZ2w(0r=_Exk>s>8e6~Pc?p!e+O1F(KVx5<sT9T4eEUDU7X?CkxHarPr&wT5s1FJ z8A~qM!Tc*-*nVpWhjw#l1!#cbPFS+m{2M+lz|Nr1cmhs+V^1wwC12vqKr_U*%2D2X z499zqp!{|z>hDxTErZ%+*vK1~Fm9gC*WIfjuYFL7%$_79bw?w<dka44aKzm9*>JpU z0hcRw3OEmp&j?b*e`5H!fNC;@t0~}irkst3Q<F9FZtOyxRE!h1MJVYjLUG?glt>Pt zey|3-oy_a=+su4zlgQDAhhk*+ry{K{4#K`DcyzkJ=?aOZH|*ec(+N7^nqY(zBu7Z0 zzIGa_BoIm_S$dB4TjmdMX!KGvj1D4y3PhPygwlaSI3&qO;lMr=%MPG+Pz;+>rmxOE zYQgS1>DVDnM5=Tf*7vT$vhI0syX^!|=`!fWXe%0+LaKj3p}p}qHc8_<+eO;+udG@G z>+>_=dD#^Q2KGQSScn2yF7gL=qhKf($7IFWbvG5+cT=$Amjw7rJ>V{JhUd^S_zt_n zAXN{%92Th~X42j|59r3JJ81=|OB^b#@bNWkxOUnjMH-94!+AI;--G?~EaZ)3Bj<hw zvPY5;G`t?`hL^*4#2tcBFBs+Up)cZ*CTFy1|2dFwh04yXKqbk-dK-917h_fbLTnk@ zh`a|`I5@f+`yOT@=TSPsM>oK4Q~`eMiO{D$FfKB{oF;wJ{-P=Ee<vbtF2$J{s?_gP zYln@a9`L@u0ztoeW9Jhg_CL);^zQ-)o_ZqenGd$U_#DQ?1|TmOk*-|}Xp<Jnrj=5i zSz*-v#f|m|f9{9CKfDm~rw^i^3lRR&4>4l`B#eb&&e2(zchQ1eH?)E_>6wsU$8lmu zFeNT6jz~l(wjl`d2thhxkUb`Z*->LGxoS@aKlY}*vruZ$rsu2{&FXjiW-0QKIbMZh zIj|O)!?)Xu+==bXcb<wDc9=VBB(No)wys9yGZE&M*kJR`O=KM^7*iI@U2oVs>!fN* z7ZlFLnx5t4aTGA7^k1;D$APj|w$#aU(A6ULRUq@j&*+1|WYu2)8@A=?TiRd%0000< KMNUMnLSTZ82eg9# diff --git a/interface/web/themes/default-304/icons/x32/state_unknown.png b/interface/web/themes/default-304/icons/x32/state_unknown.png deleted file mode 100644 index 22c034b882d56bf963b26f316d2e53ab21842cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2753 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 Hu0mjfFSQV< diff --git a/interface/web/themes/default-304/icons/x32/state_warning.png b/interface/web/themes/default-304/icons/x32/state_warning.png deleted file mode 100644 index e3e7c1f84328559138c81c38930fee5dac0b1509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1917 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 D-?@v` diff --git a/interface/web/themes/default-304/icons/x32/system.png b/interface/web/themes/default-304/icons/x32/system.png deleted file mode 100644 index 136083cda434d388bc1483154f43a2abb9fae67a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2454 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 U;_5af$p8QV07*qoM6N<$f*u#8MgRZ+ diff --git a/interface/web/themes/default-304/icons/x32/tools.png b/interface/web/themes/default-304/icons/x32/tools.png deleted file mode 100644 index fe1e27c4221a1bd366c2ea5f4f4632a86088575b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2024 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 GLSTX>Hsvb- diff --git a/interface/web/themes/default-304/icons/x32_sprite.png b/interface/web/themes/default-304/icons/x32_sprite.png deleted file mode 100644 index 5c9f04ffaf5c3b97d88f6f97f0b4653bbe3a039c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37386 zcmbTc1CS<BwjlhKZQHhO+v=+7vTfToyWC~lw#_cvwzp^I&HMk2csm=hc{1W6kMFs8 z5hp@XUIGpp8yWxrz)4ApD*r7B0RYfmNbtY41P3vbzXg`Fn5MIeovE{%fujjP$k@)% zgiy-Hz|2J1#K73YVa$XV001$yP}OwSl#}H)va_K#_y-QXyN&%{Y5;&&z}?=!$jZc- z(9p!p!j_Ntx}%4f(88FHSc6TDQO;h(#N0yC)6qo5Q(o1`)5?g;m{@?Hkk_62F9RDB zX9Gfa8*5u9Zg)Q7fAZ!2TmMHl12N%0QJk&#i2tROrko<7h@GPeAsamloe?7w6Cpc0 zJrgS%J3A9CAu}TrGXvw_mz|D@m79&7o0)^~zaHYh(j1LVxs^r5|4Y{279X*>v$H)n z1B08J8@(F~y`7^O0}~e)*FShLGt>RWpmXxDbvAIPvvnf*HwRG@CnHA-duIzfTf%>E zG%&PtapoibtLeW?u(6ku`)|g!PXFbozb<2NH?U`5qGx2VvH6Ex|HO83RyO(n)c7B< zom4&SO&F9-oa|g2jsA{@DapTy|N8Df3;GA*Uv0P*94-D1ih;GLoso-;iLJAgC?E0P zFZ9M1#@wPTETU}ULgK89BAjAOOiWzjENo)TVqC18LQJg8qMZNc@juaW2{AHri3u@^ z{4JT7#F&JbL`B3nSUFk6MOc^_#X0^>D`o5CY+!3-@^85of93v*mP`CU(sGM9nix3S zIjY*(S^ql%6wU3N?VQZ*><L9w*a;~$ENqSK+?=TXF+BgWR@B7N!qvoB+|ka4@SpzW zw)h|9GcgNuuro1>iF1i?{nKtnRxWWSVPPglF(FY7&cAm5i`Mx6#b*qEm0|ctaQy#* z<=<U@Bk&*9{|^1XjsKoJCboZPjN{*_G1pI<2>`@$ONk1py8pT8a`V<1TH^oOsP8gg z@~ShLP#fMHW^X<vOGoC;UlD{xOzecRLnb685|s22fn)=PBnzJPa=3O(versm>TqrP z^Ygmvp2x|}WTI7{V*7cDpl5T&tg%A-h}Y>Tx$QYC0}0dUMZs6}BTN7b@V~>|34#zJ zJa?ajv`iYkM`^j`9hp}3hC>0Nq46Ng;?~x~)}JP;tKTx*uP)$0Kx4*tGElm%YbNf8 zDH;#kGyLzg)jeOH*`Z&@_5<}pQ5byfjwXCg9U_z0adm=(#ot?<Z5f|8VFG4NO$%Sn zv~-<&ku=@zl6!vR6B7vF_HU;p1kNc_rj$Lm!|PgB6~Bh|rRdOQYBg!ckRu9@?!_80 ze!8bkWqI_ENRUixbG>nWf81Yrem<_OUAAoR=KINrw{;Tqx~yy#=$SV`iy57zdwf2& z)P;uPqeF|aQPW~Z*V=OqbA}6i%)nTGyhKvOfgAP(f;Hs$eR(WzUz1&38oBu#^G{#d z5di!9(RaVx!3lhx)@WH+>^=`KGQB6tR2#dvTrQ#!S^9*>M1z*e^bckex$ehoA8^cY z>*U_g*!jJ$>#7P^*<G*jzv$Ccl$Neeob%!W_T&6MWQs{Mo_2!#jE9C^1+Z1NgJF6+ zGul0zU~ur^&GF-Mi=v*=j<<}txU~E*Wj^L*7&gD(%Sv*h8yjKk*{q)HwQak8p|ty{ zzQY46>gxKAJNfw}!NGerB_x!>7Zeui(}tH{`#$q8uW(F)gDZzro6u-n8lq6hYbqR1 zQPKZw{0{wotGTw>ZYassb-J{%9`Z;dcdXaVo!>n*VzcSN{&P9495n_jHWw^PJX+oT z2JQP5FoN$Tcyfy6o>#!z!^uzsh%5(!mZ_jWt)m?<XKibJQH<z%`Xlh*)blbl!-t{k z>~z&~-AeSe3vvAs3GX9WWTonZPzU1M<CZ%k5GX2akXf9drMNnTq1Q_)^>+FOm#f3} z+tqg}@?KpLgA9tx`8QD{aOW0MJ;K1xHw~<+^W884$6S}Er8c(>2a&*V0pT!Cz_${d zl7z%}XqOjGt@WBzU~w5Yk|hz(^G3tknpv)j5hJ9tKM}f0@Z2&>Oy6l^ezWUSWq0>; z{fYg~Uv{p!4o7Gn9NXRrehb5JJ%^6&q<auRJGpo~?44@@_OGvPT<XQ;neoi=R4^Hm zCqAz6Z3iWm<f(PJ9|s!hLh<Z5o@Y{Z3p1_E*Qwg{Pc~bPw<XSF`>F*JDk=u5U<<+Z zJ-+MNTiSMQD4D5w)tu=&z7WI_h$bMi#tT_m?8at1t4Rv{R9VjRZLNo?GT>)t&0ori z2Lcu4$UN8%@?JeGKf1lCzOi55D`vb8+m3Std4U4na?hax<{tX}7KEHx7mbz{;)p8p z{6Q6mQ4~I;(gnU@dEe7U6m^u3@?f_224$opdlpp*1_Pd+)T41U<oZJnk9`jVTjY86 zg(c*sST*U;9l4P|`XEEkTKxHLVN%o57+7Vqqbi3e4BvuZ-H$ghZgv=aht+Gg=y*SF z_;%g4eXMxZcpAN5nJabL&cbmy3s?%`NN6UWy0BP^YqYvQ7V)V+lS<@mTX*ZNnq1Pd zMpWa%x^#97zkPNOFU;aTQgL`TMJq^oX*8A^&}is)d}f4pl2uX(2msaVM*QN`8v@A= z6s|msxGy_+%eTkh25@e^L0y(iwR$>UAon4O)`K{+LX^g|>eba|X}Z2}HSWwc2a75S zT(<DI4_q_mx-Sz2I_RF?bj$Z?6isjIcBZ-6j3HfOfKi493<AH*wy>b~+;CB4!e;Bu z5&DjcGbTcLK39O7soC|n57*6(Rn#$4b4|n}-)HOcOO^I&`MB^UTGFU*O4?Mn0lQ_# z^HXhXtPu0u)+b>pN2468FXlu9%QWZb1klE={l)huoW9vUpBvNiN);UMt3*{uxLqY) zP1gl$gVrJ1yY1JJ+uC>vkJi8yz0FL{bdaF^vz)k`c8f1V$48{qh(G84DB!AAQ(|`) z!k^*omWOt3xu7lgjl`;B-&DP&R{ebv+Ev}-mC-DAj*_<HG}W#y=GPBRAD?$2!cI~Y zZ$uFSUB;T$yY^2)bh;nTl>Qwt#f_-ym;`{tN(+jptMUb2g>QuO_H*=Rt5aH=D3FWh zacEmqUux*UE1)THgIzfeza*R0MQ_CLEq(-`^(ohDixna7k1<!*M>Y=ThBeMdM3DzR zso~!d?&C>Ry1N7}>=U=<fnprhNPBQRh+B0j2G8)j1C@p!WfjLY&TB^4Ms+IkKjE>f zY`kwn1ae*;RQv=flMzd=+h7Hy%10gl)cN}GsovG!AIlj=rDcUhppf%2bF**E1Sk=_ z8s){Y*&5wuYqNf<^ca0^cgHqmF{@b7CN@#XIAu&2AKAK`X=b#Y7UMkFMQM@Cdq-7m z&lWlvUT@Ji`x^1RpX^Vux<i>O@IJ!xyk|MJ`n&)^*h^w;fPWC(TwH6_JCvY%9=T2W ztUOlwXjLsMTh4wd?HQ`6zpJ-fpYAR`6#uf7j-jGM4tQbT57f}x&JQ}dz?{!<f5UT~ z*68k!*p?ac2uDnu*V@kDkFDEsr4uF;@Al$5=WkL!FK0BjOW|BY{bj_l=`=lOJv7Bp zBDh+4*N<cOM*bfD=KXvne_3X>Mb_d=PcfZKfg7eKf<2_W<aFwo>b?&~ck_v}wsYE) z>D8IQr;$8VF1yTa8x?!VwX>{kC-2ZtJJs{l{%dt#p;Ky5Bf5FRfmOu#Gh0@GA!~|w zVx%G866M__Hfc@t)rQ+`@0Qng(|I56_kKv`T7zlluPdkHv`oW00LwK;#Gm~&Q`h3T zjR^@2)$;EYvu>-JF4v2s_=lqD6Lp6k@gtR2Xusk-!?$g3#zW_j$@4c@|NjKv+aR+b zAbPNyaj&wP-QKTpa^z8chIJWq=uvCN_1Lc?`iz;A4@}r{;BPj`CPBW@xk;pJ@$};O zUW^%&r4{R2kMG;t93f}XxWGG*1n)~4+go?Pwt1sBbk>!$^UFKU6;ag~crQxIJ1Hee zUmRjaFlgc<v1<6#0Yv4gF3u0oZEb9=kIUD;JFGx0=b_1@%up4FqPxq?k<pkQd&Yxw zh*{Ny6JuGbP#AiiM51vxVpq6cYXQ@I&xr%Xm{_-0*!b`{y?zoTN}b=g5rPqTwb+1P zOplj&)RPZ3qz;LtH(Lit&B2+5Q^oYK4-d8dd(`=@t)4&p{Lb^48F_i#N$IU`+`YN| z7vyz=kM)Yq9kWGsi1!?!{pGX1I3%g|K8kP<s_!IKqWx8m3}$kG48|X{D5=UY6#$%a zhlBtS5FZKPT5@D4-_2_TgT8*O#q#3_b2g-+bz0FrQ()OF5OMrd=@BO=pfLdQ7^*}h z*~MB5!pfh?MK~0zvorn{#jd^}z{4{El3@1VjSLWU{q52|SQKA$X~K_5k>Vrgb1uY0 zM@(4W%xvI1MUWy<Xn@1-IvRKshqC(m^5ipGOqiXC3&Erj7SVb{R9J8rOY*|)_RIxB z*-%u6hKyt1n?aNu2mogpCe$k8+}e7SYc7^F@g&eq+EPf^Xz$~S-+nk`I7oJaWI^Kh z&)QZ@o^LK#Rm8q}Tw?Rx0AtH8Cb4)3$4(N#YecA20Wt)7n9wd)&<}o9)#Q6iawRQ4 zME~jO>E8|pR;0*FK(u<iND7@oRmu^o03^(aLQaE1%Y#PnQRQ+P$8a1eVbqc<NE4&p zOOw}EE@3ULsm7d~qaZFu<~;#y{}kVz>jHDu*bpbln4+1|?fdXU3pUmw7>fYPB3f!Y zPMLBlwS!(AdRDjhU=NmYNtAMOME}psJdoAe-2v1xE<X@pDB096PW0YCySoOUfk^Dt zo>_!E!iuuPjfnFtLx2p{K4U~lB+zUq-U$+^?~w>j6tGS8#b<YiGvaEfB@_<3VP84U zO2nMo{S_wWYb5W(9F1DH>twtw1CA*1Jz!FpVhzRjVe`NM)p=8N{RV0Kc$?aFSYBfg z7>lsE$))6AmFB!^Uxu+#w8O&`9hAG+A=K+<C@WWpALZDgR=8ZRoE|wSJk2UYi^B7C z@f`tz!RduW)kFHr!nMPnrO8H=)5?r>f5OMW#ARuCuzu>rv*st3c;4u{zo!B1v<Ypy z`yF40?D0|v?_zp6{nD^s#{k(C;*1ud<e<hpPG+oF4ZLk*)&U2DKTGZZAU2&CN2<S% zM4|{P3^+XsSf>gSigR(y-?AqK$h3l4dzxb55|ap-Mz^OPjFHMRu<ev5-Q9HIfPTDX z;Jw`2B<a^{yWgRBfB7>qGKwDchAL80w|+uh*sjH1UEx=CbkNK$EnV8!+G4M^KPD-R zeXhhHFOZPGkAOIRx!!dlWZkc^-P7HKBu!c)f|ZDoSCkWBt`OceVz*C<_ImzZHa@&z z=&5W(W;q6*ny#GOTwG$Eog1G$ct80*KXqDC*lo?rZa~@bt&UFlg$hdW<iTNAe5_v0 z7Vh>i?_{jK^VRG#MKMpH6$m4`J`L`;0^tKenz2yQ+4*4Xu4u)6o^J=6<@)XVmByCL z&*S|rPcgzrqU-1h@Z(cyF+;G`;f+&6TLZh2B2f(q$n5mgKp4Nflr#^_;aR+XB3UsR z(3b&eXT$i#dFp8JG`X3^*5u4vYkkVa>OV#-S9_*RK=fYcF`=I2F|4&(>p;T){XqaB zcJ9Ka^EfW9e0-v&K7Sksk=6f34}K=>j1apM(y}rjapkG8&)?X1A>t$hgN^;m;gc_J zcL-y<H#Y7kY5~{68i!qv54PHnQ&@H39c4;fy!84HiNipp!0oRm5YCNo^H`dZfc#}5 z^jM4jpSj`F04*gw+_<l+YkL!(u?-v~$f4Qu+k`2Mo$(1VbtR&YsgB(U&^pT%+ouY> z@7ECzFtS=MCn-){M5#THtFK5f82Jw~Cnp$$DZj9BBO{;_Ve?k&r7DUT91riuau?PE zW&5j?m7T$%27U4`*oUVio~OO87J<MS4&WT^@pSMA>fG)d(&SWB!AA%OR}bL*VT=M# zVK!l<`ryGnP!}SF5NI*gqjMYNXekc<cW=4xYrpUPHqj0{KMcxS`$hBmzEri~i+*YE zmp7c%`YO231LDF;!({oK(6R<}VRlaa#&|p=+Lu3W*F<|m;jf`gR!5{h0Brb|$7F_- zI4rGkB}XgWoy6d?OzKsqyHy*#p5~VlflrjU@mL=HNDiA#Yo~*FH77=;<^pG7I!B6V z3BCBmshQa^w9y=d-(!6>ee-B~Vni{M+`qIFQc^+^gapQ;Dn+9w>oOAZ-GW{-kuEm_ z0{GTvYoAy+SviJN4k2B`LN;C3)i_TJVSGnU<Hmb`uIbOEo1>UbRrh@qIU(iav!pBI zr_g*Co}$$H9D>WHGb2Tz#{(4vnAzzeCP?z2qnszD!i%P3ZPGEv5CKzC(uU3*`Y)6j z4o5SaHaS$)Lf*P7zntrB17nfe5*X`(59_^?L)=zyu?%nf+|^Uj7LN<d8gM&Q$Ld&+ zUM;bL(cf7Uml^iTJavzXKk-374=dE!XNDN-6W`t6nOhSxc{(FiE~}n!A%+`lciVb@ z+)_Uhe7n2Mq|y=eh==7Kf9Y2ey;YM&xOqSX89u&Pi{m1mWC#-&I0+HY1qEP=yDX%u z_P*d^&`gEh=zV{3`Ffyz=2d5K7iEI7fwrtOG`2h!<mW3@)YLp%Z?@MJ)z#Tnln=kK z^tn>ooEi+2QcdH5F@08JG%x#IRyv#z5NXgOhd<op#4&K8z!Dp=-vxt--WOElMqPM) zwjZZuc`IE`W;7JDva`4I@T|ALzjyqR5ckA+O;3czXtm|P60)3iy`eBkaU4dS)Op)f z2qbW0d`fCTxyVP@zbLYS_OkQ|^l6Q&ONBIIu$HT>T>ED8S2YYIu~8sb+>O(7#U;|) zvCn02B)nuOMP7-_o$Psuw8|1of)R7d`KrWtaQ^K#Q@(YjK%fit@+IE9W5k9f^Tneu zA^|M8--;%>e|h0N;jRqgx4hd%__>HvH8{b@Ar1=oX7``ON&HV6Em;5W1BoyBm>Y&o zO-1wGLY35%=!ZvA*Q)h%t@T^KnSc)Tsocd5<33J~&+e1&b{J|5hU}a3equB>78?7b zu_ABq?tQ&8;18IZaA=q!y-6MyC`8QV--RXKCJs*!G<u)Y-9SEu@88@IrgY!qoiuXd zNS3U?q9TlFnzu_0<yRuq%)Z_LOg}U)+#>6&!xakJpV6%)+B0wlW1KrUy@@bs`Ne`S zTB>BSBTBJpAQW``PPdK$F@#7;y{KTBi2z|BNiKFBcU!Vtb9HAO+#QCCxFSZV(sX^F zQqv=A(2kB?QE<6KDcZ$Qchr;Zm?4a;=(5*-I}dS)nLW-_M_$}k-?2y)g+<^lNyUj2 zW8fdgfbiBbtMIfdB1w554PE}6nos-rZ!4n797o~4-0~86(b07{x*WmM5}2z##`aL* z8y9D#u(yC^n{=-uVcM#MpM!NnMMM>U()5g(VZMFd&@g^A=DU8`VwATK47GHE8BMc( zb~4Wg4(_uU1Oquv6Lz~!ZQNx)+qKKffiZvEz^hJa|8#Q8VT(xj^S4DriVMz*e~a<e zY(#;MbG#F8xfD5!MyAa*`5dUjq)?i1<&<Vx3n7@~@qj`WsX`n*kqj3xr6yf+0|@d$ z;`geP6(0001Ut#sFv>97ViD8v{di@Dm(^)?9<Sm`<xHF-)U9NI12X@Z0iqagBt^oI zVlU;+L2WWZpq4SxWZ!&1%yz}=f{C5~$ohMl87iR_tnWdiR*)qUPDCf!Bm*hLm5ekR zOb{iFaF>8dB!QakDMSNly?J1^=mdGbSxh8J`R$-T7hyKt+Dq@A5I$reOC7I?EMC58 ziFjiA*qgHDYK{;7iRcnEY=sw_-%1&&a-{iEPM;!?3Y7EVoUW{C_;s1pwt$FraTq|2 z2`iN@3MS43-w<M84P8JP{HTiLvs@YvZF@=(heIPjHUf%)?~qZ-0Iw1|7;vAK?a|Ns z>yHAQG@=8VcmRr7eA(l$F|6=|;9D9gj($@S;AGH)NfC->bXpz}!<tvuZrOmVx8Y_O z-Pca4>@|(0IF*En88T>aKZF`7HT-fB&Nv))z`;=07#0GuFvGtP<xF`4Nm)uxNMQO$ zVvIM8?=ahA)S><I*|>`QFZQ+M69@%?1X2(rk|vmEA>3Qx9qf3Sl$uwx+GDl?65*Rh zVaIT)v8CV3l665OP-Ua^@;j5S%T75jto4va^R4!nPE>N0b)N>q2i~M(M-%8QgC~rn zZU~||SVK<W9@GSEY`X|VhSE15n5&;im>1~G5vP<C95ugvgaAmeyB8sAnkodZy4#RP zx1gP$8!UxRNFGF-Zn^E=hOwouqqCHV?@#@+YfuR|7`|yCX46_8B|+IAe8##hN#pe9 z6q`AY89IoQsj8M~@#v7#F_b}U6tN4Y+8$fI8ga&vP73KqZ)>g06v<ockh(GPe2X)@ zr{kIOYb+>0-NGOdofh*;o__bxvPm_CPOjW({4+vlSgFG0_K&dQ4u8B^6lxC)-amN} z+jedY>mi?Mb5e|EpKQR-apvE}cN&IbL^b70j58o(xT3x&gx_;yacC0@i+c*E@14lC z-?*)QU^l5sP^hNkNoBE3D2ub7i`zv{N?iEEqRLSsUr$0g3r1LRW03iV9^c%^O65rQ zMlnqp;t*N+{t7kZC6^;9*hSw{hC+%iaZ%)r|AQ4%EJx$>Aw`=*zMEw8ViANhGnWwV z?Ag|PKaa1=A28*DnJ%BiAVzfeKxM?Ot76Be;Y^K;#F6B|u`ntVQ?&Q~G_NY3zopLx zCn(eObLLdiOlY>nnnF9#zo|P8?A%9lWZgoqv+*L+uueiln_i$(X7oa-qEK}!Zz%c9 zhy}^*0J#pASUiuG>vSo@eHhwf1T%#cFAl7<=?8V1RG!zsK|2~9S|<WUoplbF$Sa%M zGGE($OFd<uElo8u1O&MAgnr8{E!EXy8F9*w$(I(eKtoU&NkqvS15)*ghaTx*P!iF% z<yId>Fi5ERc+vp$3(w(@%)C0I#1C^$;Yp=aL<e4(-e9REF|swU1}+HjpMFN`2qr=~ zShqA%LV3FsZf3%Y#<b~<?XnuwKi!!_WKR-#Pvkd_;pLWCbx}=xf#&oNk_SQUY5+~N zIMdJ=7qSaXcR*+?T#5bF0nhAButQ-ibNBywDS`!foU`*EgEsID46H{&KT`FnA<oXE z7n3JR8_?p?KX|>_LczKaA6ay$!8i{Lch*KRjV1zwngy8-2+5C$DO-1B(yy<v9}KQQ zM|@J$*lKy4Zr6^)J3qg|G@FXQ6ah9>Z^jQc@@X_RO~1otU~m!pMO=;MQCzqNqjcae z|KK_))Mc(fEiEFXUWO!y>FY=Gg9wyiBC7F*4@BTP0ZC_hJfp8qejJ{38J*m?(7#S% ze<6S8Q4#%SpuPuxe@8pA5Nuw?I)^rub0O!+bxy@L?HDI(mDOeB;U@YKs4tBSEF<@Q zTz77-=|>XRO59JI)}O2fRh5S<)fXx1j_?5zfr*3Non+3->+lB3PcZ0&=%1gTu*gu1 zeNhGmeI{QDO-RE-fKCU?b`h|?ABuc`#vmY}XJK*b7Ozy!jJ%h$&YEs0!Z>F)RxTVL zN;Cq(DE{GCh1*?gZCOc*8u_u+Lf-b)e?7TyzWOq1Il4crW_W$I`D#kUUL$DL_WRF# zc!2|3t@7>j!@wr$z-V5epkT3jnSLT@zzF06=8v;WZ{o5O1D*sy$p9os@vmVQ06nbA z2<QPb$T+o=iPTj8$n`)i(%Y{o5MBH2LE%b7h?W`p)F(ojE0H{fA^#Z&GSpyn9Pw0; z(dluDJ#}h!$O2ga>5a?cE39k^!>8bdqLIO11X%#52q{ts54MRAcz&|xFDo@CFzv5b zj7=q5(xWZ~=jT(vu!aV+TGg*AxGR5^3viSq`)5}J%8MhIZDNk~=#33w<2GnQth*C$ zbf6tO;RuvWNxqSHu@Grc6e5H`egyC^A53hhUX&)7Ib%$AU^6Bu@FZ&<71mLcz*JoG zFJ}>GLB0LZ_ezn+T2U`1;-NlJ9^(!WH4m;@PDcY*bdmAQ==d(|%q%#$`uH;}mFw3C zkPnx#JW@hZVMJnE<bHhAjHiB!3(<T!i~vTLd_P2fJz+{0&Jf&&23aUjkJ*fK<Ft*A zeUbwUI8Q`s^7yw}Ue&{c-}SAKiCw5t3+^wI_q#0e5<09xBwUEbNQudjP^S#X5ip6! zVPi;n^CFw(A~|ECz_|Uj48e2;p<DWh<V(;fu;gUO*@mnz_fb|_s?DL=gjhcMt}yjZ zF#0oeLODZ_5j9)5cZu;_d04-Br{RAyLo)FLh@`62r0`7eW%BNikbBc%hBWhf&W{%& z(bizw%y?)EUDVd#HEGoolQ=!SI^gbRcSwVV!AVJ;M%My=85MZyj5170D0RaC*U8;O zNS+NyrhBv`$Ad8m$3FETnv)N?1r7afr)AVeO6~_!yf;Oj^(H;!Ev=svLmmF&TSR1_ z&SpO_U7Ka*4F|f8H-`eHv8FDLXEdEqpVw+w01cY}#W}X*l#I+4B*s2Imqn@Lgxysu z{Lw))=#40BTbhr^${i;OJDCMD*(g|eg&ZxvmyB1yhG1BaIZ2q*MYt>jZH+8aJp>p! zLnP^IWhotYWDBuQ8>1iCWgIYJ>l;K-7MIMFig7n^s6G&qyaGBiWA1X8f5t4+Q4K*~ z=@mwTYz7Qcb7WJ*GTM@{@l8__N)M7Oh7eI2m%dhf=-`7d;-26`N&bW^CN)a5Zq(9e zhpa7!l3c9e2I|%l*6~kWRL)?QlIJa>peh~2W5bo3>YrpF+jAmRoeti?h8W9$<FC+x zTnvKq23B-qA`=I=+Y`aFY+v{0^_!YPYKxL5>Wr1^6ZSKuyOYZ@N4Q4|5$#zD%bJYE z=PMxt<FOz*#6-uWGmC1`hbLhOmh<72W+C(`r9-2MgGanrD%U>ueb5;<peSN)4iqrL z7$cCPk&7f^MH8DPk$dqHt>PhtH^)z_v%%s4j)C1cy{j^eqrWKhe=zooWXDrXg&MpW z)*Dg?Q*#CU5I|~AJ9&l0rr2o0`a{^ne*}?~<T;KIS7!e{wnDsv#km_E3A#jw;L$${ zp_DQf6|ZyK394-2bJUng|B;S;45J<Yd#qWwnhR+-L_=`$mo)fX>Ub&U8c5Y6TWxV# zZ)iB<vzIBqMCN3ZBs1aQqppBEBb$_O5UO0>&k$Z@WuykHvI7vcIF{28DhOYzxy2UM zbPy3ay6F7~5Yeo#J5I`~b6xZIpJB^&;P&q>ZghVh-BbB}^f=TP`RW6Tijks>sX#GR z#j~+6vLzF_)RK_0ORpT+Hao8wG83`8q+Z1sWz#`L4A4mBvy5VubKQIZ&CfOZB;{L> z30Y}_CEd^v!#<vjoAH*UZPGDg%7GSv<l0dRc@0zHAzh@=5c8I*HqQCKRmBz`<Eu<D zD+`asjVyQZVixH);E7fhw#)Ht4(GTN%v93hqd6bF6IhYuP}$~8pP{s#fJh6&vvj#2 zqCp+p%{knm0eY%oaT)G_WDGt4b<rx-JQh(O+!8?3UtCj)VP{=R-dwX}$S9-pv9l;J znRt{f2tv(cptT@GD#?J^4JNje+>w=^PrND}TI(Fq0wteeYGFSP(t?WK{&k*)<W;RJ zTk>jOi<w9=XUe$`vJ5+hDu|8>jkOrK=#5fDTI|{*h!);w3>en+{?Q>FGit=uO39@O zIqA(<dyH4~scknFQ=cqlOhdWqD3CQXBHzjXK0$(VpOof{9y>k$DE<kO343o2GjQFZ zPqcqB!imt4Iw)wQ+vBfUQToBGM)tw4{Q>$S-rK#Y(@O;s%V7uQczqXTCo;`_7f^R0 z4;HI(xW&+h!qf*ei9L){nm`lLPK2CJ?pevhpa-ve_@#VyB6u&!wm0$ZWGX^#^YT~N zoE+k%E1?^zp^VHMad;86^(zfOW&)KCw!VNAgd4VM4&>e=Mno>)SfS7o#e*V~86!_= zVdtm^RGILWv5u1*90=*K2MHZ@e(<<3!aW9(j%MPkhYqgr<Z~B1e8(dkgd*YN_s1sK zRz`w7>}pyvWr>omnmDI!m5>|S1s9O~A{MG)k`$>3@Q>6fr(93`=^077g}e$hFuRTz zWtvEjf#mR|FSrj?6;kMx9?V!h0TbsYak|bTXd2*Y-iiaIN09lOzY_y$?{iDMaiD*H zp2yjt>=0zI$V|81XtSg5PI6LDpfLPMany$VnFOhV%$C0i^3iF9-Lb@BGyorx%h(r7 zt8?~ey>~}%U^l7*{{dMAmaOnO5&82oA?Ag+RV4w==wW5yLI;8;eL9a>?2P^%j0~aM zRz2GOKoDC+ARbTUZguEJd`Xp~o_p)6Ap3%-h^<vULTWdpY}+Oy=NQ%;rt++}aWTZG zH;b;9J2#LXLX_a(X`hK1ZFrS5<hn(#4#DHu1Q70rd9(d)KicUP>{)xL%5v*^i}q9X zx0%pHaqtQbyu>J7$3d`Zeemx@6GG~A*-u06CQ(9=p_9|-gkHyr$u74nS+V4B*ZKW@ zicm&=7Vz*D_-Ndx-DClnVjFeR&yD45l^-Oia#>cmSoo_2=Cl;M1d|f9n*PR(gw<q@ z7OOjX20>b}r&4v)Nr?G-B}#9IO?hdWn=-#2Y=dX>;R{;Ypgivkd@u6>=Bib4Qg-Xf ziyRHeVq`XTNv9N;2J2DVGgjMA4i@&UJ-qmEDVEZS!^h=vg-CEK>PkjJ)V793C0c?w zPzn+qqM~Dc*x&(2tosr`50^LtKn0r(-wtt|v832q<uvh6arzXr-<Hm`CQ%$0&y6U; zI37&cPC>kpgpv=q3h*>i-x5%slCp$=_W+lX?u(?cyive^hL@QVd(JBigQiR*4sjw* zuyk5-$v5C?Zx>TAhwk@g%3gEUerslu8D;;31IEO$!k@?ypvZNkjqdGS^XaB_i!yfT z!F7VPva6^#Pfbm?X%}VLvrFGN@W~^YeJ!PQUkc7bZ5sw#A0OE>E9&s_dngM>A9}!) zY3p*@Io*#8Vm4ks9LD!d5?QUcUc?Z;wE@(H?D8LL{g=Podb2TwuO$(p;iXbPhT)8a zKI{OLX+PwCaoyTzyAkHSA}tZWR6e3y;8sfbHciCaxZZk{G<<OYlJ8Rm9v{u1TWq#N z2}$-KjZCgfPE^~8?!XLSFe3*Yf1{(nuB!_1M*1+~GdR?3)*hCvN4(^4gPIWAM(Q_R zvpA1$GNuBWky)(a+DfUaa%`Jrye~anIRU9Vse=L^+P}Tqu5U-Abxuh4wmpk$t8G{U z$ps8kA(un=CE_+ftO7vIszL6+VWJ~>eWtdS<fv%uPa5^2++;2e`JUOc&Cu!69~6hy zkFZa53N`)+5Z}`8r<PoKx7%y4s0YItkZJ*IhjR4O!4mO|07Y4cJU3Ai`+S`W8Rd-` zOew=t1RtHiKi#!||8f7>QiA7`V{6^h;b3VV_Xa;tV@(jtX_e&Ce2u*tz&X>Oz;*#^ z7lbe{IyNm{&4SRqVg&gJZp9WftX+*O4@Wojxv%GO%yXT6{DeSQOgf8p+K-?3N6oD| z8{0w^9-=^Jlfu?_?_2?c9d?O?s5qQs(6yf-wpVPh!G`O^YYXB#&#ztI)T>9*8`WQE zjpq9@|D1qJVd(|e2_#S$;J^jmvm;_visjdFxKy^w7g0wzo<!H5I%50fG?%jrPU<lM z2kV6b2Pw&K+@ZsL+gt*^8yCGO&1KGw>wpK4>8BR1+?ww~LSX&icnWsw(`OY-QY|eA zWQ6IffZuP!(aSumiR%=5*0IpjXuYrdh0kDp$ANqsEZ?cMCXz_tPcs3QMu!ul;L>k* zyNo>o;}s{G<wrU|ObQcq@A_ba^(F1{=>GmIphqN;G<j_zKLQ(7NJv?dkUH4mb+Q76 z-|GFNUr+b5w28k~M4%dZ7Ttuw!3vbU0?xGo&n0f|TPx>>Q_8Gpj-mn32@Z52a6Yjt zI1BPvFu#@>GcAx)X4WQ?k-Lh%g0qK(frV?31x{$P5URF}0lOw7XqzrEI+C#Fk9wV* zDicuoB(=t}Dai1@KiMR_UpeN2oGThuRSB8NwV9-V7v{f-vAo7xhbAH}K5#)47zY@} zBa!{)3Kv0B=3x^j1@v?As7Y_FLVDn#;cm6+!Qq$eGLbKTdaQ$#am%L4>)3~kZb^Z9 z(|}$Ih<;!&K>uvGU)a2q{so9yh~{<yIa|6^Gy$tunui(~oh5NeEP@%ZaO$^kF?^iR zCXzF4Dq6U2>&3g5-U@37wu(_%Wm^}hw7XvniO<#bCo&Rng*niK_2o;*kCU~Eo}{I) zZQ;BbgE=?Ip<jxvpy#6BlW-EZvbi6!YVoOWsB)SD-06bpqr+{6!aHOAdHkrSje?O6 zg1P=SLDQjFwWNrv;kVt>JAzv|%C>DQzS_^ejLB^z*-ljWv<?cm5baj=_eR~DDiIJr z?d<=frBd=KGZ;67S5v{s@SNEm*W7aXV=3BEwE)%RKq>0>j>S&@X%EFxfyZF2+b`v% zE*4^0zN7x^58Sn#t={7<IVx%7?L`BF;qD$-6NbX8rOc1+??;1Irk^dYTT2VoYd7P= z7@pei)KLmkHM*=8^c48tEx9l+xegd91QSi?=v%z|Rt1D{swv4WpFM=r0vW3g;DY}b z@V7>*-uOmXI3A5QoZl(U3D=is>BcSrC&4`|f^=zFV+}WPwjxToSS(NQ{xmPr3tqOO z!^41neo~@?Vw{7;*+e-#kbx~M-nxx%Wi)L%Hu8}hDWS`jJq(mG%W*Y49IPKN*t0I# ztiIlg)@O_i=uXg=a8i)4Gr~cb=@vR<!5!ckGy<}>IE|q2H9L(Qf=Q*#@;{rWHO^RA z&nnTYb-<?_Wb_MOYJPaJ)Tps*^O)i}=XhMX{D8~$Jv2{&LDz98q^B&Qe_6`l(6K-D zFq;(gXr4@~6j$b|y*d>_gDR_%d_7?A9<d3d2;kV-4v5R~I!8MTyk0=l4Lc7c0ZP|! zIjcXeep@C}IZ`tdArc=(DYNCRC3LiOB_ICCtrqPGzm}!P3V@5T{dj!#+g@+6y<~GX zoxlK+1ow8hi(~Yf_b}^m*>~$^_w|m&`^kW~2S_ZV^72Mc>Hfu=OIBITi7fklbZjUM zZ5@0C6%tU-i&K6qJ8^y^I{kNzsv?{BkpNNDaT%}o`}s9hQPBX^{VRL~nQG6QW5NB+ zjS^TD4L~6WL7q}n?A-iB&`O@#%`e^aNz`k={x{FW*vzZO&7!p991a+f6Bp2@#<zRx zblrKni2EDPHcom_Gt!;-kx!a;1xlw`)qer{=F@rN9*9G2ZE?Uk)_yk2oi*bP50a&Q z8dAf><foO7iq`zKmyc>BDb~V*<m54Z`{9{hGz|?#C<Ji$$i8QwbQVQfVUpSl`B}as zFiQoPY#FCJhnAR9T{n@iZbG3~(p%FTpDIEP32Nj(iiy~~LGH3jixb5{a+lH4tRk=5 z(Iy%jN^sv5(IANwpHt`z0Od8d!-8smTL-=!;)Qvd3j*lGX=DchRG%IC-R<#c`#owH z5niUWJi|Zrbm98xqSPymUTQS4ummbgv&p@0{zekA8_12iQ#@EABF?wOA5yb}FPQ3( zSUzKao=xA*47J9G-Ct8xh?yQ&mQ$BiZXs&wP;lsjE2^{O3`4~vcOo;>zru3k^(m0p zA+Le}$xkpYD;5|N#<=kYod3=nvBu9dAmYcy9~83JS^apG<8Dd!hhKK9II+P76Ehf< zLqizBo*n!v7@@9mm@TBZ@`j~;0P2W3(h`8=TP6vFlmGY8`PW?&(%<aN?7VJ$?(BW5 z1>CB~%+w#B+Xjq%Keg(@0hlI2@i0(wOW`AN3A+ZH?e_gfZH(xkxnWr%%`bg+GeSRI z$1zBurbztCMw-PDun2D<2b(^1W+&OxVeTq8ZM0ai9gV|Sq8L_?NKOw^rIFQqQep;N zL}>H#o4H{oj_^CRM=Pc1EC0;Hg-zK*o{zW&lv6^63D>S(Xa$Zb5=Nn`#1@mw1x#l{ zc6b@oqKUAt5m_)JnIOL2P3!@|lOmVnKY#9-_52z8WAL8qB!A7lmny10Zry?n`n!*) zVG&lQ_=P9f{`ehH_BGzRh*2|&Q2U{4mI!C^4f>PVBLmcdFhdmqC@(QAGO3G^Ohvf# zv^>q0Z4F#4LPQQU0k)&Bz?Bo1;?84Nb~*j%ckvKxGjNoC?I{lnWgk6d0#PEpwxt>z z2-=$X5U?B)5+;|k%(*#faClhoD*1WC-77ppCUOxn5d$`;40tcHuaApelmWP#_af?1 znws2wX~b&yn3^?G488D}#zAxO(YsU6_zN-S?qVtvu}4~Zs5#|3BfwiRwBw<PTDgMQ zUVZS9jWQfv`PEnFxRTK%C8#VjjmbuF8PtGs@4k8UenJMeS=ew1(6o`9BW)*%!37pR zV|`?$0U34$OcqU!0DYQY48Il6{91-L{b(0~Z8k*^Cd#>33_UrO-E(w(sbw=Y6~<P= z&1Rt^IkSIUfqC;y#@xl)&7&wAhV^H(Z2w*6?a$|P=7TsU9vNs}AgHf7n;TKVL1XWV zzze$3ZE%Gnxv}=o_M&1Yj@YWj#Jy>veJhc-EH1FOymwh{3a~^HvoY27#dKJY(5?7v z_HKqiX?)quBiqe;gRjA|S`1nFmMwdIF%X|uFqLwvmt?<FMF21aT@e>~VTWSRc54sM zl$OcpFHV@R?rDYaBXxPNZ$NEL-6_%-q5`V?4_GHx59%rFha+d27hb!<sr!6@@+bXG z2xZ{|-*3TmQR?iN&NC0j)hQ`AtBC>0<HQ&rMy-WrlS?Bpm0=>ge&KdT2DS|}l^`A> zo6I&wJa~W7B6b->iK*sfeAK`zl7S=Y3bDS%)054vO9f~9!>{+?#KSkp#DR#HARIV# z8>Q2S*OZ9TV9e8I@l>m1P73SB^vAH|4Qp(+n8Dd)l-?_!pPdiBETJL~jQ#M|2!%Y< z%!bu_5vA!I1Y3VEb48}6IIMtAOCmVM#Nx?)zV+2J3-2<EqP{Xzn62cGpU7d|*oo0G zmnG`ef5FkG!Kim@fIXHaglc7BL2HT2?H6-G_sql*!pWl6zlv9YXbtTvavMPdZxz4A z%Kf4zomuikJRa;E(wik`+Bv=Sn$cG=RnK9x${N$ja|6@UAf7N-0Xi@~&Lb4SXlq*= zbv5ZbCA>CeN8%Y$#lVba<hoZ<Rf*a|86H^ZIlrH_S*OQfU9M&@XHVTS-~^E0dlSv& za8zGNpqMheHCLKwHyQ}QO5GWfUa&`r9S4pX&v%Fs5g^8hAw?+XGihfv3e~M6p#;@U zhfew7o}RVoNtO!*AP^^xGYMqg;wAak9xk|jX(_YZ#@^kks2^~TtUJA)EF1eLMQ)Ow z%5;j3l|ziCAS^JthYJRKi{xKDU0x$JH-8Ohq;&0W`>=0_9*)D&Y}dFP9A{^%Xm-*v zFw~H*pH4Pt$*NZ)>}vAzUckV5g>K3XfPhpC3=CYSC95wJEbPBJ@Q$yPOblqVS2-mp z9>jy*DpBbfjwn<<s>jsa;$6Q7$ihqg$GuChAFlt`@Lc>?SWVf?Hb##8;of-<d`GF_ z$b!OIL%O)e+hGmM%XCp2JBpzL7)fNgLTgKjHcNZueq~ac(d98s_N8E6(AV*V;BwLR zVeT9TiNrpjhxpEp)plT>;4@I+&h3LncZY8m;#q%VNpGKMKGiSaMSGgd2}7Ru829TJ zM7dKOnt!*2!|g%YS}9dnt2vf*$)aqYQP+sj$9|y2f=05g3rb;@^(6l%ZMPffc9TJW z+L(V980mF77lc6jdDtup#LMX!we`o?=E-JV6vJ=ZFJ!DzhOD1F*_sHju*J>plr#e} zeqQKqo%ae~dk%)IU3Pt?uqS{c9+_IM*%8|;W;BIOXNuX)5J}d;u(e5eii5U>x=(~2 z(TPwwrS>ULP=NM?*;Gcu$*`TE#kF9Toh=dL>I-?7+WyV2=j~oMeqV&stD9J0Nd`OE z?V#hI0R*x+pw=7VfNf%SAE87}gDZmG${L-};BB+h)rCdbFsts~F^+qR#YrvaVUKW| z)o^p(&^b7U#6SRr!+y0z1L94{?cQ?xE;{<&di*&T*&VIMZO!+`4gnntg8)YBxx9Pk zvtX0vqoPoxkZkT!>c#nRU|We`xET4B#raX)_n5`rH)R>F-xd{2DoLvaOF!=!`_U!| zf@zH6@xhbx?pE0X)APao&7TsxF6k2Vv*Qt%;ScJ*w)UD{evhTZA<ETytS;Ugb4J8) zkN_zB@J1PCN1Ab^m3olRoZXpHm>*7ecXs?P<Fv5PPeg^}@X)4(Ph%#O`#AgP=!ULF zAd7j()NUrZAF(Aq=ac~F+F%tBehj&zwSYsj-ewn&9|Z<J72$PM%pYPMTseZft(LVV zIYRx%VY|atyHM{)Xon&$nHH4lYOB)Jis$&EL3XQh^^Sk)H_CNE^?P8W&(6kv@HRUv zXDSp|=C%QfaQG!)qHyn+Gqj6E_vvNbKOEA#2F&qK=9+~0qtR$~M(*!wjY|pOe7hZ+ zY>nOU3PUa6PpW8$Jc^!t`M0hrJsV0PzkH_5@m1R5t2Je!m^s?I8*dSZ5syMB+*P&k zT6Gg|v}V&9fy`8X2^^kD<MvWQbdNU08ahIKDeAAwfqXK?{Tgl24dsyw$MDP4<-M9u z__|cc-G`}kp9eHp%WsGb;so+PbMBCGKb+QO8Y=Jy;6j15@SR`@Yk8o(oNe=Z<`>c^ zP{`m7Cd`4wwq4RU{ka7llb4z0&`FgJTzBs5CKMIL=m`2+${ixstltA(#E$0nH^vTU z29MAD%ARpqNQq)g49}16iD?gjD0Ka<*bmU;au9Ch*>!&+o8*3!?Hcm#dU{Fk4`EI} zQj8dj?&s-_tCU(0GX3=CUVJc#75Osq09y>lc*L*CVZ~Hf_uQhcKVV21{C!fM9Ul6H z{}9KNZB(QywcV0KyR#wi3GN{dl9r7zT0MQ>OWqaQKHUZVJNn{wXk;*eBQ-Ty?<Zo^ zJ_+$O7(I_}mXWmjkG=Z^&}MkJJWBkL&cu0?*bop2;G3iQ`pA0<(!|yC$CDG7`9V%4 z?H{YMr`t~tx1FqRt{q{Fa&xtfjmhuPNBdy4CLR`R9{Yw&7q_q{v@`f3qnWPTq?_rP zUp7*?EyXp5TXi|n3S=JRN#o<>#X|?_fW=%LC8ie6@d$)dG?Stc)hAY@E#dCR<qa?y z#@F$4Mkb$0?xW1ghq|LapyVNBP4!_nR&H<KQ%ykbGy_%66?EvVxOLh>aFqoSbBXqZ zHYX1S#;ye$CKXk0@VH|(&hLIxERax*?l|m3oFitXelP1AL^?^o9<RPclaktYI`b&; z2b?OS@Ytitn{kTdWW(^xW1rm&&pAW9yC}}4c2i>6DLPDfoD!wqq(w`OHiJRXt@dxh z5nyt<m)=`%FLk&thZ)+>SuC%6GIKJ6Axv~Fg+lhO?VPuf(5+R-+}xfJU})Zh9+_UG z^<@-0LRy#3S2E6hxD!wknUe3}2x9eUW*gr$-Ra|*pVQ`_^9}O)RXnbm7AK@{L6EWT z2*k8SG-DN&!7H@+U1c`umD|iE!JBic{7EU@%LnL(Gu718BF-bO*)!7Pu_t&lmys#$ zaN-Fy3UTp$o`+PMx(qRn`XxPXdChgdSqiYp{vMexIdF#?eUIfT`)ajB{ZxMaie>l? z^oYR(qeXykZE13K>t!~(@|BNvH1c-H=-$vA@y7`Y8o-##PwS=(hU+w($-`kHicQ=z z?7D87Xj<^EPXjLvlDjOY^|xc2wZ}Ao&jiiFBEUa2x3LR#*wWb~zu}gKkwM~sJo$}; z@;Rg8r6-VxZcP-y>r=Y|=f@m<hvlTt^Ue!uPKbYf3WF`0<-uAr+(pTBV?2aoesO9U zWOAmOe2hkDy*RtRG}ZPB*M9WM&;XLFm^*{u4vciz;U?JeOaXa)c{3|E5qmJx!<j>v z2V)epbvdxcZqBh8DCqWWK0&}!$-<pQMtZ8d<9D^@nej%Sfh~T?8B6gS(Bzs?Zt=J) zS(^x{BR%rvD{AK+ybo9T`?JwqrolUF@OdKm&!V&I<Yk5r>s~vy=^X?!;QtI?eh7kJ zP4+jPOiA4pd<dfE={juqAYGs7%x36M)?1N@XO_v6nIVrg-8+o^>2y-y5C{`gKbW&b z=XtzdEdm0HO<|v&4L%mjR{!P?*E>1Ro<CmrRn_e7a7mA_3>YG(G?dW_oL^llFlkS| zCXSi!s@NynlVamLc68a`eLQ|hQ}c?iyUXHohFX~_x1Dcv^tcEuPh!a%{81%D2K&R~ z@6L;+feNZ}wK!HCX%a<I9?;u%HC*hatzLat!E^rzaTcrIc5{NUEJ3gUCVm!3Fv<NM zeSNejYk$Ifa6fwIs1h6&s;uHFF4Fn?9QejcR=n02nUBX+{A}y{gkup*z^E+ZHO#p$ z0f0K0%W_<HT0*aFQ2#@PWh?3Q&>ZemUtl`{Cv2Ka#wI@Nr+=@dko{^@%ysv-l8W~E zqqD?z-KgMKM1xrmzsXqO5P7%1;I_Wy@gZu(LhTS!<A`dhog8gZOO*P9Pca@l4SKG_ zIM&&SyOEvMIheE9_8cJHR8_&<b1#}IO3p`Q78uCqmwm)cJHL4w*e*<Ci0WY057@M* zc1rNsE?GICmOq!8oNiB@f`l(RaqCmRE#93}jDy?(A`t_x*_l%N8mn&`;qTs(%3a`= zVwAXjB@Y6AR=$qD_@ZmIe(Ia%H_8V+1xnVImqYfP(McEJoRjFJFX|6lNUgZ=liBR2 zjk}M1-|*yn-+a<4+}fCOdwt1TDCId-h$c>*b^v}dslY<QlP7()Cc~o%zYv34;tS7H zwPaG{H(tk(-~^1}Zv?PgEjNaG-zOB+Enkx5&rg?w_`EwP`#H{Rgy47z942CetDW#~ zkb;#OC&JX6Pxfhpo`z9MGpbA76EkYob|x%XeK&b}^v*k8YSZail$aOV3$>MvU@~tX zV3qN3i!spU;l0uCd!uxhLo%x6?l<CP9d{^GSGT@1XJSd~aX4@$wh2oMW}IvI!NfOc z+WFH{v>>Z`>z<0pvQ+-W9|%o9;UMO;enxP8yF;N-ES_nH-cW6jsgw}PH|Oo9Xei;{ z+(V6MN&q5re36~HU9l{Rg_$deJ4z9&7vzVo6!?RhN?;NSLm}7VcvB1n6-T^`q`v-a zkrac#m~m&M^6lLgke~<TuAWA{G3^$jC@Jy4MSAL&b3iC}?BS|*-*H$ci&m1<lKFX{ zH`H{hQt)SX_fa&a%4Y;qQ80uFpbImi3JU~0y8BQnss4g~LQ8>p;ob8W)8D4yz%F@| zFf^x#!Ye|7LZ-3XG(FP;3n|IXls=Z!m|ozDBv%l2Jagt$&x*=ebTol=2moCXJZrr! z5s;V=K_G^N^5shlCMsa!D`-|wL8cx|<NT(Rf>I$NwZ~h04x)<f6;`$(MZ_Waz!EYn z{T!N!-+2<08<WlY!TDNn??Sf&ql<e}LmVyIdHV%XyWgEV+f{HCY<Sv_wqAYaYK*LQ z9$(f@YpEL`>@%P+JWo>;{??MC8PX2nSB;V>O1KvhUXAzBD-`@%Y4`VL!*pQl9l!VK z-49rfg8nSvQj{Af45A)+kji%P)U8^!%IP5@aEgJk^|YYYHv0i4?`*q_XuuViC=u~! z`{^;c&mfFmoFo{{nePSh%<s$J7HiS@TtbGK4*+%F_6$5p{SeG2Ov>05=XH{bPK_7r z6HkA4%fDbJtJe6GFEQKZiI*tKD_#{hWcV(V*z02VC)&k1rkDrML150k-9QJvQ<c~G ze-U<0L862~mTud&ZQHhW+qm7gZQHhO+qP}nw%yyav9U3+J3ISWZxt0)S%2m^=Sv^1 zrGT0N`oPc+186|o!sFQsh_@hN_dR_S*Rd!0&##+UmvbeNPw)EXx<w-LGbF-=j4pjT zGX8IJS1Y-8J;J<&-VmZrMz6<?jBxBS%=bl7yLZ%MoI6t0<7JWVt>{wl>?_Y`J53DG z=mk@;tAHMnGq)208E5~NRN&C~vm@ijAA~Gw9xKjbo_C6TG;kraG^ye#R(St=ZD3|r zHDh<{Nd|BPRTV3jSOrxmr1~(D7+-ED0xTLZW|OZ+K$I*8Fn{4|;6Wn9)v-Gcv(X{g z$x}OT+3kALQqrf1dJ|=@bX|P<%mGwwHW9i|cY9%l^!$nT*nbS6CvxNf)~rV_I)R+j z)bLCEpM+2|oVay}J=GVTgQL$UDJjBl3psh!I{?^gVFoQ)Exw<gnVBgL_ac#cjW}<# zz@hNX308=X(aZ4<7lZ%<RM`aAma$WmIq!m6M0?z8hAy(9;&Wo9Qy}`^s_K32S1Yp} z9_)W9QH9B^^Bng<BxXKAt9m|zrq?CKh@q^z5p||$V}}+EDaP_Z$aHMM!ok4j>`tV* zx^c1>#hyIN$@<A8Zce-Pb*VURpvyFy1}rm~v%(-srOe?!j>S}#W&D+x5x4yWnVKZM z{$@V4q|CYfbTKFdiJAM_T$vwgT`^>L!U%tTNyHkBQ_%)xiOp~Hc#x+(VKnIuI?nm( z&fkEEdPGHTB6Im7L->|obl29%%j)v(ShI7EdD-vHnd&2c?h32SWDA?PKxw<VQM`We z&t{QLM~DEpA_IZskDmEAdSa5404LE_tvU=mL40^Q>Iz}%q{tc#wIq!F8f~LQ9DEm& zOm5`meaWS+=?L~7NlmB+Ia+l7!Y_gJ<9i0CuWPQdSqt6B-z>;Brd?x4)nYqtQ1<qi zpoZiAA!rC+uGtZ*M<@&)b0_E+|JxTr6DAk*<uB0Fx#PX%8-OPR16fL+m3`EDYAGv# z|8|4uRYs%Q5?vOE8b+cy>lFkD&P29v_JK(DC0`61E9PRCL|1G#K*i*YKZJCHxY8ZY zNc|(-0EdT$^k=VN+10c8FRSVd<A%QchR3uiH#!m3T0RIkWOfo&^Y4@-LH~>soaTtX z_3Ok-SL6p(qf$d!=|_>J+t0jB2&VyWX%E15FG7*^rg6{^*$d3<ys?rdF@CR^Tvdk^ zm!-0PR$*(mRyf}-TcSYMU1)xb9$f;vE(g28lS!8fR%~Yu#S<&6t4in<%g#dLv%mJ! z7C=n!vw#^9{zjJM7z@`~ni94`+Zp`Ol1a7g?~DXNUyqJRGz27w6jO$Ntw!$LjTOl0 zku66pFJ4Iq(j6QTHi8&<%?N;i9)FO#PnNoo&5}5gy)qG}^`L1Z)3&)fTj9Jt1W5Qv zHd!gRzlt3@W?odG{m<iD2tOpK9^QPTR_I5KVoP~Jz#Bc#Yd*sH450bA@|pZ-IUj?; zX1r<~LH1dotyDFIJZ&u}bY;Bhffj-&3hAXZSuoGoAs+wY3~D^_{jUX}(c;9Ouvn+= zSH7O5CI;AynDrHKIJ+i#Dnu%@(IXVWl8on+<8CkliXFrM|7i8{z_CF^H9&7|y%#Nj z&^|C2vc8-V^d^x(+xWP5VhLl8z($je?oa3Nc;2sb&sAFNMoZ;0x4pnUB1T5U%QbpY zvKed#+aCD6(^*cxS=PWCuN&RVtqtF+4fccb3hVwEpYMYMDSeEOw!I~FJ&*M>NBxav zD~%RwV4s(f7fM&Z@$-ZI-Z?qzM(rqkT0EZ3GA(GRS7?n|(Fi#ZR6O0*wz|5v<0gw0 zB3S=`y_&xPKTH7MZbwNeaGcMh#4*z=Wz5b5-gFSDOhv(pdn3v2JjBxMmaDHKIyyR9 zSTHe(*F4q$A#a%;`(f{$PjhQM5&?auKR7bFx@=l?`<8y=uL=~;3Bkd<{A=~b&^~X& zFD<XoNi8vu0?-*@+%vS;9;fU6{+|JwKSMKp`mYfx%xH9(Q>CHd{x!|b&Yn*T^8Cjo z@;qd4ov-_Tn3_HBOEz>^R!4PS&plv^HUvlgg_5e3g@;&sY5(wkw(p$#XbgK|HRC@O z;3ALfAdJ}CckS4ta8XVUEwFFamwb6Wo*$z@dx_B(N^i{yJ?((A*$2_7Tt~WIMYT`n zgYGPTnHB;($tbVUxSn;MUKem#jlq9~hPM4UG{Fm2*KqTYL?85VF1%TA$>Of`T>359 zpe&XvMOd)3xS@96Na4GDmL{pNO%k;j=yv?ed5Gz}Ec=%>a&+Egxqe32hb(USBQmP* zLr^Zy9}QCE2!f0IFoOGGppfG(Sn`WkgTsbQ7Ud>KM9J4~FW0?!-XAkww^{%BLzbP& z5Fw7NH&Jt+{R0MPc&PX%-+dk@E&WHBp8+Gdb^_M&6p-7<yQuc73))+3MSGI-{&hFL zpZsTWxHx4aC@twvtG5)RRDDz}ma@)O3~)C^5(a`CfUHW)l!^F-0uEpgK3YdY&F3T+ zcSjJd7MoQ;2iM=y@6B4n{xAGf`e;z_KZYro6!sAPg_gCf^m=DhE(UIc7s15jIhbXL zfJ8`p8Rn$|J^W2SVf~L=+PSw?qKzt+8PMfXmBuCHk^o{#5%<#mwMHXqFtBa><N%16 zyiZYtKV_~j$vg%OvE?LXkPt%{L{K2v{R`qEop`9IX#J(dJH;hox7Q~<Z|9#pO#<L? z-&2D3o@6d6B1C9&?CZPVG4DC@vs+x|;O}5tfFNOBUEYE_1;IV_Cz$f}gt)QcBL>Zy zPb8E<QG}yPHBaI(WoHkWaQx_@%=cD6r`E5)h^<g6XfVNnO&02R#vxCXd--l-L8oW< zceX`LVOWxEv022vCFn~D3YM#@K~`ED`ou;;I;A~d_*O?0bto%vj)3HNQiXz4p0wWN zo_+`?zO&2i=(4g?H*0jCrW)V~4`6~tOY;6kPN9cVA-2<LH3!k${9@`I@M?m7JLG%Q z9?J)fs6HddRlns3ghW-4JXwNXI1A$|%Y=7lUtor?(4oz(?Gy{@H-ONT;bMCK$ESzd zDi6vS=0dS?xD^um`fK>)Hq@k2+lw!JaM2K+2a&K$?CwA-d=}efcijW)_GM*fP&g(N zzD92rSyPO&?}YFnk#pPJSSAGp{V2EWAGlmh&}uQEWTwZ~(9qKi&j2u0Q$F78Oy9FK z{TsmXIuOrWh9%6iHF>~1oC`xJub0Oh&#d3@HeFzd%if&_%xJo5_|5hg8OnL}UM+xp zYBzDA`yC5=<D(e2ra5r-{l2B8C8Yk~7U5;Y@#zOepi9@lz{?a7AK9PR*0!SB!SDyU z4Zs-m(TVh+{7bAuF8e)baK>GHp&beMUj)!&+lO6WzpTXZ@&3(ErLZqVV8VMhRH((- zmggccf$Pd&<BnZe>C%dt5JO7;8V>-B*UXyZE%Ibkd7vbGxTLNS>l>cG|767|DE(mY z*qT@hDqIlmLLrH$iMO7JrO3BG3h@jM7FHWgFzPfg>_jE3NE0QH)fcqj&v5h^(j<{1 z;VjMZ{AnjhBUx^8qwlKriHKevy@N&3D>)?N(DUe20;*|QSZGQXt}1qMErXZ#dj;gV zI|cF6JKXQSgPkDSJS2@_IIbEyX4mJV!X<z3J$3+f#qFBDrmx!1hmuL9lOr}ghJLAI zt6-65y!!6sjS5H-z9gQ6f$<;`r~2+A`j+8k&5YNg)%C`b$(7p^S5_zd|6X+8%G-SJ zzjhw}zPO2bG+AwPI!vdnWhn<M_CTu=ii$MKGD(<IQEio0<pWB%8enF?ynGkog#A+& zfsdTQSwNTW=}>gnoER)bwi#v@?Ns8yoS|<MHd@vfSm0vGC3(h*^adWuFRBJ;UWKas zpak$3CP<w!Nrg>EjHC)Di2#J-l-G1R`)~`Do)I*@;7beE*rWaqPnzw!ZQMk<fkug& zw?_SV$m#osPv<{yK@i=1kPP1P>!5$om$@TouEAwIQyY8^A1K6(V6;CU!(eqJDc4p* ziLKsI*9i6!HKr)DCM#Ci-5WRZRoBxEVaHDoZ;h0ZP|mz%i(lk)t`S--jicB#hj5!@ zAf;v+#vvC9)?~HwPme20E7=j?2}8tYsAt_0Mehli-#30;^4GGn6(^OcW3<KE&t2Vb zoZC6`H7yMmyelYPj(8}394e;*27{I9oh~*o-D*ikon1afPvD&v!bbX76EVcc5|Z~q zHgl%lufmy@EbqH-aQH{0U-K)C#~1>1G2vKhME7_y0e-x+$7N=~w%piaQMQDJ48(^O zuYQ-VsfRG5ALqtmF`4AbzQcaac3vP~e>C3`^aql=_B>|7pU<RawrLD&h=-zKg?<{K zP9!4|7R7yYF;LKk1TV8<WW-4;)#I~ot%oY6WXdiw;$(Z;&4bMUaHrJ7Ve9cpej4L4 z1f{maE8dS=oGuwG4DodG&st}TY1Jgme6~MFj^JPzaH+Go72O5{-U8FIJcQ->Q3g}Y zZ_tHW__?io`tC0RGBFnP=u7M26}$QWB{-(0r|_-m#uRJtjR>~;=Y{zR+l2S(oRa@I zka1SV@0gjq;`Optp#C!Bb-ARK9Y|4$t~6VE02fS~8>l82uOpFu8+!2_A7Z6S_m>n~ z<f59^mR+T9K>^E=J*kC?78O=S3l^v;$u>EeuoMi>u&zQqg7ip##O<$Z#sod%N>t`| z2D+a67fNNc8=xH#8e}lY-{GSD!&Xj;(#E~bjGn=5`kyv%yKZ6IM0ElMU9m<gKNI>* z1Uj7TP+@tHIY#hIQqbQNtnq{GZl-vB@MJ~~8y(?tEYaNNso>PLSdGPvJV_08^1SSg zBrO>dd^2HHw$WxZAV88ssb_y34M(Py{cC$M1Eq9O@nydI9Xi156}Te+7XYp=oB((( z@GRgdz<;`YtpT@{xd>j-c7Ro@)VQM#=p#T8{b0)@RaMKMmu?~5D7Fw13mF(Q8^Vr$ z{@T+(r}J6w@_2a+-LWX_hlstcX*SA4e(L_XexUzzPvv85_BsSGzp(H@N=CN-OR-XN zFsKmGXCX^?_Dkoj7^v>Me0Di2N+BjM;io^g3mvubX7tr(D7EFg;Pr4W@R5TPk%2jX zJ}&s>P$58p8enpxHE(LWVqxt%a@tLEo|KKm1dT*P3TT!3I9oQY)n4q(7-*~sYP&wE zGN`HkN_`V`d~AS{DfGdPTpLb`F#w@|Z%pd(Hybgb)5~jH%Rn_gkZXzIkqZ%t`Srq6 z*ldC)r<JJTgM@g=gQX4&GS^@R)|XmO@qco&ztHS|_(tQAaw}2D!F?<1g(yrWeEfkl z$6pZu&#a*P>i_X87C@Ai1yj&~+&?UVPIsGx39-(!S*AR-fCHFL>xIt%pNv8(B=^7y zTk?mto9E^WJqf}h(Q2)7Gfx8N#m*<_<d&i+tmZkLa(MPyt8lLnyWSFHs&I}dP-MnM zS(OE-+*n2d)t96xC=2<$V|lWeAUYo=8X7zRYJ@Vbkihq*<e`L)D-HgV3r)|CJy3kx z&1o7%%jW)g&Bkt{OFvjbymgjF;09U_0oK&HXr(+cfd0isz&-;EAO&r)?g9_E>4an8 zQv8^Qehuh^B9w;kj+P|!NClb;fFoDVt~)V+(bX+HZVjmc=qfqdZRW-sxY6<kjd(2g zMHPL<K^EgkADX)Wv6qJgM|(*I{O0Oi3cOT?%w@N?iiy}WfJ%ksvn-bvcD{9>O&8n+ zNXp{aoe^L-Eb5awbAuAW2!9cCz1!-GP^kTSK?sv3-0$%hr|dP7miL=FwZ^XYNCelY zsc`qj8^_$%!g|@e4v`=3okUBGS{tRt5IK1!CMA`HjwG_1RI;5!2@OT_SeZ$8MoR3) z>rBoLA@y?ZOIr&4qihl+JU`m3x{S9HIH^w-fS7aa72)SnnD-_>MB%LuZNkF_Vv|T4 zAelE74uh+Xju9OKnbt9-3+<ixgqw}`PM<iglsJm?S-x^++TMxMFUm|J`rJu0|L9vB z+Zwct!YuoUH5X{Yp&(3bz&UAlNg;m{RWEDkt^hA$(gmeW#(rFr9;0{Q{whl8nU7Gj z2OIh34uuoE%;wFxJa^m5lJ~BkFVIemE6R?3Fg|e|JZ3I3EDmgzk0eBq?F*K45buAW zB+|(~C(~MAhg3Ho&G;ki0Q^f(f)^?_3rHI1GZB=Ui3#3xXB&8Un>3J8C{i=86K!5d z<io;E`{XSTmwbj@TkE=8`={50Stp6fXnG(U3Q<sBm?|UIdE4K!81^`q?Ik1KBC-xG z9)tJb`DlUBq<OZ{VguDx8X6xzFSZ=3fUIbzjsg4ee6@F}!#?|@<pBh6!|@}{1V=y8 z!uK%AEGj7}x%`VV{DDi~vUNNshVRNx3e*U6-`$FBDYrG-Se=X!?wcK!ob{FiYt6CJ zlDi2r$3T>}XF@)*rHDD$iY|d(Z;m4t7xU)Zvu`U-N=&px=#1eq<8+tiTgQ&K=KsG+ z)_<yCyFbBz17&;k1ZKU?1|seZBtYJyXl0<0FSZ=UWp9zAvB$4X=B&5q-6z3e&Vyvd zxt-0Z;XB{~V})FtU{Po=V{#&rqQLu8g05#__*c+<nCCzOt{L|Ck{B+iBRsq3`!JgB z>dYNVT6-41DR~2b(r$cjpDvf}^D3>iKa}qclQ2}|!qOm<b)lRfz3L+(ehj5+Mk9eS z&qaochw{=g`&lKZe_?L-yV))0xh{zO%B9@qG41xhs<h~NJmU9=iROsf-@hVix`z2I z-yK)4&|J056>1H>ye!npuSI<F??<c=Z`p~av!#waMiw4#sHnKhF8z3fBVONUU3Ujm zUo;CJwW*3OV(RZhIu051cdim(=sn+W4c!9+q#}rPLJBR{NsX^!l$Je<M&DzO(o5*# z*rOxX9FHW3_anC$2p6cgf{_pA`&sr12&u*3CYfN#<4yWFtS8No7pr}FBPjM00uY!V z%R8>SzAO28YTkn+hsa2>QoxY&*zHa2{7leIvR%?U_f}41i^;w1Nhl?-H}TO@RYx?I zdNee>?rZeO#^h779InLQN{-0jYf|RZNBg$d)X@WqBZZe$^5YuRoT5ZWYn+NB1OEiQ zcd;BghS@!wj5f$&4UQqpT_6ci*>0ca#qmMja3(tBY#EMz%IjlxqB41fDj55sLr-BE zey<(eeO25b46W`oq`|Q(g>aUM(enmmMFW>lmKrXuhmV!aj0_FfYKhOO|JW(|sI3sh zLlTDbm#&uT7N{Z%I2A0fgBzTtk{nj;h*goC{RQYI1DX}O7boz?g9u8o1wJ>g$fxK} zPY#dsVhF>VElEI01o9YX0RY17(P|b=4;9HMqPs;gnn@PRWN-kP)s(J+%Q1>2#1{!o zM{yK}1VvQxFBgU79(k5RaBdG}#!z=Y^m{*lAGpWpDobV#9oOnh1%@5n&<<BzZ~%1S z4eSY%GIE{S+9NPNB#uH=0DR?vbH#}=wRhNQ)Du<!w3Uew10P?7RuORmrXF2JE29H0 z-HBLY1w4lf@Q>Fa#o(ZT4X;6sAEo!2(vLYtxbx#b759}2ZTIcE#-)9l|KkPWmQ?Ed zY}~~Q5TX{oDFYadxP`zc?8MqlF?UXcV2vJFkSxU)5t?Xy?$Dw5{-yg0tP4_ldn54b z5?k1RWi2W#jH*4&wRnuaU+`sKeNisQgCJK_zn|T~;4w|J``MvNFPDUWDcNZ$o|1$< zQM?s0tKA`{(q01L;?>k+a)Ku9d8}{vs;|Wc&)O#DOKs!V(G+LPp4XJG(fK2L=7-jU zMMpNfrEz=MAZIDJ8oYFZ4d(*f;ZUBnToTi2W6i6knuOY_=$u>mQ;l3g|50H)97@k< zdXGZnB+x{zOeqL+Qsn*ep*gFd;_JU&r?KxAlWL>FIU9qgHh*Q?Io!A1Yf0Lm$30<3 z{de_+WxD)!Z{&iURgQL*i|Wkd;b5LwpK;sg-3sMqGxR;3h-C#|MA!?G3hr{a7*$JQ z^8(J((o@m;4=W9&+r6%?D&|)7m>Z48rng|e`z1o*&KH*|Ct!ZiaL2BHp9E|1Zgd=| z>v&gVXOp?}GWHGnXc_qt6zQ;lJCN(ejJ(0&`OW|r1!`VE)T+mP0EYe1mMt={e0ag# zM@HAZpO!ep+=mDIxts}ePjYi#=>ddW5TIaNvfLYi4!$tkGJIV99mr96p~z9)3s8OQ zdR66?S`FQ5)eds(jSa-O(EHa_E2cd+EM$%`Ov)P}WzMHy9DWsi>B`mi4$TXmBZZBZ zC=M;&SK*fFs$EBBDS=O+vaZC5(&#!BkOKc7T^srMCC7mUd{v1MBI5w*xX)LUl6<xL zhx3Y~=}err<-@Y`JFyVw&ZQCw_^Y3;M(uaA99}DKb*`!?@aZ!J2@-1P?h^bVk}yU` z#nzBWGQX@rF<^%T1+jS<?Wl7#NPH&)<U2{wvrmu;&;(^9#Wkc|SNYOBu$EU4stmU( zO4OYbkE15`<Jkr4wgOlI(G&Zb4;+wS65kJYl*PxoxY$eTf-og|?)1)hsC6kfJJjRn z39)9u2VXjRI#r!+X-R5)b5b2W(!E4B6t(xEz%!DK<h@Jd4QbSYd^jE3W>9K8S4C_# zk+VHj=Ix-<HzyGy>a8<Y`(}KqMi*6;g0e#b8a()YiLYgJ_5S$Oh*k|hAIlzylENN& zLrR0%bi`VSR3(oR(2CfFrOH)23)Kf)Q$exFxL*ie3^hOj@20tY>+FqKe)EAotK8^V zp9&BI6(?vFxYQB^3@u<7GkAB5RK7+)h6ysGno2BERGnR;2Z<ACZ`YRJ2)|LztGS_w zgDVM{9aFljzSC5lNjh=TL$)iShFY*#I-E^K)lhLjQ7Jv82yqs?LXq4)F!`NSgK~cX z#-fL(wbRg2AyDdS9>UJn2OPNdy_sTA<0T@FUtgixI6%5*2<4nW2~I^%APtQQZxMI` z7aF#D-_+g)wyOzQTsp-p^;W2RI^7~G_3cVxt<<ygiy@QyG|sJ36N*S#uAWxSKNi}) zfyfePK;S${<E@$;LEq=Wf>(<IMB^Se(5NMrbTE+4!HX$AICLUTyRgk#M|_>8tN>$G z5qPn=4dD|Vc-k9qS(V61Ge;u^6qGj$O$JNzd`He825eGkESW}|sHy&)>>sG%ek={J z!T|wVE8FpAUkt$@x<=?fbrq79Zeg-fI|ob8hNuFT{{R+*c}P}}L1|bz%qt5<U=VcG z8$QpzeO|{+rs|_~cp%3(@6019^Jbka|BAK~CMLtdIrcLm7E0QpLG{^4O`+0Vy8i3n zcxCOP4i(?Y$1~=HE;I6LbMURmY%m>lH-miYmyu{;2lwHdpx~pU+E#-2j3#Sg!M*;W zHo%&t&a(kCl(^H_H`1^FqatmQEeLAn2-E6$%eIi2Tj{U60ms4730E7<Itd<U_QwSv z^(Z(_ZPLf52)3q+5h$jot18z0nvUx!jjiK5o@~K<lgeFuY?SPstb+63;$6Z~3K=L1 zHNiDO9<=={`ST`!?zq|rJF&8>A%ae%=1OFDC|z1*Uf1KT4sOYdr8Xl4lS9-bS)lW# z<D<&}v1NxTRKhfE5u%gVVQ$061*z{rJ@|jy68^{e>iZ_pm&15<wmD#VP{fn-OJuXl z5)-bd*zmC1OJnaYG7|wxXPKVcLszQDJK!oTEbNnZ^1!wgYkWdl3La0p0oC>9GBJ@A zdwzj&@oG3jjQCv=bUPXC(!OntwnXPB4*swB21m+gPqzEx+;#z7Cj#TwyA#jM4yX9L zxw+W2Uh`!!>dV&1j_(@WLES;V0D8u`f%j7~Z2%d)W?-w9O_FzkVykvF+X%bUAN5<I zU_c^L(1Pk7T{yj_@ywU&4xbMK@)N;!AF`w?{t$36-p}WaYHDmOu&LKQa5D@>Ai4}$ zkg&=;eFQN%YKyv3#_%`xl1zAe9;oQ~xXegM{x6anI1s}dGwb8qTXsBpP_W6zSLdv_ z#K3N!kBmy4Mv2w3B^;PlE)TYGHp|$d4rj=afjqjr!QtWjpIAcs-YItIXj&Z4=Rb{| zxBj6%7qo6`$nw1iD%o1|^Zob?Iow3PorNNqf3zc6JhboLDq0A+dDWJGj@kPKk{(1Y z1!LuD>DoW65m##gn~aUAd=DdG8Yk0;Gv!KfWIqikDG;_5Aik5RgWM+2+HxyJm$R9^ z)^vtMWul_85JY%R-E$Z)SDvN3t{zgh<BE)(q!=&~1-bT$_uG%q{;*o6);sPBv|&)N zBP-8Wp(~|{ADvhDE!oVs)i=zj`K#-Yb^%&d&F<Mw@Onrk8ryi1&B#mB35FyAVxsZ} z0j_>Cc;|0+b|@vMtVl+;?!SDHGU5g(sA)Sy6|O(edu1}L;d~JQ^}d1Pd7nfw7p7D{ zx$?wg?>@c%zC0m^@E6cY{4;!i$VP^Bw-5!ek+XGm9CV&DgCN>*;=Kmf5$4fsIR=x} zb>nu-Y4zH-OyDXZc1FCtJ3k$nZUy@8kBXWu*dPjq=7$eH3Hf%-hkBK#hczmW#-lw~ zz<Li~veURskc9jIM&jq>up}lSA`41GQw&`pjc8S;OI)vB3~tlM_pJKd(EpuO@;hMR z^dSUt;4q0n28)c}GD<Y1jtDa+oWu0$H^@gz$}Wgdl?Ha5uyVE_7ZjOIM|-ER15njW z>V1sxTVf%P;8kZ<9qo@nzgOZsT_?;}VHB+ys@)i|-w6<a$VuWPB>JyncxYpIqPzF% zOR!|n6w(6UDv^5o2so`U$C{Epo|A^aW1H}-n0E!CyLSWQm3jYw%WUt(!ryqF=Wn2$ zbaLArQH3Sj>`7n{rP5pio!`AKolp{%DJ|$Lr0gJdfb2rQR`}zQ`v<Nb-S+|)K;_<j ze;{hq3DK;!$jeE~9tC2}jKE>s9>mO4ZUdaW^s~ILV7w2j3*3_Lt+fbqVELPVFASVB zZ}tB&<_h>mZtQ!pVM^c7+CdOlu-MtrF8wG85vOx|zdvpUTttS2eZHtYJ1M?~v0Llw zm8QLS{jgK{vHdpB)m!s{BzCZ<DiD~-0yp>)Uv0+%Udgw#UOGB<^Un<>WZ6-!g&ksH zqZV!Fe>DjIp&;U5dc19)TWsV82jjPhAB4?6lm_l)1+uz$B$QZM_Vt@TG3bHy7m_eO zPC+92QL*2w<|tr&gD-J1uCf$*^{Dbcb#gioO}bweZ53^Dp05Wl*e**;S)w84L`rC| z0C#8=nXN|R8JV_v_Spnr32fdxV%8hM`J^|!E#GpHu6J&^W|%xdZ=sk&2JcoHJ{NE( zHq!mayvFOidmd@W8E4<>EjB;QEDL;VlJF7*kX3oJ1)>8X6&25(pcyX=84Xbjy{zWh zL>l{*t3CN>HpRcwB$Labh7!&_O?j24;oXNKxJr&Qn$44!3ixAVRyIM({60$?FJAh2 zpJ+G>DO~V^4|5~KYU*DJl(i(^e<~Y9d>rpPg<Ns#T)1)~ME4{!;O#_uX?DJxiT+m2 z$IoK<2<a%{ZrkC<zpMx`W`6Xobc>FenOU@LiHiMl>%(6#ly(bF4F75y_l@)UUNT{v z6w?0Z-aagkILPMu4+Xa^gx#I<AWQQ+gQXIu7Hqg+fx&K|h23e{ivA@#thDzFx3<&S z8O`#mmU04z&!I#cCw<I2bd9i<0?)av_T6(b?Eqaihn+fdq1zs?Pl6rEKown%sZ*=! zjYq@UDq2SPmOJ>CGj{T49@v0Q56;1`Z2S!GGmUloi-{BK<5m>5=+C7k+fKP^yG9=J z++H>jb_KN3a2a$6%vUbEki$nzx^LY-UH`^DViI{Sj!kIsV*@V>mbt^g#H2OzgeDK? zP^+BIpz}}M)qUG!8%pX4%}&=k&(pjR5o_z~uE*7pn16Dk?LUVx;nFjyd+^`hKHJC0 zNCyX^hC4X6bwlLkbl=`3z_hByrj*o(w9{%TZ@?kTs%l<G&_TK}F)=x}#~C(!15QUL zC;V)lueR1#$Rk|jk(LuZRFrS=&jau4SJ2E<)Z~NK8<|FI81Zg%JP1mg(fYaF^G9@* zPwwnNC%$i!IV#I*mdyx$uE`WK4gtKsi1+54Qx?LoZKC0tMbJ=YT)cNk0TGX30qo5A z0T1r>TYhq=(m9XP`;6A|3HlywLImwK-Yhbb5y0Kl77Bn*`V-pNm4(T--|z1PO8m<P zc=xKfmdH>#hI8cIa6SQhCQ@B-Z&vnVBP{RRx$^&<?f$1h$$w0KUu!^TpVO`<ne~Ep z@Kvl}EZNH1kMGEZa?oov0Bb_NwlW{d0m%|T^9bliATgo{U3rkyDgg0XM6|UT%Ie16 zTUt2=^4r^Q=qah(9b{dSTC^C?{GwzTx_t?Y&c?|9>Gqs1Mlcy24BxUJ5B@l!-vT{X zH|lo1Y<X^+m3Y0ci85`o31qkSQjN%_8Q&~fJX?+Yhg<SsaW4i2V|B-QnKOaW+%X=j zoR|}EKcXg!!^sZGy3>w`t@_VnM|-<!=kewuGQcY}XUI>h!+K;L$JgZD>B0s@6c|K= zXn18ekPW?^;c-4jC_rqSSuFWvs<DlArq4gwEq3^CB!Ek@kH4PU$8O|Pcrghl@ZyF* zg<~KF1>tFuR%(Fi75>6Yx{+z9;xM#xt2BeM?6SSXO(mPc0N-J7*)JnNyC76EBxJ?1 zd@uc!sa#d~svu^p!h@@g;ZtN&Hq66tJl_(;ay<l!IuwmTT`bHFF!tw>oXy9@3)j_U zU-#cepuNk8@+KxG|7bN_fyAPu60{M0++ymKhR~2?8;+sIFXl`ddb_*$3LoP_NgXfA zDuZQm`K`eRVc8=`f}0+^e{TfN3bS4dz(x5j$FEJes)Qyp(hu0M&9F(yIsPboYA-wr z%*j};Dv;XaB8qF%)q@O3_qlg5S{Rg&kwtx!a^XZ%OKZBdrQH3kYYUJfo!jNKx8o*l zXrg#taFnwWz(c2Dr0IOyY@X^!O<Z#{0#VOv+y9Tl6$1qr5aqxKd;r9pLv^<`PID#y zn;cN@g=kY200bh$<&Iv2G`)|!Ng-)yp71=QqlOI(Mr>&2cc=fR*Xvo6#kt*!SHSL* zc~Y|?SvZuDI5elhJ&v;SLt0N&_4j3UvpX>~n$ZXypTYa11^ee&*dP0^XS6+YOHo;4 zVsk3ZJ=6OE!+Ij(tUeN>(OK8S!_~NW^I?Y>6@%rmy3?%e++a&ny*q<gwEcvp4GC|X zS9MdH?<z}pwKcmjlY?#E4Jiw0xk*Vm2@x?(BC+VvW0(i?X^WZ($drYEcXRUPZ;j|8 zeDFQHw79Jq8GR;+%l`7ESyq5*%YIkF5V#zZ%BmbMWv{Jr@O4G~^F=LJm-E&-bf34B zo|(j<qQR?STQ(a*knM(;HqOb=a@OEQHTk0cWi*`@KCHlB-}jhHFK`S0(RPB5INXxX zjvdXbxy|=+z)_I50UK14(6KW!@8%#X21|?_++bCy!9SVH1bHPw);JjHU@FqR{-1`_ zb;H0-EuhOawV2mHM-Pn=oNIrHLZ_UYUZ)wJuDy+tY+lLa6ye$#=9X>!^H=?~ustrN z-oJ(esH6Tsp(%QFh!sAok>ls6q^PLnMsMBMD042L;LRw<H<{@f>DF;3gh73kibU<I zar1RM#I(n3R$D-K;}dU&TkkmvT0NfXsz?9ug_#XkA!$KJ3;?85D&1mSepr9LSK628 zd$_P!S+A&nMV3as`E}bNDsiumCi%|ib-cKigAM}K&bsR75%{xPDbqUM!@AOa)}SFR zXf~@<w!gOu)Z)eHaothX+8fX&QfDuMoj=wUziTykP;g$?RaKiDRi&l*!1?}wS`|Hx zKKR+fl{ZfvZF?*=%v67!O|{6285O9x6~?eKXb#a%A=vb&((-*dQcI0@S5nh|m==vF z5A@Zqo)+$<o&@SxUcljvPv~{L5AGe1uNCH-s_cFrg~MNx54)S?X!O`|Q<d}4b838U z|5FN1ZF7a(ajHa)WaDM<-bB@b8yN_p-M*dncqoj~7?$GFe+c$<JzCmYZTCu2(&_S) zc6)=@ru=xg5eVU67T<_AzH>jwyYJND_w<-IrTlVr8iTvsdTDB@{9Ista^g;_>lSs? zPs^!mQq<ocq;Bspv6LF0>}-GMjT#!l_c<`7J^0pvrA=L-UypWr^B!s0(OtpU#K2A7 zNzV3UoJ+ZJ`hV(p|FdcPslnxEzPNpP9DRqsT5EXz#;d+Sq^wi<+QxfQEv<-AIhhB2 z`2okmb~~PTMmbe+d+j$X(P5|~x6u1J3eoBSGB~e35-X?^&%hUbb|x59X5Nr1?e>kJ z>(I4o8#%aA1YrEF(7Khb7ef;JOOjNe?H@9xbvVwphUomxFD;r?=3%Yh;+}BA=B>BB z=`V>d-aUF-4Lf!tH?g=E%ubVVy4u>2#l_FmS8=YuhzQzl>Hu77+lT-sB3BwYXFeao zWjt8Ep*L%N#{<`WVoES%=2c;of*ua9?Dz)`gwtTv6c9|LrZ@0E$3}U!puq9*>z;El ztDrw;vYc4H1C&8c$jD$Y5FcsjG2?-oKZtmtw|&d|`_400lfdI~fVbUg?EzcQL~a%j z4-XxdI&yMwow_yYfT^VZ2g)M+;<V$8&Vnp2Vw%hA>*e1$>YCwhJzu%9=8In;Jr|EK z9b4OyFx<=kc7f-L3V{Ezh!PdGwl)aD;9s1tN6(yT>?n5le$*DA+&=HaK5+Zl))R%t z`zxKdA6)y>&AD*!*__W>57ly0IZgzQP=O*s>YGHG3NOccW}%%6Di3KB@i@pR<>C~e z3=R&KYEQ8dcffy?wQPXF;gm`NpeF~Ll34=VF4Bb(xgGl8Hw8;OL^SI+x7625Q=U>N zumRzI;j9&*P-p@@Nre4XU8(O9H~tetwIwO2zT)gDH}W1m4x9lE%}Sa3eazU4lwImb z3JRAD6fKO5hYZKYh6jvHH9`+cE{n6uM$jZF*g9Vz)pr-ZS11^;J`89gk_<%0gC`;_ zC<2uFMik#W!j8)^%dCX3XNu?Re7QPTgaU)dgJIpGMa!=T)vl2D$v_tsmCm~D_x@g8 zlpC=9uiU99Jcb5z3*c<<Zp5~-;>0oDU*Ob79g1uDpZgwyt?2umWM3oW8ow4)r()ii zZVhBl>TOI!{01?0V*LD3C5Mu$XJ|Ge<B0f7aBE<Hfb!!p>_%qSj^pc;gcsr+D4a3@ zC1n{hv*@sYD1~!oyxkFvcbuIsG=9WnKGDoGZZlKb>h%(hz2Vq}R?D}IoRTOAq|HO5 z>z+@+yp3>c9;~l*f8Kv{eA?~7^L>vRwQVvH?Mw6GeB$7_tUxa@CfvHn{~5?>u0|Di zUj_&~T!H8hNAU1Tzqpk=Wzi<HXy-jqHIJTo`Y?vnUba$BHl9q&=^*f+;#~=PQSV9! zLWHF^wArPB=_}F6-YCvoP}YeB!WQe{cp-f2&)nIsS1ggRrFsj1qObcq+s2qRokW2X zv$lu|z($k0V5M3=VUPZ9ve#HCSqja%>(l*JBG5(}SUk&gxG(nC$*!955p?T}z0m^H zW9*5|S}geJ<F<hN1kW`?N}!QmY}4tjQF;!+94ToVtIh6!YCmU|t`<47cPmBy>VET` zjdFK&cHTGs67%8m18<vN{o6PQr^gf})_QNWyaX@klNr&XcAM)C>CZvUKn8bmIi$Pd zu2%HJpzA8^Gu^b^g>=D?EsPGv&sH1#gxZ>b#Kh1VG@8VtIjH-~J_OVit>(H%+ja`C zCD1$R6PjQF{!OKO4xZJ1P|%D%V$azzj>j3Ll_5mVDfAFXPG6YP3!%y@l`TS1KLT+s zNL40%vT#aEGa!VhF?=nkT!-nnTdA$8fz1WrnuY?M?dT{NBRAx8+V2x9J85oF7vbL% zU&OvU4F0#<+@@erIaDp|rbH<RfKzo83ismO&6<uD5vM;qRDdP{&iIsp&4*A*T&cQk z+}i6dm~ukZCG&mk91fA$-OTiTw36*{vR=bZBR+d5d=(tq+h+-{=|T%zQDS>h@VZRl z!|vVhm`V$__sDrPj^9)83qQ84^ktyI=Qq$)KUsF158S)rLKz%UK^xMA@hJy{vq2qq zz8krSS+C|GCwt#^)bJ;+=D8#Kb6kl~A+@6P6YMLr(~@eA#sE6($fbU0bhf^M3$RTm zyzR#?IKkK}MS|p^xsm9cvO~;tm72(m#OkN%*?Eracdo(TSuG!n=#wzo=*V|s=e2$9 zcDkN=CD7WqBPVZ;|GI<J`W1;;lH0dJFs^NUzuO!zsLy6njZbhmZ#`{wY0rREQa4?8 zw0PVLffuPl$TjcGWaw4wK%PZ~{Rz7tQAHir2ciGxiit)h9j;?xeuz`fL(%(k;I7Sa zA@!7kZurz*`o0&Ykc<SXXDr4EyVO8cEcvEJpG9|Ns%>e63;z_oSonk1luKLY+hID@ z4T@?@b+l%U9`{YxJi`chwPka+r#8c(BL>WO0aayQLm`~+n0K#EUlIL9I{*Y<4vSZn zs}Omo@<S|_57pGsJ96P&dv%KQdbZdaP@<;2G3Os9FOkuh75+re&Re5Qx(IUo<LZ&s zA_Qg=(5Lllp#el1P(J4(%}XVzchxQPLcRZ+75m9Do|P0Eke%UfF*RSD@;e+-TAAej z^F(#B1ljDLv)|w<AGF%PYk%aEaVmA#=4<jQ&1@K)a;-3A_o3cPjO8=!KVR&#o8K`2 z0(~N>mlDxUyS^0=;Jl=z3RHm-By|dxIR8eg&jE%UTNo#N0XaEuF?d&N-HD^D>#PHX za)`FQrBhD)`{?Hg9mN0fDwwTFL<Yq`r4W~;;HpZY!m(VX)c2F^I<uR73LLV#+2pV} z@SO9)=65#9uvwLi38*r|(|LrxbzdEC9v8?-xdn>J-cNUAx4KMDE|BF(E*rg!8~Q1w zBeU3iP*q}92UlStkI2MM^_kRJ$Y%=}aVh-fEgZlz!L*#zPhPjv3xG8S8n)NXFfyK| zVm!u6hy{ps2Xes@tv#SKsZ5Rqu8VibU|NXyIMotAsB2wh8OL1Ivbb&~?iA5a%(>xs z#Pb0b5pBddGg_kql5c|x$S-}-CJB(6mkE_kWa5{qu@sfGXaYVGN@FaR3D`yF+v2jO zmzF<4rv7}l>dLq#_ot<3d@h$I$>WRd|7%l!bTU|6jbouU8_JIAD7|Olx_Cu6J6j2x zq?_i%rTK_H$P+++I55zxh3j}}u4@1<;9Mn250I_5&WfS3yHo_nD|o50p8j&2v=Q4< ztF}Up-9;fRfW>D23Vc7N@(ceSWb)|gZQcBqFl7shT!uTj=R6d@s{>F#uPI=5bp-TX zIuyhZ`f6H3m;$%JDWrhY5eDck=_|Q#=zZyd5%`EI5mL@0wejQnQ>VdJk+<2-?E-SN z0O|Yf^<UVo{&#EM>%$6QHB=ZO&vGylGm^?^bo+jhng85P%;SG!%pcz~7sI~^s+A*} zJoyUKGq4ca{yx=v?=#>z{{5@#;_K2}Lga!sXMo9Qzh5f<q(?Cq<2kRaIa4q^W&6;y zKYjSnAHgq|0B30<c@#q9aUQ+v@qSFfpXlG;{yl@ORW3M|O-L|Imd3-PzWLdOFR_yM ziCl@W<b~Zu+L(QN$#OfwXsgl4pQ99Q(8?czW$|eIi6}3`h__A_p6TF2ZmvlArU7s` zzKxexE-{qGzfEWV5IIDZz%fUmFax>ro4@6|@2Ew~ztxY7#PsSjb3Bmb9Rfb6Bqr19 zOcQ(SvnGrLt2#1+^i9gff)M)ZiL9mDkhWakfRO&=aAlM4K+@<rZUtPuvgy6*=6j!| zc&OD5)hw~SVm4@-h^8zcF{B0Y1*Xmb&D70pmm~`AC4FXtI+G3VTXYFTQsK9D_XY#y z0PeMj^FbLn<|lT$Ik;7jw)p2AmHho+AQ@-t2GafNuUQ44JPdtEBFPHm8Z`z`qLPY8 z%a05&=e5cI>qpsr0yzeg${?sBah`{b^P#VdXem&S@9mJ*Vr;(mbk&@wEBLmX?09u7 z1S5pyD=CFiZ4N{oVPrN?zZ2kN!#HA{*H=E`+Px#R8iYLEiNG@j4Q|H|Ry62w07iPz zDX(@J8U*U*#i8{4c$T>60PbBzlFnU&8U0;0#)hFr(0R|BIv%57lq~VY+_3LLV03wQ zzq!K;&#jZ33{pr&rD^N*JO~{eivyfy8M4}7DaqWYfhp@3tz+BQYInfr`f=65Xejcr zv=JU29t6+(INOg(tyasOtJxt45;Vbp+2j5<NC78SjJqTeVE@2S0TZeW?l-_7QCuj{ zX*VIg7@4vS!JaG4Yx^FF$;?NvMPH>>@mGE$6qp#C4+1RUK3U7U4^>^8kW(gf&J=~V zs(MRs<efUF<9_c8^$3-SP_WmeWUjAL%pw-17sm*VUhgSzUc>&tg2nO^*s^L)5x!Qu zXzZ^hqxm8Q3L09zUXQmwFIAiU_G(xh6{@kZ@ns_gN4A8b;+zT45aO$P{&gRF^48NE zKL3oS>qP9FvQola{xOZhR(BEV^ty*`(FI3@xT;IQoX)R9QA}4i8;8%cHB@EXdw@sj z{w6pWEHNbo8QMynml_!fDKaW5ia+q?AD$b9#`mnU#{{F}VyJ-+OL`Tw3IHMNuovr7 zs#+UCzPPBM0-!=pc2au!I9-<EZ!V?$fXPKrTU#3&^!)tXmf%vfN=!vDaSr5{Yb<y> zpmhLQc<gW1#m=Fnh3*RB8$m@3k*xUWLeclB;V9^rnwnaMiHT_*Zz<O0^W)vrbZIe; zvRkc>Fo_J4=p}~>2ab(wEDn$v5>;-=3IP0G`KQ5FUkE7vOcQ*oM{oQA4sd7gtfu1< zC}L=zJU)Fbj}_^UpPy~frPY-0>O!;4PPh5RTl%e1OgfmS0gd8#(fu+t`&72u6X^^e z_{41-6OUG0X*I^<RF+Gn=U!KgE1?5dK2b*nK&ku+;@e3BIxVwaDrH;JYOMkAui7Mq z`<?TaFQ3C#{%ug4-k}e8i(F&3KQThj`LT%T@*SMm13Q0)lIavQN)B@7|Ms#?TJk)D zk#Kv;yd=#+9aYQ*KypBzusT^HMe2tTcgrt>NXE@fz>N1GvO1xwl#=%Ga?_(|{_ON2 z-<T?g8<#|M^xY-Y5DfSM%?vOateIOXFsMa{UPLyS#M<cnNz1^l3B|YCXtn?ijZP<% z4@Ek`p&an>aoI34Jf1|YO74;$C?g|-qFa*^@wd2%gj9!%N8<h(eth>Bw*N1r$0j>6 zyM~oQg9XdtT%fN8sZE2asp$}8KhufUS&r;eb+|4&4v)+Ara!VgPaHV5nwWoDtlzDh zHR~C~-L}U~+19`!0RYpo;jk5W#UR6LtSCGt7jX*MIb`fv8cv`PD8ac!s91->`v6=b zf*>5$<-WntmlC6`S0feQ?bpjrOhtM5IQQ>LUQrRCRtAauNR1}*Bq>@Y0sgpD-Lq%c z;Rg=xS^fAglpKizMt3Vh7!PW{N)$uIb0GdYDbU}B3U0|zX|GAjoWAag;JUC{`!j7| zo4`s#Uio2mway6DkV_ZzMDdc)lwGXd22l0=3QIcQ^02M6kHA<dUxkUeaK0u-#r}PP zPn^n&xkyGbIo`E0sn9TlQx0wgM(a{%3cS2b+xv7jZ(GH_KY#dH4^<=zigIHSBPL#N z0YY2Th~ZM%$Rh4?f+Rg*XefYGQ1+u&5Uf-8cV&>`g753F*co%0sDnU~|7;u?NmHnl zyF;MW4;kWpHa@mRf*nhILMsttoWP*@SoG@K){)wSoWwh=Cth9fd#=>P<L-y(g1v5? ziBSzcZ&lAua;9KGZWvjRNG-_u-rsbLLPc;p3_!3UMQs|BKMBb}D>_ky7)?u0+3xJ0 zA35U@_vP{PK@6CjO9_WiaZ*VMjSwcL=?U*j@1YqJ(uq2~5fEC-U-{|{uvgy+$XOfg zU#=sgbqnam3l!!oX6dO3xvNHX;{~B1>^6>G@MD<W+3*juj2rL-_rE{RBX2b;EnjRh zpq7~P1V)xI6K0N2z_x<=PQsY?%+}~Cd%g%f=x=0z)z9RUFCLYWAaIgwNPLk*Mhk9$ zcXXux+IaoHP5{0?<^cQiba3}CzuSkLe<~|aqP+1-)>L1iX+6?I3SmI~0efcabrj-0 zvm_y@pnRrP`8n^{=~<~P7!LJrp7^>XwQR5FFN!;E0@J+q4{~}eCs!YJ$AF?j;L7;) z86BG@N_zjI)M7vgQS?gA?LkxAetgzy!Q9>w=JiUrxB`K#hL``O-Pp3Y`xWVs_OnKx z0jb1KJ-@Gdf00>lw1N)AE9I_|cv|BN@!`v`Ve`PHtUFIT;n=p6zm*0MMoZ%PuUY!9 z90ZO16{*~cb}Z<dzkH0Efd}nTZ<mm-2o{W?BMaD@rsU-Ow~U%ZU>1vdJSj#p_!z{1 zHG2*zh((**z6*tgz%tyAkHnzyHc^T=MaQon5g>G`8K%T1O0;C&>t+@vOa|yvJVNf2 z-@E$!GlQ3r^rYz-F+dSOr)_^@N)pr9+tq~U9U~C?fU9MMc+XWTR51?37XxmRFEx8Z zZq3ju0ASn;ZcwjugTT5;_b7i8AW~pFSe=Zf*U;=t(-H5V*j-j8A62_PSslzZ*<px* z)PSrXDjVokj9TZN7tb+$8uUlP>4|v_O9?sG!DUdZu)RA~Ur_}b3KNE~?^OK)3d}1t z&TyFY4)TQrs6?DO+fL{;WXs&kTG!;5a{D*yX6OwkrpJ?-KC;(6#qc5>IKS_o*Z<oW z@N8rFPS7ubLP(EBE$2cy7oY*I$^H#z2Hi~{lK?^|{<H<-Jnj-{p0czi^j<}Vs#5E> zKtzPn_BQPCRwqeR%~$VnjqEUo!8S$cvNA^`NqknWM@)fvWLn#Wrjn?~HfYjVM0*Y= zuSed=D8i?Nbbc*+stX1%tTX`u7Azb@63D=WBns7gn!#fe#Yn|h>9IfH&_7JAtYrTO z4rJFi?EY8gIwCRQ!y<x(3|gx|K`%pJM#?wdM8wpJ)bmrH6rv}>wGRzGrvbE*G;+|l zx>yq;LZ@rw#<~Bmyl=>}U^0ORk6|gd`ya!Q8)ps<>0z(~n1H=2?Fy&Lj%ql#^L1Ti zFd}15{3sx>2(bRYYF*W|!0vr3ry?*;K@(C$67Wq3e}MKJ3B|N%a37Gh24f2`$_&{j z8OI=kU>-U04eiUN>NYEBD5|c@xVNrx#R?L$m*`Snz$q=B=hw_mqUFcNuS8LiEYiyC zjW7U!5lvFXiivB>e#PjiTL@yrZ4mi{h*Y>+uCH4#5|rZ*3}{QUI|fqZgyMAlE7Za4 zceF}t6`+g^%}-d`seRv_9aBws+huFrPu6Jg>ROCQ_y7@!r8x6?hl265^LG9h2SXs5 zlt>_5O=yQ4j={o_0W=aFeKJNCaEKa_OkR=CISHP<puQ6Vb8{04t!Dsv++IzhFHJS6 zLQH5`16-Xkm^jcxXx%fW5dgHjt00JoDna0VRs9@pa86-T89#T7eYc}dP}AMrH?}J? zKZH(N>q}}2(JW@<F){SvNCK+imHwDxA*G3$z~7DPD*NlTx)67o@QjKHBQdP7NvAea zgQ0^esRxiSXMj$mixMgrKFq4x0XKYKfTFBv3}Bxe7U{5NX_z4OkVzZQyF16Ct9%zS zneA7SkzrprgodUCU~wsyKvn^BsG;Mja_+dxu9XkT2lwU10uhj1*vyP0To5iZI3a{y z`%Tti*n$EHx6jj7ucr6-cEv>i&{a2pbu>DJ8lmw~cWbL=(j%TqOE9{oPz+3w=1V$D z1~dpVCe8kYmI?3Nj4tlH494WT=I>xyQoMuOj||6%=AlB17%67Mx4J+X=OmvdT<F5* z+u8r4th0V=0$|th2uWe2(kV!XlG0rQqok1(q(gdir-Xz9MhXLj(IquTBLV`7j1K8; zf$ig$bFS}P=lw69=eqCbeI50NA+exWXt!8zM_GnWoXXAgEmNQbslP(}dB8B-GOa&F z=V7eJ?Zazfi2dYeviILYPbe_2$W64PQtJjQv#RZ)C7(DxPC<O)j!w{~)nJIyqz3LG zoX84rD7>CNJS2q7#_!8^EKqJp;EJGq2EH<yN=DT1KOXiVT+O`i?KEMNBGI%UXBQgc zu>OnCO+Q{_dd71zljvIFjt~aP3jw53z#?CYu!b}UhMt<N3fA>{MwUaG1&a36SIb5< zC4PtCaa0o#?ths8s0%wJ7bGU<D~Y@>4jul%!Rh1tuWWszwA3htBXu}GUsZFms=R>Z zBBj$_u*zWF=AD*k7WR|ote>C42Yy>5?%8c4xTWhFzc3M+zAhQ`bnRVXtpuKyaX^D| zhLT$(bS$x*=5BYciob@w9|VC35GHQ&t~y0{Ws~QLw}n^)N%N2Jb`x{E4UjMTqvGC{ zCMOuWOKT{(GTv=ki5&4O@66Y5&A&yyaYg$9-ZbGK&yG%<x`!O0I+F&I_e1*fY4K3q z+!Xk0POxIMSX%A#%QtaOHCJq^UfG^|2^N}^bbg1*2!9t)gBRuHfy~OHo`qi5@;a~G zOM|$Uw%vnNe2X~s5hm~TGq~7qo%}jl$5b8i#tB)h`-cJI-oJ`0?Xk&(NiU+j5T=IV z^Ni+ow|PhPc8gCY4)50fhA4b#N;GsUc(-jxFiu~HRPZ#+ZaG$DE5(WAa(U@nqC}uJ zwIb~pslo@5ti)Wm8$)dvz2|S7UYSJoF^4ImA->*cwKyc-c+7cV*=)N9Ax!+aq{b## z{25V=-`?M(1DevgU<d#7@L$v7@zLemGnh`(5oPhfp2dXr21`T&wZLv|eZ9h6xeV;# z+mg@r%u@9bjB5m$O_B@np)QJAICSs7ovZ&1|NmoT-7Uw<34M)<8&FvX7z1*_gS6K> z)tfyBQuZ^Cyb==DyO?y1OivKZevGdFZgbHmsP&p&WHqT8_B}4dfTA_AN525bzqGB` z6ryxMCohgNHI%)dcFap(5GMvLgv0ASVD<YA7h`hm`|GW;4p)l?7z0aBG)GU^@pKaU zA9u#fSdATV`3@XsVLCqV!9PhGNL@Kkq9$FRSSX$~G<fPWvrgxRn7T*lC)GTV-0Inv zKEQ0u>^fzAg2w6J+uDiyS?gIxf^T!5ceYM@?<<<5E?YkvFO!HEX_!zv>SXnUljZ<$ z;q(!V5F9psf36>S;>QqwQYty@gE6i!Is4W|Tqju<hG)wmhJf~UwHEds#3=8I4pvVI zzs_-kc|4Tzbkalc8P;lZbkP|1(02xIoxs{_=Z>R&%EK-f`#$b7>*SP(9vA_>>^048 zb_fC-Kv)7!DiOa>+U$PrsLY&+6u6anre-BNPkKuj*GZ;;P41*3v=Sk=5@Y+=24&ze zl8&fnyU6;z{VVO0Kn9W3-c|6II+|#GqXZd8%W&=(YNbv~Tzlg{7MfGFr*g(@cjIK; zsyy0e#TarYPTPPTx?Q5(*n8BaZ5yv~jRggZFV-JxGKwnl1dy2->$s|<_raA(7K#@L zu?uko_=?U>Z2~ea{xKRtSS!7EJoGU@JOcAcU<{zG47gU)ynV5j1Tv$a`yN9;MzBQ< z3`5WUl2(~qO<QNWX}teMGkgE-Wq3iL!_;QhFG$oezRZj5E6{_307a{@tQb{poVA16 zT!69TX1KJEVbr{#;`MRn&CnH5_GlP+v1iALHRyo{@I-$X?$pfvN!ZI+3u^#k=FXS2 zn)__YWq0?&mx-CvW#oaEdK{_QK_as`2t5$NE#Wk)CI5^JQ_E&iw|{ldBTKDq#9pZW z0iOodIlKR9u9e|pTIqYmJ<<Ef8hH1O(~(z&Wo<d}8?8w-@Mh%DqT=nFwo%ebXjTR< zrwps14~f_r$k5AZG30?DI>=o+WADzHzg|+qp4?k-6!==O<WJ#j+qel_mKN}ik1Wq; z2r9>BPOv=&30E=l!z6=oLCfkC6Jz+HvldDys@d_(Qb8fzSo`>n$lPCBDt4Jk<LTf6 zQC7I!M3e0gZDMCR*{hKAmhuskJj>VL&WP`V`}sb}v@sNOj9GWw((@%0M0Kdus?E+> z1Q1=a+qbYNk7}@5fpQh1SZBY-x#+)?J@aZcr_0x#tE<S(@vQ1F7<dcz9l#Ip8q4%P zX{+w9yno7qnbcW$ar2^I?w@oySR0qg??tE&D(aXaqfOvq0;cggqP{&Hpl&2w55T4V z!vCnbud`R@<i`^mDU)!N@!h%Tt8MJ@)%wEtp1ULCX0#uoxuL3ECt0JApqdr0z8qK4 z$?zb`?@Ci`_XqfVL_J&&LPixj^G_Xxo>)!?Kkx{|HlsWcl`QK*AHS;$3G(0iv0+`O zAp<pUYovjU4H8ZOfhS>RH&_15(ldr^j=)?&`*^p3{W_W&Awptm_RgOrs-`xU@;rF_ zsm=>0u7Z#E@)Fhdn3b&;0;2V&jocmM{K=+?D2#8rYfSXAd5y=rlsYk^tw(qZKi<x6 zz_Cd0*M%rKFK7d5`5ypHC2~<Hkx6t4PX$E-LYcw6Xl(A?FlCynR9rZmsVC5uMK*wo z-XG1uJR25@y)==HY_^wFJ^#X*hwK&kRzI<bzv+m^lNuz6HfhzW4Rl!Im=?JC)P8yH zM@0i(mRM%?kU`l#?q^-fP_Fq{Y#a62TsJD6g^0%RVwAMWY9T-u`;A-(1vI#tK-^M{ zpxO_2wGpzyp%7rF^pcLQVEBjTKqQthtQh(kQp6&@_^~gl=BJ$oHSv$mEnVdZxfU#% zpk>^^v5U-fmVdpksnxi80m+eEEOQn~+w%P8_m(mleBw4gLCkAkv2kwa$+d9)qLqm7 z-ce+!6NZ|WS?kp*q^KAylJ(WOmUf(9Eg6fpZO?qj5BY5cKDkP7{{U0Ziv0Vk@Hem7 z)HYnDv4?aV@yd631FrYc>pjs-FRNDF+8LIFFO)D)h3Q!ZYHB+j=39?df)(nVJkIB} z<cTv!h<e@gGMHX(J!6GHB$M;9Z)neKWAmxrBCYscOA5a8ReP(b1bv0Miu`7%)+ABm zX!u_wRZ&7(buHohgq$LnnF3ta3+DP$5o1#MBI#{otPqSawCoiwY@ITWbcMr5pOkg2 zl=CB*-H=(@l*cHok&)mt7f7AL4XUBFI;SAGKsSg%toSl)`1_e$T_pvM5FH8E!jYQl zvOSgIwXhH}mXj{R4Y#-N-E+M0k$IZW*2Lo{&@6rVM@65p`#I-98tlPA@BEm5s^7C$ zT{qqrb{L0IyX1=AvWYJ!G*T&4N!vfMXpeyPKK(UgG9@)wV)nh6%%|Rz**qVDjNuiJ zkJqkzV+hcs0lbVHQ2ew`ChVM?`Dwe}`tq`34?2JHehu!U+d$i(7L=YbQtuEw3U-~| zIOgo7A{gyft%g;MkZT*;u;Mj=#<cYS^W|@B00<$#AzlyLO3|O}3ZoFMx(^J=?#3;L zAtlz;7w6b6eN+(OJ91-=>C6LH8R99|SF6boM3m#^Xqq`us*D4Pb5<Vm9uC1y5c>kt zR21r<r@<A4b=2j?5r-Kgy=dp8mW+ogqrV@+{*t@CKp-v0mf&H|&<_r^j8?2Q`#a2> zJ>2_F%c>E_;bqa>MSeIDBx#)0^UG|z#9<o?szz!-FEb|hW$vc%88_+S_xtE%|0mK7 z@@?ji=zR!kFb-P+;i?f2uXVA~#Bu~aQWY*<u@(p2+eN4RN%aqIbv-!4S(dq4!6f$t zLARwG0Jao!<?0OC;lm$5(O96dJeLKoYww=9TlDi8@{e5_6`1jqX}r=^hP_CxMft|O zS4<5xj9VmnDD74MR9#id<t4($xelr0qwyLCjL3YqCX-n`t5Ft35%W_ib81IzYHb?g z>cC5lBSBYj<a@{6)JyN6rj*RmDdLd~Wk~B~aRx=GWNPl5ClD8DIV?DKVY30%LDr*V zl>fh>{$EAOE`B1hKwHr?A#4AIjA{C((}C0>*}G$;JGZAySljkU-^6}4wk4QDPfon+ z{HNB$mGU0^+hGU&10%8+Qog#*P<)%?%3yt?UKn8rC<LEs46UDC1MzhZ6H=gZf_G;z z0$3mFV}d9EC2Y<9ghfe0#Z?{#KiVZ_^uJxpGjObWZ)tbgto0|jS$rL2IRYuJ9v?G? z`2++mJ>fGU+rg}y==UyXz6ysP$ypKMhHAt-l$5TegHurdegTuK?;TJ!#bZZdR{WvE zVgZR4;q5+Ke$rNbVeUQmmrQ!fQvQd0l5F9y?%guNu$`g(cw9y}&l7TM3o*C(GN$}K z_n9Wf2@F_nOIpH;DBg)k8Gz0Y$;Flf%12|LZA};hRj*eA&_KEM9IS_gIE6a7!}wq| zv9D(Ho6lgLYeUKoKW<^{Z2L;}SiI3&`(b)dmAQmGmOA}Hz|t6IN=m=yvE+b!Rkk20 zC<Zxk?eO|qE1*cNV+E7PblomZ7PusgGdwnC;FIgS5L(L=4=O69Qt=RxZ!QELN30^_ zT7w;K+k=Yip5kIh_zBA2+}v2|s$ci_M&O_{)O3%-C$?Ow;~FCvyj1(2+P`~87pxBq z=(4&9%*x7I)ESxM`Anko=Q~d-8GY$<D$9FWD5exDP7Wy$9^zf0_EpRA5$IWlF9`)- z?)O|y=GURb^VQLjepD-zVtEIV(0qu2IG6_gM-{6IRg41u--UxP?8ks;jx1xb_zic! O!)d7KDAy`lNB#%LcX>Jh diff --git a/interface/web/themes/default-304/icons/x64/client.png b/interface/web/themes/default-304/icons/x64/client.png deleted file mode 100644 index 96e74e76cf7e8cefa3d39d4bc5375ba32730d3c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6611 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 R{ipx{002ovPDHLkV1l%x&P4zK diff --git a/interface/web/themes/default-304/icons/x64/dashboard.png b/interface/web/themes/default-304/icons/x64/dashboard.png deleted file mode 100644 index dfad21a2bd765ffd3daee3a67c61c2e9da39c260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5945 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 b;qCteiBR}~oy1Z800000NkvXXu0mjfJYs7| diff --git a/interface/web/themes/default-304/icons/x64/dns.png b/interface/web/themes/default-304/icons/x64/dns.png deleted file mode 100644 index b40b5376fa076b0ccef987f465c923dd2336e59f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5730 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 UTBJ>14*&oF07*qoM6N<$f+$4>a{vGU diff --git a/interface/web/themes/default-304/icons/x64/domain.png b/interface/web/themes/default-304/icons/x64/domain.png deleted file mode 100644 index 6e2884e46c160400b7cbf93215c80a60be1d4fcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4177 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 bH(>oA(?rZVpCrg>00000NkvXXu0mjf)qd^L diff --git a/interface/web/themes/default-304/icons/x64/drawer.png b/interface/web/themes/default-304/icons/x64/drawer.png deleted file mode 100644 index 8fe3c1bb693b0d11aa9e1aac02b894fc880626d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7236 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 SB;Qp40000<MNUMnLSTX%;yW?` diff --git a/interface/web/themes/default-304/icons/x64/email.png b/interface/web/themes/default-304/icons/x64/email.png deleted file mode 100644 index c6c1c51365d4ccb5d1bb718f31ee85dbfd3d542e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4156 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 GLSTYII2aHB diff --git a/interface/web/themes/default-304/icons/x64/help.png b/interface/web/themes/default-304/icons/x64/help.png deleted file mode 100644 index 4909e62824880873a33afa5ca553dc206f373743..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6117 zcmV<B7aHh^P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF000-PNkl<Zc-rlo zd34p~o&R6o^=`?{N>%~}6NCs#01LJ*Kr7%vsZK$wb`<M^{q?8g=r|VJ(>nbz^Bb+& zW2aiQzuKuH6<1oVmT8BoRRKXn_AMkK>&;DW?tZ`PGk@G~LO@h-IlrFj_nhZ^Z*p^< z=lQ&!&-#8ok%SO@mLHkV`13gcp9AnY0H5tgJ^B}tBz+<i-#BH8&#|mYSk@VGE;q?% z7-KZcs??xJQdJp{9LKROAu^V#4&-#b)7167X-V1=F^tWxc61B?_NOKIQ1p|I4uc;D zfThjN0mn4w=&97g!ff`-Wx9USsFD)7qQ0JRT^)f@qws~psKFotu+wSGOorUR0Evzc zq6ZHW>FX1H*=#hbsv8r5z)P)}%nKX4ySqFv#9t)<*G`#Isk-hp;Y?;pwd*!EOrFe1 zvu9H^b0!7j$D<Y$plBLHGrNG~4Lqq_$HB>DNVT@oyKy6Jue`$kx89=Nw)?wf`Gxje zZpEwZ?e74&PXdTf1b`c+O)HRW`#Z&%%q?}1NX03dM)PyeQGC`}$ey5%<KQ|D!gYri z7D6CN(&4ov30anrWEn+Kh8<J7rG<CD_BFP(w9ryjmF-Z~-|k5y?%vehy%R7#4iH0f zs~>fOYnz+rhtlc$>SD2pr}X!8l5JByZX5-YgbUcFiR-$<3mxk{5^UkRNRotW+engx ztm_1T(*glTr_;2wwg$G9m0en1Ts*HT6nfx={ri6gd~82)!WwYh^yxmuvX)mS61Ox) zqw<7glB${-3NF1A|Chgv6bd1lns7@?!8G&geGDK*t|bj=fF$M3Ler2l8RV^7A)Cco zzaC@dO8WNhWm_o3wu%b&`FyW!h(vDPKQOTUqnO1<GJz#ir&fkc^Rdyf*m;v85$bK5 z(gh0$FIj?GQGv64JI*uD<ONx^3O5);nCAPQ`g>xsEF&ojvaX{pT?*T`!=gn<XPkkX z$&h>UNfJ*y!2#Q5Q)MN4!r{)%iNq~$cXh1=5+?$}2?KD=)T#9$!+7?jfq^NLdU_aB zSV;LzH&JlG1vm!|V6I$=Sho(<Fwg;(EyG;C91;lt6h%Q%6kONE_56XND0!#ox;T!L zUq2j1f8q&zS6qPuSc-x>b0*5=mm^P|im_n>iM#LSP*)cltE$*tQWD>gNZhfxv-2q+ z=DD6v7Jwzwrqzbh=@-X#b)7ybk)W=+n(80?fWX9wWS@MJ+~bd<Bog=l4bTBK6e9ED zi*W9_xXC1mM1p~V0Wz5krey)3>pFg)kK*EDii?U+LLsEiPJ&lniL`YqWHMN;iwW31 zAJQe4;9If;I~F5$*Ijh)+{yZ)Fgq)&lIxSn+u!N#e%kX3?k5Job<?K@)nxL8ae?6M znHMaiWc_PYe*N#zOG-%m$A4hI{yI9~^8_CPKnCm!FQo0h`)G?qNF);ZKyFz`jsuc} zP!v#AR3Qij0@RHiOZ^j1;D72VNT;E<7dM^8gyA8Ynh4%<3vMt-|F3>c_vC53vH4AQ zb+kp-4aC0F5{s<`20zRkjynoShVkRdY<BjPTkqtg#g`J2{)v#0A$sdSl6n1g{D3kd zt}CAKW@RONy1VIm@=2`e(@}TtM&7Xl(b<Wc%_1ZTsh|L<q5`?G5#!WTX<fID?2a9r zQdLE$w--_=<ZKqjb%*CQcJ3sz@^SnRJ&ZbgJ|(uq<iGrd%#ZFUKclSlUk)V_hb+h0 z3Zy@F6u73jc~MzkWc8GbFJtOI+)jZmQ&dtwLCBAr&657z@5tVJFVe=1!zUjAtWb#E zQ>G9vD<eBNNV315+`)sS4a4b^<!n-xa}p4CU0<;f!Jw`yzPdWXC!b8g=+P7y1``e( zAav*u^z`5u1_oe{ACG$T&G@glf?S}G_+Wx~EJ@lF?0$L`@BaGdY=-Cm)Y`fX*bi7A zSp%+WZY~X`Q$MP#tEYa^mB_AxqNu2HK2%A80HMW;@hw<@`TX;U`|n42>n#LuX#99m zp%DFBw=&q%!$Cz!tcQc!CFww)ZFkv13`mgGB}pk&l(JJ{!nBT#DdXDOs>3xk)XbPc z``EEG^z@)v7NV&M`R1GPUv?R4IE)OariChjs>n!omYUh;)3bR4<9Ba8|6obUYb~+Z zDxl}XOyPY2&|LS%Lc=^|%)-m?mzE(32St&QWjUYCd7fKn8tON`fxBP<?laFYuzEFv znGA=vZly1scGqg!zL(PJ4UQ1|yi@4_Vgd|92&vn)^={iP`Xf{?EGSrXb|mt(+@JpB zQ_en{fpgEL<o4TfzW#Njk`g4>Mc6h%QIKUBS@zz5qU+S2e+m8jcKS{&ExEEK7TXBK zfy@a5aCLKYSs;_XuB5(!vgv0cOcU83Kv5(VMLxn@B-_R{O@yN0Ty+)wQ>Sv^^2>=N zlkRVXc<0S*_Dx_T@D9)gB!~Rj&@`U!ELf9D?MeiL@1CE@+{xz6!GcF0B`|9is%au+ zv$$TKkk1(;6lExdmcX_sYHXr>QZuz%H%=N;Ts)_JaIhUX^g&v1Og=ys;$pvHj4k`Z zIcT8*B!+T#c|-~0<@H1M<hqD#md@3y>D#xDb+WwQ6aLTM*abw7k;4lQkO5%tx=iNL zZL<8+!QNgDu3U+eP7g;7Ns@+Z36Q)Dawv-gSy8C`;%q{)qBRs3&jZE){u3rdG~2$! zUsy!RY147Nn0?qe9y_O(6op(gO2@O$5>?gAA2XRPz-Hhr@8qrHaLP8&`&c6JlbGNC zZr30FK&q_`H4uOiMbvv8c7898Wm3}EL}5iW)tWXzQ<O#^d_n*$nL4#fGtHTWW5%JE zlq0+h?L(<0O(V8-E6J`d4oFgO%60bx+dM~fA_a>JL<2cvUEoj$+pfEwt_>TIe7+B_ zR9zRnFigq#Cc?rkt}QH_29$je^Ccf+lIe<NmK2U{K=Jtz!bJ#<P`#rI86gC+qL659 z#WD<f9VhD9UXQ2p0Biwy0~B4GkC^W(&C@XL<ZNbf(~Kf~z3chQbvM%2-HoEEo)(NS zK><UNTnK@rsD#IkLzN`CA{d+qjPmld;{!klF<DVmg4Lq|F<i;zfylp)Rn195C2(FL zO)neEjuhU4hg9g91Doc;EfQ27?TDX(84f&GKc~EU#`705dO<yjwhkg)-NO|l<Ux1c z!~4pA2H`k_Dr-=6A7Ndu0?NJg<oE!Pg*aW&b^Ilz2zO|57smnD6*$geJ3N}$@Ryf^ zu2Ut;g-7S(Iry@wOV^M2m%0A4FKwE<T<6|@gICXnAE?j(=ug26;JI<LORA^+>Q<;4 zLwsj1qOyuWQTPbZ5ARD17g&-65(0m5DYC8;RFp7Kd_o$azyuTpEf_>X;5aUh<Kntb zp51ZtCNZ*x&pRNCQKy}TT2#bIic;&Bq>_;f_k(Gg!u6j%p3%SgPnw>)nML!f$KT`Q zd-uSrSHn*YSY1E6xO&>7-$kmM16?f)wkA>QY6+K@AJ%mkv9H5#A-r^4_kpaSDT-f$ z0xwBD?kG@zBq6IB60*0DgKfLsaE>s8VbAP1luemJ&73)eg($ng@1N(Xp9*jhZ0LbE z+V6iF(iwsm{Dg7O{F>&q-{z~|JgNE{D%X!cw|LCdNAExyJ0IAO6YXW77xb}pghHVs zqJV8X!^3g%`x>c@LXuD<Ns%Ne@IeXRvAz(F5IDIUiYj9nV#H!LmSy8OE}Ew1Pejvj zWf{jX5Wo8!lUrJ7({;Y!^PL}aoVV7QW(0@;=5AO~_~)K4)ja!<RQ%1;A@~*ab7nDa z=EYQB{Y$jENl0Vof!zse8@aB25^*SL7)QY88!BFKU4dmeSXO>tmX!x#C@FGnJ8vTS z_$Z%H6tJP&acqoq5=B*!B(N+8)3h<oJOGxJ4~?>-fMsEA*@Dv6M)oH^q5RcXnQEH2 zet+Qn!ooZM-sij4(*)@b_-zNg*7D#>5PR{k(dlOrnDax_hPhyOfSVt&y#u6yqF?}Z z#}1@S21$~zU4dm;*p`iL=ZEVG6eUlr8mTyrV`B?pxk5N6lnL5G?6571OtjYnK=y>T z@*r3)mZIVah_78s+q`*n&YOqZ+e_%S+pueDn4C;9Js!vL`wJ$ALU%0>2A{gg=leP! zzl-#<&h>FS`t*MSZFwfk?Exnab~m_Pc>wHQ$XRF-?78Ow{yb|AZL?;Pe)=iQtbwWd zF&qcO$RCU(<ta5;QAkH4Se8k~wzFQA=^QrzrVzVaNg~nN4z`V|DmadVX}Q>{55sbZ ztXad>^S;84`SXdr@(Q`WK9XzKqD`Jm;oW!RR#wuSOmbddABDBGGKGcbj8>FY_k}{+ zYYPjO#v!+N#jDW0I$y82{or<k=mxhFoK`SnjQ(ahSFRk(_;H8W7>)4cTW|4Six$&5 z=UmcHJdT+)urwXZ5h${PEK49D-qD8bI3!GSs2H-2+XrMUYg4h$XGL4~Xl5#b8Z5xk zd>EEN^u;xFJ@Yu$hBwiLAm|YwHZZVqB?WWmqR*U3;ffWcmMvqP&qu>E&v0PN7WTjV zvedh4SFN&bN39>Im_8Z;H6S7&dO`Gf!nc8Y2;2ntRf^}0X5O?)&iHc=uRY$)rZ+6M zZ{EZyn>SHD>2!=su0Z<2*=WTj$gYi*Nzu1|7ic<tnZAfu5$2AY5Sd(A8U8|5)!RYa zKKY#gbqAHrGZ^@<7a3grYpfmb;PbKy|A;X}g_U1&2~|J(QJ(IK#js0DQO1u)k@JeS z`<{E*efw=py|ICl@A*FvY5=Pv55P#_MI0;%3@tw#k8~T%5qq<R7awh7#}=0fKp|jG zm_+c>t0?-)g~VF+^2hsrNZhe=&+OT=Dr;H40bW0vA$ngzWP2o%I<2B&oi58Kx4iHa z_M;Dx-1O$K7qLBk8ltF1=CjdfpGB#vqWs!xk?QMFD=QI}1wJ3GD;{R=?YGgqw1JcF zSq`D`V77wj1JMOe`(fctz}60LFPTF`<2Z4XKuBfuXpJpf3?klPWOi>Se%C*dTJt1b zbz?Aa>CI&NvX<55MIhru!k`<=<(?`Ghp+BBuv-o7KX61EWqY$pM+q;y(e>bi$i>A} zEMK0#<?;Dw|9`(^>(U!I{e}h_?!60wqk*?UKLl<s*b%T};Cd%->loVyX#Ha!efyGh z?Kepcz+fB_X)xXV0R+6g*xq5pwr-+59Y-oEq9qnP=+z_94=TovnIOEhfB#>uoILqW zsW5zYw7QzQ&dwv;sO`B{=@@04KM){v-g$ZLP*se+DBExUE|Zqj(fGhuLD~g}Ucl*( zknQMauw@WMI8<L&4!R1a3dkIIxsS*0?WbVu1Wq~YEcUmxklOG%^{#>NOfNLTxMiTf zs+w$ZG5x93KuavP18DVpzzI`gxkx7SvyiTTF<M@(lnf3MN~edD`ymEn<mtPfS&X^k zyM$-W8m4+=S;p055}j%G-1-~?+j|&j&l2l}R2p(f_=AGW$0&r)tp!5?0kPH$Er2~` z0@vKPoO6Rg{`IDt;IYT3w{21*m=zgF2Lkj~Rw4<(j!0y$fP)?YnUB&T;;ub#;P->M z+{>1x(NSBA<8g0C(>OVABU!*V<4nRgeus3<!m@0H0AE=tQy+MMmK}w>y2@Zz{B#n{ zmr-!zKhwD45zbumTSU#NY<Tbx#O%Doi`m3`ECzsQ*F4X+moCLkrC4_V{p`Q&GPWto zFzAw(_8zLM!_+i7<MH0T{r&F%JAvL0$^ky?ULd_I8og_3b@lW_I9%B=dNgC(+w%(^ z1wvl+gOuI=eKJDDiY4&*G&D^^(^cvgFJkWOStJrkd_`e`Ma2X(70naC*FV4?zI7GT zUg@UvoN`2TkbxeX92#Kp{BzGCT$dF;|2aSS=}%c^S(vL=(<lTs&{kW^U~w@<E@y1$ z=-3480QPwN<45iha^LOk-QFILFBh(BM=C1ls;+*I=f?w~V9AY$rqfA8q9l`9lF2NI zM218>O>7{E77SB4dMqV{#pt%c&KRVUS(0gkx{JPwZ$dL~{Hh(22G*cKPY=wzZ~+re zZw6q^nl;?8bSc6xSpLvMbX<Hfdx5^nN_wiRksU|8)z!7VKbw6g?_ufsu+u-DCaK(i zA3XTPp+w?ggrKvwmd@(xyls!r0{>~#&=)Kw9_c5U%#ciGh{yBqL?TThk!ElpPJiD3 z{n0^Uu>^yIN#gMovHmzYS!3e0*RuI_h;2MbI+h`kg_@=*e1F-$(bzcQFbFr?0H(>m zKk^6%7cOLdIE<bT-}`n)qw75ma^FZY=HvDUC_wcEjg3DZ9S&bAWSNRcgu0Fn6vu&J zh^l*kf!sI|H=9M%6m(rf*Htu4Mbnhw`-GAF!C^|v#YM(44Ay@08`P_BQ(2?%(w|hy zzyI${JLf!lI$QbS4{v4PzTE&UT)2=GD^?&Bh3|apTkPDhp=(!f@5{hC;8pMR?c=!{ zJf1c=2k80zzJ1?q8ys9ExvuD~tYlAPBS}@EV#&8Dn(;+^2vk+UvK-RsTweVXY2xuT z@py(rBIA8dkNAE5yTO43X-hEv#+%vMQOWOLmXK%7rD9wIxEA&G4gBl>{TUM`PC7yp zB*)>wU;Khm6DJm{n&tw#J;!(4B<zVaNN7Oam+I<nI;Fh)dRbKiifPg?c^VVvUqaDI zC*uf#Z5Y_L?XgE<L<h)W9{(`^Du&5c*A*zbk4&tecq~e&Y!su)%TaY5S&}fjJNfS? zf60p9uOXUFAE5~Vixw?PuV26ZdzNKAemqy?AGJwJ1F9QKOD}4!s=BQ>7_7IA93fwT zlc%0Z{g>uYG<F=a?!z`s9NWfqY#c`nv&%=8=8{*&4uPYf>N<+1p{go&HcR}_K@PsL zjstJMiD6_(BZ-$=THI(Np&Sju#TQ?k+OT26ov!Py%Cm6q55mXk5>tUvO_rNx*3?`- zuC(+bU6BiI%Ov0rP+dQP+S8^{F@6%kvT{_vA7lmBv2h&%!sCsRyxSg-<b3yta9wO8 zN4CF@$i7{4Zre=P{#|6V8B|Tfbe!C~k;tBdsZ>W+h_j7MCOibf!w)}<5Q2*?x+t}2 z)23y>st?kHkJ~0Ed70?wQon!3X`@D6R##MXW>C|LEZfS*_D~@uRW+2<o<z8^hG1zq zzQQ8(KoD8Y(`k-nVH;VDRFd>Slw_ov*r9{OdOFFalL$anRWhcPIS`Arz1!EfEp1u5 zfjyyuf-1+hzn9D9N=Aa<x-RqQ&rfaLy7f-riT4BHlWLSyffArDpsJ@%C@q~=S6FyP zX&_MNQ<Z?@3LGcj_NM4QWK~6$6-L}_;JOaNwsEX{Tb-gPD6))UJ4Rn7(|<4?Z#^(L zxW{muHZQ#G@roQmq0oi4ZQpAc#t|Ucw#~eG^HSTlZ(j!d=2+(NNp^}3-R>5Xzvvhf z(zNko3JaSn0)d7ipRY2cX<?tD1T{s`@f2T39s&YkIgXWcoLt&8(}RW)>&aw#J5s6k ztZnxIoj|)cdc5Lhs1zyj`~3?Y$N8~kS*1fDJo3mRSeC_k=be|@xpU_+HQ`g~74|eD z=z&q{T}zeAl2oe8a;dH;MSevo)MPo}f@C_5WjKyuyRKomZrTwd<p~%E`n=Ka{hU5V zc$0t<UDp>lj&q;mIPU>r?%cVl9XocsM-#-z`?Qhc6YfM0c_7pQjld*e8ZZ+$3-}WG z+n{OQca7fPjv{}dp&q9OmMV&JwI`qe#KMIOMI;gtot>Scsi`Rm+~l#-@<_QqO#t3+ zvx;XjK5wW;^;vz?c}s!!1>w|FPfY?hd*I6dzX15O!5so&U?d39XjE+5woRz2+6l}C z!heeZj0EADk(#i0@nZ4HE3b%fIGhCjH!${Z6@ZZ-EExj9=ktl0ni?TV(q7;Wpy6*B zfTPXffY(U92Y48`6sQ>fzlBdY4F0u&Py#dolf5g1)_ku9?Lr9S)5rt<8bK)V@)8Y5 rd7Uff`zAu4wdeDHoctVs&-n8{%^|^~T_7mF00000NkvXXu0mjfm(1j) diff --git a/interface/web/themes/default-304/icons/x64/login.png b/interface/web/themes/default-304/icons/x64/login.png deleted file mode 100644 index 27adf0b5e5ec4f14c5f6c5364cb2ec3080ed3a2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6797 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 diff --git a/interface/web/themes/default-304/icons/x64/monitor.png b/interface/web/themes/default-304/icons/x64/monitor.png deleted file mode 100644 index f6fc9370956e29fa0c94422d5d3dcf18b20a8e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3198 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 diff --git a/interface/web/themes/default-304/icons/x64/network.png b/interface/web/themes/default-304/icons/x64/network.png deleted file mode 100644 index e9aa4a22980d781de7a6a80f75c192d93703c55a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5546 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 diff --git a/interface/web/themes/default-304/icons/x64/server.png b/interface/web/themes/default-304/icons/x64/server.png deleted file mode 100644 index bcde9dcc5ca190c446b86ae32be731dc2e712f1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3527 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 B`E39I diff --git a/interface/web/themes/default-304/icons/x64/sites.png b/interface/web/themes/default-304/icons/x64/sites.png deleted file mode 100644 index c6e6ca252615a6b71b3b6bf43325d28eb91dd38e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6904 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 diff --git a/interface/web/themes/default-304/icons/x64/system.png b/interface/web/themes/default-304/icons/x64/system.png deleted file mode 100644 index efb2008ee53939e6b70ee5ecedf0b1c0c033226c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7060 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 diff --git a/interface/web/themes/default-304/icons/x64/tools.png b/interface/web/themes/default-304/icons/x64/tools.png deleted file mode 100644 index 8ce4e231f9a04031f28fef8efe47f4baa23d851d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5721 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 LNkvXXu0mjf(BvC@ diff --git a/interface/web/themes/default-304/images/Thumbs.db b/interface/web/themes/default-304/images/Thumbs.db deleted file mode 100644 index 8679961a8d1dc54348abadb5dd70f647d769c1bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10752 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 diff --git a/interface/web/themes/default-304/images/ajax-loader.gif b/interface/web/themes/default-304/images/ajax-loader.gif deleted file mode 100644 index 7c4804ebcaec27b830873a1ff4d157f1bde00ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3208 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 diff --git a/interface/web/themes/default-304/images/buttonHolder_bg.gif b/interface/web/themes/default-304/images/buttonHolder_bg.gif deleted file mode 100644 index 45dc0da38b2608cf1bb0c5079105e8a8bbfbe95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmZ?wbhEHbY-G@8xXJ(m|NsC0_wWDTzyE&x`up|ApF7XL+<Wom-RGa5zWu&%|HJuv z?=L?1aQWfKD~~>2d;ID8lTWvveSZAr+sh9>-hBG``s0st_uiks|NiRZk2juvy8r6y zqc`6kzW)03-S;PNzde8d{lnK^-+uo2`TOsmzyH4c`2GFYpI<=M|Nno1R{sAFwx1$G z@h1x-1A``m4#*UcpBUKwJ9HO#Y%$PU-cWQh$7+5+YN6NKsO85~N={FWYwdR__xU&L z{859-y)MywEZgq9To?cFbKc)al21ODH3rwz)%!Q{inJ9s^*VKS`}PW`Ow8$<JayU( zDWz$tGn(d3T*xJ_F+X`><FXa?tHt;@R<7ERw`u)0LB%aq+cI|d>=%<!+Z%m2<LLC0 zJi<)J15c)%yRh}Lgu=y3m&0#fzssh2JK%2kqnKyT+(ODvN?wJ$dH3|AQ{?+e-&}uu z_$`+8$?&JU$^(Zcrw<%C%^!Sa+IaO#G`4J5$lBSe!`Haw0=JWgRA-9Dg^S7uc@*1w zbR-WbothwH9mSF<n0#`Uu<yTMjm?VZ>!z{rhUI94EZ<q@EU09=BJbYWHow<1oxh7H zhUVSa5~}*+?DY*<(f=D+*|Q_hx1~8A<Ps~Bk4{@yuyw0?_>9G2#g8AJy_#_)vZanU zH7RrAC3TmsPpi6jp5#?L`b_R}(dXa=M^Ck%6*-$;SiDN#+tQrp?&(uayk8~>+0304 IBfww{0BZFy)c^nh diff --git a/interface/web/themes/default-304/images/chevron.png b/interface/web/themes/default-304/images/chevron.png deleted file mode 100644 index 7ca05879425ec644442a7590157616f4de3eb77d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4xHBpZ(Y^aoPv0X`wFA3l8O?CjjLXV1QU`*!Tu zv2EM7`uh5*Q>X6Uy}PBQ<@M{=rKP3+|NrMJzOWLgg|Q^aFPOpM*^M+H$IjEmF@)oK za>9d*1cv5!vI4iNw=>O1ySbNBNnr172A|FE?(qnoxW~CnqWnD5<xAG$3dO4xW7?() e=rN1W;ASvdDWGT`Jktnh5`(9!pUXO@geCw3mPT9v diff --git a/interface/web/themes/default-304/images/favicon.ico b/interface/web/themes/default-304/images/favicon.ico deleted file mode 100644 index da6257c84cce5c550eb7118581ed2a22f15af248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmeH_Sxl5y6vzL!*4AoOwAHFiof!oc0gFpZTWqzpwSq7+ezSbczOW1o%P<Te+W@w* zIirOtYm6qE@S+b&gA2GM;7mveBqSsxJP=AqAfN(1u!O|%jD6|5PbNJ#_nv!i?m6do z@BadfT2K&ZT!XaLz*YeJsM8ii)C2ngJI>y^e~16f{eD0E{?}MuUc#$a^LYMz22)d$ z7$5%!KA#sQE*Bb`n^9C;46o0JM~@%lVP_}qKX`yUckklH&6{X!YQmL<2GrHp!|m}v zrPe^fCqi#B!)nWb&R|5MMhjbJ7Sd>KO}D|4oC1?22?jc&H=0mTScIHhC$e)KI3rg= z#wj3?aZqdZ6srTT)<VgvAy@J+ngekbX!S;DbOt1+q#}v(xys5>aJCS6`2}$1<s;Xb z2M6V}Q_iexJ2C?GsdiIy3mO`mQ2*Cu{8?8I&&5lqz2HW5O)aXbYjD1@3gs2&P*z?+ z400q$IVe<Wa0(tes;N{ZBHflrx#%uwHl$k9iNOj>QVPtLWSEH0NPGsPnQG@E+wMSS zmK`cygVxroC@pm%pBP`fc!~c00eHPWJbUKFlP6En+1Z7A_wJ*;{cqg5bsN{NT}Mkx zE1HS9j#%Ap4^~!INUvoqEiGYjaS;m(3z(mu$K2c;W@l$HGc$wf>1on&3X_wQn3$L# zJ;yONHipsBQH+d?V0d^KLqkIt92~^JzyNXdqpz<Iy}iA}<3&$T54yX%(bd(3j*brE zX-8XI8yZMw7yXIAzxm(Z?-z)Uj@BGWOJ1Mq`N<GN3w4NgOA&i(g&Wl&-)#^5=3|z7 zzVi1nC;MZ2Xs94&6U)|f(xb*ppJfSRVx)p|to+NJ(jV58rhG3I2o$o_%&L^hxL-0p zs#VBjJoh29@f>&ND@k=3d0w8wG85%;ak?x27%!La5<1xDJA}dmp9B@3*d-M17dhFF z!6K39P(;P2`$eK)@mc2nVw-sDh7#x6V6pgMR3$4ptP4A>Ik|4f!Kf%n*k;BqBpmws zx8pSzC1GK);ZbJBOnG*?LRD;d_@0QpD$6RyK5!Hy{k$h4A~HU5pJey1Cr^EQI4&+S JKK@<RdjqILJA?oL diff --git a/interface/web/themes/default-304/images/header_bg.png b/interface/web/themes/default-304/images/header_bg.png deleted file mode 100644 index f53a8b4ac206d253510634b56d55eaf87d9801d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmV-40n7f0P)<h;3K|Lk000e1NJLTq000C4002-31^@s7N$KPX0002{Nkl<ZILob4 zTaJV<40D~NYBR?|NZkKI><6@+ZI-E4njaJ#Kav2BeLJb9pjQV=b<o{Ge>qtDYxVmT z$G)AcUPISwulxm;TESAvtpI>4$jm@f1Jw*vH8AH^S++p2w@1ERF0vUYB1p%+odBRD z0RXC|S7By%p{>ZdaqNlnN2?V&d_Ji3A@mv#7&CXI7h?+wCqzVMgc4LTkyC19ZLL6N z3K1i{8wMo$@L456#W3pFl#hmwo5o}IJBLm`cS`9u&=Nb)?B5tOAZa0K-{6z!iqUQ| zOerhVFT|#>9GCatH@2PU2$E$iWhoK<_k>*TG6UhK3&0PWZ4!q!bZTD!0000<MNUMn GLSTXv_I{oK diff --git a/interface/web/themes/default-304/images/header_logo.png b/interface/web/themes/default-304/images/header_logo.png deleted file mode 100644 index d85333a5af3d21da5fefc6b0fa2e052ac489501d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5872 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 GLSTYzzh(OX diff --git a/interface/web/themes/default-304/images/lists_tfoot_bg.png b/interface/web/themes/default-304/images/lists_tfoot_bg.png deleted file mode 100644 index fe3acffe5946346a67b39082457c784d33bce9bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^Oh9bJ!N$PA$avaH9>|IDba4!kxIDG*BG&;05vRMU z|NrlGT3W3U6@BDZ_Z)34aTQqx0n2n3ugoPuTn?8KcUSr!v}IsWTzSpz#J4N8op049 z9V>pB+w%L5<E6j1T7!dFZ)@K;`G+e%<ypAClmEsaEho<Z1KPvj>FVdQ&MBb@0HLlp An*aa+ diff --git a/interface/web/themes/default-304/images/lists_thead_bg.png b/interface/web/themes/default-304/images/lists_thead_bg.png deleted file mode 100644 index c75d17f03e19525bdc5117c08072e4c5d056e68b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmV;(05|`MP)<h;3K|Lk000e1NJLTq00062001Zm1^@s7qlO#e0001wNkl<Z7}JG} zF%E+;5Cq4IKTk(N;r9`EfK7pIB%H#;Bq&On(d^x7an2P@(?rFxEU4=`===VBJmwh% z?~%0@hG8i3-t&eK0$SG<ZQF(<)fEBYoGXekqLdPUtRiQWTRe^f8Dmbg<qKvU#{ytu zi~!h_(oNdyN9QWH%d4DouCniY6=TdzBz<0L{3=fsCU}P+2pT^C0000<MNUMnLSTa6 CUrl!a diff --git a/interface/web/themes/default-304/images/meter_bg.gif b/interface/web/themes/default-304/images/meter_bg.gif deleted file mode 100644 index 6b38c6e9592c2624c5f2d763ec9892ed550108ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80 zcmZ?wbhEHb<YM4rn8?5|bLPzd|Nk?9f#OdVP6h@h1|1L&B+tO1$iT`W<FO&Zk%5g} d$wz}>;o&v`Mvplj9~ZiI@Q54Tkq}_81^~*D5+?uv diff --git a/interface/web/themes/default-304/images/screen_bg.png b/interface/web/themes/default-304/images/screen_bg.png deleted file mode 100644 index 5cfb14945604c4b43b8cdb22485e1dc1f58b43b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^j6fW~!3HF69GAZhq!c|}977~7CtDOhJ5#Ub=H|wx m#s&npHnjD9oFd^M%ETbEi6vvV&i4wSVg^rFKbLh*2~7Z#x)+lG diff --git a/interface/web/themes/default-304/ispconfig_version b/interface/web/themes/default-304/ispconfig_version deleted file mode 100644 index bb19ac367e..0000000000 --- a/interface/web/themes/default-304/ispconfig_version +++ /dev/null @@ -1 +0,0 @@ -3.0.4.6 \ No newline at end of file diff --git a/interface/web/themes/default-304/licences.txt b/interface/web/themes/default-304/licences.txt deleted file mode 100644 index 9b810056fd..0000000000 --- a/interface/web/themes/default-304/licences.txt +++ /dev/null @@ -1,8 +0,0 @@ -Theme created by Martin Henne (red-ray.de) - -based on: - -Templates: http://www.yaml.de -Web-Forms: http://www.sprawsm.com/uni-form/ -Icons: http://www.pinvoke.com and http://www.randomjabber.com/static/sizcons -Know-How: http://particletree.com/features/rediscovering-the-button-element diff --git a/interface/web/themes/default-304/templates/admin/firewall_edit.htm b/interface/web/themes/default-304/templates/admin/firewall_edit.htm deleted file mode 100644 index 827c1c8b9f..0000000000 --- a/interface/web/themes/default-304/templates/admin/firewall_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_firewall"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="tcp_port">{tmpl_var name='tcp_port_txt'}</label> - <input name="tcp_port" id="tcp_port" value="{tmpl_var name='tcp_port'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="udp_port">{tmpl_var name='udp_port_txt'}</label> - <input name="udp_port" id="udp_port" value="{tmpl_var name='udp_port'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/firewall_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/firewall_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/firewall_list.htm b/interface/web/themes/default-304/templates/admin/firewall_list.htm deleted file mode 100644 index d209a45882..0000000000 --- a/interface/web/themes/default-304/templates/admin/firewall_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_firewall"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/firewall_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_tcp_port" scope="col"><tmpl_var name="tcp_port_txt"></th> - <th class="tbl_col_udp_port" scope="col"><tmpl_var name="udp_port_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_tcp_port"><input type="text" name="search_tcp_port" value="{tmpl_var name='search_tcp_port'}" /></td> - <td class="tbl_col_udp_port"><input type="text" name="search_udp_port" value="{tmpl_var name='search_udp_port'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/firewall_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('admin/firewall_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('admin/firewall_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_tcp_port"><a href="#" onClick="loadContent('admin/firewall_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="tcp_port"}</a></td> - <td class="tbl_col_udp_port"><a href="#" onClick="loadContent('admin/firewall_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="udp_port"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/firewall_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/groups_edit.htm b/interface/web/themes/default-304/templates/admin/groups_edit.htm deleted file mode 100644 index b5fe764944..0000000000 --- a/interface/web/themes/default-304/templates/admin/groups_edit.htm +++ /dev/null @@ -1,26 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_groups"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="description">{tmpl_var name='description_txt'}</label> - <textarea name="description" id="description" rows='5' cols='30'>{tmpl_var name='description'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/groups_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/groups_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/groups_list.htm b/interface/web/themes/default-304/templates/admin/groups_list.htm deleted file mode 100644 index 3fc1918ec7..0000000000 --- a/interface/web/themes/default-304/templates/admin/groups_list.htm +++ /dev/null @@ -1,54 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_groups"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/groups_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - <p><tmpl_var name="warning_txt"></p> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_name" scope="col"><tmpl_var name="name_txt"></th> - <th class="tbl_col_description" scope="col"><tmpl_var name="description_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_name"><input type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> - <td class="tbl_col_description"><input type="text" name="search_description" value="{tmpl_var name='search_description'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/groups_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_name"><a href="#" onClick="loadContent('admin/groups_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="name"}</a></td> - <td class="tbl_col_description"><a href="#" onClick="loadContent('admin/groups_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="description"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/groups_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/iptables_edit.htm b/interface/web/themes/default-304/templates/admin/iptables_edit.htm deleted file mode 100644 index 33574c9ef5..0000000000 --- a/interface/web/themes/default-304/templates/admin/iptables_edit.htm +++ /dev/null @@ -1,67 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> -<div class="panel panel_iptables"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="table">{tmpl_var name='table_txt'}</label> - <select name="table" id="table" class="selectInput formLengthLimit"> - {tmpl_var name='table'} - </select> - </div> - <div class="ctrlHolder"> - <label for="protocol">{tmpl_var name='protocol_txt'}</label> - <select name="protocol" id="protocol" class="selectInput formLengthLimit"> - {tmpl_var name='protocol'} - </select> - </div> - <div class="ctrlHolder"> - <label for="singleport">{tmpl_var name='singleport_txt'}</label> - <input name="singleport" id="singleport" value="{tmpl_var name='singleport'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="multiport">{tmpl_var name='multiport_txt'}</label> - <input name="multiport" id="multiport" value="{tmpl_var name='multiport'}" size="20" maxlength="40" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="destination_ip">{tmpl_var name='destination_ip_txt'}</label> - <input name="destination_ip" id="destination_ip" value="{tmpl_var name='destination_ip'}" size="16" maxlength="20" type="text" class="textInput formLengthIPv4" /> - </div> - <div class="ctrlHolder"> - <label for="source_ip">{tmpl_var name='source_ip_txt'}</label> - <input name="source_ip" id="source_ip" value="{tmpl_var name='source_ip'}" size="16" maxlength="20" type="text" class="textInput formLengthIPv4" /> - </div> - <div class="ctrlHolder"> - <label for="state">{tmpl_var name='state_txt'}</label> - <input name="state" id="state" value="{tmpl_var name='state'}" size="16" maxlength="20" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="target">{tmpl_var name='target_txt'}</label> - <select name="target" id="target" class="selectInput formLengthLimit"> - {tmpl_var name='target'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/iptables_edit.php');"> - <span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/iptables_list.php');"> - <span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/iptables_list.htm b/interface/web/themes/default-304/templates/admin/iptables_list.htm deleted file mode 100644 index 6c65094daa..0000000000 --- a/interface/web/themes/default-304/templates/admin/iptables_list.htm +++ /dev/null @@ -1,73 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_iptables"> - - <div class="pnl_toolsarea"> - <fieldset><legend>Tools</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/iptables_edit.php');"> - <span>{tmpl_var name="add_new_rule_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_table" scope="col"><tmpl_var name="table_txt"></th> - <th class="tbl_col_protocol" scope="col"><tmpl_var name="protocol_txt"></th> - <th class="tbl_col_port" scope="col"><tmpl_var name="singleport_txt"></th> - <th class="tbl_col_port" scope="col"><tmpl_var name="multiport_txt"></th> - <th class="tbl_col_state" scope="col"><tmpl_var name="state_txt"></th> - <th class="tbl_col_target" scope="col"><tmpl_var name="target_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_table"></td> - <td class="tbl_col_protocol"><select name="search_protocol">{tmpl_var name='search_protocol'}</select></td> - <td class="tbl_col_singleport"></td> - <td class="tbl_col_multiport"></td> - <td class="tbl_col_state"></td> - <td class="tbl_col_target"><select name="search_target">{tmpl_var name='search_target'}</select></td> - <td class="tbl_col_buttons"> - <div class="buttons"> - <button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/iptables_list.php');"><span>{tmpl_var name="filter_txt"}filter_txt</span></button> - </div> - </td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_table"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="table"}</a></td> - <td class="tbl_col_protocol"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="protocol"}</a></td> - <td class="tbl_col_singleport"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="singleport"}</a></td> - <td class="tbl_col_multiport"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="multiport"}</a></td> - <td class="tbl_col_state"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="state"}</a></td> - <td class="tbl_col_target"><a href="#" onClick="loadContent('admin/iptables_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="target"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/iptables_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="9"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/language_add.htm b/interface/web/themes/default-304/templates/admin/language_add.htm deleted file mode 100644 index 540fc97657..0000000000 --- a/interface/web/themes/default-304/templates/admin/language_add.htm +++ /dev/null @@ -1,29 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_add"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Language Add</legend> - <div class="ctrlHolder"> - <label for="lng_select">{tmpl_var name='language_select_txt'}</label> - <select name="lng_select" id="language" class="selectInput flags"> - {tmpl_var name='language_option'} - </select> - </div> - <div class="ctrlHolder"> - <label for="lng_new">{tmpl_var name='language_new_txt'}</label> - <input name="lng_new" id="lng_new" value="" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - <p class="formHint">{tmpl_var name='language_new_hint_txt'}</p> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_add.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/language_complete.htm b/interface/web/themes/default-304/templates/admin/language_complete.htm deleted file mode 100644 index 7416a7096c..0000000000 --- a/interface/web/themes/default-304/templates/admin/language_complete.htm +++ /dev/null @@ -1,29 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_complete"> - - <tmpl_if name="msg"> - <div id="OKMsg"><tmpl_var name="msg"></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><tmpl_var name="error"></div> - </tmpl_if> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Language Complete</legend> - <div class="ctrlHolder"> - <label for="lng_select">{tmpl_var name='language_select_txt'}</label> - <select name="lng_select" id="language" class="selectInput flags"> - {tmpl_var name='language_option'} - </select> - </div> - </fieldset> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_complete.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/language_edit.htm b/interface/web/themes/default-304/templates/admin/language_edit.htm deleted file mode 100644 index 3767a178eb..0000000000 --- a/interface/web/themes/default-304/templates/admin/language_edit.htm +++ /dev/null @@ -1,29 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_edit"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_language_edit"><legend>Language File Edit: {tmpl_var name="file_path"}</legend> - <span class="wf_oneField"> - <tmpl_loop name="records"> - <span class="wf_oneField"> - <label for="records[{tmpl_var name="key"}]" class="wf_preField">{tmpl_var name="key"}</label> - <input type="text" id="records[{tmpl_var name="key"}]" name="records[{tmpl_var name="key"}]" value="{tmpl_var name='val'}" size="50" > - </span> - </tmpl_loop> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="lang" value="{tmpl_var name='lang'}"> - <input type="hidden" name="lang_file" value="{tmpl_var name='lang_file'}"> - <input type="hidden" name="module" value="{tmpl_var name='module'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php?lng_select={tmpl_var name='lang'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/language_export.htm b/interface/web/themes/default-304/templates/admin/language_export.htm deleted file mode 100644 index 40856220c9..0000000000 --- a/interface/web/themes/default-304/templates/admin/language_export.htm +++ /dev/null @@ -1,31 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_export"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Language Export</legend> - <div class="ctrlHolder"> - <label for="lng_select">{tmpl_var name='language_select_txt'}</label> - <select name="lng_select" id="lng_select" class="selectInput flags"> - {tmpl_var name='language_option'} - </select> - </div> - - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_export.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - - </fieldset> - - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/admin/language_import.htm b/interface/web/themes/default-304/templates/admin/language_import.htm deleted file mode 100644 index 30289448f2..0000000000 --- a/interface/web/themes/default-304/templates/admin/language_import.htm +++ /dev/null @@ -1,44 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_import"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Language Import</legend> - <div class="ctrlHolder"> - <label for="lng_select">{tmpl_var name='language_import_txt'}</label> - <input name="file" id="file" size="30" type="file" class="fileUpload" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='language_overwrite_txt'}</p> - <div class="multiField"> - <input id="overwrite" type="checkbox" value="1" name="overwrite"/> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ignore_version_txt'}</p> - <div class="multiField"> - <input id="ignore_version" type="checkbox" value="1" name="ignore_version"/> - </div> - </div> - - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitUploadForm('pageForm','admin/language_import.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - - </fieldset> - - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/language_list.htm b/interface/web/themes/default-304/templates/admin/language_list.htm deleted file mode 100644 index d2689535d3..0000000000 --- a/interface/web/themes/default-304/templates/admin/language_list.htm +++ /dev/null @@ -1,47 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_groups"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend>Tools</legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="lng_select">{tmpl_var name='language_select_txt'}</label> - <select name="lng_select" id="language" class="selectInput flags" onChange="submitForm('pageForm','admin/language_list.php');"> - {tmpl_var name='language_option'} - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_module" scope="col"><tmpl_var name="module_txt"></th> - <th class="tbl_col_lang_file" scope="col"><tmpl_var name="lang_file_txt"></th> - <th class="tbl_col_limit" scope="col"><tmpl_var name="lang_file_date_txt"></th> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_module"><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="module"}</a></td> - <td class="tbl_col_lang_file"><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="lang_file"}</a></td> - <td><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="lang_file_date"}</a></td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/remote_action_ispcupdate.htm b/interface/web/themes/default-304/templates/admin/remote_action_ispcupdate.htm deleted file mode 100644 index 6c903bad7c..0000000000 --- a/interface/web/themes/default-304/templates/admin/remote_action_ispcupdate.htm +++ /dev/null @@ -1,33 +0,0 @@ -<!-- -<h2><tmpl_var name="do_ispcupdate_caption"></h2> -<p><tmpl_var name="do_ispcupdate_desc"></p> ---> - -<h2><tmpl_var name="ispconfig_update_title"></h2> -<p style="margin-top:50px; font-size:14px;"><tmpl_var name="ispconfig_update_text"></p> - -<div class="panel panel_language_add"> - - <div class="pnl_formsarea"> - <!-- - <fieldset class="inlineLabels"><legend>{tmpl_var name='do_ispcupdate_caption'}</legend> - <div class="ctrlHolder"> - <label for="server_select">{tmpl_var name='select_server_txt'}</label> - <select name="server_select" id="server" class="selectInput" onchange="document.getElementById('OKMsg').style.visibility = 'hidden'; "> - {tmpl_var name='server_option'} - </select> - </div> - </fieldset> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_do_txt'}" onClick="submitForm('pageForm','admin/remote_action_ispcupdate.php');"><span>{tmpl_var name='btn_do_txt'}</span></button> - </div> - --> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/remote_action_osupdate.htm b/interface/web/themes/default-304/templates/admin/remote_action_osupdate.htm deleted file mode 100644 index 034947355f..0000000000 --- a/interface/web/themes/default-304/templates/admin/remote_action_osupdate.htm +++ /dev/null @@ -1,25 +0,0 @@ -<h2><tmpl_var name="do_osupdate_caption"></h2> -<p><tmpl_var name="do_osupdate_desc"></p> - -<div class="panel panel_language_add"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='do_osupdate_caption'}</legend> - <div class="ctrlHolder"> - <label for="server_select">{tmpl_var name='select_server_txt'}</label> - <select name="server_select" id="server" class="selectInput" onchange="document.getElementById('OKMsg').style.visibility = 'hidden'; "> - {tmpl_var name='server_option'} - </select> - </div> - </fieldset> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_do_txt'}" onClick="submitForm('pageForm','admin/remote_action_osupdate.php');"><span>{tmpl_var name='btn_do_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/remote_user_edit.htm b/interface/web/themes/default-304/templates/admin/remote_user_edit.htm deleted file mode 100644 index 1b7d22a5c4..0000000000 --- a/interface/web/themes/default-304/templates/admin/remote_user_edit.htm +++ /dev/null @@ -1,47 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_ftp_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="remote_username">{tmpl_var name='username_txt'}</label> - <p class="prefix">{tmpl_var name='username_prefix'}</p> - <input name="remote_username" id="username" value="{tmpl_var name='remote_username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - - <div class="ctrlHolder"> - <label for="remote_password">{tmpl_var name='password_txt'}</label> - <input name="remote_password" id="password" value="{tmpl_var name='remote_password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='function_txt'}</p> - <div class="multiField"> - {tmpl_var name='remote_functions'} - </div> - </div> - - </fieldset> - - <input type="hidden" name="remote_userid" value="{tmpl_var name='id'}"> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/remote_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/remote_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/remote_user_list.htm b/interface/web/themes/default-304/templates/admin/remote_user_list.htm deleted file mode 100644 index a4549c0655..0000000000 --- a/interface/web/themes/default-304/templates/admin/remote_user_list.htm +++ /dev/null @@ -1,52 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> -<div class="panel panel_list_users"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/remote_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_remote_userid" scope="col"><tmpl_var name="parent_remote_userid_txt"></th> - <th class="tbl_col_remote_username" scope="col"><tmpl_var name="username_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_remote_userid"> </td> - <td class="tbl_col_remote_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/remote_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_remote_userid"><a href="#" onClick="loadContent('admin/remote_user_edit.php?id={tmpl_var name='remote_userid'}');">{tmpl_var name="remote_userid"}</a></td> - <td class="tbl_col_remote_username"><a href="#" onClick="loadContent('admin/remote_user_edit.php?id={tmpl_var name='remote_userid'}');">{tmpl_var name="remote_username"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/remote_user_del.php?id={tmpl_var name='remote_userid'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_cron_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_cron_edit.htm deleted file mode 100644 index 17c811ba27..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_cron_edit.htm +++ /dev/null @@ -1,30 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="init_script">{tmpl_var name='init_script_txt'}</label> - <input name="init_script" id="init_script" value="{tmpl_var name='init_script'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="crontab_dir">{tmpl_var name='crontab_dir_txt'}</label> - <input name="crontab_dir" id="crontab_dir" value="{tmpl_var name='crontab_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="wget">{tmpl_var name='wget_txt'}</label> - <input name="wget" id="wget" value="{tmpl_var name='wget'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_dns_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_dns_edit.htm deleted file mode 100644 index c308ec495c..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_dns_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="bind_user">{tmpl_var name='bind_user_txt'}</label> - <input name="bind_user" id="bind_user" value="{tmpl_var name='bind_user'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bind_group">{tmpl_var name='bind_group_txt'}</label> - <input name="bind_group" id="bind_group" value="{tmpl_var name='bind_group'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bind_zonefiles_dir">{tmpl_var name='bind_zonefiles_dir_txt'}</label> - <input name="bind_zonefiles_dir" id="bind_zonefiles_dir" value="{tmpl_var name='bind_zonefiles_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="named_conf_path">{tmpl_var name='named_conf_path_txt'}</label> - <input name="named_conf_path" id="named_conf_path" value="{tmpl_var name='named_conf_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="named_conf_local_path">{tmpl_var name='named_conf_local_path_txt'}</label> - <input name="named_conf_local_path" id="named_conf_local_path" value="{tmpl_var name='named_conf_local_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_fastcgi_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_fastcgi_edit.htm deleted file mode 100644 index ad9444060a..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_fastcgi_edit.htm +++ /dev/null @@ -1,52 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="fastcgi_starter_path">{tmpl_var name='fastcgi_starter_path_txt'}</label> - <input name="fastcgi_starter_path" id="fastcgi_starter_path" value="{tmpl_var name='fastcgi_starter_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_starter_script">{tmpl_var name='fastcgi_starter_script_txt'}</label> - <input name="fastcgi_starter_script" id="fastcgi_starter_script" value="{tmpl_var name='fastcgi_starter_script'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_alias">{tmpl_var name='fastcgi_alias_txt'}</label> - <input name="fastcgi_alias" id="fastcgi_alias" value="{tmpl_var name='fastcgi_alias'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_phpini_path">{tmpl_var name='fastcgi_phpini_path_txt'}</label> - <input name="fastcgi_phpini_path" id="fastcgi_phpini_path" value="{tmpl_var name='fastcgi_phpini_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_children">{tmpl_var name='fastcgi_children_txt'}</label> - <input name="fastcgi_children" id="fastcgi_children" value="{tmpl_var name='fastcgi_children'}" size="40" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_max_requests">{tmpl_var name='fastcgi_max_requests_txt'}</label> - <input name="fastcgi_max_requests" id="fastcgi_max_requests" value="{tmpl_var name='fastcgi_max_requests'}" size="40" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_bin">{tmpl_var name='fastcgi_bin_txt'}</label> - <input name="fastcgi_bin" id="fastcgi_bin" value="{tmpl_var name='fastcgi_bin'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_config_syntax">{tmpl_var name='fastcgi_config_syntax_txt'}</label> - <select name="fastcgi_config_syntax" id="fastcgi_config_syntax" class="selectInput"> - {tmpl_var name='fastcgi_config_syntax'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_getmail_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_getmail_edit.htm deleted file mode 100644 index 21492e4c89..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_getmail_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="getmail_config_dir">{tmpl_var name='getmail_config_dir_txt'}</label> - <input name="getmail_config_dir" id="getmail_config_dir" value="{tmpl_var name='getmail_config_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_jailkit_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_jailkit_edit.htm deleted file mode 100644 index 19e0416e61..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_jailkit_edit.htm +++ /dev/null @@ -1,34 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="jailkit_chroot_home">{tmpl_var name='jailkit_chroot_home_txt'}</label> - <input name="jailkit_chroot_home" id="jailkit_chroot_home" value="{tmpl_var name='jailkit_chroot_home'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="jailkit_chroot_app_sections">{tmpl_var name='jailkit_chroot_app_sections_txt'}</label> - <input name="jailkit_chroot_app_sections" id="jailkit_chroot_app_sections" value="{tmpl_var name='jailkit_chroot_app_sections'}" size="40" maxlength="1000" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="jailkit_chroot_app_programs">{tmpl_var name='jailkit_chroot_app_programs_txt'}</label> - <input name="jailkit_chroot_app_programs" id="jailkit_chroot_app_programs" value="{tmpl_var name='jailkit_chroot_app_programs'}" size="40" maxlength="1000" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="jailkit_chroot_cron_programs">{tmpl_var name='jailkit_chroot_cron_programs_txt'}</label> - <input name="jailkit_chroot_cron_programs" id="jailkit_chroot_cron_programs" value="{tmpl_var name='jailkit_chroot_cron_programs'}" size="40" maxlength="1000" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_list.htm b/interface/web/themes/default-304/templates/admin/server_config_list.htm deleted file mode 100644 index 1f5356b94b..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_list.htm +++ /dev/null @@ -1,40 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_server_config"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_server_name" scope="col"><tmpl_var name="server_name_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_server_name"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_config_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_server_name"><a href="#" onClick="loadContent('admin/server_config_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/server_config_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="2"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/admin/server_config_mail_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_mail_edit.htm deleted file mode 100644 index 72292b32bf..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_mail_edit.htm +++ /dev/null @@ -1,94 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="module">{tmpl_var name='module_txt'}</label> - <select name="module" id="module" class="selectInput formLengthHalf"> - {tmpl_var name='module'} - </select> - </div> - <div class="ctrlHolder"> - <label for="maildir_path">{tmpl_var name='maildir_path_txt'}</label> - <input name="maildir_path" id="maildir_path" value="{tmpl_var name='maildir_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="homedir_path">{tmpl_var name='homedir_path_txt'}</label> - <input name="homedir_path" id="homedir_path" value="{tmpl_var name='homedir_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='pop3_imap_daemon_txt'}</p> - <div class="multiField"> - <select name="pop3_imap_daemon" id="pop3_imap_daemon" class="selectInput"> - {tmpl_var name='pop3_imap_daemon'} - </select> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='mail_filter_syntax_txt'}</p> - <div class="multiField"> - <select name="mail_filter_syntax" id="mail_filter_syntax" class="selectInput"> - {tmpl_var name='mail_filter_syntax'} - </select> - </div> - </div> - <div class="ctrlHolder"> - <label for="mailuser_uid">{tmpl_var name='mailuser_uid_txt'}</label> - <input name="mailuser_uid" id="mailuser_uid" value="{tmpl_var name='mailuser_uid'}" size="10" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="mailuser_gid">{tmpl_var name='mailuser_gid_txt'}</label> - <input name="mailuser_gid" id="mailuser_gid" value="{tmpl_var name='mailuser_gid'}" size="10" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="mailuser_name">{tmpl_var name='mailuser_name_txt'}</label> - <input name="mailuser_name" id="mailuser_name" value="{tmpl_var name='mailuser_name'}" size="10" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="mailuser_group">{tmpl_var name='mailuser_group_txt'}</label> - <input name="mailuser_group" id="mailuser_group" value="{tmpl_var name='mailuser_group'}" size="10" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="relayhost">{tmpl_var name='relayhost_txt'}</label> - <input name="relayhost" id="relayhost" value="{tmpl_var name='relayhost'}" size="40" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="relayhost_user">{tmpl_var name='relayhost_user_txt'}</label> - <input name="relayhost_user" id="relayhost_user" value="{tmpl_var name='relayhost_user'}" size="40" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="relayhost_password">{tmpl_var name='relayhost_password_txt'}</label> - <input name="relayhost_password" id="relayhost_password" value="{tmpl_var name='relayhost_password'}" size="40" maxlength="255" type="password" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="mailbox_size_limit">{tmpl_var name='mailbox_size_limit_txt'}</label> - <input name="mailbox_size_limit" id="mailbox_size_limit" value="{tmpl_var name='mailbox_size_limit'}" size="10" maxlength="15" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="message_size_limit">{tmpl_var name='message_size_limit_txt'}</label> - <input name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="15" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='mailbox_quota_stats_txt'}</p> - <div class="multiField"> - {tmpl_var name='mailbox_quota_stats'} - </div> - </div> - <div class="ctrlHolder"> - <label for="realtime_blackhole_list">{tmpl_var name='realtime_blackhole_list_txt'}</label> - <input name="realtime_blackhole_list" id="realtime_blackhole_list" value="{tmpl_var name='realtime_blackhole_list'}" size="40" maxlength="255" type="text" class="textInput" /> {tmpl_var name='realtime_blackhole_list_note_txt'} - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_rescue_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_rescue_edit.htm deleted file mode 100644 index 0310344013..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_rescue_edit.htm +++ /dev/null @@ -1,44 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Rescue</legend> - <div class="ctrlHolder"> - <p class="label" style="width:300px">{tmpl_var name='try_rescue_txt'}</p> - <div class="multiField" style="width:100px"> - {tmpl_var name='try_rescue'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label" style="width:300px">{tmpl_var name='do_not_try_rescue_httpd_txt'}</p> - <div class="multiField" style="width:100px"> - {tmpl_var name='do_not_try_rescue_httpd'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label" style="width:300px">{tmpl_var name='do_not_try_rescue_mysql_txt'}</p> - <div class="multiField" style="width:100px"> - {tmpl_var name='do_not_try_rescue_mysql'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label" style="width:300px">{tmpl_var name='do_not_try_rescue_mail_txt'}</p> - <div class="multiField" style="width:100px"> - {tmpl_var name='do_not_try_rescue_mail'} - </div> - </div> - </fieldset> - - <tmpl_var name="rescue_description_txt"> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_server_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_server_edit.htm deleted file mode 100644 index 3cb6848164..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_server_edit.htm +++ /dev/null @@ -1,67 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='auto_network_configuration_txt'}</p> - <div class="multiField"> - {tmpl_var name='auto_network_configuration'} {tmpl_var name='network_config_warning_txt'} - </div> - </div> - <div class="ctrlHolder"> - <label for="ip_address">{tmpl_var name='ip_address_txt'}</label> - <input name="ip_address" id="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="255" type="text" class="textInput formLengthIPv4" /> - </div> - <div class="ctrlHolder"> - <label for="netmask">{tmpl_var name='netmask_txt'}</label> - <input name="netmask" id="netmask" value="{tmpl_var name='netmask'}" size="15" maxlength="255" type="text" class="textInput formLengthIPv4" /> - </div> - <div class="ctrlHolder"> - <label for="gateway">{tmpl_var name='gateway_txt'}</label> - <input name="gateway" id="gateway" value="{tmpl_var name='gateway'}" size="15" maxlength="255" type="text" class="textInput formLengthIPv4" /> - </div> - <div class="ctrlHolder"> - <label for="hostname">{tmpl_var name='hostname_txt'}</label> - <input name="hostname" id="hostname" value="{tmpl_var name='hostname'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="nameservers">{tmpl_var name='nameservers_txt'}</label> - <input name="nameservers" id="nameservers" value="{tmpl_var name='nameservers'}" size="40" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='nameservers_hint_txt'}</p> - </div> - <div class="ctrlHolder"> - <label for="firewall">{tmpl_var name='firewall_txt'}</label> - <select name="firewall" id="firewall" class="selectInput"> - {tmpl_var name='firewall'} - </select> - </div> - <div class="ctrlHolder"> - <label for="loglevel">{tmpl_var name='loglevel_txt'}</label> - <select name="loglevel" id="loglevel" class="selectInput"> - {tmpl_var name='loglevel'} - </select> - </div> - <div class="ctrlHolder"> - <label for="backup_dir">{tmpl_var name='backup_dir_txt'}</label> - <input name="backup_dir" id="backup_dir" value="{tmpl_var name='backup_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="backup_mode">{tmpl_var name='backup_mode_txt'}</label> - <select name="backup_mode" id="backup_mode" class="selectInput"> - {tmpl_var name='backup_mode'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_ufw_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_ufw_edit.htm deleted file mode 100644 index e0a1ded29d..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_ufw_edit.htm +++ /dev/null @@ -1,66 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>UFW Firewall</legend> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ufw_enable_txt'}</p> - <div class="multiField"> - {tmpl_var name='ufw_enable'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ufw_manage_builtins_txt'}</p> - <div class="multiField"> - {tmpl_var name='ufw_manage_builtins'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ufw_ipv6_txt'}</p> - <div class="multiField"> - {tmpl_var name='ufw_ipv6'} - </div> - </div> - <div class="ctrlHolder"> - <label for="ufw_default_input_policy">{tmpl_var name='ufw_default_input_policy_txt'}</label> - <select name="ufw_default_input_policy" id="ufw_default_input_policy" class="selectInput"> - {tmpl_var name='ufw_default_input_policy'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ufw_default_output_policy">{tmpl_var name='ufw_default_output_policy_txt'}</label> - <select name="ufw_default_output_policy" id="ufw_default_output_policy" class="selectInput"> - {tmpl_var name='ufw_default_output_policy'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ufw_default_forward_policy">{tmpl_var name='ufw_default_forward_policy_txt'}</label> - <select name="ufw_default_forward_policy" id="ufw_default_forward_policy" class="selectInput"> - {tmpl_var name='ufw_default_forward_policy'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ufw_default_application_policy">{tmpl_var name='ufw_default_application_policy_txt'}</label> - <select name="ufw_default_application_policy" id="ufw_default_application_policy" class="selectInput"> - {tmpl_var name='ufw_default_application_policy'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ufw_log_level">{tmpl_var name='ufw_log_level_txt'}</label> - <select name="ufw_log_level" id="ufw_log_level" class="selectInput"> - {tmpl_var name='ufw_log_level'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_vlogger_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_vlogger_edit.htm deleted file mode 100644 index c960fb131a..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_vlogger_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="config_dir">{tmpl_var name='config_dir_txt'}</label> - <input name="config_dir" id="config_dir" value="{tmpl_var name='config_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_config_web_edit.htm b/interface/web/themes/default-304/templates/admin/server_config_web_edit.htm deleted file mode 100644 index a41efef098..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_config_web_edit.htm +++ /dev/null @@ -1,256 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='server_type_txt'}</p> - <div class="multiField"> - <select name="server_type" id="server_type" class="selectInput"> - {tmpl_var name='server_type'} - </select> - </div> - </div> - <div class="ctrlHolder"> - <label for="website_basedir">{tmpl_var name='website_basedir_txt'}</label> - <input name="website_basedir" id="website_basedir" value="{tmpl_var name='website_basedir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="website_path">{tmpl_var name='website_path_txt'}</label> - <input name="website_path" id="website_path" value="{tmpl_var name='website_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="website_symlinks">{tmpl_var name='website_symlinks_txt'}</label> - <input name="website_symlinks" id="website_symlinks" value="{tmpl_var name='website_symlinks'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="website_symlinks_rel">{tmpl_var name='website_symlinks_rel_txt'}</label> - <div class="multiField"> - {tmpl_var name='website_symlinks_rel'} - </div> - </div> - <div class="ctrlHolder"> - <label for="website_autoalias">{tmpl_var name='website_autoalias_txt'}</label> - <input name="website_autoalias" id="website_autoalias" value="{tmpl_var name='website_autoalias'}" size="40" maxlength="255" type="text" class="textInput" /> {tmpl_var name='website_autoalias_note_txt'} - </div> - <div class="ctrlHolder apache"> - <label for="vhost_conf_dir">{tmpl_var name='vhost_conf_dir_txt'}</label> - <input name="vhost_conf_dir" id="vhost_conf_dir" value="{tmpl_var name='vhost_conf_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder apache"> - <label for="vhost_conf_enabled_dir">{tmpl_var name='vhost_conf_enabled_dir_txt'}</label> - <input name="vhost_conf_enabled_dir" id="vhost_conf_enabled_dir" value="{tmpl_var name='vhost_conf_enabled_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder nginx"> - <label for="nginx_vhost_conf_dir">{tmpl_var name='nginx_vhost_conf_dir_txt'}</label> - <input name="nginx_vhost_conf_dir" id="nginx_vhost_conf_dir" value="{tmpl_var name='nginx_vhost_conf_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder nginx"> - <label for="nginx_vhost_conf_enabled_dir">{tmpl_var name='nginx_vhost_conf_enabled_dir_txt'}</label> - <input name="nginx_vhost_conf_enabled_dir" id="nginx_vhost_conf_enabled_dir" value="{tmpl_var name='nginx_vhost_conf_enabled_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='security_level_txt'}</p> - <div class="multiField"> - <select name="security_level" id="security_level" class="selectInput"> - {tmpl_var name='security_level'} - </select> - </div> - </div> - <div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='check_apache_config_txt'}</p> - <div class="multiField"> - {tmpl_var name='check_apache_config'} - </div> - </div> - <div class="ctrlHolder apache"> - <label for="user">{tmpl_var name='web_user_txt'}</label> - <input name="user" id="user" value="{tmpl_var name='user'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder apache"> - <label for="group">{tmpl_var name='web_group_txt'}</label> - <input name="group" id="group" value="{tmpl_var name='group'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder nginx"> - <label for="nginx_user">{tmpl_var name='nginx_user_txt'}</label> - <input name="nginx_user" id="nginx_user" value="{tmpl_var name='nginx_user'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder nginx"> - <label for="nginx_group">{tmpl_var name='nginx_group_txt'}</label> - <input name="nginx_group" id="nginx_group" value="{tmpl_var name='nginx_group'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder nginx"> - <label for="nginx_cgi_socket">{tmpl_var name='nginx_cgi_socket_txt'}</label> - <input name="nginx_cgi_socket" id="nginx_cgi_socket" value="{tmpl_var name='nginx_cgi_socket'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder apache"> - <label for="htaccess_allow_override">{tmpl_var name='htaccess_allow_override_txt'}</label> - <input name="htaccess_allow_override" id="htaccess_allow_override" value="{tmpl_var name='htaccess_allow_override'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='enable_ip_wildcard_txt'}</p> - <div class="multiField"> - {tmpl_var name='enable_ip_wildcard'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='overtraffic_notify_admin_txt'}</p> - <div class="multiField"> - {tmpl_var name='overtraffic_notify_admin'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='overtraffic_notify_client_txt'}</p> - <div class="multiField"> - {tmpl_var name='overtraffic_notify_client'} - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='ssl_settings_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='enable_sni_txt'}</p> - <div class="multiField"> - {tmpl_var name='enable_sni'} - </div> - </div> - <div class="ctrlHolder"> - <label for="CA_path">{tmpl_var name='CA_path_txt'}</label> - <input name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="CA_pass">{tmpl_var name='CA_pass_txt'}</label> - <input name="CA_pass" id="CA_pass" value="{tmpl_var name='CA_pass'}" size="40" maxlength="255" type="password" class="textInput" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='permissions_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='set_folder_permissions_on_update_txt'}</p> - <div class="multiField"> - {tmpl_var name='set_folder_permissions_on_update'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='web_folder_protection_txt'}</p> - <div class="multiField"> - {tmpl_var name='web_folder_protection'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='add_web_users_to_sshusers_group_txt'}</p> - <div class="multiField"> - {tmpl_var name='add_web_users_to_sshusers_group'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='connect_userid_to_webid_txt'}</p> - <div class="multiField"> - {tmpl_var name='connect_userid_to_webid'} - </div> - </div> - <div class="ctrlHolder"> - <label for="connect_userid_to_webid_start">{tmpl_var name='connect_userid_to_webid_start_txt'}</label> - <input name="connect_userid_to_webid_start" id="connect_userid_to_webid_start" value="{tmpl_var name='connect_userid_to_webid_start'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='php_settings_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder apache"> - <label for="php_ini_path_apache">{tmpl_var name='php_ini_path_apache_txt'}</label> - <input name="php_ini_path_apache" id="php_ini_path_apache" value="{tmpl_var name='php_ini_path_apache'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder apache"> - <label for="php_ini_path_cgi">{tmpl_var name='php_ini_path_cgi_txt'}</label> - <input name="php_ini_path_cgi" id="php_ini_path_cgi" value="{tmpl_var name='php_ini_path_cgi'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fpm_init_script">{tmpl_var name='php_fpm_init_script_txt'}</label> - <input name="php_fpm_init_script" id="php_fpm_init_script" value="{tmpl_var name='php_fpm_init_script'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fpm_ini_path">{tmpl_var name='php_fpm_ini_path_txt'}</label> - <input name="php_fpm_ini_path" id="php_fpm_ini_path" value="{tmpl_var name='php_fpm_ini_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fpm_pool_dir">{tmpl_var name='php_fpm_pool_dir_txt'}</label> - <input name="php_fpm_pool_dir" id="php_fpm_pool_dir" value="{tmpl_var name='php_fpm_pool_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fpm_start_port">{tmpl_var name='php_fpm_start_port_txt'}</label> - <input name="php_fpm_start_port" id="php_fpm_start_port" value="{tmpl_var name='php_fpm_start_port'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fpm_socket_dir">{tmpl_var name='php_fpm_socket_dir_txt'}</label> - <input name="php_fpm_socket_dir" id="php_fpm_socket_dir" value="{tmpl_var name='php_fpm_socket_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label> - <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="40" type="text" class="textInput" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='apps_vhost_settings_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="apps_vhost_port">{tmpl_var name='apps_vhost_port_txt'}</label> - <input name="apps_vhost_port" id="apps_vhost_port" value="{tmpl_var name='apps_vhost_port'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="apps_vhost_ip">{tmpl_var name='apps_vhost_ip_txt'}</label> - <input name="apps_vhost_ip" id="apps_vhost_ip" value="{tmpl_var name='apps_vhost_ip'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="apps_vhost_servername">{tmpl_var name='apps_vhost_servername_txt'}</label> - <input name="apps_vhost_servername" id="apps_vhost_servername" value="{tmpl_var name='apps_vhost_servername'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='awstats_settings_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="awstats_conf_dir">{tmpl_var name='awstats_conf_dir_txt'}</label> - <input name="awstats_conf_dir" id="awstats_conf_dir" value="{tmpl_var name='awstats_conf_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="awstats_data_dir">{tmpl_var name='awstats_data_dir_txt'}</label> - <input name="awstats_data_dir" id="awstats_data_dir" value="{tmpl_var name='awstats_data_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="awstats_pl">{tmpl_var name='awstats_pl_txt'}</label> - <input name="awstats_pl" id="awstats_pl" value="{tmpl_var name='awstats_pl'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="awstats_buildstaticpages_pl">{tmpl_var name='awstats_buildstaticpages_pl_txt'}</label> - <input name="awstats_buildstaticpages_pl" id="awstats_buildstaticpages_pl" value="{tmpl_var name='awstats_buildstaticpages_pl'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var serverType = jQuery('#server_type').val(); - jQuery('#server_type').replaceWith('<label for="server_Type">'+serverType+'</label><input type="hidden" name="server_type" value="'+serverType+'">'); - adjustForm(); - jQuery('#server_type').change(function(){ - serverType = $(this).val(); - adjustForm(); - }); - - function adjustForm(){ - if(serverType == "nginx"){ - jQuery('.nginx').show(); - jQuery('.apache').hide(); - } else { - jQuery('.nginx').hide(); - jQuery('.apache').show(); - } - } -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_edit_config.htm b/interface/web/themes/default-304/templates/admin/server_edit_config.htm deleted file mode 100644 index e5e2392411..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_edit_config.htm +++ /dev/null @@ -1,22 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="config">{tmpl_var name='config_txt'}</label> - <textarea name="config" id="config" rows='20' cols='40'>{tmpl_var name='config'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_edit_services.htm b/interface/web/themes/default-304/templates/admin/server_edit_services.htm deleted file mode 100644 index f6e47323c2..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_edit_services.htm +++ /dev/null @@ -1,70 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_name">{tmpl_var name='server_name_txt'}</label> - <input name="server_name" id="server_name" value="{tmpl_var name='server_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='mail_server_txt'}</p> - <div class="multiField"> - {tmpl_var name='mail_server'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='web_server_txt'}</p> - <div class="multiField"> - {tmpl_var name='web_server'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='dns_server_txt'}</p> - <div class="multiField"> - {tmpl_var name='dns_server'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='file_server_txt'}</p> - <div class="multiField"> - {tmpl_var name='file_server'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='db_server_txt'}</p> - <div class="multiField"> - {tmpl_var name='db_server'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='vserver_server_txt'}</p> - <div class="multiField"> - {tmpl_var name='vserver_server'} - </div> - </div> - <div class="ctrlHolder"> - <label for="mirror_server_id">{tmpl_var name='mirror_server_id_txt'}</label> - <select name="mirror_server_id" id="server_id" class="selectInput"> - {tmpl_var name='mirror_server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="active">{tmpl_var name='active_txt'}</label> - <select name="active" id="active" class="selectInput formLengthBool"> - {tmpl_var name='active'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_ip_edit.htm b/interface/web/themes/default-304/templates/admin/server_ip_edit.htm deleted file mode 100644 index 35718ceed8..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_ip_edit.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_ip"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>IP Address</legend> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="client_id">{tmpl_var name='client_id_txt'}</label> - <select name="client_id" id="client_id" class="selectInput"> - {tmpl_var name='client_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ip_type">{tmpl_var name='ip_type_txt'}</label> - <select name="ip_type" id="ip_type" class="selectInput"> - {tmpl_var name='ip_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ip_address">{tmpl_var name='ip_address_txt'}</label> - <input name="ip_address" id="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='virtualhost_txt'}</p> - <div class="multiField"> - {tmpl_var name='virtualhost'} - </div> - </div> - <div class="ctrlHolder"> - <label for="virtualhost_port">{tmpl_var name='virtualhost_port_txt'}</label> - <input name="virtualhost_port" id="virtualhost_port" value="{tmpl_var name='virtualhost_port'}" size="15" maxlength="15" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_ip_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_ip_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_ip_list.htm b/interface/web/themes/default-304/templates/admin/server_ip_list.htm deleted file mode 100644 index 4234e00a97..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_ip_list.htm +++ /dev/null @@ -1,64 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_server_ip"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/server_ip_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_client_id" scope="col"><tmpl_var name="client_id_txt"></th> - <th class="tbl_col_ip_type" scope="col"><tmpl_var name="ip_type_txt"></th> - <th class="tbl_col_ip_address" scope="col"><tmpl_var name="ip_address_txt"></th> - <th class="tbl_col_virtualhost" scope="col"><tmpl_var name="virtualhost_txt"></th> - <th class="tbl_col_virtualhost_port" scope="col"><tmpl_var name="virtualhost_port_txt"></th> - <th class="tbl_col_buttons" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_client_id"><select name="search_client_id">{tmpl_var name='search_client_id'}</select></td> - <td class="tbl_col_ip_type"><select name="search_ip_type">{tmpl_var name='search_ip_type'}</select></td> - <td class="tbl_col_ip_address"><input type="text" name="search_ip_address" value="{tmpl_var name='search_ip_address'}" /></td> - <td class="tbl_col_virtualhost"><select name="search_virtualhost">{tmpl_var name='search_virtualhost'}</select></td> - <td class="tbl_col_virtualhost_port"><input type="text" name="search_virtualhost_port" value="{tmpl_var name='search_virtualhost_port'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_ip_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('admin/server_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_client_id"><a href="#" onClick="loadContent('admin/server_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="client_id"}</a></td> - <td class="tbl_col_ip_type"><a href="#" onClick="loadContent('admin/server_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ip_type"}</a></td> - <td class="tbl_col_ip_address"><a href="#" onClick="loadContent('admin/server_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ip_address"}</a></td> - <td class="tbl_col_virtualhost"><a href="#" onClick="loadContent('admin/server_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="virtualhost"}</a></td> - <td class="tbl_col_virtualhost_port"><a href="#" onClick="loadContent('admin/server_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="virtualhost_port"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/server_ip_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_list.htm b/interface/web/themes/default-304/templates/admin/server_list.htm deleted file mode 100644 index 078d262eb0..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_list.htm +++ /dev/null @@ -1,58 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_server"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_server_name" scope="col"><tmpl_var name="server_name_txt"></th> - <th class="tbl_col_mail_server" scope="col"><tmpl_var name="mail_server_txt"></th> - <th class="tbl_col_web_server" scope="col"><tmpl_var name="web_server_txt"></th> - <th class="tbl_col_dns_server" scope="col"><tmpl_var name="dns_server_txt"></th> - <th class="tbl_col_file_server" scope="col"><tmpl_var name="file_server_txt"></th> - <th class="tbl_col_db_server" scope="col"><tmpl_var name="db_server_txt"></th> - <th class="tbl_col_vserver_server" scope="col"><tmpl_var name="vserver_server_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_server_name"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" /></td> - <td class="tbl_col_mail_server"><select name="search_active">{tmpl_var name='search_mail_server'}</select></td> - <td class="tbl_col_web_server"><select name="search_active">{tmpl_var name='search_web_server'}</select></td> - <td class="tbl_col_dns_server"><select name="search_active">{tmpl_var name='search_dns_server'}</select></td> - <td class="tbl_col_file_server"><select name="search_active">{tmpl_var name='search_file_server'}</select></td> - <td class="tbl_col_db_server"><select name="search_active">{tmpl_var name='search_db_server'}</select></td> - <td class="tbl_col_vserver_server"><select name="search_active">{tmpl_var name='search_vserver_server'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_server_name"><a href="#" onClick="loadContent('admin/server_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_name"}</a></td> - <td class="tbl_col_mail_server">{tmpl_var name="mail_server"}</td> - <td class="tbl_col_web_server">{tmpl_var name="web_server"}</td> - <td class="tbl_col_dns_server">{tmpl_var name="dns_server"}</td> - <td class="tbl_col_file_server">{tmpl_var name="file_server"}</td> - <td class="tbl_col_db_server">{tmpl_var name="db_server"}</td> - <td class="tbl_col_vserver_server">{tmpl_var name="vserver_server"}</td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/server_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="8"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_php_fastcgi_edit.htm b/interface/web/themes/default-304/templates/admin/server_php_fastcgi_edit.htm deleted file mode 100644 index 21eba02678..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_php_fastcgi_edit.htm +++ /dev/null @@ -1,26 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_php"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="php_fastcgi_binary">{tmpl_var name='php_fastcgi_binary_txt'}</label> - <input name="php_fastcgi_binary" id="php_fastcgi_binary" value="{tmpl_var name='php_fastcgi_binary'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fastcgi_ini_dir">{tmpl_var name='php_fastcgi_ini_dir_txt'}</label> - <input name="php_fastcgi_ini_dir" id="php_fastcgi_ini_dir" value="{tmpl_var name='php_fastcgi_ini_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_php_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_php_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_php_fpm_edit.htm b/interface/web/themes/default-304/templates/admin/server_php_fpm_edit.htm deleted file mode 100644 index 92cd4a88ba..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_php_fpm_edit.htm +++ /dev/null @@ -1,30 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_php"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="php_fpm_init_script">{tmpl_var name='php_fpm_init_script_txt'}</label> - <input name="php_fpm_init_script" id="php_fpm_init_script" value="{tmpl_var name='php_fpm_init_script'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fpm_ini_dir">{tmpl_var name='php_fpm_ini_dir_txt'}</label> - <input name="php_fpm_ini_dir" id="php_fpm_ini_dir" value="{tmpl_var name='php_fpm_ini_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="php_fpm_pool_dir">{tmpl_var name='php_fpm_pool_dir_txt'}</label> - <input name="php_fpm_pool_dir" id="php_fpm_pool_dir" value="{tmpl_var name='php_fpm_pool_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_php_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_php_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_php_list.htm b/interface/web/themes/default-304/templates/admin/server_php_list.htm deleted file mode 100644 index 44e6a1fdee..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_php_list.htm +++ /dev/null @@ -1,55 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_server_php"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/server_php_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_client_id" scope="col"><tmpl_var name="client_id_txt"></th> - <th class="tbl_col_ip_address" scope="col"><tmpl_var name="name_txt"></th> - <th class="tbl_col_buttons" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_client_id"><select name="search_client_id">{tmpl_var name='search_client_id'}</select></td> - <td class="tbl_col_ip_address"><input type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/server_php_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('admin/server_php_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_client_id"><a href="#" onClick="loadContent('admin/server_php_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="client_id"}</a></td> - <td class="tbl_col_name"><a href="#" onClick="loadContent('admin/server_php_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/server_php_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/server_php_name_edit.htm b/interface/web/themes/default-304/templates/admin/server_php_name_edit.htm deleted file mode 100644 index d9e88ff192..0000000000 --- a/interface/web/themes/default-304/templates/admin/server_php_name_edit.htm +++ /dev/null @@ -1,34 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_php"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="client_id">{tmpl_var name='client_id_txt'}</label> - <select name="client_id" id="client_id" class="selectInput"> - {tmpl_var name='client_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_php_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_php_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/software_package_install.htm b/interface/web/themes/default-304/templates/admin/software_package_install.htm deleted file mode 100644 index 1d2d4de95b..0000000000 --- a/interface/web/themes/default-304/templates/admin/software_package_install.htm +++ /dev/null @@ -1,30 +0,0 @@ -<h2><tmpl_var name="head_txt"></h2> -<p><tmpl_var name="desc_txt"></p> - -<div class="panel panel_software_repo"> - <tmpl_if name="message_err"> - <div id="errorMsg"><tmpl_var name="message_err"></div> - </tmpl_if> - <tmpl_if name="message_ok"> - <div id="OKMsg"><tmpl_var name="message_ok"></div> - </tmpl_if> - <tmpl_if name="insert_key"> - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <p> </p> - <div class="ctrlHolder"> - <label for="install_key">{tmpl_var name='install_key_txt'}</label> - <input name="install_key" id="install_key" value="{tmpl_var name='install_key'}" size="40" maxlength="40" type="text" class="textInput" /> - </div> - - <input type="hidden" name="package" value="{tmpl_var name='package_name'}"> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id'}"> - <p> </p> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/software_package_install.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/software_package_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </fieldset> - </div> - </tmpl_if> -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/software_package_list.htm b/interface/web/themes/default-304/templates/admin/software_package_list.htm deleted file mode 100644 index 0cb6f47c16..0000000000 --- a/interface/web/themes/default-304/templates/admin/software_package_list.htm +++ /dev/null @@ -1,46 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_package"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/software_package_list.php?action=repoupdate');"> - <span>{tmpl_var name="repoupdate_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_installed" scope="col"><tmpl_var name="installed_txt"></th> - <th class="tbl_col_package_title" scope="col"><tmpl_var name="package_title_txt"></th> - <th class="tbl_col_package_description" scope="col"><tmpl_var name="package_description_txt"></th> - <th class="tbl_col_package_description" scope="col"><tmpl_var name="package_id_txt"></th> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_installed">{tmpl_var name="installed"}</td> - <td class="tbl_col_package_title">{tmpl_var name="package_title"}</td> - <td class="tbl_col_package_description">{tmpl_var name="package_description"}</td> - <td class="tbl_col_package_description">ispapp{tmpl_var name="package_id"}</td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/software_repo_edit.htm b/interface/web/themes/default-304/templates/admin/software_repo_edit.htm deleted file mode 100644 index bd8b230522..0000000000 --- a/interface/web/themes/default-304/templates/admin/software_repo_edit.htm +++ /dev/null @@ -1,40 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_software_repo"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="repo_name">{tmpl_var name='repo_name_txt'}</label> - <input name="repo_name" id="repo_name" value="{tmpl_var name='repo_name'}" size="40" maxlength="40" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="repo_url">{tmpl_var name='repo_url_txt'}</label> - <input name="repo_url" id="repo_url" value="{tmpl_var name='repo_url'}" size="40" maxlength="40" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="repo_username">{tmpl_var name='repo_username_txt'}</label> - <input name="repo_username" id="repo_username" value="{tmpl_var name='repo_username'}" size="30" maxlength="30" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="repo_password">{tmpl_var name='repo_password_txt'}</label> - <input name="repo_password" id="repo_password" value="{tmpl_var name='repo_password'}" size="30" maxlength="30" type="password" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/software_repo_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/software_repo_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/software_repo_list.htm b/interface/web/themes/default-304/templates/admin/software_repo_list.htm deleted file mode 100644 index 16a1749315..0000000000 --- a/interface/web/themes/default-304/templates/admin/software_repo_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_software_repo"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/software_repo_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_repo_name" scope="col"><tmpl_var name="repo_name_txt"></th> - <th class="tbl_col_repo_url" scope="col"><tmpl_var name="repo_url_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_repo_name"><input type="text" name="search_repo_name" value="{tmpl_var name='search_repo_name'}" /></td> - <td class="tbl_col_repo_url"><input type="text" name="search_repo_url" value="{tmpl_var name='search_repo_url'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/software_repo_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('admin/software_repo_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_repo_name"><a href="#" onClick="loadContent('admin/software_repo_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="repo_name"}</a></td> - <td class="tbl_col_repo_url"><a href="#" onClick="loadContent('admin/software_repo_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="repo_url"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('admin/software_repo_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/software_update_list.htm b/interface/web/themes/default-304/templates/admin/software_update_list.htm deleted file mode 100644 index 8a3760e71a..0000000000 --- a/interface/web/themes/default-304/templates/admin/software_update_list.htm +++ /dev/null @@ -1,49 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_software_update"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend>Tools</legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_select_txt'}</label> - <select name="server_id" id="server_id" class="selectInput" onChange="submitForm('pageForm','admin/software_update_list.php');"> - <tmpl_loop name="servers"> - <option value="{tmpl_var name='server_id'}" {tmpl_var name='selected'}>{tmpl_var name='server_name'}</option> - </tmpl_loop> - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_installed" scope="col"><tmpl_var name="installed_txt"></th> - <th class="tbl_col_update_title" scope="col"><tmpl_var name="update_title_txt"></th> - <th class="tbl_col_version" scope="col"><tmpl_var name="version_txt"></th> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_installed">{tmpl_var name="installed"}</td> - <td class="tbl_col_update_title">{tmpl_var name="update_title"}</td> - <td class="tbl_col_version">{tmpl_var name="version"}</td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/system_config_domains_edit.htm b/interface/web/themes/default-304/templates/admin/system_config_domains_edit.htm deleted file mode 100644 index 605587900d..0000000000 --- a/interface/web/themes/default-304/templates/admin/system_config_domains_edit.htm +++ /dev/null @@ -1,33 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_system_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <div style="float:left;width:100%"> - <p class="label" style="width:270px">{tmpl_var name='use_domain_module_txt'}</p> - <div class="multiField"> - {tmpl_var name='use_domain_module'} - </div> - </div> - <div style="float:left;width:500px;margin-top:20px">{tmpl_var name='use_domain_module_hint'}</div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='new_domain_txt'}</p> - <div class="multiField"> - <textarea name="new_domain_html" id="new_domain_html" style="width: 500px; height: 250px">{tmpl_var name='new_domain_html'}</textarea> - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/system_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/system_config_mail_edit.htm b/interface/web/themes/default-304/templates/admin/system_config_mail_edit.htm deleted file mode 100644 index 013c39ae06..0000000000 --- a/interface/web/themes/default-304/templates/admin/system_config_mail_edit.htm +++ /dev/null @@ -1,80 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_system_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='enable_custom_login_txt'}</p> - <div class="multiField"> - {tmpl_var name='enable_custom_login'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='mailboxlist_webmail_link_txt'}</p> - <div class="multiField"> - {tmpl_var name='mailboxlist_webmail_link'} - </div> - </div> - <div class="ctrlHolder"> - <label for="webmail_url">{tmpl_var name='webmail_url_txt'}</label> - <input name="webmail_url" id="webmail_url" value="{tmpl_var name='webmail_url'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='mailmailinglist_link_txt'}</p> - <div class="multiField"> - {tmpl_var name='mailmailinglist_link'} - </div> - </div> - <div class="ctrlHolder"> - <label for="mailmailinglist_url">{tmpl_var name='mailmailinglist_url_txt'}</label> - <input name="mailmailinglist_url" id="mailmailinglist_url" value="{tmpl_var name='mailmailinglist_url'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="admin_mail">{tmpl_var name='admin_mail_txt'}</label> - <input name="admin_mail" id="admin_mail" value="{tmpl_var name='admin_mail'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="admin_name">{tmpl_var name='admin_name_txt'}</label> - <input name="admin_name" id="admin_name" value="{tmpl_var name='admin_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='smtp_enabled_txt'}</p> - <div class="multiField"> - {tmpl_var name='smtp_enabled'} - </div> - </div> - <div class="ctrlHolder"> - <label for="smtp_host">{tmpl_var name='smtp_host_txt'}</label> - <input name="smtp_host" id="smtp_host" value="{tmpl_var name='smtp_host'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="smtp_port">{tmpl_var name='smtp_port_txt'}</label> - <input name="smtp_port" id="smtp_port" value="{tmpl_var name='smtp_port'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="smtp_user">{tmpl_var name='smtp_user_txt'}</label> - <input name="smtp_user" id="smtp_user" value="{tmpl_var name='smtp_user'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="smtp_pass">{tmpl_var name='smtp_pass_txt'}</label> - <input name="smtp_pass" id="smtp_pass" value="" size="30" maxlength="255" type="password" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='smtp_crypt_txt'}</p> - <div class="multiField"> - {tmpl_var name='smtp_crypt'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/system_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/system_config_misc_edit.htm b/interface/web/themes/default-304/templates/admin/system_config_misc_edit.htm deleted file mode 100644 index 31350cdb97..0000000000 --- a/interface/web/themes/default-304/templates/admin/system_config_misc_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_system_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Misc</legend> - <div class="ctrlHolder"> - <label for="dashboard_atom_url_admin">{tmpl_var name='dashboard_atom_url_admin_txt'}</label> - <input name="dashboard_atom_url_admin" id="dashboard_atom_url_admin" value="{tmpl_var name='dashboard_atom_url_admin'}" size="" maxlength="" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="dashboard_atom_url_reseller">{tmpl_var name='dashboard_atom_url_reseller_txt'}</label> - <input name="dashboard_atom_url_reseller" id="dashboard_atom_url_reseller" value="{tmpl_var name='dashboard_atom_url_reseller'}" size="" maxlength="" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="dashboard_atom_url_client">{tmpl_var name='dashboard_atom_url_client_txt'}</label> - <input name="dashboard_atom_url_client" id="dashboard_atom_url_client" value="{tmpl_var name='dashboard_atom_url_client'}" size="" maxlength="" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="monitor_key">{tmpl_var name='monitor_key_txt'}</label> - <input name="monitor_key" id="monitor_key" value="{tmpl_var name='monitor_key'}" size="" maxlength="" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='maintenance_mode_txt'}</p> - <div class="multiField"> - {tmpl_var name='maintenance_mode'} - </div> - </div> - </fieldset> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/system_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm b/interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm deleted file mode 100644 index 121d607a38..0000000000 --- a/interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm +++ /dev/null @@ -1,58 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_system_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="dbname_prefix">{tmpl_var name='dbname_prefix_txt'}</label> - <input name="dbname_prefix" id="dbname_prefix" value="{tmpl_var name='dbname_prefix'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="dbuser_prefix">{tmpl_var name='dbuser_prefix_txt'}</label> - <input name="dbuser_prefix" id="dbuser_prefix" value="{tmpl_var name='dbuser_prefix'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="ftpuser_prefix">{tmpl_var name='ftpuser_prefix_txt'}</label> - <input name="ftpuser_prefix" id="ftpuser_prefix" value="{tmpl_var name='ftpuser_prefix'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="shelluser_prefix">{tmpl_var name='shelluser_prefix_txt'}</label> - <input name="shelluser_prefix" id="shelluser_prefix" value="{tmpl_var name='shelluser_prefix'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="webdavuser_prefix">{tmpl_var name='webdavuser_prefix_txt'}</label> - <input name="webdavuser_prefix" id="webdavuser_prefix" value="{tmpl_var name='webdavuser_prefix'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='dblist_phpmyadmin_link_txt'}</p> - <div class="multiField"> - {tmpl_var name='dblist_phpmyadmin_link'} - </div> - </div> - <div class="ctrlHolder"> - <label for="phpmyadmin_url">{tmpl_var name='phpmyadmin_url_txt'}</label> - <input name="phpmyadmin_url" id="phpmyadmin_url" value="{tmpl_var name='phpmyadmin_url'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="webftp_url">{tmpl_var name='webftp_url_txt'}</label> - <input name="webftp_url" id="webftp_url" value="{tmpl_var name='webftp_url'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='vhost_subdomains_txt'}</p> - <div class="multiField"> - {tmpl_var name='vhost_subdomains'} {tmpl_var name='vhost_subdomains_note_txt'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/system_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/tpl_default_basic.htm b/interface/web/themes/default-304/templates/admin/tpl_default_basic.htm deleted file mode 100644 index f6a63716c3..0000000000 --- a/interface/web/themes/default-304/templates/admin/tpl_default_basic.htm +++ /dev/null @@ -1,23 +0,0 @@ -<h2><tmpl_var name="tpl_default_head_txt"></h2> -<p><tmpl_var name="tpl_default_desc_txt"></p> - -<div class="panel panel_tools_interface"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="logo_url">{tmpl_var name='logo_url_txt'}Logo URL</label> - <input name="logo_url" id="logo_url" value="{tmpl_var name='logo_url'}" size="" maxlength="" type="text" class="textInput" /> 152x46px - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="username" value="global"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/tpl_default.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/users_groups_edit.htm b/interface/web/themes/default-304/templates/admin/users_groups_edit.htm deleted file mode 100644 index cb52ae32b5..0000000000 --- a/interface/web/themes/default-304/templates/admin/users_groups_edit.htm +++ /dev/null @@ -1,30 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_users"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="default_group">{tmpl_var name='default_group_txt'}</label> - <select name="default_group" id="default_group" class="selectInput"> - {tmpl_var name='default_group'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='groups_txt'}</p> - <div class="multiField"> - {tmpl_var name='groups'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/users_list.htm b/interface/web/themes/default-304/templates/admin/users_list.htm deleted file mode 100644 index 3eeee31986..0000000000 --- a/interface/web/themes/default-304/templates/admin/users_list.htm +++ /dev/null @@ -1,68 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_users"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/users_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - <p><tmpl_var name="warning_txt"></p> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_client_id" scope="col"><tmpl_var name="client_id_txt"></th> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_username" scope="col"><tmpl_var name="username_txt"></th> - <th class="tbl_col_groups" scope="col"><tmpl_var name="groups_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_client_id"><input type="text" name="search_client_id" value="{tmpl_var name='search_client_id'}" /></td> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" /></td> - <td class="tbl_col_groups"><select name="search_groups">{tmpl_var name='search_groups'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','admin/users_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_client_id"><a href="#" onClick="loadContent('admin/users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="client_id"}</a></td> - <td class="tbl_col_active"><a href="#" onClick="loadContent('admin/users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_username"><a href="#" onClick="loadContent('admin/users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="username"}</a></td> - <td class="tbl_col_groups">{tmpl_var name="groups"}</td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <tmpl_if name="username" op="!=" value="admin"> - <a class="icons16 icoLoginAs" href="javascript: loadContent('admin/login_as.php?id={tmpl_var name='id'}');"><span>{tmpl_var name='login_as_txt'}</span></a> - <a class="icons16 icoDelete" href="javascript: del_record('admin/users_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </tmpl_if> - </div> - </td> - </tr> - </tmpl_loop> - <tmpl_unless name="records"> - <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="5">{tmpl_var name='globalsearch_noresults_text_txt'}</td> - </tr> - </tmpl_unless> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/admin/users_user_edit.htm b/interface/web/themes/default-304/templates/admin/users_user_edit.htm deleted file mode 100644 index 4abe793588..0000000000 --- a/interface/web/themes/default-304/templates/admin/users_user_edit.htm +++ /dev/null @@ -1,73 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_users"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <input name="username" id="username" value="{tmpl_var name='username'}" size="15" maxlength="30" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="passwort">{tmpl_var name='passwort_txt'}</label> - <input name="passwort" id="passwort" value="{tmpl_var name='passwort'}" size="15" maxlength="100" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('passwort','repeat_password');"/> <a href="javascript:void(0);" onClick="generatePassword('passwort','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('passwort','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='modules_txt'}</p> - <div class="multiField"> - {tmpl_var name='modules'} - </div> - </div> - <div class="ctrlHolder"> - <label for="startmodule">{tmpl_var name='startmodule_txt'}</label> - <select name="startmodule" id="startmodule" class="selectInput formLengthHalf"> - {tmpl_var name='startmodule'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='app_theme_txt'}</p> - <div class="multiField"> - {tmpl_var name='app_theme'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='typ_txt'}</p> - <div class="multiField"> - {tmpl_var name='typ'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput flags"> - {tmpl_var name='language'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_circle_edit.htm b/interface/web/themes/default-304/templates/client/client_circle_edit.htm deleted file mode 100644 index 1616dd4773..0000000000 --- a/interface/web/themes/default-304/templates/client/client_circle_edit.htm +++ /dev/null @@ -1,39 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='circle_txt'}</legend> - <div class="ctrlHolder"> - <label for="circle_name">{tmpl_var name='circle_name_txt'}*</label> - <input name="circle_name" id="circle_name" value="{tmpl_var name='circle_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='client_ids_txt'}</p> - <div class="multiField"> - {tmpl_var name='client_ids'} - </div> - </div> - <div class="ctrlHolder"> - <label for="description">{tmpl_var name='description_txt'}</label> - <textarea name="description" id="description" rows='10' cols='30'>{tmpl_var name='description'}</textarea> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - {tmpl_var name='required_fields_txt'} - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_circle_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_circle_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_circle_list.htm b/interface/web/themes/default-304/templates/client/client_circle_list.htm deleted file mode 100644 index 4c5a889b64..0000000000 --- a/interface/web/themes/default-304/templates/client/client_circle_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_clients"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/client_circle_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_circle_id" scope="col"><tmpl_var name="circle_id_txt"></th> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_circle_name" scope="col"><tmpl_var name="circle_name_txt"></th> - <th class="tbl_col_description" scope="col"><tmpl_var name="description_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_circle_id"><input type="text" name="search_circle_id" value="{tmpl_var name='search_circle_id'}" style="width:30px;" /></td> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_circle_name"><input type="text" name="search_circle_name" value="{tmpl_var name='search_circle_name'}" style="width:120px;" /></td> - <td class="tbl_col_description"><input type="text" name="search_description" value="{tmpl_var name='search_description'}" style="width:120px;" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','client/client_circle_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_circle_id"><a href="#" onClick="loadContent('client/client_circle_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="circle_id"}</a></td> - <td class="tbl_col_active"><a href="#" onClick="loadContent('client/client_circle_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_circle_name"><a href="#" onClick="loadContent('client/client_circle_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="circle_name"}</a></td> - <td class="tbl_col_description"><a href="#" onClick="loadContent('client/client_circle_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="description"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16" style="width:60px;"> - <a class="icons16 icoDelete" href="javascript: del_record('client/client_circle_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_del.htm b/interface/web/themes/default-304/templates/client/client_del.htm deleted file mode 100644 index aeb206f107..0000000000 --- a/interface/web/themes/default-304/templates/client/client_del.htm +++ /dev/null @@ -1,25 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client_del"> - - <div class="pnl_formsarea"> - - <div id="OKMsg"> - <tmpl_var name="delete_explanation">:<br /><br /> - <tmpl_loop name="records"> - <tmpl_var name="table">, - </tmpl_loop> - </div> - - <input type="checkbox" name="confirm" value="yes" /> <b><tmpl_var name="confirm_action_txt"></b> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_del.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_edit_address.htm b/interface/web/themes/default-304/templates/client/client_edit_address.htm deleted file mode 100644 index 076f4b021f..0000000000 --- a/interface/web/themes/default-304/templates/client/client_edit_address.htm +++ /dev/null @@ -1,140 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Address</legend> - <div class="ctrlHolder"> - <label for="company_name">{tmpl_var name='company_name_txt'}</label> - <input name="company_name" id="company_name" value="{tmpl_var name='company_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="contact_name">{tmpl_var name='contact_name_txt'}*</label> - <input name="contact_name" id="contact_name" value="{tmpl_var name='contact_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="customer_no">{tmpl_var name='customer_no_txt'}</label> - <input name="customer_no" id="customer_no" value="{tmpl_var name='customer_no'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}*</label> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput flags"> - {tmpl_var name='language'} - </select> - </div> - <div class="ctrlHolder"> - <label for="usertheme">{tmpl_var name='usertheme_txt'}</label> - <select name="usertheme" id="usertheme" class="selectInput"> - {tmpl_var name='usertheme'} - </select> - </div> - <div class="ctrlHolder"> - <label for="street">{tmpl_var name='street_txt'}</label> - <input name="street" id="street" value="{tmpl_var name='street'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="zip">{tmpl_var name='zip_txt'}</label> - <input name="zip" id="zip" value="{tmpl_var name='zip'}" size="10" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="city">{tmpl_var name='city_txt'}</label> - <input name="city" id="city" value="{tmpl_var name='city'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="state">{tmpl_var name='state_txt'}</label> - <input name="state" id="state" value="{tmpl_var name='state'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="country">{tmpl_var name='country_txt'}</label> - <select name="country" id="country" class="selectInput flags"> - {tmpl_var name='country'} - </select> - </div> - <div class="ctrlHolder"> - <label for="telephone">{tmpl_var name='telephone_txt'}</label> - <input name="telephone" id="telephone" value="{tmpl_var name='telephone'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="mobile">{tmpl_var name='mobile_txt'}</label> - <input name="mobile" id="mobile" value="{tmpl_var name='mobile'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fax">{tmpl_var name='fax_txt'}</label> - <input name="fax" id="fax" value="{tmpl_var name='fax'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="internet">{tmpl_var name='internet_txt'}</label> - <input name="internet" id="internet" value="{tmpl_var name='internet'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="icq">{tmpl_var name='icq_txt'}</label> - <input name="icq" id="icq" value="{tmpl_var name='icq'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="vat_id">{tmpl_var name='vat_id_txt'}</label> - <input name="vat_id" id="vat_id" value="{tmpl_var name='vat_id'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="company_id">{tmpl_var name='company_id_txt'}</label> - <input name="company_id" id="company_id" value="{tmpl_var name='company_id'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bank_account_number">{tmpl_var name='bank_account_number_txt'}</label> - <input name="bank_account_number" id="bank_account_number" value="{tmpl_var name='bank_account_number'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bank_code">{tmpl_var name='bank_code_txt'}</label> - <input name="bank_code" id="bank_code" value="{tmpl_var name='bank_code'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bank_name">{tmpl_var name='bank_name_txt'}</label> - <input name="bank_name" id="bank_name" value="{tmpl_var name='bank_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bank_account_iban">{tmpl_var name='bank_account_iban_txt'}</label> - <input name="bank_account_iban" id="bank_account_iban" value="{tmpl_var name='bank_account_iban'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bank_account_swift">{tmpl_var name='bank_account_swift_txt'}</label> - <input name="bank_account_swift" id="bank_account_swift" value="{tmpl_var name='bank_account_swift'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="notes">{tmpl_var name='notes_txt'}</label> - <textarea name="notes" id="notes" rows='10' cols='30'>{tmpl_var name='notes'}</textarea> - </div> - {tmpl_var name='required_fields_txt'} - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_edit_limits.htm b/interface/web/themes/default-304/templates/client/client_edit_limits.htm deleted file mode 100644 index 8ce7f80fa6..0000000000 --- a/interface/web/themes/default-304/templates/client/client_edit_limits.htm +++ /dev/null @@ -1,284 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <tmpl_if name="is_admin"> - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="positive iconstxt icoAdd" type="button" value="{tmpl_var name='add_additional_template_txt'}" onClick="addAdditionalTemplate();"><span>{tmpl_var name='add_additional_template_txt'}</span></button> - <button class="negative iconstxt icoDelete" type="button" value="{tmpl_var name='delete_additional_template_txt'}" onClick="delAdditionalTemplate();"><span>{tmpl_var name='delete_additional_template_txt'}</span></button> - </div> - </fieldset> - </div> - </tmpl_if> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Limits</legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="template_master">{tmpl_var name='template_master_txt'}</label> - <select name="template_master" id="template_master" class="selectInput"> - {tmpl_var name='template_master'} - </select> - </div> - <div class="ctrlHolder"> - <label for="template_additional">{tmpl_var name='template_additional_txt'}</label> - <select name="tpl_add_select" id="tpl_add_select" class="selectInput"> - {tmpl_var name='tpl_add_select'} - </select> - <div id="template_additional_list"><br /><br />{tmpl_var name='template_additional_list'}</div> - <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}"> - </div> - <div class="ctrlHolder"> - - </div> - </tmpl_if> - <div class="subsectiontoggle"><span class="showing"></span>{tmpl_var name='web_limits_txt'}<em class="showing"></em></div> - <div> - <div class="ctrlHolder"> - <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label> - <select name="default_webserver" id="default_webserver" class="selectInput"> - {tmpl_var name='default_webserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> - <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> - <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> - <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='web_php_options_txt'}</p> - <div class="multiField"> - {tmpl_var name='web_php_options'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_cgi_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_cgi'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ssi_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ssi'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_perl_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_perl'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ruby_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ruby'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_python_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_python'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='force_suexec_txt'}</p> - <div class="multiField"> - {tmpl_var name='force_suexec'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_hterror_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_hterror'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_wildcard_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_wildcard'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ssl_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ssl'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> - <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> - <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> - <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> - <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssh_chroot_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssh_chroot'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> - <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='email_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label> - <select name="default_mailserver" id="default_mailserver" class="selectInput"> - {tmpl_var name='default_mailserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> - <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> - <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> - <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label> - <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> - <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> - <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> - <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> - <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> - <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> - <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> - <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> - <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> - <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> - <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='database_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label> - <select name="default_dbserver" id="default_dbserver" class="selectInput"> - {tmpl_var name='default_dbserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> - <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='cron_job_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> - <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> - <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> - {tmpl_var name='limit_cron_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> - <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='dns_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label> - <select name="default_dnsserver" id="default_dnsserver" class="selectInput"> - {tmpl_var name='default_dnsserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> - <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> - <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> - <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='virtualization_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_openvz_vm">{tmpl_var name='limit_openvz_vm_txt'}</label> - <input name="limit_openvz_vm" id="limit_openvz_vm" value="{tmpl_var name='limit_openvz_vm'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_openvz_vm_template_id">{tmpl_var name='limit_openvz_vm_template_id_txt'}</label> - <select name="limit_openvz_vm_template_id" id="limit_openvz_vm_template_id" class="selectInput"> - {tmpl_var name='limit_openvz_vm_template_id'} - </select> - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_message.htm b/interface/web/themes/default-304/templates/client/client_message.htm deleted file mode 100644 index 20afdb1112..0000000000 --- a/interface/web/themes/default-304/templates/client/client_message.htm +++ /dev/null @@ -1,39 +0,0 @@ -<h2><tmpl_var name="page_head_txt"></h2> -<p><tmpl_var name="form_desc_txt"></p> - -<div class="panel panel_client"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='form_legend_txt'}</legend> - <tmpl_if name="okmsg"> - <div id="OKMsg"><p><tmpl_var name="okmsg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="sender">{tmpl_var name='sender_txt'}</label> - <input name="sender" id="sender" value="{tmpl_var name='sender'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="recipient">{tmpl_var name='recipient_txt'}</label> - <select name="recipient" id="recipient" class="selectInput"> - {tmpl_var name='recipient'} - </select> - </div> - <div class="ctrlHolder"> - <label for="subject">{tmpl_var name='subject_txt'}</label> - <input name="subject" id="subject" value="{tmpl_var name='subject'}" style="width:500px" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="message">{tmpl_var name='message_txt'}</label> - <textarea name="message" id="message" rows='' cols='' style="width:500px">{tmpl_var name='message'}</textarea> {tmpl_var name="variables_txt"} {tmpl_var name="message_variables"} - </div> - </fieldset> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_send_txt'}" onClick="submitForm('pageForm','client/client_message.php');"><span>{tmpl_var name='btn_send_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_template_edit_limits.htm b/interface/web/themes/default-304/templates/client/client_template_edit_limits.htm deleted file mode 100644 index 91f9bd52d9..0000000000 --- a/interface/web/themes/default-304/templates/client/client_template_edit_limits.htm +++ /dev/null @@ -1,230 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Limits</legend> - <div class="subsectiontoggle"><span class="showing"></span>{tmpl_var name='web_limits_txt'}<em class="showing"></em></div> - <div> - <div class="ctrlHolder"> - <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> - <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> - <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> - <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='web_php_options_txt'}</p> - <div class="multiField"> - {tmpl_var name='web_php_options'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_cgi_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_cgi'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ssi_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ssi'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_perl_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_perl'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ruby_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ruby'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_python_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_python'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='force_suexec_txt'}</p> - <div class="multiField"> - {tmpl_var name='force_suexec'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_hterror_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_hterror'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_wildcard_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_wildcard'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ssl_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ssl'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> - <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> - <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> - <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> - <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssh_chroot_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssh_chroot'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> - <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='email_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> - <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> - <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> - <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label> - <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> - <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> - <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> - <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> - <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> - <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> - <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> - <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> - <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> - <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> - <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='database_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> - <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='cron_job_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> - <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> - <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> - {tmpl_var name='limit_cron_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> - <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='dns_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> - <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> - <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> - <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='virtualization_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_openvz_vm">{tmpl_var name='limit_openvz_vm_txt'}</label> - <input name="limit_openvz_vm" id="limit_openvz_vm" value="{tmpl_var name='limit_openvz_vm'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_openvz_vm_template_id">{tmpl_var name='limit_openvz_vm_template_id_txt'}</label> - <select name="limit_openvz_vm_template_id" id="limit_openvz_vm_template_id" class="selectInput"> - {tmpl_var name='limit_openvz_vm_template_id'} - </select> - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/client_template_edit_template.htm b/interface/web/themes/default-304/templates/client/client_template_edit_template.htm deleted file mode 100644 index 232fa55fa7..0000000000 --- a/interface/web/themes/default-304/templates/client/client_template_edit_template.htm +++ /dev/null @@ -1,28 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Template</legend> - <div class="ctrlHolder"> - <label for="template_type">{tmpl_var name='template_type_txt'}</label> - <select name="template_type" id="template_type" class="selectInput"> - {tmpl_var name='template_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="template_name">{tmpl_var name='template_name_txt'}</label> - <input name="template_name" id="template_name" value="{tmpl_var name='template_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/client/client_template_list.htm b/interface/web/themes/default-304/templates/client/client_template_list.htm deleted file mode 100644 index 5249fce5d5..0000000000 --- a/interface/web/themes/default-304/templates/client/client_template_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_limit_template"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/client_template_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_template_id" scope="col"><tmpl_var name="template_id_txt"></th> - <th class="tbl_col_template_type" scope="col"><tmpl_var name="template_type_txt"></th> - <th class="tbl_col_template_name" scope="col"><tmpl_var name="template_name_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_template_id"><input type="text" name="search_template_id" value="{tmpl_var name='search_template_id'}" style="width:30px;" /></td> - <td class="tbl_col_template_type"><select name="search_template_type">{tmpl_var name='search_template_type'}</select></td> - <td class="tbl_col_template_name"><input type="text" name="search_template_name" value="{tmpl_var name='search_template_name'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','client/client_template_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_template_id"><a href="#" onClick="loadContent('client/client_template_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="template_id"}</a></td> - <td class="tbl_col_template_type"><a href="#" onClick="loadContent('client/client_template_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="template_type"}</a></td> - <td class="tbl_col_template_name"><a href="#" onClick="loadContent('client/client_template_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="template_name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('client/client_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/clients_list.htm b/interface/web/themes/default-304/templates/client/clients_list.htm deleted file mode 100644 index 18332477dc..0000000000 --- a/interface/web/themes/default-304/templates/client/clients_list.htm +++ /dev/null @@ -1,73 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_clients"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/client_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_client_id" scope="col"><tmpl_var name="client_id_txt"></th> - <th class="tbl_col_company_name" scope="col"><tmpl_var name="company_name_txt"></th> - <th class="tbl_col_contact_name" scope="col"><tmpl_var name="contact_name_txt"></th> - <th class="tbl_col_username" scope="col"><tmpl_var name="username_txt"></th> - <th class="tbl_col_city" scope="col"><tmpl_var name="city_txt"></th> - <th class="tbl_col_country" scope="col"><tmpl_var name="country_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_client_id"><input type="text" name="search_client_id" value="{tmpl_var name='search_client_id'}" style="width:30px;" /></td> - <td class="tbl_col_company_name"><input type="text" name="search_company_name" value="{tmpl_var name='search_company_name'}" style="width:120px;" /></td> - <td class="tbl_col_contact_name"><input type="text" name="search_contact_name" value="{tmpl_var name='search_contact_name'}" style="width:120px;" /></td> - <td class="tbl_col_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" style="width:120px;" /></td> - <td class="tbl_col_city"><input type="text" name="search_city" value="{tmpl_var name='search_city'}" style="width:120px;" /></td> - <td class="tbl_col_country"><select name="search_country" class="selectInput flags" style="width:120px;">{tmpl_var name='search_country'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','client/client_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_client_id"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="client_id"}</a></td> - <td class="tbl_col_company_name"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="company_name"}</a></td> - <td class="tbl_col_contact_name"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="contact_name"}</a></td> - <td class="tbl_col_username"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="username"}</a></td> - <td class="tbl_col_city"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="city"}</a></td> - <td class="tbl_col_country"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="country"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16" style="width:60px;"> - <tmpl_if name="is_admin"> - <a class="icons16 icoLoginAs" href="javascript: loadContent('admin/login_as.php?cid={tmpl_var name='id'}');"><span>{tmpl_var name='login_as_txt'}</span></a> - </tmpl_if> - <a class="icons16 icoDelete" href="javascript: del_record('client/client_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - <tmpl_unless name="records"> - <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="7">{tmpl_var name='globalsearch_noresults_text_txt'}</td> - </tr> - </tmpl_unless> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/domain_edit.htm b/interface/web/themes/default-304/templates/client/domain_edit.htm deleted file mode 100644 index 5a6bef3965..0000000000 --- a/interface/web/themes/default-304/templates/client/domain_edit.htm +++ /dev/null @@ -1,40 +0,0 @@ -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <tmpl_if name="edit_disabled"> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" /> - <tmpl_else> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </tmpl_if> - </div> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <tmpl_if name="edit_disabled"> - <select name="client_group_id" id="client_group_id" class="selectInput" disabled="disabled"> - {tmpl_var name='client_group_id'} - </select> - <tmpl_else> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </tmpl_if> - </div> - </tmpl_if> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="local"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/domain_list.htm b/interface/web/themes/default-304/templates/client/domain_list.htm deleted file mode 100644 index 3c6b1ce5b0..0000000000 --- a/interface/web/themes/default-304/templates/client/domain_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_domain"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <tmpl_if name="is_admin"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/domain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - <tmpl_else> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/domain_new_client.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </tmpl_if> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_sys_groupid" scope="col"><tmpl_var name="user_txt">A</th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_user"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name='filter_txt'}" onClick="submitForm('pageForm','client/domain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('client/domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('client/domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> - <td class="tbl_col_buttons"> - <tmpl_if name="is_admin"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('client/domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </tmpl_if> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/reseller_edit_address.htm b/interface/web/themes/default-304/templates/client/reseller_edit_address.htm deleted file mode 100644 index d58ee93b7e..0000000000 --- a/interface/web/themes/default-304/templates/client/reseller_edit_address.htm +++ /dev/null @@ -1,116 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Address</legend> - <div class="ctrlHolder"> - <label for="company_name">{tmpl_var name='company_name_txt'}</label> - <input name="company_name" id="company_name" value="{tmpl_var name='company_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="contact_name">{tmpl_var name='contact_name_txt'}*</label> - <input name="contact_name" id="contact_name" value="{tmpl_var name='contact_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="customer_no">{tmpl_var name='customer_no_txt'}</label> - <input name="customer_no" id="customer_no" value="{tmpl_var name='customer_no'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}*</label> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput flags"> - {tmpl_var name='language'} - </select> - </div> - <div class="ctrlHolder"> - <label for="usertheme">{tmpl_var name='usertheme_txt'}</label> - <select name="usertheme" id="usertheme" class="selectInput"> - {tmpl_var name='usertheme'} - </select> - </div> - <div class="ctrlHolder"> - <label for="street">{tmpl_var name='street_txt'}</label> - <input name="street" id="street" value="{tmpl_var name='street'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="zip">{tmpl_var name='zip_txt'}</label> - <input name="zip" id="zip" value="{tmpl_var name='zip'}" size="10" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="city">{tmpl_var name='city_txt'}</label> - <input name="city" id="city" value="{tmpl_var name='city'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="state">{tmpl_var name='state_txt'}</label> - <input name="state" id="state" value="{tmpl_var name='state'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="country">{tmpl_var name='country_txt'}</label> - <select name="country" id="country" class="selectInput flags"> - {tmpl_var name='country'} - </select> - </div> - <div class="ctrlHolder"> - <label for="telephone">{tmpl_var name='telephone_txt'}</label> - <input name="telephone" id="telephone" value="{tmpl_var name='telephone'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="mobile">{tmpl_var name='mobile_txt'}</label> - <input name="mobile" id="mobile" value="{tmpl_var name='mobile'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fax">{tmpl_var name='fax_txt'}</label> - <input name="fax" id="fax" value="{tmpl_var name='fax'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="internet">{tmpl_var name='internet_txt'}</label> - <input name="internet" id="internet" value="{tmpl_var name='internet'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="icq">{tmpl_var name='icq_txt'}</label> - <input name="icq" id="icq" value="{tmpl_var name='icq'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="vat_id">{tmpl_var name='vat_id_txt'}</label> - <input name="vat_id" id="vat_id" value="{tmpl_var name='vat_id'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="notes">{tmpl_var name='notes_txt'}</label> - <textarea name="notes" id="notes" rows='10' cols='30'>{tmpl_var name='notes'}</textarea> - </div> - {tmpl_var name='required_fields_txt'} - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/reseller_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/reseller_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/reseller_edit_limits.htm b/interface/web/themes/default-304/templates/client/reseller_edit_limits.htm deleted file mode 100644 index 621dfa2b3b..0000000000 --- a/interface/web/themes/default-304/templates/client/reseller_edit_limits.htm +++ /dev/null @@ -1,279 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Limits</legend> - <!-- - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="template_master">{tmpl_var name='template_master_txt'}</label> - <select name="template_master" id="template_master" class="selectInput"> - {tmpl_var name='template_master'} - </select> - </div> - <div class="ctrlHolder"> - <label for="template_additional">{tmpl_var name='template_additional_txt'}</label> - <select name="tpl_add_select" id="tpl_add_select" class="selectInput"> - {tmpl_var name='tpl_add_select'} - </select> - <span id="template_additional_list">{tmpl_var name='template_additional_list'}</span> - <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}"> - </div> - <div class="ctrlHolder"> - - </div> - </tmpl_if> - --> - <div class="ctrlHolder"> - <label for="limit_client">{tmpl_var name='limit_client_txt'}</label> - <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="subsectiontoggle"><span class="showing"></span>{tmpl_var name='web_limits_txt'}<em class="showing"></em></div> - <div> - <div class="ctrlHolder"> - <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label> - <select name="default_webserver" id="default_webserver" class="selectInput"> - {tmpl_var name='default_webserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> - <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> - <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> - <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='web_php_options_txt'}</p> - <div class="multiField"> - {tmpl_var name='web_php_options'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_cgi_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_cgi'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ssi_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ssi'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_perl_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_perl'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ruby_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ruby'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_python_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_python'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='force_suexec_txt'}</p> - <div class="multiField"> - {tmpl_var name='force_suexec'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_hterror_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_hterror'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_wildcard_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_wildcard'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='limit_ssl_txt'}</p> - <div class="multiField"> - {tmpl_var name='limit_ssl'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> - <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> - <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> - <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> - <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssh_chroot_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssh_chroot'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> - <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='email_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label> - <select name="default_mailserver" id="default_mailserver" class="selectInput"> - {tmpl_var name='default_mailserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> - <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> - <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> - <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> - <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label> - <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> - <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> - <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> - <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> - <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> - <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> - <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> - <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> - <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> - <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='database_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label> - <select name="default_dbserver" id="default_dbserver" class="selectInput"> - {tmpl_var name='default_dbserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> - <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='cron_job_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> - <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> - <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> - {tmpl_var name='limit_cron_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> - <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='dns_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label> - <select name="default_dnsserver" id="default_dnsserver" class="selectInput"> - {tmpl_var name='default_dnsserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> - <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> - <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> - <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="subsectiontoggle"><span></span>{tmpl_var name='virtualization_limits_txt'}<em></em></div> - <div style="display:none;"> - <div class="ctrlHolder"> - <label for="limit_openvz_vm">{tmpl_var name='limit_openvz_vm_txt'}</label> - <input name="limit_openvz_vm" id="limit_openvz_vm" value="{tmpl_var name='limit_openvz_vm'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_openvz_vm_template_id">{tmpl_var name='limit_openvz_vm_template_id_txt'}</label> - <select name="limit_openvz_vm_template_id" id="limit_openvz_vm_template_id" class="selectInput"> - {tmpl_var name='limit_openvz_vm_template_id'} - </select> - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/reseller_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/reseller_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/client/resellers_list.htm b/interface/web/themes/default-304/templates/client/resellers_list.htm deleted file mode 100644 index f85850f36c..0000000000 --- a/interface/web/themes/default-304/templates/client/resellers_list.htm +++ /dev/null @@ -1,68 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_clients"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/reseller_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_client_id" scope="col"><tmpl_var name="client_id_txt"></th> - <th class="tbl_col_company_name" scope="col"><tmpl_var name="company_name_txt"></th> - <th class="tbl_col_contact_name" scope="col"><tmpl_var name="contact_name_txt"></th> - <th class="tbl_col_city" scope="col"><tmpl_var name="city_txt"></th> - <th class="tbl_col_country" scope="col"><tmpl_var name="country_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_client_id"><input type="text" name="search_client_id" value="{tmpl_var name='search_client_id'}" style="width:30px;" /></td> - <td class="tbl_col_company_name"><input type="text" name="search_company_name" value="{tmpl_var name='search_company_name'}" style="width:120px;" /></td> - <td class="tbl_col_contact_name"><input type="text" name="search_contact_name" value="{tmpl_var name='search_contact_name'}" style="width:120px;" /></td> - <td class="tbl_col_city"><input type="text" name="search_city" value="{tmpl_var name='search_city'}" style="width:120px;" /></td> - <td class="tbl_col_country"><select name="search_country" class="selectInput flags" style="width:120px;">{tmpl_var name='search_country'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','client/reseller_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_client_id"><a href="#" onClick="loadContent('client/reseller_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="client_id"}</a></td> - <td class="tbl_col_company_name"><a href="#" onClick="loadContent('client/reseller_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="company_name"}</a></td> - <td class="tbl_col_contact_name"><a href="#" onClick="loadContent('client/reseller_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="contact_name"}</a></td> - <td class="tbl_col_city"><a href="#" onClick="loadContent('client/reseller_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="city"}</a></td> - <td class="tbl_col_country"><a href="#" onClick="loadContent('client/reseller_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="country"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16" style="width:60px;"> - <a class="icons16 icoLoginAs" href="javascript: loadContent('admin/login_as.php?cid={tmpl_var name='id'}');"><span>{tmpl_var name='login_as_txt'}</span></a> - <a class="icons16 icoDelete" href="javascript: del_record('client/reseller_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - <tmpl_unless name="records"> - <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td colspan="6">{tmpl_var name='globalsearch_noresults_text_txt'}</td> - </tr> - </tmpl_unless> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dashboard/custom_menu.htm b/interface/web/themes/default-304/templates/dashboard/custom_menu.htm deleted file mode 100644 index 4b06779659..0000000000 --- a/interface/web/themes/default-304/templates/dashboard/custom_menu.htm +++ /dev/null @@ -1,9 +0,0 @@ -<ul id="submenu"> - <li class="title"><a>{tmpl_var name='latest_news_txt'}</a></li> - <tmpl_loop name="news"> - <li> - <a href="{tmpl_var name="link"}" target="_blank" style="margin-top:8px;padding-bottom:5px;"><b>{tmpl_var name="date"}</b><br /> - {tmpl_var name="title"}</a> - </li> - </tmpl_loop> -</ul> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dashboard/dashboard.htm b/interface/web/themes/default-304/templates/dashboard/dashboard.htm deleted file mode 100644 index 09aa158706..0000000000 --- a/interface/web/themes/default-304/templates/dashboard/dashboard.htm +++ /dev/null @@ -1,48 +0,0 @@ -<h1><tmpl_var name="welcome_user"></h1> -<hr /> -<div class="panel panel_dashboard"> - <div> - <tmpl_if name='error'> - <div class="systemmonitor-state state-error"> - <div class="status"></div> - <div class="statusMsg"> - <tmpl_loop name="error"> - {tmpl_var name='error_msg'} - </tmpl_loop> - </div> - </div> - </tmpl_if> - <tmpl_if name='warning'> - <div class="systemmonitor-state state-warning"> - <div class="status"></div> - <div class="statusMsg"> - <tmpl_loop name="warning"> - {tmpl_var name='warning_msg'} - </tmpl_loop> - </div> - </div> - </tmpl_if> - <tmpl_if name='info'> - <div class="systemmonitor-state state-info"> - <div class="status"></div> - <div class="statusMsg"> - <tmpl_loop name="info"> - {tmpl_var name='info_msg'} - </tmpl_loop> - </div> - </div> - </tmpl_if> - </div> - <div style="float:left; width:350px;"> - <tmpl_loop name='leftcol'> - {tmpl_var name='content'} - <p> </p> - </tmpl_loop> - </div> - <div style="float:left; width:350px;"> - <tmpl_loop name='rightcol'> - {tmpl_var name='content'} - <p> </p> - </tmpl_loop> - </div> -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dashboard/dashlets/limits.htm b/interface/web/themes/default-304/templates/dashboard/dashlets/limits.htm deleted file mode 100644 index 11fe0bbe6a..0000000000 --- a/interface/web/themes/default-304/templates/dashboard/dashlets/limits.htm +++ /dev/null @@ -1,11 +0,0 @@ - <h2>{tmpl_var name='limits_txt'}</h2> - <div style="width:350px;"> - <table class="list"> - <tmpl_loop name='rows'> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td>{tmpl_var name='field_txt'}</td> - <td style="white-space: nowrap">{tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'}</td> - </tr> - </tmpl_loop> - </table> - </div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dashboard/dashlets/modules.htm b/interface/web/themes/default-304/templates/dashboard/dashlets/modules.htm deleted file mode 100644 index 03fb8cb887..0000000000 --- a/interface/web/themes/default-304/templates/dashboard/dashlets/modules.htm +++ /dev/null @@ -1,10 +0,0 @@ - <h2>{tmpl_var name='available_modules_txt'}</h2> - <div style="width:350px;"> - <tmpl_loop name='modules'> - <div class="dashboard-modules {tmpl_var name='modules_name'}"> - <a href="#" onclick="capp('{tmpl_var name='modules_name'}')"> - {tmpl_var name='modules_title'} - </a> - </div> - </tmpl_loop> - </div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/form_edit.htm b/interface/web/themes/default-304/templates/designer/form_edit.htm deleted file mode 100644 index 38a28c4aa3..0000000000 --- a/interface/web/themes/default-304/templates/designer/form_edit.htm +++ /dev/null @@ -1,79 +0,0 @@ -<form method="POST" action="form_edit.php"> -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11"><input name="form[name]" type="text" class="text" value="{tmpl_var name='name'}" size="20" maxlength="50" {tmpl_var name='readonly'}></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="form[title]" type="text" class="text" value="{tmpl_var name='title'}" size="20" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> - <td width="366" class="frmText11"><input name="form[description]" type="text" class="text" value="{tmpl_var name='description'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="action_txt">:</td> - <td width="366" class="frmText11"><input name="form[action]" type="text" class="text" value="{tmpl_var name='action'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_table_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_table]" type="text" class="text" value="{tmpl_var name='db_table'}" size="10" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_table_idx_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_table_idx]" type="text" class="text" value="{tmpl_var name='db_table_idx'}" size="10" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_history_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_history]" type="text" class="text" value="{tmpl_var name='db_history'}" size="3" maxlength="3"> yes / no</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="tab_default_txt">:</td> - <td width="366" class="frmText11"><input name="form[tab_default]" type="text" class="text" value="{tmpl_var name='tab_default'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="list_default_txt">:</td> - <td width="366" class="frmText11"><input name="form[list_default]" type="text" class="text" value="{tmpl_var name='list_default'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth]" type="text" class="text" value="{tmpl_var name='auth'}" size="3" maxlength="3"> yes / no</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_userid_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][userid]" type="text" class="text" value="{tmpl_var name='auth_preset_userid'}" size="4" maxlength="4"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_groupid_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][groupid]" type="text" class="text" value="{tmpl_var name='auth_preset_groupid'}" size="4" maxlength="4"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_user_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_user]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_user'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_group_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_group]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_group'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_other_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_other]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_other'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="submit" class="button" value="{tmpl_var name='save_txt'}"> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onClick="self.location.href='form_list.php';"> - </td> - </tr> -</table> -<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> -<input type="hidden" name="form_name" value="{tmpl_var name='form_name'}"> -</form> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/form_list.htm b/interface/web/themes/default-304/templates/designer/form_list.htm deleted file mode 100644 index 39eb7b9015..0000000000 --- a/interface/web/themes/default-304/templates/designer/form_list.htm +++ /dev/null @@ -1,24 +0,0 @@ -<form name="myform" action="form_list.php" method="POST"> -<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br /> -<table width="100%" border="0" cellspacing="0" cellpadding="4"> - <tr> - <td class="tblHead"><tmpl_var name="form_txt"></td> - <td class="tblHead"><tmpl_var name="title_txt"></td> - <td class="tblHead"><tmpl_var name="module_txt"></td> - <td class="tblHead"><tmpl_var name="description_txt"></td> - <td class="tblHead"> </td> - </tr> - <tmpl_loop name="records"> - <tr bgcolor="{tmpl_var name="bgcolor"}"> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="name"}</a></td> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="title"}</a></td> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="module_name"}</a></td> - <td class="frmText11"><a href="form_show.php?form_name={tmpl_var name='name'}&module_name={tmpl_var name='module_name'}" class="frmText11">{tmpl_var name="description"}</a></td> - <td class="frmText11" align="right">[<a href="javascript: del_record('form_del.php?form_name={tmpl_var name='module'}&module_name={tmpl_var name='module_name'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">Delete</a>]</td> - </tr> - </tmpl_loop> - <tr> - <td colspan="7" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td> - </tr> -</table> -</form> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/form_show.htm b/interface/web/themes/default-304/templates/designer/form_show.htm deleted file mode 100644 index 2a3eff4ea5..0000000000 --- a/interface/web/themes/default-304/templates/designer/form_show.htm +++ /dev/null @@ -1,61 +0,0 @@ -<script language="JavaScript"> -<!-- -function del_module(link) { - if(window.confirm("{tmpl_var name='module_del_txt'}")) { - location.href = link; - } -} -function del_menu(link) { - if(window.confirm("{tmpl_var name='menu_del_txt'}")) { - location.href = link; - } -} -function del_menuitem(link) { - if(window.confirm("{tmpl_var name='item_del_txt'}")) { - location.href = link; - } -} - -//--> -</script> -<form name="myform" action="module_show.php" method="POST"> -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<fieldset style="width:320px;"><legend class="frmText11"><b>{tmpl_var name='form_txt'}</b></legend> -<table border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='title'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='form_name'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="module_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='module_name'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> - <td width="366" class="frmText11" valign="top">{tmpl_var name='description'}</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td colspan="2" class="frmText11"> - <input type="button" name="ed1" value="{tmpl_var name='properties_txt'}" onClick="location.href='form_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /> - <input type="button" name="ed2" value="{tmpl_var name='delete_txt'}" onClick="del_module('form_del.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}');" class="button" /> - <input type="button" name="ed3" value="{tmpl_var name='new_tab_txt'}" onClick="location.href='form_tab_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /></td> - </tr> -</table> -</fieldset> -<table width="350" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tmpl_var name="nav"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -</form> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/module_edit.htm b/interface/web/themes/default-304/templates/designer/module_edit.htm deleted file mode 100644 index 2cd48a9ea7..0000000000 --- a/interface/web/themes/default-304/templates/designer/module_edit.htm +++ /dev/null @@ -1,43 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11"><input name="module[name]" type="text" class="text" value="{tmpl_var name='name'}" size="30" maxlength="50" {tmpl_var name='readonly'}></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="module[title]" type="text" class="text" value="{tmpl_var name='title'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="template_txt">:</td> - <td width="366" class="frmText11"><input name="module[template]" type="text" class="text" value="{tmpl_var name='template'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="navframe_txt">:</td> - <td width="366" class="frmText11"><input name="module[navframe_page]" type="text" class="text" value="{tmpl_var name='navframe_page'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="startpage_txt">:</td> - <td width="366" class="frmText11"><input name="module[startpage]" type="text" class="text" value="{tmpl_var name='startpage'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="tab_width_txt">:</td> - <td width="366" class="frmText11"><input name="module[tab_width]" type="text" class="text" value="{tmpl_var name='tab_width'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> <inp</td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="button" class="button" value="{tmpl_var name='save_txt'}" onClick="submitForm('pageForm','designer/module_edit.php');"><div class="buttonEnding"></div> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onClick="loadContent('designer/module_list.php');"><div class="buttonEnding"></div> - </td> - </tr> - <tr> - <td colspan="2" class="frmText11"><tmpl_var name="description_txt"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -<input type="hidden" name="id" value="{tmpl_var name='id'}"> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/module_list.htm b/interface/web/themes/default-304/templates/designer/module_list.htm deleted file mode 100644 index 1e148f3ee2..0000000000 --- a/interface/web/themes/default-304/templates/designer/module_list.htm +++ /dev/null @@ -1,18 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br /> -<table width="100%" border="0" cellspacing="0" cellpadding="4"> - <tr> - <td class="tblHead"><tmpl_var name="module_txt"></td> - <td class="tblHead"><tmpl_var name="title_txt"></td> - <td class="tblHead"> </td> - </tr> - <tmpl_loop name="records"> - <tr bgcolor="{tmpl_var name="bgcolor"}"> - <td class="frmText11"><a href="javascript:loadContent('designer/module_show.php?id={tmpl_var name='module'}');" class="frmText11">{tmpl_var name="module"}</a></td> - <td class="frmText11"><a href="javascript:loadContent('designer/module_show.php?id={tmpl_var name='module'}');" class="frmText11">{tmpl_var name="title"}</a></td> - <td class="frmText11" align="right">[<a href="javascript: del_record('module_del.php?id={tmpl_var name='module'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">Delete</a>]</td> - </tr> - </tmpl_loop> - <tr> - <td colspan="5" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td> - </tr> -</table> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/module_nav_edit.htm b/interface/web/themes/default-304/templates/designer/module_nav_edit.htm deleted file mode 100644 index 3b2007af84..0000000000 --- a/interface/web/themes/default-304/templates/designer/module_nav_edit.htm +++ /dev/null @@ -1,24 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="nav[title]" type="text" class="text" value="{tmpl_var name='title'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> <inp</td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="button" class="button" value="{tmpl_var name='save_txt'}" onClick="submitForm('pageForm','designer/module_nav_edit.php');"><div class="buttonEnding"></div> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onClick="loadContent('designer/module_list.php');"><div class="buttonEnding"></div> - </td> - </tr> - <tr> - <td colspan="2" class="frmText11"><tmpl_var name="description_txt"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -<input type="hidden" name="nav_id" value="{tmpl_var name='nav_id'}"> -<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/module_nav_item_edit.htm b/interface/web/themes/default-304/templates/designer/module_nav_item_edit.htm deleted file mode 100644 index 0aee2ca65f..0000000000 --- a/interface/web/themes/default-304/templates/designer/module_nav_item_edit.htm +++ /dev/null @@ -1,33 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="title" type="text" class="text" value="{tmpl_var name='title'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="target_txt">:</td> - <td width="366" class="frmText11"><input name="target" type="text" class="text" value="{tmpl_var name='target'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="link_txt">:</td> - <td width="366" class="frmText11"><input name="link" type="text" class="text" value="{tmpl_var name='link'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> <inp</td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="button" class="button" value="{tmpl_var name='save_txt'}" onClick="submitForm('pageForm','designer/module_nav_item_edit.php');"><div class="buttonEnding"></div> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onClick="loadContent('designer/module_list.php');"><div class="buttonEnding"></div> - </td> - </tr> - <tr> - <td colspan="2" class="frmText11"><tmpl_var name="description_txt"></td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> -<input type="hidden" name="item_id" value="{tmpl_var name='item_id'}"> -<input type="hidden" name="nav_id" value="{tmpl_var name='nav_id'}"> -<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/module_show.htm b/interface/web/themes/default-304/templates/designer/module_show.htm deleted file mode 100644 index ffdfe9bb8a..0000000000 --- a/interface/web/themes/default-304/templates/designer/module_show.htm +++ /dev/null @@ -1,31 +0,0 @@ -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<fieldset style="width:250px;"><legend class="frmText11"><b>{tmpl_var name='module_txt'}</b></legend> -<table border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='title'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='name'}</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td colspan="2" class="frmText11"> - <input type="button" name="ed1" value="{tmpl_var name='properties_txt'}" onClick="loadContent('designer/module_edit.php?id={tmpl_var name='name'}')" class="button" /><div class="buttonEnding"></div> - <input type="button" name="ed2" value="{tmpl_var name='delete_txt'}" onClick="del_record('designer/module_del.php?id={tmpl_var name='name'}');" class="button" /><div class="buttonEnding"></div> - <input type="button" name="ed3" value="{tmpl_var name='new_menu_txt'}" onClick="loadContent('designer/module_nav_edit.php?module_name={tmpl_var name='name'}')" class="button" /><div class="buttonEnding"></div></td> - </tr> -</table> -</fieldset> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tmpl_var name="nav"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/designer/paging.tpl.htm b/interface/web/themes/default-304/templates/designer/paging.tpl.htm deleted file mode 100644 index dd38af8a99..0000000000 --- a/interface/web/themes/default-304/templates/designer/paging.tpl.htm +++ /dev/null @@ -1,9 +0,0 @@ -[ <a href='{tmpl_var name="list_file"}?page=0'>|<< </a>] -<tmpl_if name="show_page_back"> - [<< <a href='{tmpl_var name="list_file"}?page={tmpl_var name="last_page"}'>Zurück</a>] -</tmpl_if> - Seite {tmpl_var name="next_page"} von {tmpl_var name="max_pages"} -<tmpl_if name="show_page_next"> - [<a href='{tmpl_var name="list_file"}?page={tmpl_var name="next_page"}'>Weiter >></a>] -</tmpl_if> - [<a href='{tmpl_var name="list_file"}?page={tmpl_var name="pages"}'> >>| </a>] \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_a_edit.htm b/interface/web/themes/default-304/templates/dns/dns_a_edit.htm deleted file mode 100644 index cce1af6052..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_a_edit.htm +++ /dev/null @@ -1,54 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_a"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='name_hint_txt'}</p> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput formLengthIPv4" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_a_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - jQuery('#data').ispconfigSearch({ - dataSrc: '/dns/ajax_get_json.php?type=get_ipv4', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_a_list.htm b/interface/web/themes/default-304/templates/dns/dns_a_list.htm deleted file mode 100644 index 913f628a69..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_a_list.htm +++ /dev/null @@ -1,88 +0,0 @@ -<div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_a_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>A</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_aaaa_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>AAAA</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_alias_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>ALIAS</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_cname_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>CNAME</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_hinfo_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>HINFO</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_mx_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>MX</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_ns_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>NS</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_ptr_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>PTR</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_rp_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>RP</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_srv_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>SRV</span> - </button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_txt_edit.php?zone={tmpl_var name='parent_id'}');"> - <span>TXT</span> - </button> - </div> - </fieldset> -</div> - -<div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_type" scope="col"><tmpl_var name="type_txt"></th> - <th class="tbl_col_name" scope="col"><tmpl_var name="name_txt"></th> - <th class="tbl_col_data" scope="col"><tmpl_var name="data_txt"></th> - <th class="tbl_col_aux" scope="col"><tmpl_var name="aux_txt"></th> - <th class="tbl_col_ttl" scope="col"><tmpl_var name="ttl_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_type"><select name="search_type">{tmpl_var name='search_type'}</select></td> - <td class="tbl_col_name"><input type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> - <td class="tbl_col_data"><input type="text" name="search_data" value="{tmpl_var name='search_data'}" /></td> - <td class="tbl_col_aux"><input type="text" name="search_aux" value="{tmpl_var name='search_aux'}" /></td> - <td class="tbl_col_ttl"><input type="text" name="search_ttl" value="{tmpl_var name='search_ttl'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="changeTab('dns_records','dns/dns_soa_edit.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_type"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="type"}</a></td> - <td class="tbl_col_name"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="name"}</a></td> - <td class="tbl_col_data"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="data"}</a></td> - <td class="tbl_col_aux"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="aux"}</a></td> - <td class="tbl_col_ttl"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ttl"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('dns/dns_rr_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> -</div> diff --git a/interface/web/themes/default-304/templates/dns/dns_aaaa_edit.htm b/interface/web/themes/default-304/templates/dns/dns_aaaa_edit.htm deleted file mode 100644 index fdea8270c7..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_aaaa_edit.htm +++ /dev/null @@ -1,54 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_aaaa"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='name_hint_txt'}</p> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_aaaa_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - jQuery('#data').ispconfigSearch({ - dataSrc: '/dns/ajax_get_json.php?type=get_ipv6', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_alias_edit.htm b/interface/web/themes/default-304/templates/dns/dns_alias_edit.htm deleted file mode 100644 index 2c859c7a05..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_alias_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_alias"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_alias_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_cname_edit.htm b/interface/web/themes/default-304/templates/dns/dns_cname_edit.htm deleted file mode 100644 index 5cf86c589f..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_cname_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_cname"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_cname_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_hinfo_edit.htm b/interface/web/themes/default-304/templates/dns/dns_hinfo_edit.htm deleted file mode 100644 index 1651bcc7d1..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_hinfo_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_hinfo"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_hinfo_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_import.htm b/interface/web/themes/default-304/templates/dns/dns_import.htm deleted file mode 100644 index 7f462ab62a..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_import.htm +++ /dev/null @@ -1,55 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_wizard"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend><tmpl_var name="zone_file_import_txt"></legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" onkeydown="keydown(event.which);" /><p class="value"><tmpl_var name='domain_field_desc_txt'}</p> - </div> - <div class="ctrlHolder""> - <label for="file">{tmpl_var name='zonefile_to_import_txt'}</label> - <input name="file" id="file" size="30" type="file" class="fileUpload" /> - </div> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitUploadForm('pageForm','dns/dns_import.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - - </fieldset> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - function keydown(keynum){ - if(keynum == 13){ - jQuery('.positive').trigger('click'); - } - } -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_mx_edit.htm b/interface/web/themes/default-304/templates/dns/dns_mx_edit.htm deleted file mode 100644 index e986efb777..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_mx_edit.htm +++ /dev/null @@ -1,42 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_mx"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="aux">{tmpl_var name='aux_txt'}</label> - <input name="aux" id="aux" value="{tmpl_var name='aux'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_mx_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_ns_edit.htm b/interface/web/themes/default-304/templates/dns/dns_ns_edit.htm deleted file mode 100644 index 9efd881a90..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_ns_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_ns"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_ns_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_ptr_edit.htm b/interface/web/themes/default-304/templates/dns/dns_ptr_edit.htm deleted file mode 100644 index 5d8cf1fdbe..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_ptr_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_ptr"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_ptr_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_records_edit.htm b/interface/web/themes/default-304/templates/dns/dns_records_edit.htm deleted file mode 100644 index f7852eab4f..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_records_edit.htm +++ /dev/null @@ -1,12 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_soa"> - - {tmpl_var name='dns_records'} - - <div class="pnl_formsarea"> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_rp_edit.htm b/interface/web/themes/default-304/templates/dns/dns_rp_edit.htm deleted file mode 100644 index 86697cfed6..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_rp_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_rp"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_rp_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_slave_edit.htm b/interface/web/themes/default-304/templates/dns/dns_slave_edit.htm deleted file mode 100644 index b6dea70f9c..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_slave_edit.htm +++ /dev/null @@ -1,97 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_slave"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend><tmpl_var name="secondary_zone_txt"></legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> - <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='server_id'} - </select> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> - <tmpl_else> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="origin">{tmpl_var name='origin_txt'}</label> - <input name="origin" id="origin" value="{tmpl_var name='origin'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='eg_domain_tld'}</p> - </div> - <div class="ctrlHolder"> - <label for="ns">{tmpl_var name='ns_txt'}</label> - <input name="ns" id="ns" value="{tmpl_var name='ns'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='ipv4_form_txt'}</p> - </div> - <div class="ctrlHolder"> - <label for="xfer">{tmpl_var name='xfer_txt'}</label> - <input name="xfer" id="xfer" value="{tmpl_var name='xfer'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="serial" type="hidden" value="{tmpl_var name='serial'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_slave_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_slave_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - jQuery('#ns').ispconfigSearch({ - dataSrc: '/dns/ajax_get_json.php?type=get_ipv4', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); - jQuery('#xfer').ispconfigSearch({ - dataSrc: '/dns/ajax_get_json.php?type=get_ipv4', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_slave_list.htm b/interface/web/themes/default-304/templates/dns/dns_slave_list.htm deleted file mode 100644 index d4458e0d9f..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_slave_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_dns_slave"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_slave_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_origin" scope="col"><tmpl_var name="origin_txt"></th> - <th class="tbl_col_ns" scope="col"><tmpl_var name="ns_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_origin"><input type="text" name="search_origin" value="{tmpl_var name='search_origin'}" /></td> - <td class="tbl_col_ns"><input type="text" name="search_ns" value="{tmpl_var name='search_ns'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','dns/dns_slave_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_origin"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="origin"}</a></td> - <td class="tbl_col_ns"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ns"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('dns/dns_slave_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/dns/dns_soa_edit.htm b/interface/web/themes/default-304/templates/dns/dns_soa_edit.htm deleted file mode 100644 index 386a2ab6ae..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_soa_edit.htm +++ /dev/null @@ -1,131 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_soa"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>DNS Zone</legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> - <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='server_id'} - </select> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> - <tmpl_else> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="origin">{tmpl_var name='origin_txt'}</label> - <input name="origin" id="origin" value="{tmpl_var name='origin'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='eg_domain_tld'}</p> - </div> - <div class="ctrlHolder"> - <label for="ns">{tmpl_var name='ns_txt'}</label> - <input name="ns" id="ns" value="{tmpl_var name='ns'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='eg_ns1_domain_tld'}</p> - </div> - <div class="ctrlHolder"> - <label for="mbox">{tmpl_var name='mbox_txt'}</label> - <input name="mbox" id="mbox" value="{tmpl_var name='mbox'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">{tmpl_var name='eg_webmaster_domain_tld'}</p> - </div> - <div class="ctrlHolder"> - <label for="refresh">{tmpl_var name='refresh_txt'}</label> - <input name="refresh" id="refresh" value="{tmpl_var name='refresh'}" size="10" maxlength="10" type="text" class="textInput" /> {tmpl_var name='seconds_txt'} - </div> - <div class="ctrlHolder"> - <label for="retry">{tmpl_var name='retry_txt'}</label> - <input name="retry" id="retry" value="{tmpl_var name='retry'}" size="10" maxlength="10" type="text" class="textInput" /> {tmpl_var name='seconds_txt'} - </div> - <div class="ctrlHolder"> - <label for="expire">{tmpl_var name='expire_txt'}</label> - <input name="expire" id="expire" value="{tmpl_var name='expire'}" size="10" maxlength="10" type="text" class="textInput" /> {tmpl_var name='seconds_txt'} - </div> - <div class="ctrlHolder"> - <label for="minimum">{tmpl_var name='minimum_txt'}</label> - <input name="minimum" id="minimum" value="{tmpl_var name='minimum'}" size="10" maxlength="10" type="text" class="textInput" /> {tmpl_var name='seconds_txt'} - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> {tmpl_var name='seconds_txt'} - </div> - <div class="ctrlHolder"> - <label for="xfer">{tmpl_var name='xfer_txt'}</label> - <input name="xfer" id="xfer" value="{tmpl_var name='xfer'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="also_notify">{tmpl_var name='also_notify_txt'}</label> - <input name="also_notify" id="also_notify" value="{tmpl_var name='also_notify'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="update_acl">{tmpl_var name='update_acl_txt'}</label> - <input name="update_acl" id="update_acl" value="{tmpl_var name='update_acl'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="serial" type="hidden" value="{tmpl_var name='serial'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_soa_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - jQuery('#xfer').ispconfigSearch({ - dataSrc: '/dns/ajax_get_json.php?type=get_ipv4', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); - jQuery('#also_notify').ispconfigSearch({ - dataSrc: '/dns/ajax_get_json.php?type=get_ipv4', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_soa_list.htm b/interface/web/themes/default-304/templates/dns/dns_soa_list.htm deleted file mode 100644 index fa09c78e0e..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_soa_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_dns_soa"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_wizard.php');"><span>{tmpl_var name="add_new_record_wizard_txt"}</span></button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_soa_edit.php');"><span>{tmpl_var name="add_new_record_txt"}</span></button> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_import.php');"><span>Import Zone File</span></button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_origin" scope="col"><tmpl_var name="origin_txt"></th> - <th class="tbl_col_ns" scope="col"><tmpl_var name="ns_txt"></th> - <th class="tbl_col_mbox" scope="col"><tmpl_var name="mbox_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_origin"><input type="text" name="search_origin" value="{tmpl_var name='search_origin'}" /></td> - <td class="tbl_col_ns"><input type="text" name="search_ns" value="{tmpl_var name='search_ns'}" /></td> - <td class="tbl_col_mbox"><input type="text" name="search_mbox" value="{tmpl_var name='search_mbox'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','dns/dns_soa_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_origin"><a href="#" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="origin"}</a></td> - <td class="tbl_col_ns"><a href="#" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ns"}</a></td> - <td class="tbl_col_mbox"><a href="#" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="mbox"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('dns/dns_soa_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_srv_edit.htm b/interface/web/themes/default-304/templates/dns/dns_srv_edit.htm deleted file mode 100644 index fbcf10db9d..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_srv_edit.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_srv"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="target">{tmpl_var name='target_txt'}</label> - <input name="target" id="target" value="{tmpl_var name='target'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="weight">{tmpl_var name='weight_txt'}</label> - <input name="weight" id="weight" value="{tmpl_var name='weight'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="port">{tmpl_var name='port_txt'}</label> - <input name="port" id="port" value="{tmpl_var name='port'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="aux">{tmpl_var name='aux_txt'}</label> - <input name="aux" id="aux" value="{tmpl_var name='aux'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_srv_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_template_edit.htm b/interface/web/themes/default-304/templates/dns/dns_template_edit.htm deleted file mode 100644 index b18d84a691..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_template_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='fields_txt'}</p> - <div class="multiField"> - {tmpl_var name='fields'} - </div> - </div> - <div class="ctrlHolder"> - <label for="template">{tmpl_var name='template_txt'}</label> - <textarea name="template" id="template" rows='15' cols='40'>{tmpl_var name='template'}</textarea> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='visible_txt'}</p> - <div class="multiField"> - {tmpl_var name='visible'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_template_list.htm b/interface/web/themes/default-304/templates/dns/dns_template_list.htm deleted file mode 100644 index 7039d34b10..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_template_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_dns_template"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_template_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_visible" scope="col"><tmpl_var name="visible_txt"></th> - <th class="tbl_col_name" scope="col"><tmpl_var name="name_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_visible"><select name="search_visible">{tmpl_var name='search_visible'}</select></td> - <td class="tbl_col_name"><input type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','dns/dns_template_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_visible"><a href="#" onClick="loadContent('dns/dns_template_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="visible"}</a></td> - <td class="tbl_col_name"><a href="#" onClick="loadContent('dns/dns_template_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('dns/dns_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_txt_edit.htm b/interface/web/themes/default-304/templates/dns/dns_txt_edit.htm deleted file mode 100644 index 0450fc865f..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_txt_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_txt"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ttl">{tmpl_var name='ttl_txt'}</label> - <input name="ttl" id="ttl" value="{tmpl_var name='ttl'}" size="10" maxlength="10" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="zone" value="{tmpl_var name='zone'}"> - <input type="hidden" name="type" value="{tmpl_var name='type'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_txt_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_edit.php?id={tmpl_var name='zone'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/dns/dns_wizard.htm b/interface/web/themes/default-304/templates/dns/dns_wizard.htm deleted file mode 100644 index 51d9b76147..0000000000 --- a/interface/web/themes/default-304/templates/dns/dns_wizard.htm +++ /dev/null @@ -1,95 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> -</tmpl_if> - -<div class="panel panel_dns_wizard"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend><tmpl_var name="dns_zone_txt"></legend> - <div class="ctrlHolder"> - <label for="template_id">{tmpl_var name='template_id_txt'}</label> - <select name="template_id" id="template_id" class="selectInput" onChange="submitForm('pageForm','dns/dns_wizard.php')"> - {tmpl_var name='template_id_option'} - </select> - </div> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <tmpl_if name="DOMAIN_VISIBLE"> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </tmpl_if> - <tmpl_if name="IP_VISIBLE"> - <div class="ctrlHolder"> - <label for="ip">{tmpl_var name='ip_txt'}</label> - <input name="ip" id="ip" value="{tmpl_var name='ip'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </tmpl_if> - <tmpl_if name="NS1_VISIBLE"> - <div class="ctrlHolder"> - <label for="ns1">{tmpl_var name='ns1_txt'}</label> - <input name="ns1" id="ns1" value="{tmpl_var name='ns1'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </tmpl_if> - <tmpl_if name="NS2_VISIBLE"> - <div class="ctrlHolder"> - <label for="ns2">{tmpl_var name='ns2_txt'}</label> - <input name="ns2" id="ns2" value="{tmpl_var name='ns2'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </tmpl_if> - <tmpl_if name="EMAIL_VISIBLE"> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </tmpl_if> - </fieldset> - - <input type="hidden" name="create" value="0" /> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" name="btn_create" onClick="document.pageForm.create.value=1; submitForm('pageForm','dns/dns_wizard.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_soa_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - jQuery('#ip').ispconfigSearch({ - dataSrc: '/dns/ajax_get_json.php?type=get_ipv4', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); -</script> diff --git a/interface/web/themes/default-304/templates/error.tpl.htm b/interface/web/themes/default-304/templates/error.tpl.htm deleted file mode 100644 index d75fda4006..0000000000 --- a/interface/web/themes/default-304/templates/error.tpl.htm +++ /dev/null @@ -1,8 +0,0 @@ -<div class="uniForm"> - <div id="errorMsg"> - <h3>Error</h3> - <ol> - <li>###ERRORMSG###</li> - </ol> - </div> -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/form.tpl.htm b/interface/web/themes/default-304/templates/form.tpl.htm deleted file mode 100644 index 429bfd9f24..0000000000 --- a/interface/web/themes/default-304/templates/form.tpl.htm +++ /dev/null @@ -1 +0,0 @@ -<tmpl_dyninclude name="content_tpl"> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/help/faq_edit.htm b/interface/web/themes/default-304/templates/help/faq_edit.htm deleted file mode 100644 index 6513f95508..0000000000 --- a/interface/web/themes/default-304/templates/help/faq_edit.htm +++ /dev/null @@ -1,29 +0,0 @@ -<div class="panel panel_support_message"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='faq_faq_txt'}</legend> - <div class="ctrlHolder"> - <label for="hf_section">{tmpl_var name='faq_section_txt'}</label> - <select name="hf_section" id="hf_section" class="selectInput"> - {tmpl_var name='hf_section'} - </select> - </div> - <div class="ctrlHolder"> - <label for="hf_question">{tmpl_var name='faq_question_txt'}</label> - <input name="hf_question" id="hf_question" value="{tmpl_var name='hf_question'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="hf_answer">{tmpl_var name='faq_answer_txt'}</label> - <textarea name="hf_answer" id="hf_answer" rows='10' cols='30'>{tmpl_var name='hf_answer'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','help/faq_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('help/faq_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/help/faq_manage_questions_list.htm b/interface/web/themes/default-304/templates/help/faq_manage_questions_list.htm deleted file mode 100644 index c045dfbb1b..0000000000 --- a/interface/web/themes/default-304/templates/help/faq_manage_questions_list.htm +++ /dev/null @@ -1,43 +0,0 @@ -<h2>{tmpl_var name="faq_faq_questions_txt"}</h2> -<div class="panel panel_support_message"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onclick="loadContent('help/faq_edit.php');"> - <span>{tmpl_var name="faq_new_question_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="faq_sections_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col">{tmpl_var name="faq_question_txt"}</th> - <th class="tbl_col_active" scope="col">{tmpl_var name="faq_section_name_txt"}</th> - <th class="tbl_col_server_id" scope="col">{tmpl_var name="faq_delete_txt"}</th> - <th class="tbl_col_domain" scope="col">{tmpl_var name="faq_edit_txt"}</th> - </tr> - </thead> - <tmpl_loop name="records"> - <tr> - <td>{tmpl_var name='hf_question'}</td> - <td>{tmpl_var name='hf_section'}</td> - <td> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('help/faq_delete.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"> - <span>{tmpl_var name="faq_delete_txt"}</span></a> </div> - </td> - <td> - <a href="#" onClick="loadContent('help/faq_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="faq_edit_txt"}</a> - </td> - </tr> - </tmpl_loop> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/help/faq_sections_edit.htm b/interface/web/themes/default-304/templates/help/faq_sections_edit.htm deleted file mode 100644 index 181364bdc2..0000000000 --- a/interface/web/themes/default-304/templates/help/faq_sections_edit.htm +++ /dev/null @@ -1,20 +0,0 @@ -<div class="panel panel_support_message"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Section</legend> - <div class="ctrlHolder"> - <label for="hfs_name">{tmpl_var name='faq_section_name_txt'}</label> - <input name="hfs_name" id="hfs_name" value="{tmpl_var name='hfs_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','help/faq_sections_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('help/faq_sections_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> - diff --git a/interface/web/themes/default-304/templates/help/help_faq_list.htm b/interface/web/themes/default-304/templates/help/help_faq_list.htm deleted file mode 100644 index 6af928f767..0000000000 --- a/interface/web/themes/default-304/templates/help/help_faq_list.htm +++ /dev/null @@ -1,19 +0,0 @@ -<tmpl_loop name="records"> - <h3>{tmpl_var name='hf_question'} - </h3> - <p> - {tmpl_var name='hf_answer'} - </p> - <tmpl_if name='is_admin'> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('help/faq_delete.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>Delete</span></a> - </div> - <a href="#" onClick="loadContent('help/faq_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="edit_txt"}</a> - <br/> - <br/> - <br/> - </tmpl_if> - -</tmpl_loop> - -<!--<tmpl_var name="paging">--> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/help/help_faq_sections_list.htm b/interface/web/themes/default-304/templates/help/help_faq_sections_list.htm deleted file mode 100644 index ddb1a560e1..0000000000 --- a/interface/web/themes/default-304/templates/help/help_faq_sections_list.htm +++ /dev/null @@ -1,43 +0,0 @@ -<h2><tmpl_var name="faq_faq_sections_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_support_faq_section"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onclick="loadContent('help/faq_sections_edit.php');"> - <span>{tmpl_var name="faq_new_section_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="faq_sections_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col">{tmpl_var name="faq_section_name_txt"}</th> - <th class="tbl_col_server_id" scope="col">{tmpl_var name="faq_delete_txt"}</th> - <th class="tbl_col_domain" scope="col">{tmpl_var name="faq_edit_txt"}</th> - </tr> - </thead> - <tmpl_loop name="records"> - <tr> - <td><b>{tmpl_var name='hfs_name'}</b></td> - <td> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('help/faq_sections_delete.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"> - <span>{tmpl_var name="faq_delete_txt"}</span></a> </div> - </td><td> - - <a href="#" onClick="loadContent('help/faq_sections_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="faq_edit_txt"}</a> - </td> - </tr> - </tmpl_loop> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/help/support_message_edit.htm b/interface/web/themes/default-304/templates/help/support_message_edit.htm deleted file mode 100644 index 06c17977fa..0000000000 --- a/interface/web/themes/default-304/templates/help/support_message_edit.htm +++ /dev/null @@ -1,33 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_support_message"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Message</legend> - <div class="ctrlHolder"> - <label for="recipient_id">{tmpl_var name='recipient_id_txt'}</label> - <select name="recipient_id" id="recipient_id" class="selectInput"> - {tmpl_var name='recipient_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="subject">{tmpl_var name='subject_txt'}</label> - <input name="subject" id="subject" value="{tmpl_var name='subject'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="message">{tmpl_var name='message_txt'}</label> - <textarea name="message" id="message" rows='10' cols='30'>{tmpl_var name='message'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="tstamp" value="{tmpl_var name='tstamp'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','help/support_message_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('help/support_message_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/help/support_message_list.htm b/interface/web/themes/default-304/templates/help/support_message_list.htm deleted file mode 100644 index e828fe9e57..0000000000 --- a/interface/web/themes/default-304/templates/help/support_message_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_support_message"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('help/support_message_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_sender_id" scope="col"><tmpl_var name="sender_id_txt"></th> - <th class="tbl_col_subject" scope="col"><tmpl_var name="subject_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_sender_id"><select name="search_sender_id">{tmpl_var name='search_sender_id'}</select></td> - <td class="tbl_col_subject"><input type="text" name="search_subject" value="{tmpl_var name='search_subject'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','help/support_message_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_sender_id"><a href="#" onClick="loadContent('help/support_message_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sender_id"}</a></td> - <td class="tbl_col_subject"><a href="#" onClick="loadContent('help/support_message_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="subject"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('help/support_message_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/help/support_message_view.htm b/interface/web/themes/default-304/templates/help/support_message_view.htm deleted file mode 100644 index 62f2736ec9..0000000000 --- a/interface/web/themes/default-304/templates/help/support_message_view.htm +++ /dev/null @@ -1,22 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_support_message"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Message</legend> - <div class="ctrlHolder"> - <label for="subject">{tmpl_var name='subject_txt'}</label> - <p>{tmpl_var name='subject'}</p> - </div> - <div class="ctrlHolder"> - <label for="message">{tmpl_var name='message_txt'}</label> - <p>{tmpl_var name='message'}</p> - </div> - </fieldset> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='reply_txt'}" onClick="loadContent('help/support_message_edit.php?reply={tmpl_var name='id'}');"><span>{tmpl_var name='reply_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/listpage.tpl.htm b/interface/web/themes/default-304/templates/listpage.tpl.htm deleted file mode 100644 index 429bfd9f24..0000000000 --- a/interface/web/themes/default-304/templates/listpage.tpl.htm +++ /dev/null @@ -1 +0,0 @@ -<tmpl_dyninclude name="content_tpl"> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/login/index.htm b/interface/web/themes/default-304/templates/login/index.htm deleted file mode 100644 index e977e05882..0000000000 --- a/interface/web/themes/default-304/templates/login/index.htm +++ /dev/null @@ -1,33 +0,0 @@ -<h2><tmpl_var name="login_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_login"> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><li><tmpl_var name="error"></li></ol><br /><a href="#" onclick="loadContent('login/password_reset.php');">{tmpl_var name='pw_lost_txt'}</a></div> - </tmpl_if> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='login_txt'}Login</legend> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <input name="username" id="username" value="" size="30" maxlength="255" type="text" class="textInput" onkeypress="if (event.keyCode && event.keyCode == 13) {submitLoginForm('pageForm'); return false;};" /> - </div> - <div class="ctrlHolder"> - <label for="passwort">{tmpl_var name='password_txt'}</label> - <input name="passwort" id="passwort" value="" size="30" maxlength="255" type="password" class="textInput" onkeypress="if (event.keyCode && event.keyCode == 13) {submitLoginForm('pageForm'); return false;};" /> - </div> - </fieldset> - - <input type="hidden" name="s_mod" value="login" /> - <input type="hidden" name="s_pg" value="index" /> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoKey" type="button" value="{tmpl_var name="add_new_record_txt"}" onClick="submitLoginForm('pageForm');"><span>{tmpl_var name='login_button_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/login/password_reset.htm b/interface/web/themes/default-304/templates/login/password_reset.htm deleted file mode 100644 index d6007e67be..0000000000 --- a/interface/web/themes/default-304/templates/login/password_reset.htm +++ /dev/null @@ -1,33 +0,0 @@ -<h2><tmpl_var name="pw_reset_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_password_reset"> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='pw_reset_txt'}</legend> - <div class="ctrlHolder"> - <label for="email"><em>*</em> {tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="username"><em>*</em> {tmpl_var name='username_txt'}</label> - <input name="username" id="username" value="" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="s_mod" value="login" /> - <input type="hidden" name="s_pg" value="index" /> - - <div class="buttonHolder buttons"> - <button class="positive" type="button" value="{tmpl_var name="add_new_record_txt"}" onClick="submitForm('pageForm','login/password_reset.php');"><span>{tmpl_var name='pw_button_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_alias_edit.htm b/interface/web/themes/default-304/templates/mail/mail_alias_edit.htm deleted file mode 100644 index 0aa550f9aa..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_alias_edit.htm +++ /dev/null @@ -1,39 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_alias"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label"><em>*</em> {tmpl_var name='email_txt'}</p> - <div class="multiField"> - <label for="email_local_part" class="blockLabel">Alias<input type="text" id="email_local_part" name="email_local_part" size="20" value="{tmpl_var name='email_local_part'}" class="textInput" /></label> - <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> - <label for="email_domain" class="blockLabel">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <select name="destination" id="destination" class="selectInput"> - {tmpl_var name='destination'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="alias"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_alias_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_alias_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_alias_list.htm b/interface/web/themes/default-304/templates/mail/mail_alias_list.htm deleted file mode 100644 index 92755ddb9f..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_alias_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_alias"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_alias_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> - <th class="tbl_col_destination" scope="col"><tmpl_var name="destination_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> - <td class="tbl_col_destination"><input type="text" name="search_destination" value="{tmpl_var name='search_destination'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_alias_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_alias_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_alias_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> - <td class="tbl_col_destination"><a href="#" onClick="loadContent('mail/mail_alias_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="destination"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_alias_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_aliasdomain_edit.htm b/interface/web/themes/default-304/templates/mail/mail_aliasdomain_edit.htm deleted file mode 100644 index c41121b7bd..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_aliasdomain_edit.htm +++ /dev/null @@ -1,37 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_aliasdomain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='source_txt'}</label> - <select name="source" id="source" class="selectInput"> - {tmpl_var name='source_domain'} - </select> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <select name="destination" id="destination" class="selectInput"> - {tmpl_var name='destination_domain'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="aliasdomain"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_aliasdomain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_aliasdomain_list.htm b/interface/web/themes/default-304/templates/mail/mail_aliasdomain_list.htm deleted file mode 100644 index d75c236e64..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_aliasdomain_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_aliasdomain"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_aliasdomain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> - <th class="tbl_col_destination" scope="col"><tmpl_var name="destination_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> - <td class="tbl_col_destination"><input type="text" name="search_destination" value="{tmpl_var name='search_destination'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_aliasdomain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> - <td class="tbl_col_destination"><a href="#" onClick="loadContent('mail/mail_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="destination"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_aliasdomain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_blacklist_edit.htm b/interface/web/themes/default-304/templates/mail/mail_blacklist_edit.htm deleted file mode 100644 index 493e88b90a..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_blacklist_edit.htm +++ /dev/null @@ -1,41 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_blacklist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="source">{tmpl_var name='source_txt'}</label> - <input name="source" id="source" value="{tmpl_var name='source'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="access" type="hidden" value="{tmpl_var name='access'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_blacklist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_blacklist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_blacklist_list.htm b/interface/web/themes/default-304/templates/mail/mail_blacklist_list.htm deleted file mode 100644 index 6dd81c62c5..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_blacklist_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_blacklist"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_blacklist_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> - <th class="tbl_col_type" scope="col"><tmpl_var name="type_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> - <td class="tbl_col_type"><select name="search_type">{tmpl_var name='search_type'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_blacklist_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> - <td class="tbl_col_type"><a href="#" onClick="loadContent('mail/mail_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="type"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_blacklist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_content_filter_edit.htm b/interface/web/themes/default-304/templates/mail/mail_content_filter_edit.htm deleted file mode 100644 index 8dc53e16ab..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_content_filter_edit.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_content_filter"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="pattern">{tmpl_var name='pattern_txt'}</label> - <input name="pattern" id="pattern" value="{tmpl_var name='pattern'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="action">{tmpl_var name='action_txt'}</label> - <select name="action" id="action" class="selectInput"> - {tmpl_var name='action'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_content_filter_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_content_filter_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_content_filter_list.htm b/interface/web/themes/default-304/templates/mail/mail_content_filter_list.htm deleted file mode 100644 index fda80a6cc1..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_content_filter_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_content_filter"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_content_filter_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_pattern" scope="col"><tmpl_var name="pattern_txt"></th> - <th class="tbl_col_action" scope="col"><tmpl_var name="action_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_pattern"><input type="text" name="search_pattern" value="{tmpl_var name='search_pattern'}" /></td> - <td class="tbl_col_action"><select name="search_action">{tmpl_var name='search_action'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_content_filter_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_content_filter_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_content_filter_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_pattern"><a href="#" onClick="loadContent('mail/mail_content_filter_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="pattern"}</a></td> - <td class="tbl_col_action"><a href="#" onClick="loadContent('mail/mail_content_filter_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="action"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_content_filter_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_domain_admin_list.htm b/interface/web/themes/default-304/templates/mail/mail_domain_admin_list.htm deleted file mode 100644 index 4b26fb14c7..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_domain_admin_list.htm +++ /dev/null @@ -1,58 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_mail_domain_admin"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_domain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_domain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_sys_groupid"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_domain_catchall_edit.htm b/interface/web/themes/default-304/templates/mail/mail_domain_catchall_edit.htm deleted file mode 100644 index b6b9223fcf..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_domain_catchall_edit.htm +++ /dev/null @@ -1,36 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_domain_catchall"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='email_txt'}</p> - <div class="multiField"> - <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> - <label for="email_domain" class="blockLabel">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <input name="destination" id="destination" value="{tmpl_var name='destination'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="catchall"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_domain_catchall_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_domain_catchall_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_domain_catchall_list.htm b/interface/web/themes/default-304/templates/mail/mail_domain_catchall_list.htm deleted file mode 100644 index d608425ddb..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_domain_catchall_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_domain_catchall"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_domain_catchall_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> - <th class="tbl_col_destination" scope="col"><tmpl_var name="destination_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> - <td class="tbl_col_destination"><input type="text" name="search_destination" value="{tmpl_var name='search_destination'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_domain_catchall_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_domain_catchall_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_domain_catchall_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> - <td class="tbl_col_destination"><a href="#" onClick="loadContent('mail/mail_domain_catchall_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="destination"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_domain_catchall_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_domain_edit.htm b/interface/web/themes/default-304/templates/mail/mail_domain_edit.htm deleted file mode 100644 index b84e2d61cb..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_domain_edit.htm +++ /dev/null @@ -1,73 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> - <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='server_id'} - </select> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> - <tmpl_else> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <tmpl_if name="domain_option"> - <select name="domain" id="domain" class="selectInput"> - {tmpl_var name='domain_option'} - </select> - <tmpl_else> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="policy">{tmpl_var name='policy_txt'}</label> - <select name="policy" id="policy" class="selectInput"> - {tmpl_var name='policy'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="local"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_domain_list.htm b/interface/web/themes/default-304/templates/mail/mail_domain_list.htm deleted file mode 100644 index 958f743004..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_domain_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_domain"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_domain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_domain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_forward_edit.htm b/interface/web/themes/default-304/templates/mail/mail_forward_edit.htm deleted file mode 100644 index d0a85033f6..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_forward_edit.htm +++ /dev/null @@ -1,37 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_forward"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label"><em>*</em> {tmpl_var name='email_txt'}</p> - <div class="multiField"> - <label for="email_local_part" class="blockLabel">Alias<input type="text" id="email_local_part" name="email_local_part" size="20" value="{tmpl_var name='email_local_part'}" class="textInput" /></label> - <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> - <label for="email_domain" class="blockLabel">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <textarea rows="10" cols="40" name="destination" id="destination" type="text" class="textInput">{tmpl_var name='destination'}</textarea> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="forward"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_forward_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_forward_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_forward_list.htm b/interface/web/themes/default-304/templates/mail/mail_forward_list.htm deleted file mode 100644 index 24a0538802..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_forward_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_forward"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_forward_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> - <th class="tbl_col_destination" scope="col"><tmpl_var name="destination_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> - <td class="tbl_col_destination"><input type="text" name="search_destination" value="{tmpl_var name='search_destination'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_forward_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_forward_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_forward_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> - <td class="tbl_col_destination"><a href="#" onClick="loadContent('mail/mail_forward_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="destination"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_forward_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_get_edit.htm b/interface/web/themes/default-304/templates/mail/mail_get_edit.htm deleted file mode 100644 index 1ba3f9e8f1..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_get_edit.htm +++ /dev/null @@ -1,60 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_get"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="source_server">{tmpl_var name='source_server_txt'}</label> - <input name="source_server" id="source_server" value="{tmpl_var name='source_server'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="source_username">{tmpl_var name='source_username_txt'}</label> - <input name="source_username" id="source_username" value="{tmpl_var name='source_username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="source_password">{tmpl_var name='source_password_txt'}</label> - <input name="source_password" id="source_password" value="{tmpl_var name='source_password'}" size="30" maxlength="255" type="password" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='source_delete_txt'}</p> - <div class="multiField"> - {tmpl_var name='source_delete'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='source_read_all_txt'}</p> - <div class="multiField"> - {tmpl_var name='source_read_all'} - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <select name="destination" id="destination" class="selectInput"> - {tmpl_var name='destination'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_get_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_get_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_get_list.htm b/interface/web/themes/default-304/templates/mail/mail_get_list.htm deleted file mode 100644 index 2997bf77c5..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_get_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_get"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_get_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_source_server" scope="col"><tmpl_var name="source_server_txt"></th> - <th class="tbl_col_source_username" scope="col"><tmpl_var name="source_username_txt"></th> - <th class="tbl_col_destination" scope="col"><tmpl_var name="destination_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_source_server"><input type="text" name="search_source_server" value="{tmpl_var name='search_source_server'}" /></td> - <td class="tbl_col_source_username"><input type="text" name="search_source_username" value="{tmpl_var name='search_source_username'}" /></td> - <td class="tbl_col_destination"><input type="text" name="search_destination" value="{tmpl_var name='search_destination'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_get_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_get_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_get_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_source_server"><a href="#" onClick="loadContent('mail/mail_get_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source_server"}</a></td> - <td class="tbl_col_source_username"><a href="#" onClick="loadContent('mail/mail_get_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source_username"}</a></td> - <td class="tbl_col_destination"><a href="#" onClick="loadContent('mail/mail_get_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="destination"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_get_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_mailinglist_edit.htm b/interface/web/themes/default-304/templates/mail/mail_mailinglist_edit.htm deleted file mode 100644 index 04964c70e2..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_mailinglist_edit.htm +++ /dev/null @@ -1,86 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_mailinglist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Mailing List</legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - - <tmpl_if name="edit_disabled"> - <div class="ctrlHolder"> - <label for="domain_disabled">{tmpl_var name='domain_txt'}</label> - <select name="domain_disabled" id="domain_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='domain_option'} - </select> - <input type="hidden" name="domain" value="{tmpl_var name='domain_value'}" /> - </div> - - <div class="ctrlHolder"> - <label for="listname_disabled">{tmpl_var name='listname_txt'}</label> - <input name="listname_disabled" id="listname_disabled" value="{tmpl_var name='listname'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" /> - <input type="hidden" name="listname" value="{tmpl_var name='listname_value'}" /> - </div> - <div class="ctrlHolder"> - <label for="email_disabled">{tmpl_var name='email_txt'}</label> - <input name="email_disabled" id="email_disabled" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" /> - <input type="hidden" name="email" value="{tmpl_var name='email_value'}" /> - </div> - <tmpl_else> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <select name="domain" id="domain" class="selectInput"> - {tmpl_var name='domain_option'} - </select> - </div> - <div class="ctrlHolder"> - <label for="listname">{tmpl_var name='listname_txt'}</label> - <input name="listname" id="listname" value="{tmpl_var name='listname'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_mailinglist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_mailinglist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/mail/mail_mailinglist_list.htm b/interface/web/themes/default-304/templates/mail/mail_mailinglist_list.htm deleted file mode 100644 index cbb572f746..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_mailinglist_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_mail_mailinglist"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_mailinglist_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_listname" scope="col"><tmpl_var name="listname_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_listname"><input type="text" name="search_listname" value="{tmpl_var name='search_listname'}" /></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_mailinglist_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_listname"><a href="#" onClick="loadContent('mail/mail_mailinglist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="listname"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_mailinglist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <tmpl_if name="mailmailinglist_link"><a class="icons16 icoWebmailer" href="mail/mailinglist.php?id={tmpl_var name='id'}" target="mailmailinglist"><span>{tmpl_var name='delete_txt'}</span></a></tmpl_if> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_mailinglist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_relay_recipient_edit.htm b/interface/web/themes/default-304/templates/mail/mail_relay_recipient_edit.htm deleted file mode 100644 index 60ac345134..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_relay_recipient_edit.htm +++ /dev/null @@ -1,35 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_relay_recipient"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Relay recipient</legend> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="source">{tmpl_var name='source_txt'}</label> - <input name="source" id="source" value="{tmpl_var name='source'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="access" value="OK"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_relay_recipient_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_relay_recipient_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_relay_recipient_list.htm b/interface/web/themes/default-304/templates/mail/mail_relay_recipient_list.htm deleted file mode 100644 index 7aeb45f7dc..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_relay_recipient_list.htm +++ /dev/null @@ -1,55 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_mail_relay_recipient"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_relay_recipient_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_relay_recipient_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_relay_recipient_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_transport_edit.htm b/interface/web/themes/default-304/templates/mail/mail_transport_edit.htm deleted file mode 100644 index 0bb8dfaf37..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_transport_edit.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_transport"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput formLengthHalf"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='mx_txt'}</p> - <div class="multiField"> - <input type="checkbox" value="y" id="mx" name="mx" {tmpl_var name='mx'} /> - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <input name="destination" id="transport" value="{tmpl_var name='destination'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="sort_order">{tmpl_var name='sort_order_txt'}</label> - <select name="sort_order" id="sort_order" class="selectInput formLengthHalf"> - {tmpl_var name='sort_order'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_transport_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_transport_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_transport_list.htm b/interface/web/themes/default-304/templates/mail/mail_transport_list.htm deleted file mode 100644 index 3f56fb5d23..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_transport_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_transport"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_transport_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_transport" scope="col"><tmpl_var name="transport_txt"></th> - <th class="tbl_col_sort_order" scope="col"><tmpl_var name="sort_order_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_transport"><input type="text" name="search_transport" value="{tmpl_var name='search_transport'}" /></td> - <td class="tbl_col_sort_order"><input type="text" name="search_sort_order" value="{tmpl_var name='search_sort_order'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_transport_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_transport_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_transport_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_transport_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_transport"><a href="#" onClick="loadContent('mail/mail_transport_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="transport"}</a></td> - <td class="tbl_col_sort_order"><a href="#" onClick="loadContent('mail/mail_transport_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sort_order"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_transport_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_autoresponder_edit.htm b/interface/web/themes/default-304/templates/mail/mail_user_autoresponder_edit.htm deleted file mode 100644 index da6edd48df..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_autoresponder_edit.htm +++ /dev/null @@ -1,44 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="autoresponder_subject">{tmpl_var name='autoresponder_subject_txt'}</label> - <input type="text" name="autoresponder_subject" id="autoresponder_subject" maxlength='250' value="{tmpl_var name='autoresponder_subject'}" /> - </div> - <div class="ctrlHolder"> - <label for="autoresponder_text">{tmpl_var name='autoresponder_text_txt'}</label> - <textarea name="autoresponder_text" id="autoresponder_text" rows='15' cols='30'>{tmpl_var name='autoresponder_text'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="autoresponder">{tmpl_var name='autoresponder_active'}</label> - <input type="checkbox" value="y" id="autoresponder" name="autoresponder" - onclick="AR_ResetDates();" {tmpl_var name='ar_active'} /> - </div> - <div class="ctrlHolder"> - <label for="autoresponder_start_date">{tmpl_var name='autoresponder_start_date_txt'}</label> - {tmpl_var name='autoresponder_start_date'} - <a href="javascript:AR_SetNow();">{tmpl_var name='now_txt'}</a> - </div> - <div class="ctrlHolder"> - <label for="autoresponder_end_date">{tmpl_var name='autoresponder_end_date_txt'}</label> - {tmpl_var name='autoresponder_end_date'} - </div> - </fieldset> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" - value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_user_edit.php');"> - <span>{tmpl_var name='btn_save_txt'}</span> - </button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" - onClick="loadContent('mail/mail_user_list.php');"> - <span>{tmpl_var name='btn_cancel_txt'}</span> - </button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_custom_rules_edit.htm b/interface/web/themes/default-304/templates/mail/mail_user_custom_rules_edit.htm deleted file mode 100644 index 78c87ebc04..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_custom_rules_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="custom_mailfilter">{tmpl_var name='custom_mailfilter_txt'}</label> - <textarea name="custom_mailfilter" id="custom_mailfilter" rows='15' cols='30'>{tmpl_var name='custom_mailfilter'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_filter_edit.htm b/interface/web/themes/default-304/templates/mail/mail_user_filter_edit.htm deleted file mode 100644 index 694b618765..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_filter_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_user_filter"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="rulename" class="wf_preField">{tmpl_var name='rulename_txt'}</label> - <input type="text" id="rulename" name="rulename" value="{tmpl_var name='rulename'}" size="30" maxlength="255" class="textInput"> - </div> - <div class="ctrlHolder"> - <label for="source" class="wf_preField">{tmpl_var name='source_txt'}</label> - <select id="source" name="source" class="textInput formLengthHalf">{tmpl_var name='source'}</select> - <select id="op" name="op" class="textInput formLengthHalf">{tmpl_var name='op'}</select> - <input type="text" id="searchterm" name="searchterm" value="{tmpl_var name='searchterm'}" size="30" maxlength="255" class="textInput"> - </div> - <div class="ctrlHolder"> - <label for="action" class="wf_preField">{tmpl_var name='action_txt'}</label> - <select id="action" name="action" class="textInput formLengthHalf">{tmpl_var name='action'}</select> - <input type="text" id="target" name="target" value="{tmpl_var name='target'}" size="30" maxlength="255" class="textInput formLengthHalf"> - </div> - <div class="ctrlHolder"> - <label for="active" class="wf_preField">{tmpl_var name='active_txt'}</label> - <span class="">{tmpl_var name='active'}</span> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="mailuser_id" type="hidden" value="{tmpl_var name='mailuser_id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_user_filter_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='mailuser_id'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_filter_list.htm b/interface/web/themes/default-304/templates/mail/mail_user_filter_list.htm deleted file mode 100644 index f270944bbe..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_filter_list.htm +++ /dev/null @@ -1,44 +0,0 @@ - -<div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_user_filter_edit.php?mailuser_id={tmpl_var name='parent_id'}');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> -</div> - -<div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_rulename" scope="col"><tmpl_var name="rulename_txt"></th> - <th class="tbl_col_buttons" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_rulename"><input type="text" name="search_rulename" value="{tmpl_var name='search_rulename'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="changeTab('filter_records','mail/mail_user_edit.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_rulename"><a href="#" onClick="loadContent('mail/mail_user_filter_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="rulename"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_user_filter_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_list.htm b/interface/web/themes/default-304/templates/mail/mail_user_list.htm deleted file mode 100644 index 8e1dda458b..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_list.htm +++ /dev/null @@ -1,66 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_user"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_email" scope="col"><tmpl_var name="email_txt"></th> - <tmpl_if name="enable_custom_login"><th class="tbl_col_login" scope="col"><tmpl_var name="login_txt"></th></tmpl_if> - <th class="tbl_col_name" scope="col"><tmpl_var name="name_txt"></th> - <th class="tbl_col_autoresponder" scope="col"><tmpl_var name="autoresponder_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_email"><input type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> - <td class="tbl_col_name"><input type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> - <tmpl_if name="enable_custom_login"><td class="tbl_col_login"><input type="text" name="search_login" value="{tmpl_var name='search_login'}" /></td></tmpl_if> - <td class="tbl_col_autoresponder"><select name="search_autoresponder">{tmpl_var name='search_autoresponder'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_email"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="email"}</a></td> - <tmpl_if name="enable_custom_login"> - <td class="tbl_col_login"> - <a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="login"}</a> - </td> - </tmpl_if> - <td class="tbl_col_name"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="name"}</a></td> - <td class="tbl_col_autoresponder"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="autoresponder"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <tmpl_if name="mailboxlist_webmail_link"> - <a class="icons16 icoWebmailer" href="mail/webmailer.php?id={tmpl_var name='id'}" target="webmail"><span>{tmpl_var name='delete_txt'}</span></a> - </tmpl_if> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="<tmpl_if name="enable_custom_login">5<tmpl_else>4</tmpl_if>"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_mailbox_edit.htm b/interface/web/themes/default-304/templates/mail/mail_user_mailbox_edit.htm deleted file mode 100644 index bb1dd37ba0..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_mailbox_edit.htm +++ /dev/null @@ -1,81 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput" /> {tmpl_var name='name_optional_txt'} - </div> - <div class="ctrlHolder"> - <p class="label"><em>*</em> {tmpl_var name='email_txt'}</p> - <div class="multiField"> - <label for="email_local_part" class="blockLabel formLengthEmailDomain">Alias<input type="text" id="email_local_part" name="email_local_part" size="20" value="{tmpl_var name='email_local_part'}" class="textInput" /></label> - <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> - <label for="email_domain" class="blockLabel formLengthEmailDomain">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> - </div> - </div> - <tmpl_if name="enable_custom_login"><div class="ctrlHolder"> - <label for="login">{tmpl_var name='login_txt'}</label> - <input type="text" id="login" name="login" size="20" value="{tmpl_var name='login'}" class="textInput" /></label> - </div></tmpl_if> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="quota">{tmpl_var name='quota_txt'}</label> - <input name="quota" id="quota" value="{tmpl_var name='quota'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /><p class="label">MB</p> - </div> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='cc_txt'}</label> - <input name="cc" id="cc" value="{tmpl_var name='cc'}" size="30" maxlength="255" type="text" class="textInput" /> {tmpl_var name='name_optional_txt'} - </div> - <div class="ctrlHolder"> - <label for="policy">{tmpl_var name='policy_txt'}</label> - <select name="policy" id="policy" class="selectInput"> - {tmpl_var name='policy'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='postfix_txt'}</p> - <div class="multiField"> - {tmpl_var name='postfix'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='disableimap_txt'}</p> - <div class="multiField"> - {tmpl_var name='disableimap'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='disablepop3_txt'}</p> - <div class="multiField"> - {tmpl_var name='disablepop3'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_mailfilter_edit.htm b/interface/web/themes/default-304/templates/mail/mail_user_mailfilter_edit.htm deleted file mode 100644 index ef053c9367..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_mailfilter_edit.htm +++ /dev/null @@ -1,26 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='move_junk_txt'}</p> - <div class="multiField"> - {tmpl_var name='move_junk'} - </div> - </div> - </fieldset> - - {tmpl_var name='filter_records'} - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_user_stats_list.htm b/interface/web/themes/default-304/templates/mail/mail_user_stats_list.htm deleted file mode 100644 index 2000f34b46..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_user_stats_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_user_stats"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_email" scope="col"><tmpl_var name="email_txt"></th> - <th class="tbl_col_mail_traffic_this_month" scope="col"><tmpl_var name="this_month_txt"></th> - <th class="tbl_col_mail_traffic_last_month" scope="col"><tmpl_var name="last_month_txt"></th> - <th class="tbl_col_mail_traffic_this_year" scope="col"><tmpl_var name="this_year_txt"></th> - <th class="tbl_col_mail_traffic_last_year" scope="col"><tmpl_var name="last_year_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_email"><input type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> - <td class="tbl_col_this_month"></td> - <td class="tbl_col_last_month"></td> - <td class="tbl_col_this_year"></td> - <td class="tbl_col_last_year"></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_user_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_email"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="email"}</a></td> - <td class="tbl_col_this_month"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_month"} MB</a></td> - <td class="tbl_col_last_month"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_month"} MB</a></td> - <td class="tbl_col_this_year"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_year"} MB</a></td> - <td class="tbl_col_last_year"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_year"} MB</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_whitelist_edit.htm b/interface/web/themes/default-304/templates/mail/mail_whitelist_edit.htm deleted file mode 100644 index cf2aeb596b..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_whitelist_edit.htm +++ /dev/null @@ -1,41 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_whitelist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="source">{tmpl_var name='source_txt'}</label> - <input name="source" id="source" value="{tmpl_var name='source'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="access" type="hidden" value="{tmpl_var name='access'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_whitelist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_whitelist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/mail_whitelist_list.htm b/interface/web/themes/default-304/templates/mail/mail_whitelist_list.htm deleted file mode 100644 index 219345fe08..0000000000 --- a/interface/web/themes/default-304/templates/mail/mail_whitelist_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_whitelist"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_whitelist_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> - <th class="tbl_col_type" scope="col"><tmpl_var name="type_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> - <td class="tbl_col_type"><select name="search_type">{tmpl_var name='search_type'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_whitelist_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> - <td class="tbl_col_type"><a href="#" onClick="loadContent('mail/mail_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="type"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_whitelist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_blacklist_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_blacklist_edit.htm deleted file mode 100644 index 34c2249d4b..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_blacklist_edit.htm +++ /dev/null @@ -1,49 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_blacklist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <!-- - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - --> - <div class="ctrlHolder"> - <label for="rid">{tmpl_var name='rid_txt'}</label> - <select name="rid" id="rid" class="selectInput"> - {tmpl_var name='rid'} - </select> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="priority">{tmpl_var name='priority_txt'}</label> - <select name="priority" id="priority" class="selectInput formLengthHalf"> - {tmpl_var name='priority'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="wb" value="{tmpl_var name='wb'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_blacklist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_blacklist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_blacklist_list.htm b/interface/web/themes/default-304/templates/mail/spamfilter_blacklist_list.htm deleted file mode 100644 index 8a05d36a00..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_blacklist_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_spamfilter_blacklist"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/spamfilter_blacklist_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_priority" scope="col"><tmpl_var name="priority_txt"></th> - <th class="tbl_col_rid" scope="col"><tmpl_var name="rid_txt"></th> - <th class="tbl_col_email" scope="col"><tmpl_var name="email_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_priority"><select name="search_priority">{tmpl_var name='search_priority'}</select></td> - <td class="tbl_col_rid"><select name="search_rid">{tmpl_var name='search_rid'}</select></td> - <td class="tbl_col_email"><input type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/spamfilter_blacklist_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/spamfilter_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/spamfilter_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_priority"><a href="#" onClick="loadContent('mail/spamfilter_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="priority"}</a></td> - <td class="tbl_col_rid"><a href="#" onClick="loadContent('mail/spamfilter_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="rid"}</a></td> - <td class="tbl_col_email"><a href="#" onClick="loadContent('mail/spamfilter_blacklist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="email"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/spamfilter_blacklist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_config_getmail_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_config_getmail_edit.htm deleted file mode 100644 index 2b3c85a513..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_config_getmail_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_config"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_spamfilter_config"> - <span class="wf_oneField"> - <label for="getmail_config_dir" class="wf_preField">{tmpl_var name='getmail_config_dir_txt'}</label> - <input type="text" id="getmail_config_dir" name="getmail_config_dir" value="{tmpl_var name='getmail_config_dir'}" size="40" maxlength="255"> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_config_list.htm b/interface/web/themes/default-304/templates/mail/spamfilter_config_list.htm deleted file mode 100644 index b84a77f9aa..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_config_list.htm +++ /dev/null @@ -1,51 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_spamfilter_config"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/spamfilter_config_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_server_name" scope="col"><tmpl_var name="server_name_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_server_name"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/spamfilter_config_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_server_name"><a href="#" onClick="loadContent('mail/spamfilter_config_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/spamfilter_config_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="2"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_config_mail_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_config_mail_edit.htm deleted file mode 100644 index 524c9804b0..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_config_mail_edit.htm +++ /dev/null @@ -1,66 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_config"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_spamfilter_config"> - <span class="wf_oneField"> - <label for="module" class="wf_preField">{tmpl_var name='module_txt'}</label> - <select id="module" name="module">{tmpl_var name='module'}</select> - </span> - <span class="wf_oneField"> - <label for="maildir_path" class="wf_preField">{tmpl_var name='maildir_path_txt'}</label> - <input type="text" id="maildir_path" name="maildir_path" value="{tmpl_var name='maildir_path'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="homedir_path" class="wf_preField">{tmpl_var name='homedir_path_txt'}</label> - <input type="text" id="homedir_path" name="homedir_path" value="{tmpl_var name='homedir_path'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_uid" class="wf_preField">{tmpl_var name='mailuser_uid_txt'}</label> - <input type="text" id="mailuser_uid" name="mailuser_uid" value="{tmpl_var name='mailuser_uid'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_gid" class="wf_preField">{tmpl_var name='mailuser_gid_txt'}</label> - <input type="text" id="mailuser_gid" name="mailuser_gid" value="{tmpl_var name='mailuser_gid'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_name" class="wf_preField">{tmpl_var name='mailuser_name_txt'}</label> - <input type="text" id="mailuser_name" name="mailuser_name" value="{tmpl_var name='mailuser_name'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_group" class="wf_preField">{tmpl_var name='mailuser_group_txt'}</label> - <input type="text" id="mailuser_group" name="mailuser_group" value="{tmpl_var name='mailuser_group'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="relayhost" class="wf_preField">{tmpl_var name='relayhost_txt'}</label> - <input type="text" id="relayhost" name="relayhost" value="{tmpl_var name='relayhost'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="relayhost_user" class="wf_preField">{tmpl_var name='relayhost_user_txt'}</label> - <input type="text" id="relayhost_user" name="relayhost_user" value="{tmpl_var name='relayhost_user'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="relayhost_password" class="wf_preField">{tmpl_var name='relayhost_password_txt'}</label> - <input type="text" id="relayhost_password" name="relayhost_password" value="{tmpl_var name='relayhost_password'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailbox_size_limit" class="wf_preField">{tmpl_var name='mailbox_size_limit_txt'}</label> - <input type="text" id="mailbox_size_limit" name="mailbox_size_limit" value="{tmpl_var name='mailbox_size_limit'}" size="10" maxlength="15"> - </span> - <span class="wf_oneField"> - <label for="message_size_limit" class="wf_preField">{tmpl_var name='message_size_limit_txt'}</label> - <input type="text" id="message_size_limit" name="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="15"> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_config_server_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_config_server_edit.htm deleted file mode 100644 index 6cdca69f3c..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_config_server_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_config"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_spamfilter_config"> - <span class="wf_oneField"> - <label for="ip_address" class="wf_preField">{tmpl_var name='ip_address_txt'}</label> - <input type="text" id="ip_address" name="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="netmask" class="wf_preField">{tmpl_var name='netmask_txt'}</label> - <input type="text" id="netmask" name="netmask" value="{tmpl_var name='netmask'}" size="15" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="gateway" class="wf_preField">{tmpl_var name='gateway_txt'}</label> - <input type="text" id="gateway" name="gateway" value="{tmpl_var name='gateway'}" size="15" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="hostname" class="wf_preField">{tmpl_var name='hostname_txt'}</label> - <input type="text" id="hostname" name="hostname" value="{tmpl_var name='hostname'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="nameservers" class="wf_preField">{tmpl_var name='nameservers_txt'}</label> - <input type="text" id="nameservers" name="nameservers" value="{tmpl_var name='nameservers'}" size="40" maxlength="255"> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_other_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_other_edit.htm deleted file mode 100644 index 518be5f477..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_other_edit.htm +++ /dev/null @@ -1,80 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="addr_extension_virus">{tmpl_var name='addr_extension_virus_txt'}</label> - <input name="addr_extension_virus" id="addr_extension_virus" value="{tmpl_var name='addr_extension_virus'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="addr_extension_spam">{tmpl_var name='addr_extension_spam_txt'}</label> - <input name="addr_extension_spam" id="addr_extension_spam" value="{tmpl_var name='addr_extension_spam'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="addr_extension_banned">{tmpl_var name='addr_extension_banned_txt'}</label> - <input name="addr_extension_banned" id="addr_extension_banned" value="{tmpl_var name='addr_extension_banned'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="addr_extension_bad_header">{tmpl_var name='addr_extension_bad_header_txt'}</label> - <input name="addr_extension_bad_header" id="addr_extension_bad_header" value="{tmpl_var name='addr_extension_bad_header'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="warnvirusrecip">{tmpl_var name='warnvirusrecip_txt'}</label> - <select name="warnvirusrecip" id="warnvirusrecip" class="selectInput formLengthBool"> - {tmpl_var name='warnvirusrecip'} - </select> - </div> - <div class="ctrlHolder"> - <label for="warnbannedrecip">{tmpl_var name='warnbannedrecip_txt'}</label> - <select name="warnbannedrecip" id="warnbannedrecip" class="selectInput formLengthBool"> - {tmpl_var name='warnbannedrecip'} - </select> - </div> - <div class="ctrlHolder"> - <label for="warnbadhrecip">{tmpl_var name='warnbadhrecip_txt'}</label> - <select name="warnbadhrecip" id="warnbadhrecip" class="selectInput formLengthBool"> - {tmpl_var name='warnbadhrecip'} - </select> - </div> - <div class="ctrlHolder"> - <label for="newvirus_admin">{tmpl_var name='newvirus_admin_txt'}</label> - <input name="newvirus_admin" id="newvirus_admin" value="{tmpl_var name='newvirus_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="virus_admin">{tmpl_var name='virus_admin_txt'}</label> - <input name="virus_admin" id="virus_admin" value="{tmpl_var name='virus_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="banned_admin">{tmpl_var name='banned_admin_txt'}</label> - <input name="banned_admin" id="banned_admin" value="{tmpl_var name='banned_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bad_header_admin">{tmpl_var name='bad_header_admin_txt'}</label> - <input name="bad_header_admin" id="bad_header_admin" value="{tmpl_var name='bad_header_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="spam_admin">{tmpl_var name='spam_admin_txt'}</label> - <input name="spam_admin" id="spam_admin" value="{tmpl_var name='spam_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="message_size_limit">{tmpl_var name='message_size_limit_txt'}</label> - <input name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> Bytes - </div> - <div class="ctrlHolder"> - <label for="banned_rulenames">{tmpl_var name='banned_rulenames_txt'}</label> - <input name="banned_rulenames" id="banned_rulenames" value="{tmpl_var name='banned_rulenames'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_policy_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_policy_edit.htm deleted file mode 100644 index 7279f0a68f..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_policy_edit.htm +++ /dev/null @@ -1,64 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="policy_name">{tmpl_var name='policy_name_txt'}</label> - <input name="policy_name" id="policy_name" value="{tmpl_var name='policy_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="virus_lover">{tmpl_var name='virus_lover_txt'}</label> - <select name="virus_lover" id="virus_lover" class="selectInput formLengthBool"> - {tmpl_var name='virus_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="spam_lover">{tmpl_var name='spam_lover_txt'}</label> - <select name="spam_lover" id="spam_lover" class="selectInput formLengthBool"> - {tmpl_var name='spam_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="banned_files_lover">{tmpl_var name='banned_files_lover_txt'}</label> - <select name="banned_files_lover" id="banned_files_lover" class="selectInput formLengthBool"> - {tmpl_var name='banned_files_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bad_header_lover">{tmpl_var name='bad_header_lover_txt'}</label> - <select name="bad_header_lover" id="bad_header_lover" class="selectInput formLengthBool"> - {tmpl_var name='bad_header_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bypass_virus_checks">{tmpl_var name='bypass_virus_checks_txt'}</label> - <select name="bypass_virus_checks" id="bypass_virus_checks" class="selectInput formLengthBool"> - {tmpl_var name='bypass_virus_checks'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bypass_banned_checks">{tmpl_var name='bypass_banned_checks_txt'}</label> - <select name="bypass_banned_checks" id="bypass_banned_checks" class="selectInput formLengthBool"> - {tmpl_var name='bypass_banned_checks'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bypass_header_checks">{tmpl_var name='bypass_header_checks_txt'}</label> - <select name="bypass_header_checks" id="bypass_header_checks" class="selectInput formLengthBool"> - {tmpl_var name='bypass_header_checks'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_policy_list.htm b/interface/web/themes/default-304/templates/mail/spamfilter_policy_list.htm deleted file mode 100644 index 48d323f775..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_policy_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_spamfilter_policy"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/spamfilter_policy_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_policy_name" scope="col"><tmpl_var name="policy_name_txt"></th> - <th class="tbl_col_virus_lover" scope="col"><tmpl_var name="virus_lover_txt"></th> - <th class="tbl_col_spam_lover" scope="col"><tmpl_var name="spam_lover_txt"></th> - <th class="tbl_col_banned_files_lover" scope="col"><tmpl_var name="banned_files_lover_txt"></th> - <th class="tbl_col_bad_header_lover" scope="col"><tmpl_var name="bad_header_lover_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_policy_name"><input type="text" name="search_policy_name" value="{tmpl_var name='search_policy_name'}" /></td> - <td class="tbl_col_virus_lover"><select name="search_virus_lover">{tmpl_var name='search_virus_lover'}</select></td> - <td class="tbl_col_spam_lover"><select name="search_spam_lover">{tmpl_var name='search_spam_lover'}</select></td> - <td class="tbl_col_banned_files_lover"><select name="search_banned_files_lover">{tmpl_var name='search_banned_files_lover'}</select></td> - <td class="tbl_col_bad_header_lover"><select name="search_bad_header_lover">{tmpl_var name='search_bad_header_lover'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/spamfilter_policy_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_policy_name"><a href="#" onClick="loadContent('mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="policy_name"}</a></td> - <td class="tbl_col_virus_lover"><a href="#" onClick="loadContent('mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="virus_lover"}</a></td> - <td class="tbl_col_spam_lover"><a href="#" onClick="loadContent('mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="spam_lover"}</a></td> - <td class="tbl_col_banned_files_lover"><a href="#" onClick="loadContent('mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="banned_files_lover"}</a></td> - <td class="tbl_col_bad_header_lover"><a href="#" onClick="loadContent('mail/spamfilter_policy_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="bad_header_lover"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/spamfilter_policy_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_quarantine_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_quarantine_edit.htm deleted file mode 100644 index 98e9c3e4b1..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_quarantine_edit.htm +++ /dev/null @@ -1,44 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="virus_quarantine_to">{tmpl_var name='virus_quarantine_to_txt'}</label> - <input name="virus_quarantine_to" id="virus_quarantine_to" value="{tmpl_var name='virus_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="spam_quarantine_to">{tmpl_var name='spam_quarantine_to_txt'}</label> - <input name="spam_quarantine_to" id="spam_quarantine_to" value="{tmpl_var name='spam_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="banned_quarantine_to">{tmpl_var name='banned_quarantine_to_txt'}</label> - <input name="banned_quarantine_to" id="banned_quarantine_to" value="{tmpl_var name='banned_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bad_header_quarantine_to">{tmpl_var name='bad_header_quarantine_to_txt'}</label> - <input name="bad_header_quarantine_to" id="bad_header_quarantine_to" value="{tmpl_var name='bad_header_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <!-- - <div class="ctrlHolder"> - <label for="clean_quarantine_to">{tmpl_var name='clean_quarantine_to_txt'}</label> - <input name="clean_quarantine_to" id="clean_quarantine_to" value="{tmpl_var name='clean_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="other_quarantine_to">{tmpl_var name='other_quarantine_to_txt'}</label> - <input name="other_quarantine_to" id="other_quarantine_to" value="{tmpl_var name='other_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - --> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_taglevel_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_taglevel_edit.htm deleted file mode 100644 index 34577c8794..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_taglevel_edit.htm +++ /dev/null @@ -1,52 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="spam_tag_level">{tmpl_var name='spam_tag_level_txt'}</label> - <input name="spam_tag_level" id="spam_tag_level" value="{tmpl_var name='spam_tag_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_tag2_level">{tmpl_var name='spam_tag2_level_txt'}</label> - <input name="spam_tag2_level" id="spam_tag2_level" value="{tmpl_var name='spam_tag2_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_kill_level">{tmpl_var name='spam_kill_level_txt'}</label> - <input name="spam_kill_level" id="spam_kill_level" value="{tmpl_var name='spam_kill_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_dsn_cutoff_level">{tmpl_var name='spam_dsn_cutoff_level_txt'}</label> - <input name="spam_dsn_cutoff_level" id="spam_dsn_cutoff_level" value="{tmpl_var name='spam_dsn_cutoff_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_quarantine_cutoff_level">{tmpl_var name='spam_quarantine_cutoff_level_txt'}</label> - <input name="spam_quarantine_cutoff_level" id="spam_quarantine_cutoff_level" value="{tmpl_var name='spam_quarantine_cutoff_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_modifies_subj">{tmpl_var name='spam_modifies_subj_txt'}</label> - <select name="spam_modifies_subj" id="spam_modifies_subj" class="selectInput formLengthBool"> - {tmpl_var name='spam_modifies_subj'} - </select> - </div> - <div class="ctrlHolder"> - <label for="spam_subject_tag">{tmpl_var name='spam_subject_tag_txt'}</label> - <input name="spam_subject_tag" id="spam_subject_tag" value="{tmpl_var name='spam_subject_tag'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="spam_subject_tag2">{tmpl_var name='spam_subject_tag2_txt'}</label> - <input name="spam_subject_tag2" id="spam_subject_tag2" value="{tmpl_var name='spam_subject_tag2'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_users_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_users_edit.htm deleted file mode 100644 index 7c96208536..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_users_edit.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_users"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="priority">{tmpl_var name='priority_txt'}</label> - <select name="priority" id="priority" class="selectInput formLengthLimit"> - {tmpl_var name='priority'} - </select> - </div> - <div class="ctrlHolder"> - <label for="policy_id">{tmpl_var name='policy_id_txt'}</label> - <select name="policy_id" id="policy_id" class="selectInput"> - {tmpl_var name='policy_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fullname">{tmpl_var name='fullname_txt'}</label> - <input name="fullname" id="fullname" value="{tmpl_var name='fullname'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="local">{tmpl_var name='local_txt'}</label> - <select name="local" id="local" class="selectInput formLengthBool"> - {tmpl_var name='local'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_users_list.htm b/interface/web/themes/default-304/templates/mail/spamfilter_users_list.htm deleted file mode 100644 index 280e7664f8..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_users_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_spamfilter_users"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/spamfilter_users_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_local" scope="col"><tmpl_var name="local_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_priority" scope="col"><tmpl_var name="priority_txt"></th> - <th class="tbl_col_policy_id" scope="col"><tmpl_var name="policy_id_txt"></th> - <th class="tbl_col_fullname" scope="col"><tmpl_var name="fullname_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_local"><select name="search_local">{tmpl_var name='search_local'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_priority"><select name="search_priority">{tmpl_var name='search_priority'}</select></td> - <td class="tbl_col_policy_id"><select name="search_policy_id">{tmpl_var name='search_policy_id'}</select></td> - <td class="tbl_col_fullname"><input type="text" name="search_fullname" value="{tmpl_var name='search_fullname'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/spamfilter_users_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_local"><a href="#" onClick="loadContent('mail/spamfilter_users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="local"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/spamfilter_users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_priority"><a href="#" onClick="loadContent('mail/spamfilter_users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="priority"}</a></td> - <td class="tbl_col_policy_id"><a href="#" onClick="loadContent('mail/spamfilter_users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="policy_id"}</a></td> - <td class="tbl_col_fullname"><a href="#" onClick="loadContent('mail/spamfilter_users_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="fullname"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/spamfilter_users_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_whitelist_edit.htm b/interface/web/themes/default-304/templates/mail/spamfilter_whitelist_edit.htm deleted file mode 100644 index 0d31b7af5c..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_whitelist_edit.htm +++ /dev/null @@ -1,49 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_whitelist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <!-- - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - --> - <div class="ctrlHolder"> - <label for="rid">{tmpl_var name='rid_txt'}</label> - <select name="rid" id="rid" class="selectInput"> - {tmpl_var name='rid'} - </select> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="priority">{tmpl_var name='priority_txt'}</label> - <select name="priority" id="priority" class="selectInput formLengthHalf"> - {tmpl_var name='priority'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="wb" value="{tmpl_var name='wb'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_whitelist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_whitelist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/spamfilter_whitelist_list.htm b/interface/web/themes/default-304/templates/mail/spamfilter_whitelist_list.htm deleted file mode 100644 index 6c7ff3d834..0000000000 --- a/interface/web/themes/default-304/templates/mail/spamfilter_whitelist_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_spamfilter_whitelist"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/spamfilter_whitelist_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_priority" scope="col"><tmpl_var name="priority_txt"></th> - <th class="tbl_col_rid" scope="col"><tmpl_var name="rid_txt"></th> - <th class="tbl_col_email" scope="col"><tmpl_var name="email_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_priority"><select name="search_priority">{tmpl_var name='search_priority'}</select></td> - <td class="tbl_col_rid"><select name="search_rid">{tmpl_var name='search_rid'}</select></td> - <td class="tbl_col_email"><input type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/spamfilter_whitelist_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/spamfilter_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/spamfilter_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_priority"><a href="#" onClick="loadContent('mail/spamfilter_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="priority"}</a></td> - <td class="tbl_col_rid"><a href="#" onClick="loadContent('mail/spamfilter_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="rid"}</a></td> - <td class="tbl_col_email"><a href="#" onClick="loadContent('mail/spamfilter_whitelist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="email"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mail/spamfilter_whitelist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mail/user_quota_stats_list.htm b/interface/web/themes/default-304/templates/mail/user_quota_stats_list.htm deleted file mode 100644 index b4f3c1e2f6..0000000000 --- a/interface/web/themes/default-304/templates/mail/user_quota_stats_list.htm +++ /dev/null @@ -1,52 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_user_quota_stats"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_email" scope="col"><tmpl_var name="email_txt"></th> - <th class="tbl_col_name" scope="col"><tmpl_var name="name_txt"></th> - <th class="" scope="col" style="text-align:right;"><tmpl_var name="used_txt"></th> - <th class="" scope="col" style="text-align:right;"><tmpl_var name="quota_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_domain"><input type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> - <td class="tbl_col_system_user"><input type="text" name="search_system_user" value="{tmpl_var name='search_name'}" /></td> - <td class="tbl_col_system_user"> </td> - <td class="tbl_col_system_user"> </td> - <td class="tbl_col_buttons"> - <div class="buttons"> - <button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/user_quota_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button> - </div> - </td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_email"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="email"}</a></td> - <td class="tbl_col_name"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="name"}</a></td> - <td class="tbl_col_used" style="text-align:right;"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="used"}</a></td> - <td class="tbl_col_limit" style="text-align:right;"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="quota"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/mailuser/index.htm b/interface/web/themes/default-304/templates/mailuser/index.htm deleted file mode 100644 index c320253e16..0000000000 --- a/interface/web/themes/default-304/templates/mailuser/index.htm +++ /dev/null @@ -1,34 +0,0 @@ -<h2><tmpl_var name="page_head_txt"></h2> -<p><tmpl_var name="page_desc_txt"></p> - -<div class="panel panel_mailuser"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='email_txt'}</p> - <p class="value">{tmpl_var name='email'}</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='login_txt'}</p> - <p class="value">{tmpl_var name='login'}</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='server_address_txt'}</p> - <p class="value">{tmpl_var name='server_name'}</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='quota_txt'}</p> - <p class="value">{tmpl_var name='quota'}</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='cc_txt'}</p> - <p class="value">{tmpl_var name='cc'}</p> - </div> - <div class="buttonHolder buttons"> - - </div> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mailuser/mail_user_autoresponder_edit.htm b/interface/web/themes/default-304/templates/mailuser/mail_user_autoresponder_edit.htm deleted file mode 100644 index 271fca1035..0000000000 --- a/interface/web/themes/default-304/templates/mailuser/mail_user_autoresponder_edit.htm +++ /dev/null @@ -1,37 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mailuser_autoresponder"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="autoresponder_subject">{tmpl_var name='autoresponder_subject_txt'}</label> - <input type="text" name="autoresponder_subject" id="autoresponder_subject" maxlength='250' value="{tmpl_var name='autoresponder_subject'}" /> - </div> - <div class="ctrlHolder"> - <label for="autoresponder_text">{tmpl_var name='autoresponder_text_txt'}</label> - <textarea name="autoresponder_text" id="autoresponder_text" rows='15' cols='30'>{tmpl_var name='autoresponder_text'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="autoresponder">{tmpl_var name='autoresponder_active'}</label> - <input type="checkbox" value="y" id="autoresponder" name="autoresponder" onclick="AR_ResetDates();" {tmpl_var name='ar_active'} /> - </div> - <div class="ctrlHolder"> - <label for="autoresponder_start_date">{tmpl_var name='autoresponder_start_date_txt'}</label> - {tmpl_var name='autoresponder_start_date'} - <a href="javascript:AR_SetNow();">{tmpl_var name='now_txt'}</a> - </div> - <div class="ctrlHolder"> - <label for="autoresponder_end_date">{tmpl_var name='autoresponder_end_date_txt'}</label> - {tmpl_var name='autoresponder_end_date'} - </div> - </fieldset> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mailuser/mail_user_autoresponder_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mailuser/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mailuser/mail_user_cc_edit.htm b/interface/web/themes/default-304/templates/mailuser/mail_user_cc_edit.htm deleted file mode 100644 index 089f824301..0000000000 --- a/interface/web/themes/default-304/templates/mailuser/mail_user_cc_edit.htm +++ /dev/null @@ -1,26 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mailuser_cc"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='email_txt'}</p> - <p class="value">{tmpl_var name='email'}</p> - </div> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='cc_txt'}</label> - <input name="cc" id="cc" value="{tmpl_var name='cc'}" size="30" maxlength="255" type="text" class="textInput" /> {tmpl_var name='name_optional_txt'} - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mailuser/mail_user_cc_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mailuser/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mailuser/mail_user_filter_edit.htm b/interface/web/themes/default-304/templates/mailuser/mail_user_filter_edit.htm deleted file mode 100644 index a9113c2f65..0000000000 --- a/interface/web/themes/default-304/templates/mailuser/mail_user_filter_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mailuser_filter"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="rulename" class="wf_preField">{tmpl_var name='rulename_txt'}</label> - <input type="text" id="rulename" name="rulename" value="{tmpl_var name='rulename'}" size="30" maxlength="255" class="textInput"> - </div> - <div class="ctrlHolder"> - <label for="source" class="wf_preField">{tmpl_var name='source_txt'}</label> - <select id="source" name="source" class="textInput formLengthHalf">{tmpl_var name='source'}</select> - <select id="op" name="op" class="textInput formLengthHalf">{tmpl_var name='op'}</select> - <input type="text" id="searchterm" name="searchterm" value="{tmpl_var name='searchterm'}" size="30" maxlength="255" class="textInput"> - </div> - <div class="ctrlHolder"> - <label for="action" class="wf_preField">{tmpl_var name='action_txt'}</label> - <select id="action" name="action" class="textInput formLengthHalf">{tmpl_var name='action'}</select> - <input type="text" id="target" name="target" value="{tmpl_var name='target'}" size="30" maxlength="255" class="textInput formLengthHalf"> - </div> - <div class="ctrlHolder"> - <label for="active" class="wf_preField">{tmpl_var name='active_txt'}</label> - <span class="">{tmpl_var name='active'}</span> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="mailuser_id" type="hidden" value="{tmpl_var name='mailuser_id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mailuser/mail_user_filter_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mailuser/mail_user_filter_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mailuser/mail_user_filter_list.htm b/interface/web/themes/default-304/templates/mailuser/mail_user_filter_list.htm deleted file mode 100644 index b8501e8dde..0000000000 --- a/interface/web/themes/default-304/templates/mailuser/mail_user_filter_list.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_mailuser_filter"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mailuser/mail_user_filter_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_rulename" scope="col"><tmpl_var name="rulename_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_rulename"><input type="text" name="search_rulename" value="{tmpl_var name='search_rulename'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_user_edit.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_rulename"><a href="#" onClick="loadContent('mailuser/mail_user_filter_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="rulename"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('mailuser/mail_user_filter_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mailuser/mail_user_password_edit.htm b/interface/web/themes/default-304/templates/mailuser/mail_user_password_edit.htm deleted file mode 100644 index ed49c1654b..0000000000 --- a/interface/web/themes/default-304/templates/mailuser/mail_user_password_edit.htm +++ /dev/null @@ -1,37 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mailuser_password"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='email_txt'}</p> - <p class="value">{tmpl_var name='email'}</p> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mailuser/mail_user_password_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mailuser/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/mailuser/mail_user_spamfilter_edit.htm b/interface/web/themes/default-304/templates/mailuser/mail_user_spamfilter_edit.htm deleted file mode 100644 index eaa59e9503..0000000000 --- a/interface/web/themes/default-304/templates/mailuser/mail_user_spamfilter_edit.htm +++ /dev/null @@ -1,28 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mailuser_spamfilter"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='email_txt'}</p> - <p class="value">{tmpl_var name='email'}</p> - </div> - <div class="ctrlHolder"> - <label for="policy">{tmpl_var name='policy_txt'}</label> - <select name="policy" id="policy" class="selectInput"> - {tmpl_var name='policy'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mailuser/mail_user_spamfilter_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mailuser/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/main.tpl.htm b/interface/web/themes/default-304/templates/main.tpl.htm deleted file mode 100644 index 7f227e18af..0000000000 --- a/interface/web/themes/default-304/templates/main.tpl.htm +++ /dev/null @@ -1,188 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> - <head> - <title><tmpl_var name="app_title"> <tmpl_var name="app_version"></title> - <meta http-equiv="Content-Type" content="text/html; charset=<tmpl_var name="html_content_encoding">"/> - <meta http-equiv="X-UA-Compatible" content="IE=8"/> - <link href="themes/default/css/central.css" rel="stylesheet" type="text/css"/> - <!--[if lte IE 7]> - <link href="themes/default/css/patches/central.css" rel="stylesheet" type="text/css" /> - <![endif]--> - <!--[if lte ie 6]> - <style type="text/css" media="screen"> - /* - Move these to your IE specific stylesheet if possible - */ - .uniForm, - .uniForm fieldset, - .uniForm .ctrlHolder, - .uniForm .formHint, - .uniForm .buttonHolder, - .uniForm .ctrlHolder .multiField, - .uniForm .inlineLabel{ zoom:1; } - - .uniForm .inlineLabels label, .uniForm .inlineLabels .label, - .uniForm .blockLabels label, .uniForm .blockLabels .label, - .uniForm .inlineLabel span{ padding-bottom: .2em; } - - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input{ margin-top: -.3em; } - </style> - <![endif]--> - <!--[if gt ie 6]> - <style type="text/css" media="screen"> - /* - Move these to your IE specific stylesheet if possible - */ - .uniForm, - .uniForm fieldset, - .uniForm .ctrlHolder, - .uniForm .formHint, - .uniForm .buttonHolder, - .uniForm .ctrlHolder .multiField, - .uniForm .inlineLabel{ zoom:1; } - - .uniForm .inlineLabels label, .uniForm .inlineLabels .label, - .uniForm .blockLabels label, .uniForm .blockLabels .label, - .uniForm .inlineLabel span{ padding-bottom: .2em; } - - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input{ margin-top: -.3em; } - </style> - <![endif]--> - <link href="themes/default/css/screen/redmond/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css"/> - <link href="themes/default/css/screen/jquery-ui-custom.css" rel="stylesheet" type="text/css"/> - <link rel="shortcut icon" href="/themes/default/images/favicon.ico" /> - <script type="text/javascript" src="js/jquery-1.6.3.min.js"></script> - <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script> - <script type="text/javascript" src="js/scrigo.js.php"></script> - <script type="text/javascript" src="js/uni-form/uni-form.jquery.js"></script> - <script type="text/javascript" src="js/jquery.ispconfigsearch.js"></script> - <script type="text/javascript" src="js/jquery.tipsy.js"></script> - <script language="JavaScript" type="text/javascript"> - var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; - if(!is_chrome && getInternetExplorerVersion() > 8.0) { - var style = document.createElement('style'); - style.innerHTML = '#page_margins { min-width: 980px; max-width: 80%; background: #fff; display: table;}'; - document.getElementsByTagName("head")[0].appendChild(style); - } - - jQuery(document).ready(function() { - loadInitContent(); - - $("#pageForm").submit(function(e){ - //Prevent form submit: e.preventDefault() in lists - if ($(".panel #Filter").length > 0) { - e.preventDefault(); - } - }); - - jQuery('.subsectiontoggle').live("click", function(){ - jQuery(this).children().toggleClass('showing').end().next().slideToggle(); - }); - - jQuery('#globalsearch').ispconfigSearch({ - dataSrc: '/dashboard/ajax_get_json.php?type=globalsearch', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - searchFieldWatermark: '<tmpl_var name="globalsearch_searchfield_watermark_txt">' - }); - - jQuery('.ttip').tipsy({live: true, gravity: 'ne', html: true}); - - tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled>'; - tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled>'; - tabChangeWarningTxt = '<tmpl_var name="global_tabchange_warning_txt">'; - tabChangeDiscardTxt = '<tmpl_var name="global_tabchange_discard_txt">'; - }); - - - jQuery(document).bind("change", function(event) { - var elName = event.target.localName; - if (jQuery(".panel #Filter").length > 0 && elName == 'select') { - event.preventDefault(); - jQuery(".panel #Filter").trigger('click'); - } - if(elName == 'select' || elName == 'input' || elName == 'textarea') { - // set marker that something was changed - pageFormChanged = true; - } - }); - - jQuery(document).bind("keypress", function(event) { - //Use jQuery submit with keypress Enter in panel filterbar - if (event.which == '13' && jQuery(".panel #Filter").length > 0) { - event.preventDefault(); - jQuery(".panel #Filter").trigger('click'); - } - //Use jQuery submit with keypress Enter in forms - if (event.which == '13' && jQuery(".pnl_formsarea button.positive").length > 0 && event.target.localName != 'textarea' && jQuery(event.target).is(':input')) { - event.preventDefault(); - jQuery(".pnl_formsarea button.positive:first").not("[disabled='disabled']").trigger('click'); - } - }); - </script> - </head> - <body> - <div id="page_margins"> - <div id="page"> - <div id="header"> - <div id="topsubnav"> - <!-- start: skip link navigation --> - <a class="skip" href="#navigation" title="skip link">Skip to the navigation</a><span class="hideme">.</span> - <a class="skip" href="#content" title="skip link">Skip to the content</a><span class="hideme">.</span> - <!-- end: skip link navigation --> - <tmpl_if name="cpuser"> - <span><a href="#logout" onclick="loadContent('login/logout.php');"><tmpl_var format="strtoupper" name="logout_txt"> <tmpl_var format="strtoupper" name="cpuser"></a><!-- | <a href="#" onclick="capp('help')">Help</a> | <a href="#">Imprint</a>--></span> - <tmpl_if name='usertype' op='==' value='normaluser'><input type="text" id="globalsearch" size="25" value="" /></tmpl_if> - </tmpl_if> - </div> - <h1 id="ir-HeaderLogo" class="swap" style="background-image:url('{tmpl_var name='app_logo'}');"><span>ISPConfig 3</span></h1> - <span>hosting control panel</span> - </div> - <!-- begin: main navigation #nav --> - <div id="nav"> - <a id="navigation" name="navigation"></a> - <!-- skiplink anchor: navigation --> - <div id="nav_main"> - <div id="topNav"> </div> - </div> - </div> - <!-- end: main navigation --> - <!-- begin: main content area #main --> - <div id="main"> - <!-- begin: #col1 - first float column --> - <div id="col1"> - <div id="col1_content" class="clearfix"> - <div id="sideNav"> </div> - </div> - </div> - <!-- end: #col1 --> - <!-- begin: #col3 static column --> - <div id="col3"> - <div id="col3_content" class="clearfix"> - <a id="content" name="content"></a> - <!-- skiplink anchor: Content --> - <form method="post" action="" id="pageForm" name="pageForm" enctype="multipart/form-data" class="uniForm"> - <input type="text" style="display:none" /><input type="password" style="display:none"/> - <div id="pageContent"><!-- AJAX CONTENT --></div> - </form> - </div> - <div id="ie_clearing"> </div> - <!-- End: IE Column Clearing --> - </div> - <!-- end: #col3 --> - </div> - <!-- end: #main --> - <!-- begin: #footer --> - <div id="footer"> - Powered by <a href="<tmpl_var name="app_link">" target="_blank"><tmpl_var name="app_title"></a> - </div><!-- end: #footer --> - </div> - </div> - </body> -</html> diff --git a/interface/web/themes/default-304/templates/module.tpl.htm b/interface/web/themes/default-304/templates/module.tpl.htm deleted file mode 100644 index f8a26defc6..0000000000 --- a/interface/web/themes/default-304/templates/module.tpl.htm +++ /dev/null @@ -1,41 +0,0 @@ -<tr> - <td width="128" height="26" background="themes/{tmpl_var name="theme"}/images/nav_top_bg.gif"> </td> - <td rowspan="3" class="mainContent"> - <table width="100%" height="100%" border="0" cellpadding="20" cellspacing="0"> - <tr> - <td><iframe height="100%" width="100%" frameborder="0" name="content" src="{tmpl_var name="startpage"}"></iframe></td> - </tr> - </table> - </td> -</tr> -<tr> - <td width="128" align="right" valign="top" bgcolor="#DEE4F2"> - <table width="128" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td height="10"> </td> - </tr> - <tr> - <td align="center"> - <tmpl_loop name="nav_left"> - <table bgcolor="#F4F6FB" width="115"> - <tr> - <td class="navLeftHead"><tmpl_var name="title"></td> - </tr> - <tr> - <td> - <tmpl_loop name="items"> - <a href="<tmpl_var name='link'>" class="navLeftItem" target="<tmpl_var name='target'>"><tmpl_var name="title"></a><br> - </tmpl_loop> - </td> - </tr> - </table> - <br /> - </tmpl_loop> - </td> - </tr> - </table> - </td> -</tr> -<tr> - <td align="left" valign="bottom" bgcolor="#DEE4F2"> </td> -</tr> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/module_tree.tpl.htm b/interface/web/themes/default-304/templates/module_tree.tpl.htm deleted file mode 100644 index be213819d0..0000000000 --- a/interface/web/themes/default-304/templates/module_tree.tpl.htm +++ /dev/null @@ -1,42 +0,0 @@ -<tr> - <td width="128" height="26" background="themes/{tmpl_var name="theme"}/images/nav_top_bg.gif"> </td> - <td rowspan="3" class="mainContent"> - <table width="100%" height="100%" border="0" cellpadding="20" cellspacing="0"> - <tr> - <td width="200"><iframe height="100%" width="100%" frameborder="0" name="navframe" src="{tmpl_var name="navframe_page"}"></iframe></td> - <td><iframe height="100%" width="100%" frameborder="0" name="content" src="{tmpl_var name="startpage"}"></iframe></td> - </tr> - </table> - </td> -</tr> -<tr> - <td width="128" align="right" valign="top" bgcolor="#DEE4F2"> - <table width="128" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td height="10"> </td> - </tr> - <tr> - <td align="center"> - <tmpl_loop name="nav_left"> - <table bgcolor="#F4F6FB" width="115"> - <tr> - <td class="navLeftHead"><tmpl_var name="title"></td> - </tr> - <tr> - <td> - <tmpl_loop name="items"> - <a href="<tmpl_var name='link'>" class="navLeftItem" target="<tmpl_var name='target'>"><tmpl_var name="title"></a><br> - </tmpl_loop> - </td> - </tr> - </table> - <br /> - </tmpl_loop> - </td> - </tr> - </table> - </td> -</tr> -<tr> - <td align="left" valign="bottom" bgcolor="#DEE4F2"> </td> -</tr> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/monitor/datalog_list.htm b/interface/web/themes/default-304/templates/monitor/datalog_list.htm deleted file mode 100644 index 158a5a84a1..0000000000 --- a/interface/web/themes/default-304/templates/monitor/datalog_list.htm +++ /dev/null @@ -1,49 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_datalog"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_tstamp" scope="col"><tmpl_var name="tstamp_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_action" scope="col"><tmpl_var name="action_txt"></th> - <th class="tbl_col_dbtable" scope="col"><tmpl_var name="dbtable_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_tstamp"> </td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_action"><select name="search_action">{tmpl_var name='search_action'}</select></td> - <td class="tbl_col_dbtable"><input type="text" name="search_dbtable" value="{tmpl_var name='search_dbtable'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','monitor/datalog_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_tstamp">{tmpl_var name="tstamp"}</td> - <td class="tbl_col_server_id">{tmpl_var name="server_id"}</td> - <td class="tbl_col_action">{tmpl_var name="action"}</td> - <td class="tbl_col_dbtable">{tmpl_var name="dbtable"}</td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <!--<a class="icons16 icoDelete" href="javascript: del_record('monitor/datalog_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> --> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/monitor/show_data.htm b/interface/web/themes/default-304/templates/monitor/show_data.htm deleted file mode 100644 index 818208d647..0000000000 --- a/interface/web/themes/default-304/templates/monitor/show_data.htm +++ /dev/null @@ -1,12 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_system"> - - <div class="pnl_formarea"> - <fieldset><legend><tmpl_var name="monTransDate"><tmpl_var name="time"></legend> - <div class="systemmonitor"><tmpl_var name="output"></div> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/monitor/show_log.htm b/interface/web/themes/default-304/templates/monitor/show_log.htm deleted file mode 100644 index 271d46bf59..0000000000 --- a/interface/web/themes/default-304/templates/monitor/show_log.htm +++ /dev/null @@ -1,25 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_logview"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend><tmpl_var name="monTransRefreshsq"></legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="refreshinterval">{tmpl_var name='refreshinterval_txt'}</label> - <select name="refreshinterval" id="refreshinterval" class="selectInput" onChange="loadContentRefresh('monitor/show_log.php?log={tmpl_var name="log_id"}')"> - {tmpl_var name='refresh'} - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_formarea"> - <fieldset><legend><tmpl_var name="monTransDate"><tmpl_var name="time"></legend> - <div class="codeview"><tmpl_var name="log_data"></div> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/monitor/show_sys_state.htm b/interface/web/themes/default-304/templates/monitor/show_sys_state.htm deleted file mode 100644 index 9a5830c19c..0000000000 --- a/interface/web/themes/default-304/templates/monitor/show_sys_state.htm +++ /dev/null @@ -1,25 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_sys_state"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend><tmpl_var name="monTransRefreshsq"></legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="refreshinterval">{tmpl_var name='refreshinterval_txt'}</label> - <select name="refreshinterval" id="refreshinterval" class="selectInput withicons" onChange="loadContentRefresh('monitor/show_sys_state.php?state={tmpl_var name="state_type"}')"> - {tmpl_var name='refresh'} - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_formarea"> - <fieldset><legend></legend> - <div class="stateview"><tmpl_var name="state_data"></div> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/monitor/syslog_list.htm b/interface/web/themes/default-304/templates/monitor/syslog_list.htm deleted file mode 100644 index e3d18cb318..0000000000 --- a/interface/web/themes/default-304/templates/monitor/syslog_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_syslog"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_tstamp" scope="col"><tmpl_var name="tstamp_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_loglevel" scope="col"><tmpl_var name="loglevel_txt"></th> - <th class="tbl_col_message" scope="col"><tmpl_var name="message_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_tstamp"> </td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_loglevel"><select name="search_loglevel">{tmpl_var name='search_loglevel'}</select></td> - <td class="tbl_col_message"><input type="text" name="search_message" value="{tmpl_var name='search_message'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','monitor/log_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_tstamp">{tmpl_var name="tstamp"}</td> - <td class="tbl_col_server_id">{tmpl_var name="server_id"}</td> - <td class="tbl_col_loglevel">{tmpl_var name="loglevel"}</td> - <td class="tbl_col_message">{tmpl_var name="message"}</td> - <td class="tbl_col_buttons"> - <tmpl_if name="loglevel" op="==" value="Error"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </tmpl_if> - <tmpl_if name="loglevel" op="==" value="Warning"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </tmpl_if> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sidenav.tpl.htm b/interface/web/themes/default-304/templates/sidenav.tpl.htm deleted file mode 100644 index a5051cf3a5..0000000000 --- a/interface/web/themes/default-304/templates/sidenav.tpl.htm +++ /dev/null @@ -1,24 +0,0 @@ -<ul id="submenu"> - <tmpl_loop name="nav_left"> - <li class="title"> - <tmpl_if name="startpage"> - <a href="#" onClick="loadContent('<tmpl_var name='startpage'>')"> - </tmpl_if> - <tmpl_var name="title"> - <tmpl_if name="startpage"> - </a> - </tmpl_if> - </li> - <tmpl_loop name="items"> - <li <tmpl_if name="html_id"> id='<tmpl_var name="html_id">' </tmpl_if>> - <tmpl_if name="link"> - <a href="#" onClick="loadContent('<tmpl_var name='link'>')"> - </tmpl_if> - <tmpl_var name="title"> - <tmpl_if name="link"> - </a> - </tmpl_if> - </li> - </tmpl_loop> - </tmpl_loop> -</ul> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/aps_install_package.htm b/interface/web/themes/default-304/templates/sites/aps_install_package.htm deleted file mode 100644 index eeed54f970..0000000000 --- a/interface/web/themes/default-304/templates/sites/aps_install_package.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2> - {tmpl_var name='installation_txt'}: {tmpl_var name='pkg_name'} {tmpl_var name='pkg_version'}-{tmpl_var name='pkg_release'} - <span style="float:right"> - <tmpl_if name='pkg_icon' op='!=' value=''> - <img src="{tmpl_var name='pkg_icon'}" height="32" width="32" alt="{tmpl_var name='pkg_name'}" style="vertical-align:text-bottom;" /> - </tmpl_if> - </span> -</h2> - -<tmpl_if name='error'> - <div id="errorMsg"><h3>ERROR</h3><ol>{tmpl_var name='error'}</ol></div> -</tmpl_if> - -<div class="panel panel_install_package"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <legend>{tmpl_var name='basic_settings_txt'}</legend> - <div class="ctrlHolder"> - <label for="main_domain">{tmpl_var name='install_location_txt'}</label> - <div class="resetButton">http(s):// </div>DOMAIN_LIST_SPACE<div style="float:left;"> / </div> - <input type="text" name="main_location" id="main_location" value="{tmpl_var name='inp_main_location'}" maxlength="255" class="textInput formLengthHalf" /> - </div> - <tmpl_if name='pkg_requirements_database' op='!=' value=''> - <div class="ctrlHolder"> - <label for="main_database_password">{tmpl_var name='new_database_password_txt'}</label> - <input type="text" class="textInput" name="main_database_password" id="main_database_password" value="{tmpl_var name='inp_main_database_password'}" size="10" maxlength="255" /> - </div> - </tmpl_if> - - PKG_SETTINGS_SPACE - - <legend>{tmpl_var name='license_txt'}</legend> - <div class="ctrlHolder"> - <label for="license">{tmpl_var name='license_txt'}</label> - <tmpl_if name='pkg_license_content' op='==' value=''>{tmpl_var name='pkg_license_name'}<br /></tmpl_if> - <tmpl_if name='pkg_license_type' op='==' value='url'> - <a href="{tmpl_var name='pkg_license_content'}" target="_blank">{tmpl_var name='pkg_license_content'}</a> - <tmpl_elseif name='pkg_license_content'> - <textarea rows="10" cols="80" id="license_text">{tmpl_var name='pkg_license_content'}</textarea> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="license">{tmpl_var name='acceptance_txt'}</label> - <input type="checkbox" name="license" id="license" <tmpl_if name='inp_license' op='==' value='true'>checked</tmpl_if> /> {tmpl_var name='acceptance_text'} - </div> - </fieldset> - - <input type="hidden" name="install" value="0" /> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_install'}" name="btn_install" onClick="document.pageForm.install.value=1; submitForm('pageForm','sites/aps_install_package.php?id={tmpl_var name='pkg_id'}');"><span>{tmpl_var name='btn_install'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel'}" onClick="loadContent('aps/availablepackages_list.php');"><span>{tmpl_var name='btn_cancel'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/aps_instances_list.htm b/interface/web/themes/default-304/templates/sites/aps_instances_list.htm deleted file mode 100644 index 6f4ab80e87..0000000000 --- a/interface/web/themes/default-304/templates/sites/aps_instances_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2>{tmpl_var name="list_head_txt"}</h2> - -<div class="panel panel_list_instances"> - - <div class="pnl_listarea"> - <fieldset><legend>{tmpl_var name="list_head_txt"}</legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_name" scope="col">{tmpl_var name='name_txt'}</th> - <th class="tbl_col_version" scope="col">{tmpl_var name='version_txt'}</th> - <tmpl_if name='is_noclient'> - <th class="tbl_col_customer" scope="col">{tmpl_var name='customer_txt'}</th> - </tmpl_if> - <th class="tbl_col_installlocation" scope="col">{tmpl_var name='install_location_txt'}</th> - <th class="tbl_col_instancestatus" scope="col">{tmpl_var name='status_txt'}</th> - <th class="tbl_col_buttons" scope="col" > </th> - </tr> - <tr> - <td class="tbl_col_name"><input type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> - <td class="tbl_col_version"><input type="text" name="search_version" value="{tmpl_var name='search_version'}" /></td> - <tmpl_if name='is_noclient'> - <td class="tbl_col_customer"><input type="text" name="search_customer_name" value="{tmpl_var name='search_customer_name'}" /></td> - </tmpl_if> - <td class="tbl_col_installlocation"> </td> - <td class="tbl_col_instancestatus"><select name="search_instance_status" onChange="submitForm('pageForm','sites/aps_installedpackages_list.php');">{tmpl_var name='search_instance_status'}</select></td> - <td class="tbl_col_buttons"> - <button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name='filter_txt'}" onClick="submitForm('pageForm','sites/aps_installedpackages_list.php');"> - <span>{tmpl_var name='filter_txt'}</span> - </button> - </td> - </tr> - </thead> - <tbody> - <tmpl_loop name='records'> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_name"><a href="#" onClick="loadContent('sites/aps_packagedetails_show.php?id={tmpl_var name='package_id'}');">{tmpl_var name='package_name'}</a></td> - <td class="tbl_col_version">{tmpl_var name='package_version'}-{tmpl_var name='package_release'}</td> - <tmpl_if name='is_noclient'> - <td class="tbl_col_customer"><a href="#" onClick="loadContent('client/client_edit.php?id={tmpl_var name='CustomerID'}');">{tmpl_var name='customer_name'}</a></td> - </tmpl_if> - <td class="tbl_col_installlocation"><a href="http://{tmpl_var name='install_location'}" target="_blank">{tmpl_var name='install_location_short'}</a></td> - <td class="tbl_col_instancestatus"><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='instance_status'}</span></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16" style="width:60px;"> - <tmpl_if name='delete_possible'><a class="icons16 icoDelete" href="javascript:if(window.confirm('{tmpl_var name='pkg_delete_confirmation'}')){ loadContentInto('status_content{tmpl_var name='__ROWNUM__'}', 'sites/aps_do_operation.php?action=delete_instance&id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}'); }"><span>{tmpl_var name='delete_txt'}</span></a></tmpl_if> - <tmpl_if name='reinstall_possible'><a class="icons16 icoEdit" href="javascript:if(window.confirm('{tmpl_var name='pkg_reinstall_confirmation'}')){ loadContentInto('status_content{tmpl_var name='__ROWNUM__'}', 'sites/aps_do_operation.php?action=reinstall_instance&id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}'); }"><span>{tmpl_var name='reinstall_txt'}</span></a></tmpl_if> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6">{tmpl_var name='paging'}</td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/aps_packagedetails_show.htm b/interface/web/themes/default-304/templates/sites/aps_packagedetails_show.htm deleted file mode 100644 index 18a6fc9e96..0000000000 --- a/interface/web/themes/default-304/templates/sites/aps_packagedetails_show.htm +++ /dev/null @@ -1,139 +0,0 @@ -<h2> - <tmpl_if name='pkg_icon' op='!=' value=''> - <img src="{tmpl_var name='pkg_icon'}" height="32" width="32" alt="{tmpl_var name='pkg_name'}" style="vertical-align:text-bottom;" /> - </tmpl_if> - {tmpl_var name='pkg_name'} -</h2> -<b>{tmpl_var name='pkg_summary'}</b> -<p> </p> - -<div class="pnl_toolsarea"> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/aps_install_package.php?id={tmpl_var name='pkg_id'}');"> - <span>{tmpl_var name='install_package_txt'}</span> - </button> - </div> - <p> </p><p> </p> -</div> - - -<div class="tabbox_tabs"> - <input type="hidden" name="next_tab" value="" /> - <ul> - <li<tmpl_if name='next_tab' op='==' value='details'> class="active"</tmpl_if>> - <a href="javascript:changeTab('details', 'sites/aps_packagedetails_show.php?id={tmpl_var name='pkg_id'}');">{tmpl_var name='details_txt'}</a> - </li> - <tmpl_if name='pkg_screenshots'> - <li<tmpl_if name='next_tab' op='==' value='screenshots'> class="active"</tmpl_if>> - <a href="javascript:changeTab('screenshots', 'sites/aps_packagedetails_show.php?id={tmpl_var name='pkg_id'}');">{tmpl_var name='screenshots_txt'}</a> - </li></tmpl_if> - <tmpl_if name='pkg_changelog'> - <li<tmpl_if name='next_tab' op='==' value='changelog'> class="active"</tmpl_if>> - <a href="javascript:changeTab('changelog', 'sites/aps_packagedetails_show.php?id={tmpl_var name='pkg_id'}');">{tmpl_var name='changelog_txt'}</a> - </li></tmpl_if> - <li<tmpl_if name='next_tab' op='==' value='settings'> class="active"</tmpl_if>> - <a href="javascript:changeTab('settings', 'sites/aps_packagedetails_show.php?id={tmpl_var name='pkg_id'}');">{tmpl_var name='settings_txt'}</a> - </li> - </ul> -</div> -<p> </p> - -<div class="panel panel_list_packages"> - - <div class="pnl_listarea"> - <table class="list"> - <tbody> - <tmpl_if name='next_tab' op='==' value='details'> - <tr class="tbl_row_uneven"> - <td width="25%">{tmpl_var name='version_txt'}</td> - <td>{tmpl_var name='pkg_version'} (Release {tmpl_var name='pkg_release'})</td> - </tr> - <tr class="tbl_row_even"> - <td>{tmpl_var name='category_txt'}</td> - <td>{tmpl_var name='pkg_category'}</td> - </tr> - <tr class="tbl_row_uneven"> - <td>{tmpl_var name='description_txt'}</td> - <td>{tmpl_var name='pkg_description'}</td> - </tr> - <tr class="tbl_row_even"> - <td>{tmpl_var name='homepage_txt'}</td> - <td> - <a href="{tmpl_var name='pkg_homepage'}" target="_blank">{tmpl_var name='pkg_homepage'}</a> - </td> - </tr> - <tr class="tbl_row_uneven"> - <td>{tmpl_var name='installed_size_txt'}</td> - <td>{tmpl_var name='pkg_installed_size'}</td> - </tr> - <tr class="tbl_row_even"> - <td>{tmpl_var name='supported_languages_txt'}</td> - <td>{tmpl_var name='pkg_languages'}</td> - </tr> - <tr class="tbl_row_uneven"> - <td>{tmpl_var name='config_script_txt'}</td> - <td>{tmpl_var name='pkg_config_script'}</td> - </tr> - <tr class="tbl_row_even"> - <td>{tmpl_var name='license_txt'}</td> - <td> - <tmpl_if name='pkg_license_name'>{tmpl_var name='pkg_license_name'}<br /></tmpl_if> - <tmpl_if name='pkg_license_type' op='==' value='url'><a href="{tmpl_var name='pkg_license_content'}" target="_blank">{tmpl_var name='pkg_license_content'}</a> - <tmpl_elseif name='pkg_license_content'> - <textarea rows="10" cols="80">{tmpl_var name='pkg_license_content'}</textarea> - </tmpl_if> - </td> - </tr> - <tmpl_elseif name='next_tab' op='==' value='screenshots'> - <tmpl_if name='pkg_screenshots'> - <tr class="tbl_row_even"> - <td style="text-align:center;"> - <tmpl_loop name='pkg_screenshots'> - <img src="{tmpl_var name='ScreenPath'}" alt="{tmpl_var name='ScreenDescription'}" /><br /> - <em>{tmpl_var name='ScreenDescription'}</em><br /><br /> - </tmpl_loop> - </td> - </tr> - </tmpl_if> - <tmpl_elseif name='next_tab' op='==' value='changelog'> - <tmpl_if name='pkg_changelog'> - <tr class="tbl_row_even"> - <td> - <ul> - <tmpl_loop name='pkg_changelog'> - <li>{tmpl_var name='ChangelogVersion'}</li> - <ul> - <tmpl_if name='ChangelogDescription'> - <li>{tmpl_var name='ChangelogDescription'}</li> - </tmpl_if> - </ul> - </tmpl_loop> - </ul> - </td> - </tr> - </tmpl_if> - <tmpl_elseif name='next_tab' op='==' value='settings'> - <tr class="tbl_row_uneven"> - <td width="25%">{tmpl_var name='php_extensions_txt'}</td> - <td>{tmpl_var name='pkg_requirements_php_extensions'}</td> - </tr> - <tr class="tbl_row_even"> - <td>{tmpl_var name='php_settings_txt'}</td> - <td> - <tmpl_loop name='pkg_requirements_php_settings'>{tmpl_var name='PHPSettingName'} = {tmpl_var name='PHPSettingValue'}<br /></tmpl_loop> - </td> - </tr> - <tr class="tbl_row_uneven"> - <td>{tmpl_var name='supported_php_versions_txt'}</td> - <td>{tmpl_var name='pkg_requirements_supported_php_versions'}</td> - </tr> - <tr class="tbl_row_even"> - <td>{tmpl_var name='database_txt'}</td> - <td>{tmpl_var name='pkg_requirements_database'}</a></td> - </tr> - </tmpl_if> - </tbody> - </table> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/aps_packages_list.htm b/interface/web/themes/default-304/templates/sites/aps_packages_list.htm deleted file mode 100644 index fe99743039..0000000000 --- a/interface/web/themes/default-304/templates/sites/aps_packages_list.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2>{tmpl_var name="list_head_txt"}</h2> - -<div class="panel panel_list_packages"> - - <div class="pnl_listarea"> - <fieldset><legend>{tmpl_var name="list_head_txt"} ({tmpl_var name='package_count'})</legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_name" scope="col">{tmpl_var name='name_txt'}</th> - <th class="tbl_col_version" scope="col">{tmpl_var name='version_txt'}</th> - <th class="tbl_col_category" scope="col">{tmpl_var name='category_txt'}</th> - <tmpl_if name='is_admin'> - <th class="tbl_col_status" scope="col">{tmpl_var name='status_txt'}</th> - </tmpl_if> - <th class="tbl_col_buttons" scope="col" width="60px;"> </th> - </tr> - <tr> - <td class="tbl_col_name"><input type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td> - <td class="tbl_col_version"><input type="text" name="search_version" value="{tmpl_var name='search_version'}" /></td> - <td class="tbl_col_customerid"><select name="search_category" onChange="submitForm('pageForm','sites/aps_availablepackages_list.php');">{tmpl_var name='search_category'}</select></td> - <tmpl_if name='is_admin'> - <td class="tbl_col_status"><select name="search_package_status" onChange="submitForm('pageForm','sites/aps_availablepackages_list.php');">{tmpl_var name='search_package_status'}</select></td> - </tmpl_if> - <td class="tbl_col_buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name='filter_txt'}" onClick="submitForm('pageForm','sites/aps_availablepackages_list.php');"><span>{tmpl_var name='filter_txt'}</span></button></td> - </tr> - </thead> - <tbody> - <tmpl_loop name='records'> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_name"><a href="#" onClick="loadContent('sites/aps_packagedetails_show.php?id={tmpl_var name='id'}');">{tmpl_var name='name'}</a></td> - <td class="tbl_col_version">{tmpl_var name='version'}-{tmpl_var name='release'}</td> - <td class="tbl_col_category">{tmpl_var name='category'}</td> - <tmpl_if name='is_admin'> - <td class="tbl_col_status"><a href="javascript:loadContentInto('status_content{tmpl_var name='__ROWNUM__'}', 'sites/aps_do_operation.php?action=change_status&id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');"><span id="status_content{tmpl_var name='__ROWNUM__'}">{tmpl_var name='package_status'}</span></a></td> - </tmpl_if> - <td> </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5">{tmpl_var name='paging'}</td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/cron_edit.htm b/interface/web/themes/default-304/templates/sites/cron_edit.htm deleted file mode 100644 index 7d47b4e277..0000000000 --- a/interface/web/themes/default-304/templates/sites/cron_edit.htm +++ /dev/null @@ -1,68 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_cron"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Cron Job</legend> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> - {tmpl_var name='parent_domain_id'} - </select> - <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> - <tmpl_else> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="run_min">{tmpl_var name='run_min_txt'}</label> - <input name="run_min" id="run_min" value="{tmpl_var name='run_min'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, */3, 10-20</p> - </div> - <div class="ctrlHolder"> - <label for="run_hour">{tmpl_var name='run_hour_txt'}</label> - <input name="run_hour" id="run_hour" value="{tmpl_var name='run_hour'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, */2, 0, 10-12</p> - </div> - <div class="ctrlHolder"> - <label for="run_mday">{tmpl_var name='run_mday_txt'}</label> - <input name="run_mday" id="run_mday" value="{tmpl_var name='run_mday'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, */4, 1-5</p> - </div> - <div class="ctrlHolder"> - <label for="run_month">{tmpl_var name='run_month_txt'}</label> - <input name="run_month" id="run_month" value="{tmpl_var name='run_month'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, 1-6</p> - </div> - <div class="ctrlHolder"> - <label for="run_wday">{tmpl_var name='run_wday_txt'}</label> - <input name="run_wday" id="run_wday" value="{tmpl_var name='run_wday'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, 0, 1-5</p> - </div> - <div class="ctrlHolder"> - <label for="command">{tmpl_var name='command_txt'}</label> - <input name="command" id="command" value="{tmpl_var name='command'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. /var/www/clients/client1/myscript.sh or http://www.mydomain.com/path/script.php</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/cron_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/cron_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/cron_list.htm b/interface/web/themes/default-304/templates/sites/cron_list.htm deleted file mode 100644 index f822b89ebe..0000000000 --- a/interface/web/themes/default-304/templates/sites/cron_list.htm +++ /dev/null @@ -1,74 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_cron"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/cron_edit.php');"> - <span>{tmpl_var name="add_new_cron_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_run_min" scope="col"><tmpl_var name="run_min_txt"></th> - <th class="tbl_col_run_hour" scope="col"><tmpl_var name="run_hour_txt"></th> - <th class="tbl_col_run_mday" scope="col"><tmpl_var name="run_mday_txt"></th> - <th class="tbl_col_run_month" scope="col"><tmpl_var name="run_month_txt"></th> - <th class="tbl_col_run_wday" scope="col"><tmpl_var name="run_wday_txt"></th> - <th class="tbl_col_command" scope="col"><tmpl_var name="command_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_run_min"><input type="text" name="search_run_min" size="1" value="{tmpl_var name='search_run_min'}" /></td> - <td class="tbl_col_run_hour"><input type="text" name="search_run_hour" size="1" value="{tmpl_var name='search_run_hour'}" /></td> - <td class="tbl_col_run_mday"><input type="text" name="search_run_mday" size="1" value="{tmpl_var name='search_run_mday'}" /></td> - <td class="tbl_col_run_month"><input type="text" name="search_run_month" size="1" value="{tmpl_var name='search_run_month'}" /></td> - <td class="tbl_col_run_wday"><input type="text" name="search_run_wday" size="1" value="{tmpl_var name='search_run_wday'}" /></td> - <td class="tbl_col_command"><input type="text" name="search_command" value="{tmpl_var name='search_command'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/cron_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');"><img src="themes/{tmpl_var name='theme'}/icons/{tmpl_var name='_active_'}" border="0" /></a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_run_min"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="run_min"}</a></td> - <td class="tbl_col_run_hour"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="run_hour"}</a></td> - <td class="tbl_col_run_mday"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="run_mday"}</a></td> - <td class="tbl_col_run_month"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="run_month"}</a></td> - <td class="tbl_col_run_wday"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="run_wday"}</a></td> - <td class="tbl_col_commnd"><a href="#" onClick="loadContent('sites/cron_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="command"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/cron_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="10"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/database_admin_list.htm b/interface/web/themes/default-304/templates/sites/database_admin_list.htm deleted file mode 100644 index fda3ba70c8..0000000000 --- a/interface/web/themes/default-304/templates/sites/database_admin_list.htm +++ /dev/null @@ -1,68 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_database_admin"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/database_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_remote_access" scope="col"><tmpl_var name="remote_access_txt"></th> - <th class="tbl_col_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_database_user" scope="col"><tmpl_var name="database_user_txt"></th> - <th class="tbl_col_database_name" scope="col"><tmpl_var name="database_name_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_remote_access"><select name="search_remote_access">{tmpl_var name='search_remote_access'}</select></td> - <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_database_user"><select name="search_database_user_id">{tmpl_var name='search_database_user_id'}</select></td> - <td class="tbl_col_database_name"><input type="text" name="search_database_name" value="{tmpl_var name='search_database_name'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/database_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_remote_access"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="remote_access"}</a></td> - <td class="tbl_col_sys_groupid"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_database_user"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user_id"}</a></td> - <td class="tbl_col_database_name"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <tmpl_if name="dblist_phpmyadmin_link"> - <a class="icons16 icoDbAdmin" href="sites/database_phpmyadmin.php?id={tmpl_var name='id'}" target="phpmyadmin"><span>{tmpl_var name='admin_txt'}</span></a> - </tmpl_if> - <a class="icons16 icoEdit" href="javascript: loadContent('sites/database_edit.php?id={tmpl_var name='id'}');"><span>{tmpl_var name='edit_txt'}</span></a> - <a class="icons16 icoDelete" href="javascript: del_record('sites/database_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/database_edit.htm b/interface/web/themes/default-304/templates/sites/database_edit.htm deleted file mode 100644 index 4207a789ff..0000000000 --- a/interface/web/themes/default-304/templates/sites/database_edit.htm +++ /dev/null @@ -1,113 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_database"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> - <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='server_id'} - </select> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> - <tmpl_else> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </tmpl_if> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput formLengthHalf"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="database_name">{tmpl_var name='database_name_txt'}</label> - <p class="prefix">{tmpl_var name='database_name_prefix'}</p> - <tmpl_if name="edit_disabled"> - <input name="database_name" id="database_name" value="{tmpl_var name='database_name'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" disabled="disabled" /> - <input name="database_name" type="hidden" value="{tmpl_var name='database_name'}" /> - <tmpl_else> - <input name="database_name" id="database_name" value="{tmpl_var name='database_name'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="database_user_id">{tmpl_var name='database_user_txt'}</label> - <select name="database_user_id" id="database_user_id" class="selectInput"> - {tmpl_var name='database_user_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="database_ro_user_id">{tmpl_var name='database_ro_user_txt'}</label> - <select name="database_ro_user_id" id="database_ro_user_id" class="selectInput"> - {tmpl_var name='database_ro_user_id'} - </select> {tmpl_var name='optional_txt'} - </div> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="database_charset_disabled">{tmpl_var name='database_charset_txt'}</label> - <select name="database_charset_disabled" id="database_charset_disabled" class="selectInput formLengthHalf" disabled="disabled"> - {tmpl_var name='database_charset'} - </select> - <input type="hidden" name="database_charset" value="{tmpl_var name='database_charset_value'}" /> - <tmpl_else> - <label for="database_charset">{tmpl_var name='database_charset_txt'}</label> - <select name="database_charset" id="database_charset" class="selectInput formLengthHalf"> - {tmpl_var name='database_charset'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='remote_access_txt'}</p> - <div class="multiField"> - {tmpl_var name='remote_access'} - </div> - </div> - <div class="ctrlHolder"> - <label for="remote_ips">{tmpl_var name='remote_ips_txt'}</label> - <input name="remote_ips" id="remote_ips" value="{tmpl_var name='remote_ips'}" size="60" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/database_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/database_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - jQuery('#remote_ips').ispconfigSearch({ - dataSrc: '/sites/ajax_get_json.php?type=get_ipv4', - resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">', - ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">', - noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">', - noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">', - minChars: 0, - cssPrefix: 'df-', - fillSearchField: true, - fillSearchFieldWith: 'fill_text', - searchFieldWatermark: '', - resultBoxPosition: 'e' - }); -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/database_list.htm b/interface/web/themes/default-304/templates/sites/database_list.htm deleted file mode 100644 index 7b49e87044..0000000000 --- a/interface/web/themes/default-304/templates/sites/database_list.htm +++ /dev/null @@ -1,66 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_database"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/database_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_remote_access" scope="col"><tmpl_var name="remote_access_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_database_user" scope="col"><tmpl_var name="database_user_txt"></th> - <th class="tbl_col_database_name" scope="col"><tmpl_var name="database_name_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_remote_access"><select name="search_remote_access">{tmpl_var name='search_remote_access'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_database_user"><select name="search_database_user_id">{tmpl_var name='search_database_user_id'}</select></td> - <td class="tbl_col_database_name"><input type="text" name="search_database_name" value="{tmpl_var name='search_database_name'}"/></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/database_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_remote_access"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="remote_access"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_database_user"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user_id"}</a></td> - <td class="tbl_col_database_name"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <tmpl_if name="dblist_phpmyadmin_link"> - <a class="icons16 icoDbAdmin" href="sites/database_phpmyadmin.php?id={tmpl_var name='id'}" target="phpmyadmin"><span>{tmpl_var name='admin_txt'}</span></a> - </tmpl_if> - <a class="icons16 icoEdit" href="javascript: loadContent('sites/database_edit.php?id={tmpl_var name='id'}');"><span>{tmpl_var name='edit_txt'}</span></a> - <a class="icons16 icoDelete" href="javascript: del_record('sites/database_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/database_user_admin_list.htm b/interface/web/themes/default-304/templates/sites/database_user_admin_list.htm deleted file mode 100644 index c1bee67688..0000000000 --- a/interface/web/themes/default-304/templates/sites/database_user_admin_list.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_database_user_admin"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/database_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_database_user" scope="col"><tmpl_var name="database_user_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_database_user"><input type="text" name="search_database_user" value="{tmpl_var name='search_database_user'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/database_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_database_user"><a href="#" onClick="loadContent('sites/database_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoEdit" href="javascript: loadContent('sites/database_user_edit.php?id={tmpl_var name='id'}');"><span>{tmpl_var name='edit_txt'}</span></a> - <a class="icons16 icoDelete" href="javascript: del_record('sites/database_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="2"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/database_user_edit.htm b/interface/web/themes/default-304/templates/sites/database_user_edit.htm deleted file mode 100644 index 40e8c96e82..0000000000 --- a/interface/web/themes/default-304/templates/sites/database_user_edit.htm +++ /dev/null @@ -1,54 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_database_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="database_user">{tmpl_var name='database_user_txt'}</label> - <p class="prefix">{tmpl_var name='database_user_prefix'}</p> - <input name="database_user" id="database_user" value="{tmpl_var name='database_user'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="database_password">{tmpl_var name='database_password_txt'}</label> - <input name="database_password" id="database_password" value="{tmpl_var name='database_password'}" size="30" maxlength="255" type="password" class="textInput formLengthHalf" onkeyup="pass_check(this.value);checkPassMatch('database_password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('database_password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('database_password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/database_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/database_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/database_user_list.htm b/interface/web/themes/default-304/templates/sites/database_user_list.htm deleted file mode 100644 index 0a0ea1a637..0000000000 --- a/interface/web/themes/default-304/templates/sites/database_user_list.htm +++ /dev/null @@ -1,51 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_database"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/database_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_database_user" scope="col"><tmpl_var name="database_user_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_database_user"><input type="text" name="search_database_user" value="{tmpl_var name='search_database_user'}"/></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/database_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_database_user"><a href="#" onClick="loadContent('sites/database_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoEdit" href="javascript: loadContent('sites/database_user_edit.php?id={tmpl_var name='id'}');"><span>{tmpl_var name='edit_txt'}</span></a> - <a class="icons16 icoDelete" href="javascript: del_record('sites/database_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="2"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/ftp_user_advanced.htm b/interface/web/themes/default-304/templates/sites/ftp_user_advanced.htm deleted file mode 100644 index 175b5fe5d9..0000000000 --- a/interface/web/themes/default-304/templates/sites/ftp_user_advanced.htm +++ /dev/null @@ -1,50 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_ftp_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="uid">{tmpl_var name='uid_txt'}</label> - <input name="uid" id="uid" value="{tmpl_var name='uid'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="gid">{tmpl_var name='gid_txt'}</label> - <input name="gid" id="gid" value="{tmpl_var name='gid'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="quota_files">{tmpl_var name='quota_files_txt'}</label> - <input name="quota_files" id="quota_files" value="{tmpl_var name='quota_files'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="label">{tmpl_var name='quota_files_unity_txt'}</p> - </div> - <div class="ctrlHolder"> - <label for="ul_ratio">{tmpl_var name='ul_ratio_txt'}</label> - <input name="ul_ratio" id="ul_ratio" value="{tmpl_var name='ul_ratio'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="label">MB</p> - </div> - <div class="ctrlHolder"> - <label for="dl_ratio">{tmpl_var name='dl_ratio_txt'}</label> - <input name="dl_ratio" id="dl_ratio" value="{tmpl_var name='dl_ratio'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="label">MB</p> - </div> - <div class="ctrlHolder"> - <label for="ul_bandwidth">{tmpl_var name='ul_bandwidth_txt'}</label> - <input name="ul_bandwidth" id="ul_bandwidth" value="{tmpl_var name='ul_bandwidth'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="label">kb/s</p> - </div> - <div class="ctrlHolder"> - <label for="dl_bandwidth">{tmpl_var name='dl_bandwidth_txt'}</label> - <input name="dl_bandwidth" id="dl_bandwidth" value="{tmpl_var name='dl_bandwidth'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="label">kb/s</p> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/sites/ftp_user_advanced_client.htm b/interface/web/themes/default-304/templates/sites/ftp_user_advanced_client.htm deleted file mode 100644 index 5918c6d571..0000000000 --- a/interface/web/themes/default-304/templates/sites/ftp_user_advanced_client.htm +++ /dev/null @@ -1,22 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_ftp_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/sites/ftp_user_edit.htm b/interface/web/themes/default-304/templates/sites/ftp_user_edit.htm deleted file mode 100644 index cf900015c9..0000000000 --- a/interface/web/themes/default-304/templates/sites/ftp_user_edit.htm +++ /dev/null @@ -1,54 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_ftp_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <p class="prefix">{tmpl_var name='username_prefix'}</p> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="quota_size">{tmpl_var name='quota_size_txt'}</label> - <input name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="label">MB</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/ftp_user_list.htm b/interface/web/themes/default-304/templates/sites/ftp_user_list.htm deleted file mode 100644 index d455e0d4cd..0000000000 --- a/interface/web/themes/default-304/templates/sites/ftp_user_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_ftp_user"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/ftp_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_username" scope="col"><tmpl_var name="username_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/ftp_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/ftp_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/ftp_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/ftp_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_username"><a href="#" onClick="loadContent('sites/ftp_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="username"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <tmpl_if name="webftp_link"> - <a class="icons16 icoDbAdmin" href="{tmpl_var name='webftp_url'}" target="_blank"><span>{tmpl_var name='admin_txt'}</span></a> - </tmpl_if> - <a class="icons16 icoDelete" href="javascript: del_record('sites/ftp_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/shell_user_advanced.htm b/interface/web/themes/default-304/templates/sites/shell_user_advanced.htm deleted file mode 100644 index bad78c81c6..0000000000 --- a/interface/web/themes/default-304/templates/sites/shell_user_advanced.htm +++ /dev/null @@ -1,34 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_shell_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="puser">{tmpl_var name='puser_txt'}</label> - <input name="puser" id="puser" value="{tmpl_var name='puser'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="pgroup">{tmpl_var name='pgroup_txt'}</label> - <input name="pgroup" id="pgroup" value="{tmpl_var name='pgroup'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="shell">{tmpl_var name='shell_txt'}</label> - <input name="shell" id="shell" value="{tmpl_var name='shell'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/shell_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/shell_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/shell_user_edit.htm b/interface/web/themes/default-304/templates/sites/shell_user_edit.htm deleted file mode 100644 index 3cb5d38424..0000000000 --- a/interface/web/themes/default-304/templates/sites/shell_user_edit.htm +++ /dev/null @@ -1,72 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_shell_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> - {tmpl_var name='parent_domain_id'} - </select> - <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> - <tmpl_else> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <p class="prefix">{tmpl_var name='username_prefix'} </p> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput formLengthFourth"/> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');"/> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="chroot">{tmpl_var name='chroot_txt'}</label> - <select name="chroot" id="chroot" class="selectInput formLengthHalf"> - {tmpl_var name='chroot'} - </select> - </div> - <div class="ctrlHolder"> - <label for="quota_size">{tmpl_var name='quota_size_txt'}</label> - <input name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="label">MB</p> - </div> - <div class="ctrlHolder"> - <label for="ssh_rsa">{tmpl_var name='ssh_rsa_txt'}</label> - <textarea name="ssh_rsa" id="ssh_rsa" rows="10" cols="30">{tmpl_var name='ssh_rsa'}</textarea> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/shell_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/shell_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/shell_user_list.htm b/interface/web/themes/default-304/templates/sites/shell_user_list.htm deleted file mode 100644 index 9087c6669a..0000000000 --- a/interface/web/themes/default-304/templates/sites/shell_user_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_shell_user"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/shell_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_username" scope="col"><tmpl_var name="username_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/shell_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/shell_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/shell_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/shell_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_username"><a href="#" onClick="loadContent('sites/shell_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="username"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/shell_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/user_quota_stats_list.htm b/interface/web/themes/default-304/templates/sites/user_quota_stats_list.htm deleted file mode 100644 index adb1e35614..0000000000 --- a/interface/web/themes/default-304/templates/sites/user_quota_stats_list.htm +++ /dev/null @@ -1,54 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_user_quota_stats"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_system_user" scope="col"><tmpl_var name="system_user_txt"></th> - <th class="" scope="col" style="text-align:right;"><tmpl_var name="used_txt"></th> - <th class="" scope="col" style="text-align:right;"><tmpl_var name="soft_txt"></th> - <th class="" scope="col" style="text-align:right;"><tmpl_var name="hard_txt"></th> - <th class="" scope="col" style="text-align:right;"><tmpl_var name="files_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_system_user"><input type="text" name="search_system_user" value="{tmpl_var name='search_system_user'}" /></td> - <td class="tbl_col_system_user"> </td> - <td class="tbl_col_system_user"> </td> - <td class="tbl_col_system_user"> </td> - <td class="tbl_col_system_user"> </td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/user_quota_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_system_user"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="system_user"}</a></td> - <td class="tbl_col_used" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="used"}</a></td> - <td class="tbl_col_soft" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="soft"}</a></td> - <td class="tbl_col_hard" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="hard"}</a></td> - <td class="tbl_col_files" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="files"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="7"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_aliasdomain_edit.htm b/interface/web/themes/default-304/templates/sites/web_aliasdomain_edit.htm deleted file mode 100644 index 0ccaa5edf1..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_aliasdomain_edit.htm +++ /dev/null @@ -1,125 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <tmpl_if name="domain_option"> - <select name="domain" id="domain" class="selectInput"> - {tmpl_var name='domain_option'} - </select> - <tmpl_else> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> - <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> - {tmpl_var name='redirect_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> - <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="subdomain">{tmpl_var name='subdomain_txt'}</label> - <select name="subdomain" id="subdomain" class="selectInput formLengthHalf"> - {tmpl_var name='subdomain'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_aliasdomain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var webId = jQuery('#parent_domain_id').val(); - var serverId; - getServerId(webId); - - jQuery('#parent_domain_id').change(function(){ - webId = $(this).val(); - getServerId(webId); - }); - - function getServerId(webId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { - serverId = data.serverid; - adjustForm(serverId); - }); - } - - function adjustForm(serverId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - var selected = jQuery('#redirect_type').val(); - if(data.servertype == "nginx"){ - jQuery("#redirect_type option[value='R']").attr('disabled','disabled'); - jQuery('#redirect_type option[value="L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled'); - - jQuery("#redirect_type option[value='R']").hide(); - jQuery('#redirect_type option[value="L"]').hide(); - jQuery('#redirect_type option[value="R,L"]').hide(); - jQuery('#redirect_type option[value="R=301,L"]').hide(); - - jQuery('#redirect_type option[value="last"]').show(); - jQuery('#redirect_type option[value="break"]').show(); - jQuery('#redirect_type option[value="redirect"]').show(); - jQuery('#redirect_type option[value="permanent"]').show(); - - jQuery('#redirect_type option[value="last"]').attr('disabled',false); - jQuery('#redirect_type option[value="break"]').attr('disabled',false); - jQuery('#redirect_type option[value="redirect"]').attr('disabled',false); - jQuery('#redirect_type option[value="permanent"]').attr('disabled',false); - - if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } else { - jQuery('#redirect_type option[value="last"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="break"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled'); - - jQuery('#redirect_type option[value="last"]').hide(); - jQuery('#redirect_type option[value="break"]').hide(); - jQuery('#redirect_type option[value="redirect"]').hide(); - jQuery('#redirect_type option[value="permanent"]').hide(); - - jQuery('#redirect_type option[value="R"]').show(); - jQuery('#redirect_type option[value="L"]').show(); - jQuery('#redirect_type option[value="R,L"]').show(); - jQuery('#redirect_type option[value="R=301,L"]').show(); - - jQuery('#redirect_type option[value="R"]').attr('disabled',false); - jQuery('#redirect_type option[value="L"]').attr('disabled',false); - jQuery('#redirect_type option[value="R,L"]').attr('disabled',false); - jQuery('#redirect_type option[value="R=301,L"]').attr('disabled',false); - - if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } - }); - } - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_aliasdomain_list.htm b/interface/web/themes/default-304/templates/sites/web_aliasdomain_list.htm deleted file mode 100644 index faab74e191..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_aliasdomain_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_web_aliasdomain"> - - <div class="pnl_listsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_aliasdomain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_aliasdomain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/web_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/web_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/web_aliasdomain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_backup_list.htm b/interface/web/themes/default-304/templates/sites/web_backup_list.htm deleted file mode 100644 index 8563977096..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_backup_list.htm +++ /dev/null @@ -1,41 +0,0 @@ -<tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> -</tmpl_if> -<tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> -</tmpl_if> -<h3><tmpl_var name="list_head_txt"></h3> - -<div class="panel panel_list_web_backup"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_date" scope="col"><tmpl_var name="date_txt"></th> - <th class="tbl_col_date" scope="col"><tmpl_var name="backup_type_txt"></th> - <th class="tbl_col_filename" scope="col"><tmpl_var name="filename_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_date">{tmpl_var name="date"}</td> - <td class="tbl_col_date">{tmpl_var name="backup_type"}</td> - <td class="tbl_col_filename">{tmpl_var name="filename"}</td> - <td class="tbl_col_buttons" style="width:300px;"> - <div class="buttons" > - <button class="iconstxt icoRestore" type="button" onClick="confirm_action('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=restore&backup_id={tmpl_var name='backup_id'}','{tmpl_var name='restore_confirm_txt'}');"><span>{tmpl_var name="restore_backup_txt"}</span></button> - <button class="iconstxt icoDownload" type="button" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&backup_action=download&backup_id={tmpl_var name='backup_id'}');"><span>{tmpl_var name="download_backup_txt"}</span></button> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_admin_list.htm b/interface/web/themes/default-304/templates/sites/web_domain_admin_list.htm deleted file mode 100644 index f363e44c70..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_admin_list.htm +++ /dev/null @@ -1,61 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_web_domain_admin"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_domain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_domain_id" scope="col"><tmpl_var name="domain_id_txt"></th> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_domain_id"><input type="text" name="search_domain_id" size="4" value="{tmpl_var name='search_domain_id'}" /></td> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_domain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain_id"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain_id"}</a></td> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_sys_groupid"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/web_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_advanced.htm b/interface/web/themes/default-304/templates/sites/web_domain_advanced.htm deleted file mode 100644 index 87107400af..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_advanced.htm +++ /dev/null @@ -1,146 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <input name="document_root" id="document_root" value="{tmpl_var name='document_root'}" size="30" maxlength="255" type="hidden" class="textInput" /> - <div class="ctrlHolder"> - <label for="system_user">{tmpl_var name='system_user_txt'}</label> - <label for="system_user">{tmpl_var name='system_user'}</label> - <input name="system_user" id="system_user" value="{tmpl_var name='system_user'}" type="hidden" /> - </div> - <div class="ctrlHolder"> - <label for="system_group">{tmpl_var name='system_group_txt'}</label> - <label for="system_group">{tmpl_var name='system_group'}</label> - <input name="system_group" id="system_group" value="{tmpl_var name='system_group'}" type="hidden" /> - </div> - <div class="ctrlHolder apache"> - <label for="allow_override">{tmpl_var name='allow_override_txt'}</label> - <input name="allow_override" id="allow_override" value="{tmpl_var name='allow_override'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="phpfpm"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='php_fpm_use_socket_txt'}</p> - <div class="multiField"> - {tmpl_var name='php_fpm_use_socket'} - </div> - </div> - <div class="ctrlHolder"> - <label for="pm">{tmpl_var name='pm_txt'}</label> - <select name="pm" id="pm" class="selectInput"> - {tmpl_var name='pm'} - </select> - </div> - <div class="ctrlHolder pm_ondemand" style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> - {tmpl_var name='pm_ondemand_hint_txt'} - </div> - <div class="ctrlHolder"> - <label for="pm_max_children">{tmpl_var name='pm_max_children_txt'}</label> - <input name="pm_max_children" id="pm_max_children" value="{tmpl_var name='pm_max_children'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_dynamic"> - <label for="pm_start_servers">{tmpl_var name='pm_start_servers_txt'}</label> - <input name="pm_start_servers" id="pm_start_servers" value="{tmpl_var name='pm_start_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_dynamic"> - <label for="pm_min_spare_servers">{tmpl_var name='pm_min_spare_servers_txt'}</label> - <input name="pm_min_spare_servers" id="pm_min_spare_servers" value="{tmpl_var name='pm_min_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_dynamic"> - <label for="pm_max_spare_servers">{tmpl_var name='pm_max_spare_servers_txt'}</label> - <input name="pm_max_spare_servers" id="pm_max_spare_servers" value="{tmpl_var name='pm_max_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_ondemand"> - <label for="pm_process_idle_timeout">{tmpl_var name='pm_process_idle_timeout_txt'}</label> - <input name="pm_process_idle_timeout" id="pm_process_idle_timeout" value="{tmpl_var name='pm_process_idle_timeout'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> s - </div> - <div class="ctrlHolder"> - <label for="pm_max_requests">{tmpl_var name='pm_max_requests_txt'}</label> - <input name="pm_max_requests" id="pm_max_requests" value="{tmpl_var name='pm_max_requests'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="ctrlHolder"> - <label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label> - <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="30" type="text" class="textInput" style="width:400px;" /> - </div> - <div class="ctrlHolder"> - <label for="custom_php_ini">{tmpl_var name='custom_php_ini_txt'}</label> - <textarea name="custom_php_ini" id="custom_php_ini" rows='10' cols='50' style="width:400px;">{tmpl_var name='custom_php_ini'}</textarea> - </div> - <div class="ctrlHolder apache"> - <label for="apache_directives">{tmpl_var name='apache_directives_txt'}</label> - <textarea name="apache_directives" id="apache_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='apache_directives'}</textarea> - </div> - <div class="ctrlHolder nginx"> - <label for="nginx_directives">{tmpl_var name='nginx_directives_txt'}</label> - <textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var webId = jQuery('input[name="id"]').val(); - var serverId; - getServerId(); - adjustForm(); - - var pm = jQuery('#pm').val(); - pmMode(pm); - jQuery('#pm').change(function(){ - pm = jQuery(this).val(); - pmMode(pm); - }); - - function pmMode(pm){ - switch(pm){ - case "static": - jQuery('.pm_dynamic').add('.pm_ondemand').hide(); - jQuery('.pm_static').show(); - break; - case "dynamic": - jQuery('.pm_static').add('.pm_ondemand').hide(); - jQuery('.pm_dynamic').show(); - break; - case "ondemand": - jQuery('.pm_static').add('.pm_dynamic').hide(); - jQuery('.pm_ondemand').show(); - break; - } - } - - function getServerId(){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { - serverId = data.serverid; - }); - } - - function adjustForm(){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - if(data.servertype == "nginx"){ - jQuery('.nginx').show(); - jQuery('.apache').hide(); - } else { - jQuery('.nginx').hide(); - jQuery('.apache').show(); - } - }); - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getphptype"}, function(data) { - if(data.phptype == "php-fpm"){ - jQuery('.phpfpm').show(); - } else { - jQuery('.phpfpm').hide(); - } - }); - } - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_backup.htm b/interface/web/themes/default-304/templates/sites/web_domain_backup.htm deleted file mode 100644 index c46d4e2d4e..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_backup.htm +++ /dev/null @@ -1,32 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Backup</legend> - <div class="ctrlHolder"> - <label for="backup_interval">{tmpl_var name='backup_interval_txt'}</label> - <select name="backup_interval" id="backup_interval" class="selectInput"> - {tmpl_var name='backup_interval'} - </select> - </div> - <div class="ctrlHolder"> - <label for="backup_copies">{tmpl_var name='backup_copies_txt'}</label> - <select name="backup_copies" id="backup_copies" class="selectInput"> - {tmpl_var name='backup_copies'} - </select> - </div> - </fieldset> - - {tmpl_var name='backup_records'} - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_edit.htm b/interface/web/themes/default-304/templates/sites/web_domain_edit.htm deleted file mode 100644 index c2d9d21ea5..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_edit.htm +++ /dev/null @@ -1,249 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> - <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='server_id'} - </select> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> - <tmpl_else> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_group_id_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - <tmpl_else> - <input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" /> - </tmpl_if> - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_group_id_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="ip_address">{tmpl_var name='ip_address_txt'}</label> - <select name="ip_address" id="ip_address" class="selectInput formLengthIPv4"> - {tmpl_var name='ip_address'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ipv6_address">{tmpl_var name='ipv6_address_txt'}</label> - <select name="ipv6_address" id="ipv6_address" class="selectInput formLengthIPv4"> - {tmpl_var name='ipv6_address'} - </select> - </div> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <tmpl_if name="domain_option"> - <select name="domain" id="domain" class="selectInput"> - {tmpl_var name='domain_option'} - </select> - <tmpl_else> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="hd_quota">{tmpl_var name='hd_quota_txt'}</label> - <input name="hd_quota" id="hd_quota" value="{tmpl_var name='hd_quota'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="traffic_quota">{tmpl_var name='traffic_quota_txt'}</label> - <input name="traffic_quota" id="traffic_quota" value="{tmpl_var name='traffic_quota'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /> MB <tmpl_var name='traffic_quota_exceeded_txt'> - </div> - <tmpl_if name="limit_cgi" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='cgi_txt'}</p> - <div class="multiField"> - {tmpl_var name='cgi'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_ssi" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssi_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssi'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_perl" op="==" value="y"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='perl_txt'}</p> - <div class="multiField"> - {tmpl_var name='perl'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_ruby" op="==" value="y"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='ruby_txt'}</p> - <div class="multiField"> - {tmpl_var name='ruby'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_python" op="==" value="y"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='python_txt'}</p> - <div class="multiField"> - {tmpl_var name='python'} - </div> - </div></tmpl_if> - <tmpl_if name="force_suexec" op="==" value="n"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='suexec_txt'}</p> - <div class="multiField"> - {tmpl_var name='suexec'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_hterror" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='errordocs_txt'}</p> - <div class="multiField"> - {tmpl_var name='errordocs'} - </div> - </div></tmpl_if> - - <div class="ctrlHolder"> - <label for="subdomain">{tmpl_var name='subdomain_txt'}</label> - <select name="subdomain" id="subdomain" class="selectInput formLengthHalf"> - {tmpl_var name='subdomain'} - </select> - </div> - <tmpl_if name="limit_ssl" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssl_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssl'} - </div> - </div></tmpl_if> - <div class="ctrlHolder"> - <label for="php">{tmpl_var name='php_txt'}</label> - <select name="php" id="php" class="selectInput formLengthHalf"> - {tmpl_var name='php'} - </select> - </div> - <div class="ctrlHolder fastcgi_php_version"> - <label for="fastcgi_php_version">{tmpl_var name='fastcgi_php_version_txt'}</label> - <select name="fastcgi_php_version" id="fastcgi_php_version" class="selectInput formLengthHalf"> - {tmpl_var name='fastcgi_php_version'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button id="dom-edit-submit" class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var serverId; - var clientGroupId = jQuery('#client_group_id').val(); - var serverIdDisabled = jQuery('#server_id_disabled').val(); - if(serverIdDisabled > 0){ - serverId = serverIdDisabled; - } else { - serverId = jQuery('#server_id').val(); - jQuery('#server_id').change(function(){ - serverId = $(this).val(); - adjustForm(); - reloadWebIP(); - reloadFastcgiPHPVersions(); - }); - } - adjustForm(); - reloadFastcgiPHPVersions(); - - jQuery('#client_group_id').change(function(){ - clientGroupId = $(this).val(); - reloadWebIP(); - }); - - if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm'){ - jQuery('.fastcgi_php_version:hidden').show(); - } else { - jQuery('.fastcgi_php_version:visible').hide(); - } - jQuery('#php').change(function(){ - reloadFastcgiPHPVersions(); - if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm'){ - jQuery('.fastcgi_php_version:hidden').show(); - } else { - jQuery('.fastcgi_php_version:visible').hide(); - } - }); - - function adjustForm(){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - if(data.servertype == "nginx"){ - var selected = jQuery('#php').val(); - jQuery('.apache').hide(); - jQuery('.apache').hide(); - jQuery('#php option[value="fast-cgi"]').hide(); - jQuery('#php option[value="cgi"]').hide(); - jQuery('#php option[value="mod"]').hide(); - jQuery('#php option[value="suphp"]').hide(); - if(selected != "no" && selected != "php-fpm") jQuery('#php option[value="php-fpm"]').attr('selected', 'selected'); - } else { - jQuery('.apache').show(); - jQuery('.apache').show(); - jQuery('#php option[value="fast-cgi"]').show(); - jQuery('#php option[value="cgi"]').show(); - jQuery('#php option[value="mod"]').show(); - jQuery('#php option[value="suphp"]').show(); - } - }); - } - - function reloadWebIP() { - loadOptionInto('ip_address','sites/ajax_get_ip.php?ip_type=IPv4&server_id='+serverId+'&client_group_id='+clientGroupId); - loadOptionInto('ipv6_address','sites/ajax_get_ip.php?ip_type=IPv6&server_id='+serverId+'&client_group_id='+clientGroupId); - } - - function reloadFastcgiPHPVersions() { - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi"}, function(data) { - var options = '<option value="">Default</option>'; - var phpfastcgiselected = ''; - $.each(data, function(key, val) { - if($('#fastcgi_php_version').val() == key){ - phpfastcgiselected = ' selected="selected"'; - } else { - phpfastcgiselected = ''; - } - options += '<option value="'+key+'"'+phpfastcgiselected+'>'+val+'</option>'; - }); - $('#fastcgi_php_version').html(options); - }); - } - - <tmpl_if name="readonly_tab"> - jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').attr('disabled', 'disabled'); - jQuery('div.tabbox_tabs').find('a').click(function() { - jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').removeAttr('disabled'); - }); - jQuery('#dom-edit-submit').click(function() { - jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').removeAttr('disabled'); - submitForm('pageForm','sites/web_domain_edit.php'); - }); - <tmpl_else> - jQuery('#dom-edit-submit').click(function() { - submitForm('pageForm','sites/web_domain_edit.php'); - }); - </tmpl_if> - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_list.htm b/interface/web/themes/default-304/templates/sites/web_domain_list.htm deleted file mode 100644 index 4ce5d5ddd4..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_web_domain"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_domain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_domain_id" scope="col"><tmpl_var name="domain_id_txt"></th> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_domain_id"><input type="text" size="5" name="search_domain_id" value="{tmpl_var name='search_domain_id'}" /></td> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_domain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain_id"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain_id"}</a></td> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/web_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_redirect.htm b/interface/web/themes/default-304/templates/sites/web_domain_redirect.htm deleted file mode 100644 index 66a17034c9..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_redirect.htm +++ /dev/null @@ -1,76 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> - <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> - {tmpl_var name='redirect_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> - <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label> - <select name="seo_redirect" id="seo_redirect" class="selectInput formLengthHalf"> - {tmpl_var name='seo_redirect'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var webId = jQuery('input[name="id"]').val(); - var serverId; - getServerId(webId); - - function getServerId(webId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { - serverId = data.serverid; - adjustForm(serverId); - }); - } - - function adjustForm(serverId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - var selected = jQuery('#redirect_type').val(); - if(data.servertype == "nginx"){ - jQuery("#redirect_type option[value='R']").attr('disabled','disabled'); - jQuery('#redirect_type option[value="L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled'); - - jQuery('#redirect_type option[value="R"]').hide(); - jQuery('#redirect_type option[value="L"]').hide(); - jQuery('#redirect_type option[value="R,L"]').hide(); - jQuery('#redirect_type option[value="R=301,L"]').hide(); - if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } else { - jQuery('#redirect_type option[value="last"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="break"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled'); - - jQuery('#redirect_type option[value="last"]').hide(); - jQuery('#redirect_type option[value="break"]').hide(); - jQuery('#redirect_type option[value="redirect"]').hide(); - jQuery('#redirect_type option[value="permanent"]').hide(); - if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } - }); - } - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_ssl.htm b/interface/web/themes/default-304/templates/sites/web_domain_ssl.htm deleted file mode 100644 index 4c27bb7729..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_ssl.htm +++ /dev/null @@ -1,68 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="ssl_state">{tmpl_var name='ssl_state_txt'}</label> - <input name="ssl_state" id="ssl_state" value="{tmpl_var name='ssl_state'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_locality">{tmpl_var name='ssl_locality_txt'}</label> - <input name="ssl_locality" id="ssl_locality" value="{tmpl_var name='ssl_locality'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_organisation">{tmpl_var name='ssl_organisation_txt'}</label> - <input name="ssl_organisation" id="ssl_organisation" value="{tmpl_var name='ssl_organisation'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_organisation_unit">{tmpl_var name='ssl_organisation_unit_txt'}</label> - <input name="ssl_organisation_unit" id="ssl_organisation_unit" value="{tmpl_var name='ssl_organisation_unit'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_country">{tmpl_var name='ssl_country_txt'}</label> - <select name="ssl_country" id="ssl_country" class="selectInput flags"> - {tmpl_var name='ssl_country'} - </select> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='ssl_domain_txt'}</label> - <select name="ssl_domain" id="ssl_domain" class="selectInput"> - {tmpl_var name='ssl_domain'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ssl_request">{tmpl_var name='ssl_key_txt'}</label> - <textarea name="ssl_key" id="ssl_key" rows='10' cols='30'>{tmpl_var name='ssl_key'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_request">{tmpl_var name='ssl_request_txt'}</label> - <textarea name="ssl_request" id="ssl_request" rows='10' cols='30'>{tmpl_var name='ssl_request'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_cert">{tmpl_var name='ssl_cert_txt'}</label> - <textarea name="ssl_cert" id="ssl_cert" rows='10' cols='30'>{tmpl_var name='ssl_cert'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_bundle">{tmpl_var name='ssl_bundle_txt'}</label> - <textarea name="ssl_bundle" id="ssl_bundle" rows='10' cols='30'>{tmpl_var name='ssl_bundle'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_action">{tmpl_var name='ssl_action_txt'}</label> - <select name="ssl_action" id="ssl_action" class="selectInput formLengthHalf"> - {tmpl_var name='ssl_action'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_domain_stats.htm b/interface/web/themes/default-304/templates/sites/web_domain_stats.htm deleted file mode 100644 index 26eee94772..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_domain_stats.htm +++ /dev/null @@ -1,37 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='stats_user_txt'}</p><p class="value">admin</p> - </div> - <div class="ctrlHolder"> - <label for="stats_password">{tmpl_var name='stats_password_txt'}</label> - <input name="stats_password" id="stats_password" value="{tmpl_var name='stats_password'}" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('stats_password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="stats_type">{tmpl_var name='stats_type_txt'}</label> - <select name="stats_type" id="stats_type" class="selectInput" > - {tmpl_var name='stats_type'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/sites/web_folder_edit.htm b/interface/web/themes/default-304/templates/sites/web_folder_edit.htm deleted file mode 100644 index 4165ab70b1..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_folder_edit.htm +++ /dev/null @@ -1,34 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_folder"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Folder</legend> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="path">{tmpl_var name='path_txt'}</label> - <input name="path" id="path" value="{tmpl_var name='path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_folder_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_folder_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/sites/web_folder_list.htm b/interface/web/themes/default-304/templates/sites/web_folder_list.htm deleted file mode 100644 index 3dcb9ee0cb..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_folder_list.htm +++ /dev/null @@ -1,58 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_web_folder"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_folder_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_path" scope="col"><tmpl_var name="path_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','sites/web_folder_list.php');">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','sites/web_folder_list.php');">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id" onChange="submitForm('pageForm','sites/web_folder_list.php');">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_path"><input type="text" name="search_path" value="{tmpl_var name='search_path'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_folder_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_folder_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/web_folder_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/web_folder_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_path"><a href="#" onClick="loadContent('sites/web_folder_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="path"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/web_folder_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_folder_user_edit.htm b/interface/web/themes/default-304/templates/sites/web_folder_user_edit.htm deleted file mode 100644 index 63376d8ed8..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_folder_user_edit.htm +++ /dev/null @@ -1,49 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_folder_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Folder</legend> - <div class="ctrlHolder"> - <label for="web_folder_id">{tmpl_var name='web_folder_id_txt'}</label> - <select name="web_folder_id" id="web_folder_id" class="selectInput"> - {tmpl_var name='web_folder_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_folder_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_folder_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/sites/web_folder_user_list.htm b/interface/web/themes/default-304/templates/sites/web_folder_user_list.htm deleted file mode 100644 index 2df924f1c9..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_folder_user_list.htm +++ /dev/null @@ -1,55 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_web_folder_user"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_folder_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_web_folder_id" scope="col"><tmpl_var name="web_folder_id_txt"></th> - <th class="tbl_col_username" scope="col"><tmpl_var name="username_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','sites/web_folder_user_list.php');">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_web_folder_id"><select name="search_web_folder_id" onChange="submitForm('pageForm','sites/web_folder_user_list.php');">{tmpl_var name='search_web_folder_id'}</select></td> - <td class="tbl_col_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_folder_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_folder_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_web_folder_id"><a href="#" onClick="loadContent('sites/web_folder_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="web_folder_id"}</a></td> - <td class="tbl_col_username"><a href="#" onClick="loadContent('sites/web_folder_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="username"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/web_folder_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_sites_stats_list.htm b/interface/web/themes/default-304/templates/sites/web_sites_stats_list.htm deleted file mode 100644 index d51e0e2b81..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_sites_stats_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_web_sites_stats"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_web_traffic_this_month" scope="col"><tmpl_var name="this_month_txt"></th> - <th class="tbl_col_web_traffic_last_month" scope="col"><tmpl_var name="last_month_txt"></th> - <th class="tbl_col_web_traffic_this_year" scope="col"><tmpl_var name="this_year_txt"></th> - <th class="tbl_col_web_traffic_last_year" scope="col"><tmpl_var name="last_year_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_this_month"></td> - <td class="tbl_col_last_month"></td> - <td class="tbl_col_this_year"></td> - <td class="tbl_col_last_year"></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_sites_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_this_month"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_month"} MB</a></td> - <td class="tbl_col_last_month"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_month"} MB</a></td> - <td class="tbl_col_this_year"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_year"} MB</a></td> - <td class="tbl_col_last_year"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_year"} MB</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - </div> - </td> - </tr> - </tmpl_loop> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');" style="font-weight:bold;">{tmpl_var name="sum_txt"}</a></td> - <td class="tbl_col_this_month"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');" style="font-weight:bold;">{tmpl_var name="sum_this_month"} MB</a></td> - <td class="tbl_col_last_month"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');" style="font-weight:bold;">{tmpl_var name="sum_last_month"} MB</a></td> - <td class="tbl_col_this_year"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');" style="font-weight:bold;">{tmpl_var name="sum_this_year"} MB</a></td> - <td class="tbl_col_last_year"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');" style="font-weight:bold;">{tmpl_var name="sum_last_year"} MB</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - </div> - </td> - </tr> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_subdomain_edit.htm b/interface/web/themes/default-304/templates/sites/web_subdomain_edit.htm deleted file mode 100644 index a8b0fe9bd0..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_subdomain_edit.htm +++ /dev/null @@ -1,112 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_subdomain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='host_txt'}</label> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='domain_txt'}</label> - <select id="parent_domain_id" name="parent_domain_id" class="selectInput formLengthHalf">{tmpl_var name='parent_domain_id'}</select> - </div> - <div class="ctrlHolder"> - <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> - <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> - {tmpl_var name='redirect_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> - <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_subdomain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_subdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - //var webId = jQuery('input[name="id"]').val(); - var webId = jQuery('#parent_domain_id').val(); - var serverId; - getServerId(webId); - - jQuery('#parent_domain_id').change(function(){ - webId = $(this).val(); - getServerId(webId); - }); - - function getServerId(webId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { - serverId = data.serverid; - adjustForm(serverId); - }); - } - - function adjustForm(serverId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - var selected = jQuery('#redirect_type').val(); - if(data.servertype == "nginx"){ - jQuery("#redirect_type option[value='R']").attr('disabled','disabled'); - jQuery('#redirect_type option[value="L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled'); - - jQuery("#redirect_type option[value='R']").hide(); - jQuery('#redirect_type option[value="L"]').hide(); - jQuery('#redirect_type option[value="R,L"]').hide(); - jQuery('#redirect_type option[value="R=301,L"]').hide(); - - jQuery('#redirect_type option[value="last"]').show(); - jQuery('#redirect_type option[value="break"]').show(); - jQuery('#redirect_type option[value="redirect"]').show(); - jQuery('#redirect_type option[value="permanent"]').show(); - - jQuery('#redirect_type option[value="last"]').attr('disabled',false); - jQuery('#redirect_type option[value="break"]').attr('disabled',false); - jQuery('#redirect_type option[value="redirect"]').attr('disabled',false); - jQuery('#redirect_type option[value="permanent"]').attr('disabled',false); - - if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } else { - jQuery('#redirect_type option[value="last"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="break"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled'); - - jQuery('#redirect_type option[value="last"]').hide(); - jQuery('#redirect_type option[value="break"]').hide(); - jQuery('#redirect_type option[value="redirect"]').hide(); - jQuery('#redirect_type option[value="permanent"]').hide(); - - jQuery('#redirect_type option[value="R"]').show(); - jQuery('#redirect_type option[value="L"]').show(); - jQuery('#redirect_type option[value="R,L"]').show(); - jQuery('#redirect_type option[value="R=301,L"]').show(); - - jQuery('#redirect_type option[value="R"]').attr('disabled',false); - jQuery('#redirect_type option[value="L"]').attr('disabled',false); - jQuery('#redirect_type option[value="R,L"]').attr('disabled',false); - jQuery('#redirect_type option[value="R=301,L"]').attr('disabled',false); - - if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } - }); - } - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_subdomain_list.htm b/interface/web/themes/default-304/templates/sites/web_subdomain_list.htm deleted file mode 100644 index 237cd85689..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_subdomain_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_web_subdomain"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_subdomain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_subdomain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/web_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/web_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/web_subdomain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_advanced.htm b/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_advanced.htm deleted file mode 100644 index 87107400af..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_advanced.htm +++ /dev/null @@ -1,146 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <input name="document_root" id="document_root" value="{tmpl_var name='document_root'}" size="30" maxlength="255" type="hidden" class="textInput" /> - <div class="ctrlHolder"> - <label for="system_user">{tmpl_var name='system_user_txt'}</label> - <label for="system_user">{tmpl_var name='system_user'}</label> - <input name="system_user" id="system_user" value="{tmpl_var name='system_user'}" type="hidden" /> - </div> - <div class="ctrlHolder"> - <label for="system_group">{tmpl_var name='system_group_txt'}</label> - <label for="system_group">{tmpl_var name='system_group'}</label> - <input name="system_group" id="system_group" value="{tmpl_var name='system_group'}" type="hidden" /> - </div> - <div class="ctrlHolder apache"> - <label for="allow_override">{tmpl_var name='allow_override_txt'}</label> - <input name="allow_override" id="allow_override" value="{tmpl_var name='allow_override'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="phpfpm"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='php_fpm_use_socket_txt'}</p> - <div class="multiField"> - {tmpl_var name='php_fpm_use_socket'} - </div> - </div> - <div class="ctrlHolder"> - <label for="pm">{tmpl_var name='pm_txt'}</label> - <select name="pm" id="pm" class="selectInput"> - {tmpl_var name='pm'} - </select> - </div> - <div class="ctrlHolder pm_ondemand" style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> - {tmpl_var name='pm_ondemand_hint_txt'} - </div> - <div class="ctrlHolder"> - <label for="pm_max_children">{tmpl_var name='pm_max_children_txt'}</label> - <input name="pm_max_children" id="pm_max_children" value="{tmpl_var name='pm_max_children'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_dynamic"> - <label for="pm_start_servers">{tmpl_var name='pm_start_servers_txt'}</label> - <input name="pm_start_servers" id="pm_start_servers" value="{tmpl_var name='pm_start_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_dynamic"> - <label for="pm_min_spare_servers">{tmpl_var name='pm_min_spare_servers_txt'}</label> - <input name="pm_min_spare_servers" id="pm_min_spare_servers" value="{tmpl_var name='pm_min_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_dynamic"> - <label for="pm_max_spare_servers">{tmpl_var name='pm_max_spare_servers_txt'}</label> - <input name="pm_max_spare_servers" id="pm_max_spare_servers" value="{tmpl_var name='pm_max_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder pm_ondemand"> - <label for="pm_process_idle_timeout">{tmpl_var name='pm_process_idle_timeout_txt'}</label> - <input name="pm_process_idle_timeout" id="pm_process_idle_timeout" value="{tmpl_var name='pm_process_idle_timeout'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> s - </div> - <div class="ctrlHolder"> - <label for="pm_max_requests">{tmpl_var name='pm_max_requests_txt'}</label> - <input name="pm_max_requests" id="pm_max_requests" value="{tmpl_var name='pm_max_requests'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> - </div> - </div> - <div class="ctrlHolder"> - <label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label> - <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="30" type="text" class="textInput" style="width:400px;" /> - </div> - <div class="ctrlHolder"> - <label for="custom_php_ini">{tmpl_var name='custom_php_ini_txt'}</label> - <textarea name="custom_php_ini" id="custom_php_ini" rows='10' cols='50' style="width:400px;">{tmpl_var name='custom_php_ini'}</textarea> - </div> - <div class="ctrlHolder apache"> - <label for="apache_directives">{tmpl_var name='apache_directives_txt'}</label> - <textarea name="apache_directives" id="apache_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='apache_directives'}</textarea> - </div> - <div class="ctrlHolder nginx"> - <label for="nginx_directives">{tmpl_var name='nginx_directives_txt'}</label> - <textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var webId = jQuery('input[name="id"]').val(); - var serverId; - getServerId(); - adjustForm(); - - var pm = jQuery('#pm').val(); - pmMode(pm); - jQuery('#pm').change(function(){ - pm = jQuery(this).val(); - pmMode(pm); - }); - - function pmMode(pm){ - switch(pm){ - case "static": - jQuery('.pm_dynamic').add('.pm_ondemand').hide(); - jQuery('.pm_static').show(); - break; - case "dynamic": - jQuery('.pm_static').add('.pm_ondemand').hide(); - jQuery('.pm_dynamic').show(); - break; - case "ondemand": - jQuery('.pm_static').add('.pm_dynamic').hide(); - jQuery('.pm_ondemand').show(); - break; - } - } - - function getServerId(){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { - serverId = data.serverid; - }); - } - - function adjustForm(){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - if(data.servertype == "nginx"){ - jQuery('.nginx').show(); - jQuery('.apache').hide(); - } else { - jQuery('.nginx').hide(); - jQuery('.apache').show(); - } - }); - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getphptype"}, function(data) { - if(data.phptype == "php-fpm"){ - jQuery('.phpfpm').show(); - } else { - jQuery('.phpfpm').hide(); - } - }); - } - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_backup.htm b/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_backup.htm deleted file mode 100644 index c46d4e2d4e..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_backup.htm +++ /dev/null @@ -1,32 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Backup</legend> - <div class="ctrlHolder"> - <label for="backup_interval">{tmpl_var name='backup_interval_txt'}</label> - <select name="backup_interval" id="backup_interval" class="selectInput"> - {tmpl_var name='backup_interval'} - </select> - </div> - <div class="ctrlHolder"> - <label for="backup_copies">{tmpl_var name='backup_copies_txt'}</label> - <select name="backup_copies" id="backup_copies" class="selectInput"> - {tmpl_var name='backup_copies'} - </select> - </div> - </fieldset> - - {tmpl_var name='backup_records'} - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_edit.htm b/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_edit.htm deleted file mode 100644 index 159830c685..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_edit.htm +++ /dev/null @@ -1,208 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <input type="hidden" name="server_id" id="server_id" value="{tmpl_var name='server_id_value'}" /> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='host_txt'}</label> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='domain_txt'}</label> - <select id="parent_domain_id" name="parent_domain_id" class="selectInput formLengthHalf">{tmpl_var name='parent_domain_id'}</select> - </div> - <div class="ctrlHolder"> - <label for="web_folder">{tmpl_var name='web_folder_txt'}</label> - <input name="web_folder" id="web_folder" value="{tmpl_var name='web_folder'}" size="30" maxlength="100" type="text" class="textInput formLengthHalf"<tmpl_if name='fixed_folder' op='==' value='y'> readonly="readonly"</tmpl_if> /> - </div> - <div class="ctrlHolder"> - <label for="hd_quota">{tmpl_var name='hd_quota_txt'}</label> - <input name="hd_quota" id="hd_quota" value="{tmpl_var name='hd_quota'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="traffic_quota">{tmpl_var name='traffic_quota_txt'}</label> - <input name="traffic_quota" id="traffic_quota" value="{tmpl_var name='traffic_quota'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /> MB <tmpl_var name='traffic_quota_exceeded_txt'> - </div> - <tmpl_if name="limit_cgi" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='cgi_txt'}</p> - <div class="multiField"> - {tmpl_var name='cgi'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_ssi" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssi_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssi'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_perl" op="==" value="y"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='perl_txt'}</p> - <div class="multiField"> - {tmpl_var name='perl'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_ruby" op="==" value="y"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='ruby_txt'}</p> - <div class="multiField"> - {tmpl_var name='ruby'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_python" op="==" value="y"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='python_txt'}</p> - <div class="multiField"> - {tmpl_var name='python'} - </div> - </div></tmpl_if> - <tmpl_if name="force_suexec" op="==" value="n"><div class="ctrlHolder apache"> - <p class="label">{tmpl_var name='suexec_txt'}</p> - <div class="multiField"> - {tmpl_var name='suexec'} - </div> - </div></tmpl_if> - <tmpl_if name="limit_hterror" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='errordocs_txt'}</p> - <div class="multiField"> - {tmpl_var name='errordocs'} - </div> - </div></tmpl_if> - - <div class="ctrlHolder"> - <label for="subdomain">{tmpl_var name='subdomain_txt'}</label> - <select name="subdomain" id="subdomain" class="selectInput formLengthHalf"> - {tmpl_var name='subdomain'} - </select> - </div> - <tmpl_if name="limit_ssl" op="==" value="y"><div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssl_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssl'} - </div> - </div></tmpl_if> - <div class="ctrlHolder"> - <label for="php">{tmpl_var name='php_txt'}</label> - <select name="php" id="php" class="selectInput formLengthHalf"> - {tmpl_var name='php'} - </select> - </div> - <div class="ctrlHolder fastcgi_php_version"> - <label for="fastcgi_php_version">{tmpl_var name='fastcgi_php_version_txt'}</label> - <select name="fastcgi_php_version" id="fastcgi_php_version" class="selectInput formLengthHalf"> - {tmpl_var name='fastcgi_php_version'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button id="dom-edit-submit" class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_vhost_subdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var serverId; - var clientGroupId = jQuery('#client_group_id').val(); - var serverIdDisabled = jQuery('#server_id_disabled').val(); - if(serverIdDisabled > 0){ - serverId = serverIdDisabled; - } else { - serverId = jQuery('#server_id').val(); - jQuery('#server_id').change(function(){ - serverId = $(this).val(); - adjustForm(); - reloadWebIP(); - reloadFastcgiPHPVersions(); - }); - } - adjustForm(); - reloadFastcgiPHPVersions(); - - jQuery('#client_group_id').change(function(){ - clientGroupId = $(this).val(); - reloadWebIP(); - }); - - if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm'){ - jQuery('.fastcgi_php_version:hidden').show(); - } else { - jQuery('.fastcgi_php_version:visible').hide(); - } - jQuery('#php').change(function(){ - reloadFastcgiPHPVersions(); - if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm'){ - jQuery('.fastcgi_php_version:hidden').show(); - } else { - jQuery('.fastcgi_php_version:visible').hide(); - } - }); - - function adjustForm(){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - if(data.servertype == "nginx"){ - var selected = jQuery('#php').val(); - jQuery('.apache').hide(); - jQuery('.apache').hide(); - jQuery('#php option[value="fast-cgi"]').hide(); - jQuery('#php option[value="cgi"]').hide(); - jQuery('#php option[value="mod"]').hide(); - jQuery('#php option[value="suphp"]').hide(); - if(selected != "no" && selected != "php-fpm") jQuery('#php option[value="php-fpm"]').attr('selected', 'selected'); - } else { - jQuery('.apache').show(); - jQuery('.apache').show(); - jQuery('#php option[value="fast-cgi"]').show(); - jQuery('#php option[value="cgi"]').show(); - jQuery('#php option[value="mod"]').show(); - jQuery('#php option[value="suphp"]').show(); - } - }); - } - - function reloadWebIP() { - loadOptionInto('ip_address','sites/ajax_get_ip.php?ip_type=IPv4&server_id='+serverId+'&client_group_id='+clientGroupId); - loadOptionInto('ipv6_address','sites/ajax_get_ip.php?ip_type=IPv6&server_id='+serverId+'&client_group_id='+clientGroupId); - } - - function reloadFastcgiPHPVersions() { - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi"}, function(data) { - var options = '<option value="">Default</option>'; - var phpfastcgiselected = ''; - $.each(data, function(key, val) { - if($('#fastcgi_php_version').val() == key){ - phpfastcgiselected = ' selected="selected"'; - } else { - phpfastcgiselected = ''; - } - options += '<option value="'+key+'"'+phpfastcgiselected+'>'+val+'</option>'; - }); - $('#fastcgi_php_version').html(options); - }); - } - - <tmpl_if name="readonly_tab"> - jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').attr('disabled', 'disabled'); - jQuery('div.tabbox_tabs').find('a').click(function() { - jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').removeAttr('disabled'); - }); - jQuery('#dom-edit-submit').click(function() { - jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').removeAttr('disabled'); - submitForm('pageForm','sites/web_vhost_subdomain_edit.php'); - }); - <tmpl_else> - jQuery('#dom-edit-submit').click(function() { - submitForm('pageForm','sites/web_vhost_subdomain_edit.php'); - }); - </tmpl_if> - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_list.htm b/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_list.htm deleted file mode 100644 index f216988998..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_web_subdomain"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_vhost_subdomain_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_vhost_subdomain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_vhost_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/web_vhost_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/web_vhost_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_vhost_subdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/web_vhost_subdomain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_redirect.htm b/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_redirect.htm deleted file mode 100644 index 66a17034c9..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_redirect.htm +++ /dev/null @@ -1,76 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> - <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> - {tmpl_var name='redirect_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> - <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label> - <select name="seo_redirect" id="seo_redirect" class="selectInput formLengthHalf"> - {tmpl_var name='seo_redirect'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var webId = jQuery('input[name="id"]').val(); - var serverId; - getServerId(webId); - - function getServerId(webId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { - serverId = data.serverid; - adjustForm(serverId); - }); - } - - function adjustForm(serverId){ - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { - var selected = jQuery('#redirect_type').val(); - if(data.servertype == "nginx"){ - jQuery("#redirect_type option[value='R']").attr('disabled','disabled'); - jQuery('#redirect_type option[value="L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled'); - - jQuery('#redirect_type option[value="R"]').hide(); - jQuery('#redirect_type option[value="L"]').hide(); - jQuery('#redirect_type option[value="R,L"]').hide(); - jQuery('#redirect_type option[value="R=301,L"]').hide(); - if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } else { - jQuery('#redirect_type option[value="last"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="break"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled'); - jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled'); - - jQuery('#redirect_type option[value="last"]').hide(); - jQuery('#redirect_type option[value="break"]').hide(); - jQuery('#redirect_type option[value="redirect"]').hide(); - jQuery('#redirect_type option[value="permanent"]').hide(); - if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); - } - }); - } - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_ssl.htm b/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_ssl.htm deleted file mode 100644 index 4c27bb7729..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_ssl.htm +++ /dev/null @@ -1,68 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="ssl_state">{tmpl_var name='ssl_state_txt'}</label> - <input name="ssl_state" id="ssl_state" value="{tmpl_var name='ssl_state'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_locality">{tmpl_var name='ssl_locality_txt'}</label> - <input name="ssl_locality" id="ssl_locality" value="{tmpl_var name='ssl_locality'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_organisation">{tmpl_var name='ssl_organisation_txt'}</label> - <input name="ssl_organisation" id="ssl_organisation" value="{tmpl_var name='ssl_organisation'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_organisation_unit">{tmpl_var name='ssl_organisation_unit_txt'}</label> - <input name="ssl_organisation_unit" id="ssl_organisation_unit" value="{tmpl_var name='ssl_organisation_unit'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="ssl_country">{tmpl_var name='ssl_country_txt'}</label> - <select name="ssl_country" id="ssl_country" class="selectInput flags"> - {tmpl_var name='ssl_country'} - </select> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='ssl_domain_txt'}</label> - <select name="ssl_domain" id="ssl_domain" class="selectInput"> - {tmpl_var name='ssl_domain'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ssl_request">{tmpl_var name='ssl_key_txt'}</label> - <textarea name="ssl_key" id="ssl_key" rows='10' cols='30'>{tmpl_var name='ssl_key'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_request">{tmpl_var name='ssl_request_txt'}</label> - <textarea name="ssl_request" id="ssl_request" rows='10' cols='30'>{tmpl_var name='ssl_request'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_cert">{tmpl_var name='ssl_cert_txt'}</label> - <textarea name="ssl_cert" id="ssl_cert" rows='10' cols='30'>{tmpl_var name='ssl_cert'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_bundle">{tmpl_var name='ssl_bundle_txt'}</label> - <textarea name="ssl_bundle" id="ssl_bundle" rows='10' cols='30'>{tmpl_var name='ssl_bundle'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssl_action">{tmpl_var name='ssl_action_txt'}</label> - <select name="ssl_action" id="ssl_action" class="selectInput formLengthHalf"> - {tmpl_var name='ssl_action'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_stats.htm b/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_stats.htm deleted file mode 100644 index 26eee94772..0000000000 --- a/interface/web/themes/default-304/templates/sites/web_vhost_subdomain_stats.htm +++ /dev/null @@ -1,37 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='stats_user_txt'}</p><p class="value">admin</p> - </div> - <div class="ctrlHolder"> - <label for="stats_password">{tmpl_var name='stats_password_txt'}</label> - <input name="stats_password" id="stats_password" value="{tmpl_var name='stats_password'}" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('stats_password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="stats_type">{tmpl_var name='stats_type_txt'}</label> - <select name="stats_type" id="stats_type" class="selectInput" > - {tmpl_var name='stats_type'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/sites/webdav_user_edit.htm b/interface/web/themes/default-304/templates/sites/webdav_user_edit.htm deleted file mode 100644 index 8dd719dca1..0000000000 --- a/interface/web/themes/default-304/templates/sites/webdav_user_edit.htm +++ /dev/null @@ -1,64 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_webdav_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> - {tmpl_var name='parent_domain_id'} - </select> - <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> - <tmpl_else> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <p class="prefix">{tmpl_var name='username_prefix'}</p> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput formLengthFourth" <tmpl_if name="edit_disabled">disabled="disabled"</tmpl_if>/> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('password','repeat_password');"/> <a href="javascript:void(0);" onClick="generatePassword('password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('password','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <p class="prefix">webdav/</p> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" <tmpl_if name="edit_disabled">disabled="disabled"</tmpl_if>/> - </div> - - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/webdav_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/webdav_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/webdav_user_list.htm b/interface/web/themes/default-304/templates/sites/webdav_user_list.htm deleted file mode 100644 index ee2b45df80..0000000000 --- a/interface/web/themes/default-304/templates/sites/webdav_user_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_webdav_user"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/webdav_user_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> - <th class="tbl_col_username" scope="col"><tmpl_var name="username_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> - <td class="tbl_col_username"><input type="text" name="search_username" value="{tmpl_var name='search_username'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/webdav_user_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> - <td class="tbl_col_username"><a href="#" onClick="loadContent('sites/webdav_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="username"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('sites/webdav_user_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tabbed_form.tpl.htm b/interface/web/themes/default-304/templates/tabbed_form.tpl.htm deleted file mode 100644 index 2890e1b17a..0000000000 --- a/interface/web/themes/default-304/templates/tabbed_form.tpl.htm +++ /dev/null @@ -1,27 +0,0 @@ -<tmpl_if name="form_hint"> - <h2><tmpl_var name="form_hint"></h2> -</tmpl_if> -<div class="tabbox_tabs"> - <ul> - <tmpl_loop name="formTab"> - <tmpl_if name="active"> - <li class="active"><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li> - <tmpl_else> - <li><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li> - </tmpl_if> - </tmpl_loop> - </ul> -</div> -<div id="tabbox_content"> - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <tmpl_dyninclude name="content_tpl"> -</div> - -<input type="hidden" name="next_tab" value=""> -<input type="hidden" name="phpsessid" value="{tmpl_var name='phpsessid'}"> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tools/dns_import_tupa.htm b/interface/web/themes/default-304/templates/tools/dns_import_tupa.htm deleted file mode 100644 index b4fad7e6f2..0000000000 --- a/interface/web/themes/default-304/templates/tools/dns_import_tupa.htm +++ /dev/null @@ -1,56 +0,0 @@ -<h2>Import DNS recods from Tupa PowerDNS controlpanel</h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_import"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>PowerDNS Tupa import</legend> - <div class="ctrlHolder"> - <p class="label">Tupa database hostname</p> - <div class="multiField"> - <input id="dbhost" type="text" value="{tmpl_var name='dbhost'}" name="dbhost" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Tupa database name</p> - <div class="multiField"> - <input id="dbname" type="text" value="{tmpl_var name='dbname'}" name="dbname" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Tupa database user</p> - <div class="multiField"> - <input id="dbuser" type="text" value="{tmpl_var name='dbuser'}" name="dbuser" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Tupa database password</p> - <div class="multiField"> - <input id="dbpassword" type="text" value="{tmpl_var name='dbpassword'}" name="dbpassword" /> - </div> - </div> - - <div class="ctrlHolder"> - <p class="label">Import DNS Records</p> - <div class="multiField"> - <input id="start" type="checkbox" value="1" name="start" checked/> - </div> - </div> - </fieldset> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/dns_import_tupa.php');"><span>Start</span></button> - <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>Cancel</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tools/import_ispconfig.htm b/interface/web/themes/default-304/templates/tools/import_ispconfig.htm deleted file mode 100644 index 7d7b4c17bc..0000000000 --- a/interface/web/themes/default-304/templates/tools/import_ispconfig.htm +++ /dev/null @@ -1,103 +0,0 @@ -<h2>{tmpl_var name="head_txt"}</h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_import"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name="legend_txt"}</legend> - <div class="ctrlHolder"> - <p class="label">Remote API URL</p> - <div class="multiField"> - <input id="remote_server" type="text" value="{tmpl_var name='remote_server'}" name="remote_server" /> (e.g. https://www.example.com:8080/remote/ ) - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Remote User</p> - <div class="multiField"> - <input id="remote_user" type="text" value="{tmpl_var name='remote_user'}" name="remote_user" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Remote password</p> - <div class="multiField"> - <input id="remote_password" type="text" value="{tmpl_var name='remote_password'}" name="remote_password" /> - </div> - </div> - </fieldset> - </div> - <tmpl_if name="connected"> - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name="legend2_txt"}</legend> - <div class="ctrlHolder"> - <label for="mail_domain">{tmpl_var name='mail_domain_txt'}</label> - <select name="mail_domain" id="mail_domain" class="selectInput"> - {tmpl_var name='mail_domain'} - </select> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_group_id_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="import_mailbox_txt"}</p> - <div class="multiField"> - <input id="import_mailbox" type="checkbox" value="1" name="import_mailbox" checked="checked" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="import_user_filter_txt"}</p> - <div class="multiField"> - <input id="import_user_filter" type="checkbox" value="1" name="import_user_filter" checked="checked" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="import_spamfilter_txt"}</p> - <div class="multiField"> - <input id="import_spamfilter" type="checkbox" value="1" name="import_spamfilter" checked="checked" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="import_alias_txt"}</p> - <div class="multiField"> - <input id="import_alias" type="checkbox" value="1" name="import_alias" checked="checked" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="import_forward_txt"}</p> - <div class="multiField"> - <input id="import_forward" type="checkbox" value="1" name="import_forward" checked="checked" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="import_aliasdomain_txt"}</p> - <div class="multiField"> - <input id="import_aliasdomain" type="checkbox" value="1" name="import_aliasdomain" checked="checked" /> - </div> - </div> - </fieldset> - </div> - </tmpl_if> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <input type="hidden" name="remote_session_id" value="{tmpl_var name='remote_session_id'}"> - <input type="hidden" name="connected" value="{tmpl_var name='connected'}"> - <tmpl_if name="connected"> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/import_ispconfig.php');"><span>{tmpl_var name="btn_start_txt"}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>{tmpl_var name="btn_cancel_txt"}</span></button> - </div> - <tmpl_else> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/import_ispconfig.php');"><span>{tmpl_var name="btn_connect_txt"}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>{tmpl_var name="btn_cancel_txt"}</span></button> - </div> - </tmpl_if> - </div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tools/import_plesk.htm b/interface/web/themes/default-304/templates/tools/import_plesk.htm deleted file mode 100644 index f72096c700..0000000000 --- a/interface/web/themes/default-304/templates/tools/import_plesk.htm +++ /dev/null @@ -1,74 +0,0 @@ -<h2>Import plesk panel data</h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_import"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Plesk data import</legend> - <div class="ctrlHolder"> - <p class="label">Plesk database hostname</p> - <div class="multiField"> - <input id="dbhost" type="text" value="{tmpl_var name='dbhost'}" name="dbhost" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Plesk database name</p> - <div class="multiField"> - <input id="dbname" type="text" value="{tmpl_var name='dbname'}" name="dbname" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Plesk database user</p> - <div class="multiField"> - <input id="dbuser" type="text" value="{tmpl_var name='dbuser'}" name="dbuser" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Plesk database password</p> - <div class="multiField"> - <input id="dbpassword" type="text" value="{tmpl_var name='dbpassword'}" name="dbpassword" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Web content backup file (on this server, optional)</p> - <div class="multiField"> - <input id="webcontent" type="text" value="{tmpl_var name='webcontent'}" name="webcontent" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Maildir content backup file (on this server, optional)</p> - <div class="multiField"> - <input id="mailcontent" type="text" value="{tmpl_var name='mailcontent'}" name="mailcontent" /> - </div> - </div> - - <div class="ctrlHolder"> - <p class="label">Import all data (that can be imported)</p> - <div class="multiField"> - <input id="start" type="checkbox" value="1" name="start" checked/> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">Import database contents (make sure the database user has the rights to do so)</p> - <div class="multiField"> - <input id="dbdata" type="checkbox" value="1" name="dbdata" checked/> - </div> - </div> - </fieldset> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/import_plesk.php');"><span>Start</span></button> - <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>Cancel</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tools/index.htm b/interface/web/themes/default-304/templates/tools/index.htm deleted file mode 100644 index e1a0acbba8..0000000000 --- a/interface/web/themes/default-304/templates/tools/index.htm +++ /dev/null @@ -1,20 +0,0 @@ -<h2><tmpl_var name="page_head_txt"></h2> -<p><tmpl_var name="page_desc_txt"></p> - -<div class="panel panel_tools_interface"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <h2 class="frmTextHead"></h2><p>ispconfig_tools_note</p> - - TEST - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tools/interface_settings.htm b/interface/web/themes/default-304/templates/tools/interface_settings.htm deleted file mode 100644 index 640f187cd2..0000000000 --- a/interface/web/themes/default-304/templates/tools/interface_settings.htm +++ /dev/null @@ -1,31 +0,0 @@ -<h2><tmpl_var name="page_head_txt"></h2> -<p><tmpl_var name="page_desc_txt"></p> - -<div class="panel panel_tools_interface"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <!-- TODO: If user theme change is activated --> - <div class="ctrlHolder"> - <label for="app_theme">{tmpl_var name='app_theme_txt'}</label> - <select name="app_theme" id="app_theme" class="selectInput formLengthHalf"> - {tmpl_var name='app_theme'} - </select> - </div> - <div class="ctrlHolder"> - <label for="startmodule">{tmpl_var name='startmodule_txt'}</label> - <select name="startmodule" id="startmodule" class="selectInput formLengthHalf"> - {tmpl_var name='startmodule'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','tools/interface_settings.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('tools/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tools/resync.htm b/interface/web/themes/default-304/templates/tools/resync.htm deleted file mode 100644 index c7611b8049..0000000000 --- a/interface/web/themes/default-304/templates/tools/resync.htm +++ /dev/null @@ -1,67 +0,0 @@ -<h2>{tmpl_var name="head_txt"}</h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_import"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name="legend_txt"}</legend> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="resync_sites_txt"}</p> - <div class="multiField"> - <input id="resync_sites" type="checkbox" value="1" name="resync_sites" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="resync_ftp_txt"}</p> - <div class="multiField"> - <input id="resync_ftp" type="checkbox" value="1" name="resync_ftp" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="resync_shell_txt"}</p> - <div class="multiField"> - <input id="resync_shell" type="checkbox" value="1" name="resync_shell" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="resync_cron_txt"}</p> - <div class="multiField"> - <input id="resync_cron" type="checkbox" value="1" name="resync_cron" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="resync_db_txt"}</p> - <div class="multiField"> - <input id="resync_db" type="checkbox" value="1" name="resync_db" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="resync_mailbox_txt"}</p> - <div class="multiField"> - <input id="resync_mailbox" type="checkbox" value="1" name="resync_mailbox" /> - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name="resync_dns_txt"}</p> - <div class="multiField"> - <input id="resync_dns" type="checkbox" value="1" name="resync_dns" /> - </div> - </div> - </fieldset> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/resync.php');"><span>{tmpl_var name="btn_start_txt"}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>{tmpl_var name="btn_cancel_txt"}</span></button> - </div> - </div> - -</div> diff --git a/interface/web/themes/default-304/templates/tools/tpl_default.htm b/interface/web/themes/default-304/templates/tools/tpl_default.htm deleted file mode 100644 index 233b3e9909..0000000000 --- a/interface/web/themes/default-304/templates/tools/tpl_default.htm +++ /dev/null @@ -1,37 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_tools_tpl"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="startmodule">{tmpl_var name='startmodule_txt'}</label> - <select name="startmodule" id="startmodule" class="selectInput formLengthHalf"> - {tmpl_var name='startmodule'} - </select> - </div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput flags"> - {tmpl_var name='language'} - </select> - </div> - <!-- TODO: If user theme change is activated --> - <div class="ctrlHolder"> - <label for="app_theme">{tmpl_var name='app_theme_txt'}</label> - <select name="app_theme" id="app_theme" class="selectInput formLengthHalf"> - {tmpl_var name='app_theme'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','tools/tpl_default.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('tools/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/tools/user_settings.htm b/interface/web/themes/default-304/templates/tools/user_settings.htm deleted file mode 100644 index 6155093aa3..0000000000 --- a/interface/web/themes/default-304/templates/tools/user_settings.htm +++ /dev/null @@ -1,39 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_usersettings"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="passwort">{tmpl_var name='passwort_txt'}</label> - <input name="passwort" id="passwort" value="{tmpl_var name='passwort'}" size="15" maxlength="100" type="password" class="textInput" onkeyup="pass_check(this.value);checkPassMatch('passwort','repeat_password');"/> <a href="javascript:void(0);" onClick="generatePassword('passwort','repeat_password');">{tmpl_var name='generate_password_txt'}</a> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> - <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('passwort','repeat_password');" /> - </div> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput flags"> - {tmpl_var name='language'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','tools/user_settings.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('tools/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/topnav.tpl.htm b/interface/web/themes/default-304/templates/topnav.tpl.htm deleted file mode 100644 index 4c681960c0..0000000000 --- a/interface/web/themes/default-304/templates/topnav.tpl.htm +++ /dev/null @@ -1,9 +0,0 @@ -<ul id="topmenu"> - <tmpl_loop name="nav_top"> - <tmpl_if name="active"> - <li id="topNav_current"><a href="#" class="topnav topnav-<tmpl_var name='module'>"><span><tmpl_var name="title"></span></a></li> - <tmpl_else> - <li><a href="#" onClick="capp('<tmpl_var name='module'>')" class="topnav topnav-<tmpl_var name='module'>"><span><tmpl_var name="title"></span></a></li> - </tmpl_if> - </tmpl_loop> -</ul> diff --git a/interface/web/themes/default-304/templates/vm/openvz_action.htm b/interface/web/themes/default-304/templates/vm/openvz_action.htm deleted file mode 100644 index 057c851dc3..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_action.htm +++ /dev/null @@ -1,53 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_import"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name="head_txt"} {tmpl_var name='veid'}</legend> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='start_txt'}</p> - <div class="multiField"> - <input id="action" type="radio" value="start" name="action" {tmpl_var name='start_option_enabled'}/> - </div> - </div> - - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='stop_txt'}</p> - <div class="multiField"> - <input id="action" type="radio" value="stop" name="action" {tmpl_var name='stop_option_enabled'}/> - </div> - </div> - - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='restart_txt'}</p> - <div class="multiField"> - <input id="action" type="radio" value="restart" name="action" {tmpl_var name='restart_option_enabled'}/> - </div> - </div> - - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ostemplate_txt'}</p> - <div class="multiField"> - <input style="float:left; margin-right:10px;" id="action" type="radio" value="ostemplate" name="action" {tmpl_var name='ostemplate_option_enabled'}/> - <input name="ostemplate_name" size="30" maxlength="255" type="text" class="textInput" value="{tmpl_var name='ostemplate_name'}" onclick="$('[name=action]').filter('[value=ostemplate]').attr('checked','checked');" /> {tmpl_var name='ostemplate_desc_txt'} - </div> - </div> - </fieldset> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','vm/openvz_action.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('vm/openvz_vm_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_ip_edit.htm b/interface/web/themes/default-304/templates/vm/openvz_ip_edit.htm deleted file mode 100644 index 8b8f34b62b..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_ip_edit.htm +++ /dev/null @@ -1,46 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_openvz_ip"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>IP address</legend> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ip_address">{tmpl_var name='ip_address_txt'}</label> - <input name="ip_address" id="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="15" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="vm_id">{tmpl_var name='vm_id_txt'}</label> - <select name="vm_id" id="vm_id" class="selectInput" disabled="disabled"> - {tmpl_var name='vm_id'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='reserved_txt'}</p> - <div class="multiField"> - {tmpl_var name='reserved'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','vm/openvz_ip_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('vm/openvz_ip_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - var vm_id = jQuery('#vm_id').val(); - jQuery('#vm_id').attr({name: 'vm_id_disabled', id: 'vm_id_disabled'}); - jQuery('#vm_id_disabled').after('<input type="hidden" name="vm_id" value="'+vm_id+'">'); - -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_ip_list.htm b/interface/web/themes/default-304/templates/vm/openvz_ip_list.htm deleted file mode 100644 index 886d4b9e84..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_ip_list.htm +++ /dev/null @@ -1,58 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_openvz_ip"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('vm/openvz_ip_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_vm_id" scope="col"><tmpl_var name="vm_id_txt"></th> - <th class="tbl_col_ip_address" scope="col"><tmpl_var name="ip_address_txt"></th> - <th class="tbl_col_reserved" scope="col"><tmpl_var name="reserved_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_vm_id"><select name="search_vm_id">{tmpl_var name='search_vm_id'}</select></td> - <td class="tbl_col_ip_address"><input type="text" name="search_ip_address" value="{tmpl_var name='search_ip_address'}" /></td> - <td class="tbl_col_reserved"><select name="search_reserved">{tmpl_var name='search_reserved'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','vm/openvz_ip_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('vm/openvz_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_vm_id"><a href="#" onClick="loadContent('vm/openvz_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="vm_id"}</a></td> - <td class="tbl_col_ip_address"><a href="#" onClick="loadContent('vm/openvz_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ip_address"}</a></td> - <td class="tbl_col_reserved"><a href="#" onClick="loadContent('vm/openvz_ip_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="reserved"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('vm/openvz_ip_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_ostemplate_edit.htm b/interface/web/themes/default-304/templates/vm/openvz_ostemplate_edit.htm deleted file mode 100644 index 6f08d15064..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_ostemplate_edit.htm +++ /dev/null @@ -1,48 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_openvz_ostemplate"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Domain</legend> - <div class="ctrlHolder"> - <label for="template_name">{tmpl_var name='template_name_txt'}</label> - <input name="template_name" id="template_name" value="{tmpl_var name='template_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="template_file">{tmpl_var name='template_file_txt'}</label> - <input name="template_file" id="template_file" value="{tmpl_var name='template_file'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='allservers_txt'}</p> - <div class="multiField"> - {tmpl_var name='allservers'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - <div class="ctrlHolder"> - <label for="description">{tmpl_var name='description_txt'}</label> - <textarea name="description" id="description" rows='10' cols='30'>{tmpl_var name='description'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','vm/openvz_ostemplate_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('vm/openvz_ostemplate_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_ostemplate_list.htm b/interface/web/themes/default-304/templates/vm/openvz_ostemplate_list.htm deleted file mode 100644 index c15277422a..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_ostemplate_list.htm +++ /dev/null @@ -1,61 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_openvz_ostemplate"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('vm/openvz_ostemplate_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_ostemplate_id" scope="col"><tmpl_var name="ostemplate_id_txt"></th> - <th class="tbl_col_template_name" scope="col"><tmpl_var name="template_name_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_allservers" scope="col"><tmpl_var name="allservers_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_ostemplate_id"><input type="text" name="search_ostemplate_id" value="{tmpl_var name='search_ostemplate_id'}" style="width:30px;" /></td> - <td class="tbl_col_template_name"><input type="text" name="search_template_name" value="{tmpl_var name='search_template_name'}" /></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_allservers"><select name="search_allservers">{tmpl_var name='search_allservers'}</select></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','vm/openvz_ostemplate_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('vm/openvz_ostemplate_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_ostemplate_id"><a href="#" onClick="loadContent('vm/openvz_ostemplate_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ostemplate_id"}</a></td> - <td class="tbl_col_template_name"><a href="#" onClick="loadContent('vm/openvz_ostemplate_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="template_name"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('vm/openvz_ostemplate_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_allservers"><a href="#" onClick="loadContent('vm/openvz_ostemplate_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="allservers"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('vm/openvz_ostemplate_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_template_advanced_edit.htm b/interface/web/themes/default-304/templates/vm/openvz_template_advanced_edit.htm deleted file mode 100644 index 6741ce9ab3..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_template_advanced_edit.htm +++ /dev/null @@ -1,110 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_openvz_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Advanced</legend> - <div class="ctrlHolder"> - <label for="numproc">{tmpl_var name='numproc_txt'}</label> - <input name="numproc" id="numproc" value="{tmpl_var name='numproc'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="numtcpsock">{tmpl_var name='numtcpsock_txt'}</label> - <input name="numtcpsock" id="numtcpsock" value="{tmpl_var name='numtcpsock'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="numothersock">{tmpl_var name='numothersock_txt'}</label> - <input name="numothersock" id="numothersock" value="{tmpl_var name='numothersock'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="vmguarpages">{tmpl_var name='vmguarpages_txt'}</label> - <input name="vmguarpages" id="vmguarpages" value="{tmpl_var name='vmguarpages'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="kmemsize">{tmpl_var name='kmemsize_txt'}</label> - <input name="kmemsize" id="kmemsize" value="{tmpl_var name='kmemsize'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="tcpsndbuf">{tmpl_var name='tcpsndbuf_txt'}</label> - <input name="tcpsndbuf" id="tcpsndbuf" value="{tmpl_var name='tcpsndbuf'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="tcprcvbuf">{tmpl_var name='tcprcvbuf_txt'}</label> - <input name="tcprcvbuf" id="tcprcvbuf" value="{tmpl_var name='tcprcvbuf'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="othersockbuf">{tmpl_var name='othersockbuf_txt'}</label> - <input name="othersockbuf" id="othersockbuf" value="{tmpl_var name='othersockbuf'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="dgramrcvbuf">{tmpl_var name='dgramrcvbuf_txt'}</label> - <input name="dgramrcvbuf" id="dgramrcvbuf" value="{tmpl_var name='dgramrcvbuf'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="oomguarpages">{tmpl_var name='oomguarpages_txt'}</label> - <input name="oomguarpages" id="oomguarpages" value="{tmpl_var name='oomguarpages'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="privvmpages">{tmpl_var name='privvmpages_txt'}</label> - <input name="privvmpages" id="privvmpages" value="{tmpl_var name='privvmpages'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="lockedpages">{tmpl_var name='lockedpages_txt'}</label> - <input name="lockedpages" id="lockedpages" value="{tmpl_var name='lockedpages'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="shmpages">{tmpl_var name='shmpages_txt'}</label> - <input name="shmpages" id="shmpages" value="{tmpl_var name='shmpages'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="physpages">{tmpl_var name='physpages_txt'}</label> - <input name="physpages" id="physpages" value="{tmpl_var name='physpages'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="numfile">{tmpl_var name='numfile_txt'}</label> - <input name="numfile" id="numfile" value="{tmpl_var name='numfile'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="avnumproc">{tmpl_var name='avnumproc_txt'}</label> - <input name="avnumproc" id="avnumproc" value="{tmpl_var name='avnumproc'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="numflock">{tmpl_var name='numflock_txt'}</label> - <input name="numflock" id="numflock" value="{tmpl_var name='numflock'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="numpty">{tmpl_var name='numpty_txt'}</label> - <input name="numpty" id="numpty" value="{tmpl_var name='numpty'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="numsiginfo">{tmpl_var name='numsiginfo_txt'}</label> - <input name="numsiginfo" id="numsiginfo" value="{tmpl_var name='numsiginfo'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="dcachesize">{tmpl_var name='dcachesize_txt'}</label> - <input name="dcachesize" id="dcachesize" value="{tmpl_var name='dcachesize'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="numiptent">{tmpl_var name='numiptent_txt'}</label> - <input name="numiptent" id="numiptent" value="{tmpl_var name='numiptent'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="swappages">{tmpl_var name='swappages_txt'}</label> - <input name="swappages" id="swappages" value="{tmpl_var name='swappages'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="capability">{tmpl_var name='capability_txt'}</label> - <input name="capability" id="capability" value="{tmpl_var name='capability'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','vm/openvz_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('vm/openvz_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_template_edit.htm b/interface/web/themes/default-304/templates/vm/openvz_template_edit.htm deleted file mode 100644 index ce356afeec..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_template_edit.htm +++ /dev/null @@ -1,74 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_openvz_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Template</legend> - <div class="ctrlHolder"> - <label for="template_name">{tmpl_var name='template_name_txt'}</label> - <input name="template_name" id="template_name" value="{tmpl_var name='template_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="diskspace">{tmpl_var name='diskspace_txt'}</label> - <input name="diskspace" id="diskspace" value="{tmpl_var name='diskspace'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> GB - </div> - <div class="ctrlHolder"> - <label for="ram">{tmpl_var name='ram_txt'}</label> - <input name="ram" id="ram" value="{tmpl_var name='ram'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="ram_burst">{tmpl_var name='ram_burst_txt'}</label> - <input name="ram_burst" id="ram_burst" value="{tmpl_var name='ram_burst'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="cpu_units">{tmpl_var name='cpu_units_txt'}</label> - <input name="cpu_units" id="cpu_units" value="{tmpl_var name='cpu_units'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (8 - 500000) - </div> - <div class="ctrlHolder"> - <label for="cpu_num">{tmpl_var name='cpu_num_txt'}</label> - <input name="cpu_num" id="cpu_num" value="{tmpl_var name='cpu_num'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (1 - 64) - </div> - <div class="ctrlHolder"> - <label for="cpu_limit">{tmpl_var name='cpu_limit_txt'}</label> - <input name="cpu_limit" id="cpu_limit" value="{tmpl_var name='cpu_limit'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (10 - 6400) - </div> - <div class="ctrlHolder"> - <label for="io_priority">{tmpl_var name='io_priority_txt'}</label> - <input name="io_priority" id="io_priority" value="{tmpl_var name='io_priority'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (0 - 7) - </div> - <div class="ctrlHolder"> - <label for="hostname">{tmpl_var name='hostname_txt'}</label> - <input name="hostname" id="hostname" value="{tmpl_var name='hostname'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='create_dns_txt'}</p> - <div class="multiField"> - {tmpl_var name='create_dns'} - </div> - </div> - <div class="ctrlHolder"> - <label for="nameserver">{tmpl_var name='nameserver_txt'}</label> - <input name="nameserver" id="nameserver" value="{tmpl_var name='nameserver'}" size="30" maxlength="255" type="text" class="textInput" /> {tmpl_var name='nameserver_desc_txt'} - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - <div class="ctrlHolder"> - <label for="description">{tmpl_var name='description_txt'}</label> - <textarea name="description" id="description" rows='10' cols='30'>{tmpl_var name='description'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','vm/openvz_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('vm/openvz_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_template_list.htm b/interface/web/themes/default-304/templates/vm/openvz_template_list.htm deleted file mode 100644 index 78f102bf79..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_template_list.htm +++ /dev/null @@ -1,52 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_openvz_template"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('vm/openvz_template_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_template_name" scope="col"><tmpl_var name="template_name_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_template_name"><input type="text" name="search_template_name" value="{tmpl_var name='search_template_name'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','vm/openvz_template_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('vm/openvz_template_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_template_name"><a href="#" onClick="loadContent('vm/openvz_template_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="template_name"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('vm/openvz_template_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_vm_advanced_edit.htm b/interface/web/themes/default-304/templates/vm/openvz_vm_advanced_edit.htm deleted file mode 100644 index a0bf42d3e4..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_vm_advanced_edit.htm +++ /dev/null @@ -1,64 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_openvz_vm"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Advanced</legend> - <div class="ctrlHolder"> - <label for="veid">{tmpl_var name='veid_txt'}</label> - <input name="veid" id="veid" value="{tmpl_var name='veid'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='create_dns_txt'}</p> - <div class="multiField"> - {tmpl_var name='create_dns'} - </div> - </div> - <div class="ctrlHolder"> - <label for="diskspace">{tmpl_var name='diskspace_txt'}</label> - <input name="diskspace" id="diskspace" value="{tmpl_var name='diskspace'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> GB - </div> - <div class="ctrlHolder"> - <label for="ram">{tmpl_var name='ram_txt'}</label> - <input name="ram" id="ram" value="{tmpl_var name='ram'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="ram_burst">{tmpl_var name='ram_burst_txt'}</label> - <input name="ram_burst" id="ram_burst" value="{tmpl_var name='ram_burst'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="cpu_units">{tmpl_var name='cpu_units_txt'}</label> - <input name="cpu_units" id="cpu_units" value="{tmpl_var name='cpu_units'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (8 - 500000) - </div> - <div class="ctrlHolder"> - <label for="cpu_num">{tmpl_var name='cpu_num_txt'}</label> - <input name="cpu_num" id="cpu_num" value="{tmpl_var name='cpu_num'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (1 - 64) - </div> - <div class="ctrlHolder"> - <label for="cpu_limit">{tmpl_var name='cpu_limit_txt'}</label> - <input name="cpu_limit" id="cpu_limit" value="{tmpl_var name='cpu_limit'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (10 - 6400) - </div> - <div class="ctrlHolder"> - <label for="io_priority">{tmpl_var name='io_priority_txt'}</label> - <input name="io_priority" id="io_priority" value="{tmpl_var name='io_priority'}" size="30" maxlength="255" type="text" class="textInput formLengthLimit" /> (0 - 7) - </div> - <div class="ctrlHolder"> - <label for="nameserver">{tmpl_var name='nameserver_txt'}</label> - <input name="nameserver" id="nameserver" value="{tmpl_var name='nameserver'}" size="30" maxlength="255" type="text" class="textInput" /> {tmpl_var name='nameserver_desc_txt'} - </div> - <div class="ctrlHolder"> - <label for="capability">{tmpl_var name='capability_txt'}</label> - <input name="capability" id="capability" value="{tmpl_var name='capability'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','vm/openvz_vm_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('vm/openvz_vm_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_vm_edit.htm b/interface/web/themes/default-304/templates/vm/openvz_vm_edit.htm deleted file mode 100644 index 402bad398c..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_vm_edit.htm +++ /dev/null @@ -1,107 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_openvz_vm"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Settings</legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> - <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='server_id'} - </select> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> - <tmpl_else> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput" onChange="loadOptionInto('ip_address','vm/ajax_get_ip.php?server_id='+document.getElementById('server_id').value)"> - {tmpl_var name='server_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_group_id_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_group_id_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - <tmpl_if name="edit_disabled"> - <div class="ctrlHolder"> - <label for="ostemplate_id_disabled">{tmpl_var name='ostemplate_id_txt'}</label> - <select name="ostemplate_id_disabled" id="ostemplate_id_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='ostemplate_id'} - </select> - </div> - <input type="hidden" name="ostemplate_id" value="{tmpl_var name='ostemplate_id_value'}"> - <tmpl_else> - <div class="ctrlHolder"> - <label for="ostemplate_id">{tmpl_var name='ostemplate_id_txt'}</label> - <select name="ostemplate_id" id="ostemplate_id" class="selectInput"> - {tmpl_var name='ostemplate_id'} - </select> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="template_id">{tmpl_var name='template_id_txt'}</label> - <select name="template_id" id="template_id" class="selectInput"> - {tmpl_var name='template_id_select'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ip_address">{tmpl_var name='ip_address_txt'}</label> - <select name="ip_address" id="ip_address" class="selectInput"> - {tmpl_var name='ip_address'} - </select> - </div> - <div class="ctrlHolder"> - <label for="hostname">{tmpl_var name='hostname_txt'}</label> - <input name="hostname" id="hostname" value="{tmpl_var name='hostname'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="vm_password">{tmpl_var name='vm_password_txt'}</label> - <input name="vm_password" id="vm_password" value="{tmpl_var name='vm_password'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='start_boot_txt'}</p> - <div class="multiField"> - {tmpl_var name='start_boot'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - <div class="ctrlHolder"> - <label for="active_until_date">{tmpl_var name='active_until_date_txt'}</label> - <input name="active_until_date" id="active_until_date" value="{tmpl_var name='active_until_date'}" size="30" maxlength="255" type="text" class="textInput formLengthDate" /> - </div> - <div class="ctrlHolder"> - <label for="description">{tmpl_var name='description_txt'}</label> - <textarea name="description" id="description" rows='5' cols='30' style='height:60px;'>{tmpl_var name='description'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','vm/openvz_vm_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('vm/openvz_vm_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> -<script language="JavaScript" type="text/javascript"> - jQuery( "#active_until_date" ).datepicker({ dateFormat: '<tmpl_var name="date_format">', changeMonth: true, changeYear: true, yearRange: '-100:+100', dayNamesMin: ['<tmpl_var name="daynamesmin_su">','<tmpl_var name="daynamesmin_mo">','<tmpl_var name="daynamesmin_tu">','<tmpl_var name="daynamesmin_we">','<tmpl_var name="daynamesmin_th">','<tmpl_var name="daynamesmin_fr">','<tmpl_var name="daynamesmin_sa">'], dayNames: ['<tmpl_var name="daynames_sunday">','<tmpl_var name="daynames_monday">','<tmpl_var name="daynames_tuesday">','<tmpl_var name="daynames_wednesday">','<tmpl_var name="daynames_thursday">','<tmpl_var name="daynames_friday">','<tmpl_var name="daynames_saturday">'], monthNamesShort: ['<tmpl_var name="monthnamesshort_jan">','<tmpl_var name="monthnamesshort_feb">','<tmpl_var name="monthnamesshort_mar">','<tmpl_var name="monthnamesshort_apr">','<tmpl_var name="monthnamesshort_may">','<tmpl_var name="monthnamesshort_jun">','<tmpl_var name="monthnamesshort_jul">','<tmpl_var name="monthnamesshort_aug">','<tmpl_var name="monthnamesshort_sep">','<tmpl_var name="monthnamesshort_oct">','<tmpl_var name="monthnamesshort_nov">','<tmpl_var name="monthnamesshort_dec">'], nextText: '<tmpl_var name="datepicker_nextText">', prevText: '<tmpl_var name="datepicker_prevText">', firstDay: 1 }); -</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/vm/openvz_vm_list.htm b/interface/web/themes/default-304/templates/vm/openvz_vm_list.htm deleted file mode 100644 index ad0245617e..0000000000 --- a/interface/web/themes/default-304/templates/vm/openvz_vm_list.htm +++ /dev/null @@ -1,68 +0,0 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_openvz_vm"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('vm/openvz_vm_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_veid" scope="col"><tmpl_var name="veid_txt"></th> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_ostemplate_id" scope="col"><tmpl_var name="ostemplate_id_txt"></th> - <th class="tbl_col_template_id" scope="col"><tmpl_var name="template_id_txt"></th> - <th class="tbl_col_hostname" scope="col"><tmpl_var name="hostname_txt"></th> - <th class="tbl_col_ip_address" scope="col"><tmpl_var name="ip_address_txt"></th> - <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> - </tr> - <tr> - <td class="tbl_col_veid"><input type="text" name="search_veid" style="width:40px;" value="{tmpl_var name='search_veid'}" /></td> - <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_ostemplate_id"><select name="search_ostemplate_id">{tmpl_var name='search_ostemplate_id'}</select></td> - <td class="tbl_col_template_id"><select name="search_template_id">{tmpl_var name='search_template_id'}</select></td> - <td class="tbl_col_hostname"><input type="text" name="search_hostname" value="{tmpl_var name='search_hostname'}" /></td> - <td class="tbl_col_ip_address"><input type="text" name="search_ip_address" style="width:80px;" value="{tmpl_var name='search_ip_address'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','vm/openvz_vm_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_veid"><a href="#" onClick="loadContent('vm/openvz_vm_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="veid"}</a></td> - <td class="tbl_col_active"><a href="#" onClick="loadContent('vm/openvz_vm_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('vm/openvz_vm_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_ostemplate_id"><a href="#" onClick="loadContent('vm/openvz_vm_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ostemplate_id"}</a></td> - <td class="tbl_col_template_id"><a href="#" onClick="loadContent('vm/openvz_vm_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="template_id"}</a></td> - <td class="tbl_col_hostname"><a href="#" onClick="loadContent('vm/openvz_vm_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="hostname"}</a></td> - <td class="tbl_col_ip_address"><a href="#" onClick="loadContent('vm/openvz_vm_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ip_address"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <a class="icons16 icoAction" href="javascript: loadContent('vm/openvz_action.php?id={tmpl_var name='id'}');"><span>Action</span></a> - <a class="icons16 icoDelete" href="javascript: del_record('vm/openvz_vm_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="8"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/!important.txt b/interface/web/themes/default-304/yaml/!important.txt deleted file mode 100644 index ce2cc2df1b..0000000000 --- a/interface/web/themes/default-304/yaml/!important.txt +++ /dev/null @@ -1,4 +0,0 @@ -DON'T EDIT ANYTHING INSIDE THIS DIRECTORY! - -This theme is based on YAML V3.0.6, Build: 080609 (http://www.yaml.de/) -CSS-Styles can be changed in the /themes/default/css/ directory diff --git a/interface/web/themes/default-304/yaml/core/base.css b/interface/web/themes/default-304/yaml/core/base.css deleted file mode 100644 index bc24d1550e..0000000000 --- a/interface/web/themes/default-304/yaml/core/base.css +++ /dev/null @@ -1,229 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - * (de) YAML Basis-Stylesheet - * - * Don't make any changes in this file! - * Your changes should be placed in any css-file in your own stylesheet folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section browser reset - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - */ - - /* (en) Global reset of paddings and margins for all HTML elements */ - /* (de) Globales Zurücksetzen der Innen- und Außenabstände für alle HTML-Elemente */ - * { margin:0; padding: 0; } - - /* (en) Correction: margin/padding reset caused too small select boxes. */ - /* (de) Korrektur: Das Zurücksetzen der Abstände verursacht zu kleine Selectboxen. */ - option { padding-left: 0.4em; } - - /** - * (en) Global fix of the Italics bugs in IE 5.x and IE 6 - * (de) Globale Korrektur des Italics Bugs des IE 5.x und IE 6 - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - * html body * { overflow:visible; } - * html iframe, * html frame { overflow:auto; } - * html frameset { overflow:hidden; } - - /* (en) Forcing vertical scrollbars in Netscape, Firefox and Safari browsers */ - /* (de) Erzwingen vertikaler Scrollbalken in Netscape, Firefox und Safari Browsern */ - html { height: 100%; margin-bottom: 1px; } - body { - /* (en) Fix for rounding errors when scaling font sizes in older versions of Opera browser */ - /* (de) Beseitigung von Rundungsfehler beim Skalieren von Schriftgrößen in älteren Opera Versionen */ - font-size: 100.01%; - - /* (en) Standard values for colors and text alignment */ - /* (de) Vorgabe der Standardfarben und Textausrichtung */ - color: #000; - background: #fff; - text-align: left; - } - - /* (en) Clear borders for <fieldset> and <img> elements */ - /* (de) Rahmen für <fieldset> und <img> Elemente löschen */ - fieldset, img { border: 0 solid; } - - /* (en) new standard values for lists, blockquote and cite */ - /* (de) Neue Standardwerte für Listen & Zitate */ - ul, ol, dl { margin: 0 0 1em 1em } - li { margin-left: 1.5em; line-height: 1.5em; } - - dt { font-weight: bold; } - dd { margin: 0 0 1em 2em; } - - blockquote { margin: 0 0 1em 1.5em; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section base layout | Basis Layout - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | #col2 | - * | 200 px | flexible | 200px | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - #header { position:relative; } - - /* (en) Text Alignment for #topnav content */ - /* (de) Textausrichtung für #topnav Inhalte */ - #topnav { text-align: right; } - - /* (en) Absolute positioning only within #header */ - /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ - #header #topnav { - position:absolute; - top: 10px; - right: 10px; - } - - /* (en) Backup for correct positioning */ - /* (de) Absicherung korrekte Positionierung */ - #header, #nav, #main, #footer { clear:both; } - - /* (en/de) Standard: 200 Pixel */ - #col1 { float: left; width: 200px } - /* (en/de) Standard: 200 Pixel */ - #col2 { float:right; width: 200px } - /* (en) Standard: center column with flexible width */ - /* (de) Standard: Flexible mittlere Spalte */ - #col3 { width:auto; margin: 0 200px } - - /* (en) Preparation for absolute positioning within content columns */ - /* (de) Vorbereitung für absolute Positionierungen innerhalb der Inhaltsspalten */ - #col1_content, #col2_content, #col3_content { position:relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section generic classes for layout switching | Generische Klassen zur Layoutumschaltung - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - * - * .hidecol1 -> 2-column-layout (using #col2 and #col3) - * .hidecol2 -> 2-column-layout (using #col1 and #col3) - * .hideboth -> single-column-layout (using #col3) - */ - - .hideboth #col3 { margin-left: 0; margin-right: 0; } - .hidecol1 #col3 { margin-left: 0; margin-right: 200px; } - .hidecol2 #col3 { margin-left: 200px; margin-right: 0; } - - .hideboth #col1, .hideboth #col2, .hidecol1 #col1, .hidecol2 #col2 { display:none; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section clearing methods - * @see http://yaml.de/en/documentation/basics/general.html - */ - - /* (en) clearfix method for clearing floats */ - /* (de) Clearfix-Methode zum Clearen der Float-Umgebungen */ - .clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; - } - - /* (en) essential for Safari browser !! */ - /* (de) Diese Angabe benötigt der Safari-Browser zwingend !! */ - .clearfix { display: block; } - - /* (en) overflow method for clearing floats */ - /* (de) Overflow-Methode zum Clearen der Float-Umgebungen */ - .floatbox { overflow:hidden; } - - /* (en) IE-Clearing: Only used in Internet Explorer, switched on in iehacks.css */ - /* (de) IE-Clearing: Benötigt nur der Internet Explorer und über iehacks.css zugeschaltet */ - #ie_clearing { display: none; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section subtemplates - * @see http://www.yaml.de/en/documentation/practice/subtemplates.html - */ - - .subcolumns { width: 100%; overflow:hidden; } - - /* (en) alternative class for optional support of old Mozilla/Netscape browers */ - /* (de) Alternative Klasse zur optionalen Unterstützung alter Mozilla/Netscape-Brower */ - .subcolumns_oldgecko { width: 100%; float:left; } - - .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l {float: left; } - .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r {float: right; margin-left: -5px; } - - .c25l, .c25r { width: 25%; } - .c33l, .c33r { width: 33.333%; } - .c50l, .c50r { width: 50%; } - .c66l, .c66r { width: 66.666%; } - .c75l, .c75r { width: 75%; } - .c38l, .c38r { width: 38.2%; } - .c62l, .c62r { width: 61.8%; } - - .subc { padding: 0 0.5em; } - .subcl { padding: 0 1em 0 0; } - .subcr { padding: 0 0 0 1em; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section hidden elements | Versteckte Elemente - * @see http://www.yaml.de/en/documentation/basics/skip-links.html - * - * (en) skip links and hidden content - * (de) Skip-Links und versteckte Inhalte - */ - - /* (en) classes for invisible elements in the base layout */ - /* (de) Klassen für unsichtbare Elemente im Basislayout */ - .skip, .hideme, .print { - position: absolute; - top: -1000em; - left: -1000em; - height: 1px; - width: 1px; - } - - /* (en) make skip links visible when using tab navigation */ - /* (de) Skip-Links für Tab-Navigation sichtbar schalten */ - .skip:focus, .skip:active { - position: static; - top: 0; - left: 0; - height: auto; - width: auto; - } -} diff --git a/interface/web/themes/default-304/yaml/core/iehacks.css b/interface/web/themes/default-304/yaml/core/iehacks.css deleted file mode 100644 index 41c3ee4202..0000000000 --- a/interface/web/themes/default-304/yaml/core/iehacks.css +++ /dev/null @@ -1,310 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - structure-independent bugfixes of IE/Win CSS-bugs - * (de) YAML Basis-Stylesheet - Strukturunabhängige Bugfixes von CSS-Bugs des IE/Win - * - * Don't make any changes in this file! - * Your changes should be added to a separate patch-file. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * (en) Debugging: When you see a green background, IE is getting this stylesheet - * (de) Fehlersuche: Hintergrund leuchtet grün, wenn das Stylesheet korrekt geladen wurde - * - * @debug - * @app-yaml-default disabled - */ - - /* body { background: #0f0; background-image: none; } */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Forcing vertical scrollbars is not needed in IE (only for Firefox/Netscape/Safari) - * (de) Erzwingen vertikaler Scrollbalken im IE nicht benötigt (nur im Firefox/Netscape/Safari) - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - html { height: auto; margin-bottom:0; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Fixes IE5.x and IE6 overflow behavior of textarea and input elements elements - * (de) Korrigiert das fehlerhafte overflow-Verhalten von textarea und input-Elementen - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - * html textarea { overflow:scroll; overflow-x: hidden; } - * html input { overflow: hidden; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Stability fixes with 'position:relative' - * (de) Stabilitätsverbesserungen durch 'position:relative' - * - * @bugfix - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - body { position:relative; } /* Essential in IE7 for correct layout scaling ... */ - * html body { position:static; } /* ... but not for IE5.x and IE6 */ - #main { position: relative; } /* helpful for several problems in older IE versions*/ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Clearfix Method for containing floats in IE - * (de) Clearfix-Anpassung für diverse IE-Versionen - * - * @workaround - * @see http://www.456bereastreet.com/archive/200603/new_clearing_method_needed_for_ie7/#comment28 - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - - .clearfix { display: inline-block; } /* ... especial for IE7 */ - .clearfix { display: block; } /* ... für IE5,IE6,IE7 */ - * html .clearfix { height: 1%; } /* ... für IE5 + IE6/Win | hasLayout aktivieren */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Adjustment of .floatbox class for IE - * (de) Anpassung der .floatbox-Klasse für IE - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html .floatbox { width:100%; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Special class for oversized content element - * (de) Spezielle Klasse für übergroße Inhaltselemente - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - .slidebox { - position:relative; - margin-right: -1000px; - height: 1%; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en): Bugfix for partially displayed column separators - * (de): Bugfix für unvollständige Darstellung der Spalteninhalte / Spaltentrenner - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html #col1, - * html #col2, - * html #col3 { position:relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Preventing several css bugs by forcing "hasLayout" - * (de) Vermeidung verschiedenster Bugs durch Erzwingen von "hasLayout" - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid no - */ - - body { height: 1%; } - #page_margins, #page, #header, #nav, #main, #footer { zoom:1; } /* IE6 & IE7 */ - #page_margins, #page { height: 1%; } /* IE 5.x */ - * html #header, * html #nav, * html #main, * html #footer { width: 100%; } /* IE 5.x & IE6 */ - * html #header, * html #nav, * html #main, * html #footer { wid\th: auto; } /* IE 6 */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Disappearing List-Background Bug - * @see http://www.positioniseverything.net/explorer/ie-listbug.html - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - * html ul, * html ol, * html dl { position: relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * List-Numbering Bug - * - * @bugfix - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - body ol li { display:list-item; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Workaround for 'collapsing margin at #col3' when using CSS-property clear - * Left margin of #col3 collapses when using clear:both in 1-3-2 (or 2-3-1) layout and right column is the - * longest and left column is the shortest one. For IE6 and IE7 a special workaround was developed - * in YAML. - * - * (de) Workaround für 'kollabierenden Margin an #col3' bei Verwendung der CSS-Eigenschaft clear - * Der linke Margin von #col3 kollabiert bei der Verwendung von clear:both im 1-3-2 (oder 2-3-1) Layout - * wenn gleichzeitig die rechte Spalte die kürzeste und die rechte die Längste ist. Im IE6 und IE7 lässt - * sich der Bug durch eine speziell für YAML entwickelten Workaround umgehen. - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid no - */ - - #ie_clearing { - /* (en) Only a small help for debugging */ - /* (de) Nur eine kleine Hilfe zur Fehlersuche */ - position:static; - - /* (en) Make container visible in IE */ - /* (de) Container sichtbar machen im IE */ - display:block; - - /* (en) No fix possible in IE5.x, normal clearing used instead */ - /* (de) Kein Fix im IE5.x möglich, daher normales Clearing */ - \clear:both; - - /* (en) forcing clearing-like behavior with a simple oversized container in IE6 & IE7*/ - /* (de) IE-Clearing mit 100%-DIV für IE6 bzw. übergroßem Container im IE7 */ - width: 100%; - font-size:0px; - margin: -2px 0 -1em 1px; - } - - * html #ie_clearing { margin: -2px 0 -1em 0; } - #col3_content {margin-bottom:-2px; } - - /* (en) avoid horizontal scrollbars in IE7 in borderless layouts because of negative margins */ - /* (de) Vermeidung horizontaler Scrollbalken bei randabfallenden Layouts im IE7 */ - html { margin-right: 1px; } - * html { margin-right: 0 } - - - /* (en) Bugfix: Essential for IE7 */ - /* (de) Bugfix: Notwendig im IE7 */ - #col3 { position:relative; z-index: -1; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * IE/Win Guillotine Bug - * @see http://www.positioniseverything.net/explorer/guillotine.html - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html body a, * html body a:hover { background-color: transparent; } - -} - -@media screen, projection -{ - /** - * (en) IE-Adjustments for content columns and subtemplates - * (de) IE-Anpassung für Spaltencontainer und Subtemplates - * - * Doubled Float-Margin Bug - * @see http://positioniseverything.net/explorer/doubled-margin.html - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - #col1, #col2 { display:inline; } - - .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l, - .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r { display:inline; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Internet Explorer and the Expanding Box Problem - * @see http://www.positioniseverything.net/explorer/expandingboxbug.html - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html #col1_content, - * html #col2_content, - * html #col3_content { word-wrap: break-word; } - - * html .subcolumns .subc, - * html .subcolumns .subcl, - * html .subcolumns .subcr { word-wrap: break-word; overflow:hidden; } -} - -@media print -{ - /** - * (en) Avoid unneeded page breaks of #col3 content in print layout. - * (de) Vermeiden von unnötigen Seitenumbrüchen beim Ausdruck der Spalte #col3. - * - * @bugfix - * @affected IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - #col3 { height: 1%; } -} diff --git a/interface/web/themes/default-304/yaml/core/print_base.css b/interface/web/themes/default-304/yaml/core/print_base.css deleted file mode 100644 index 4418795dc4..0000000000 --- a/interface/web/themes/default-304/yaml/core/print_base.css +++ /dev/null @@ -1,120 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - print layout - * (de) YAML Core-Stylesheet - Druck Layout - * - * Don't make any changes in this file! - * Your changes should be added to 'print_xyz_draft.css' drafts from 'yaml/print/' folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media print -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section layout preparation - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /* (en) Preparing base layout for print */ - /* (de) Basislayout für Druck aufbereiten */ - body, #page_margins, #page, #main { margin:0; padding: 0; border: 0; } - #page_margins, #page { width: 100% !important; min-width:0; max-width: none; } - #header { height: auto; } - - /* (en) Hide unneeded container of the screenlayout in print layout */ - /* (de) Für den Druck nicht benötigte Container des Layouts abschalten */ - #topnav, #nav, #search, #footer { display: none; } - - /* (en) Linearising subtemplates */ - /* (de) Linearisierung der Subtemplates */ - .c25l, .c33l, .c38l, .c50l, .c62l, .c66l, .c75l, - .c25r, .c33r, .c38r, .c50r, .c62r, .c66r, .c75r { - width: 100%; margin:0; float:none; overflow:visible; display:table; - } - .subc, .subcl, .subcr { margin: 0; padding: 0; } - - /* (en) make .print class visible */ - /* (de) .print-Klasse sichtbar schalten */ - .print { position: static; top: 0; left: 0; height: auto; width: auto; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section content preparation - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /* (en) Change font to serif */ - /* (de) Zeichensatz auf Serifen umstellen */ - body * { font-family: "Times New Roman", Times, serif; } - code, pre { font-family:"Courier New", Courier, mono; } - body { font-size: 12pt; } - - /* (en) Avoid page breaks right after headings */ - /* (de) Vermeidung von Seitenumbrüchen direkt nach einer Ãœberschrift */ - h1,h2,h3,h4,h5,h6 { page-break-after:avoid; } - - /* (en) Format acronyms and abbreviations for print*/ - /* (de) Auszeichnung von Abkürzungen */ - abbr[title]:after, - acronym[title]:after { content: '(' attr(title) ')'; } - - /* (en) Disable background graphics of links */ - /* (de) Abschalten evlt. vorhandener Hintergrundgrafiken zur Linkkennzeichnung */ - #page a[href^="http:"], - #page a[href^="https:"] { padding-left: 0; background-image: none; } - - /* (en) Enable URL output in print layout */ - /* (de) Sichtbare Auszeichnung der URLs von Links */ - a[href]:after { - content:" <URL: "attr(href)">"; - color:#444; - background:inherit; - font-style:italic; - } - - /* (en) Preparation for optional column labels */ - /* (de) Vorbereitung für optionale Spaltenauszeichnung */ - #col1_content:before, #col2_content:before, #col3_content:before { - content: ""; - color:#888; - background:inherit; - display:block; - font-weight:bold; - font-size:1.5em; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section browser fixes for print layouts - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /** - * (en) overflow:hidden Bug in print layouts - * (de) overflow:hidden Bug in Drucklayouts - * - * @bugfix - * @since 3.0 - * @affected FF2.0, IE7 - * @css-for all browsers - * @valid yes - */ - - .floatbox, - .subcolumns, - .subcolums_oldgecko { overflow:visible; display: table; } -} diff --git a/interface/web/themes/default-304/yaml/core/slim_base.css b/interface/web/themes/default-304/yaml/core/slim_base.css deleted file mode 100644 index 75596ca9fe..0000000000 --- a/interface/web/themes/default-304/yaml/core/slim_base.css +++ /dev/null @@ -1,50 +0,0 @@ -@charset "UTF-8"; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media all { -*{margin:0;padding:0} -option{padding-left:.4em} -* html body *{overflow:visible} -* html iframe,* html frame{overflow:auto} -* html frameset{overflow:hidden} -html{height:100%;margin-bottom:1px} -body{font-size:100.01%;color:#000;background:#fff;text-align:left} -fieldset,img{border:0 solid} -ul,ol,dl{margin:0 0 1em 1em} -li{margin-left:1.5em;line-height:1.5em} -dt{font-weight:700} -dd{margin:0 0 1em 2em} -blockquote{margin:0 0 1em 1.5em} -#header{position:relative} -#topnav{text-align:right} -#header #topnav{position:absolute;top:10px;right:10px} -#header,#nav,#main,#footer{clear:both} -#col1{float:left;width:200px} -#col2{float:right;width:200px} -#col3{width:auto;margin:0 200px} -#col1_content,#col2_content,#col3_content{position:relative} -.hideboth #col3{margin-left:0;margin-right:0} -.hidecol1 #col3{margin-left:0;margin-right:200px} -.hidecol2 #col3{margin-left:200px;margin-right:0} -.hideboth #col1,.hideboth #col2,.hidecol1 #col1,.hidecol2 #col2{display:none} -.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden} -.clearfix{display:block} -.floatbox{overflow:hidden} -#ie_clearing{display:none} -.subcolumns{width:100%;overflow:hidden} -.subcolumns_oldgecko{width:100%;float:left} -.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l{float:left} -.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{float:right;margin-left:-5px} -.c25l,.c25r{width:25%} -.c33l,.c33r{width:33.333%} -.c50l,.c50r{width:50%} -.c66l,.c66r{width:66.666%} -.c75l,.c75r{width:75%} -.c38l,.c38r{width:38.2%} -.c62l,.c62r{width:61.8%} -.subc{padding:0 .5em} -.subcl{padding:0 1em 0 0} -.subcr{padding:0 0 0 1em} -.skip,.hideme,.print{position:absolute;top:-1000em;left:-1000em;height:1px;width:1px} -.skip:focus,.skip:active{position:static;top:0;left:0;height:auto;width:auto} -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/core/slim_iehacks.css b/interface/web/themes/default-304/yaml/core/slim_iehacks.css deleted file mode 100644 index a201c14796..0000000000 --- a/interface/web/themes/default-304/yaml/core/slim_iehacks.css +++ /dev/null @@ -1,36 +0,0 @@ -@charset UTF-8; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media all { -html{height:auto;margin-bottom:0;margin-right:1px} -* html textarea{overflow:scroll;overflow-x:hidden} -* html input{overflow:hidden} -body{position:relative;height:1%} -* html body{position:static} -#main{position:relative} -.clearfix{display:inline-block} -.clearfix{display:block} -* html .clearfix{height:1%} -* html .floatbox{width:100%} -.slidebox{position:relative;margin-right:-1000px;height:1%} -* html #col1,* html #col2,* html #col3{position:relative} -#page_margins,#page,#header,#nav,#main,#footer{zoom:1} -#page_margins,#page{height:1%} -* html #header,* html #nav,* html #main,* html #footer{width:100%;wid\th:auto} -* html ul,* html ol,* html dl{position:relative} -body ol li{display:list-item} -#ie_clearing{position:static;display:block;\clear:both;width:100%;font-size:0;margin:-2px 0 -1em 1px} -* html #ie_clearing{margin:-2px 0 -1em} -#col3_content{margin-bottom:-2px} -* html{margin-right:0} -#col3{position:relative;z-index:-1} -* html body a,* html body a:hover{background-color:transparent} -} -@media screen,projection { -#col1,#col2,.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l,.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{display:inline} -* html #col1_content,* html #col2_content,* html #col3_content{word-wrap:break-word} -* html .subcolumns .subc,* html .subcolumns .subcl,* html .subcolumns .subcr{word-wrap:break-word;overflow:hidden} -} -@media print { -#col3{height:1%} -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/core/slim_print_base.css b/interface/web/themes/default-304/yaml/core/slim_print_base.css deleted file mode 100644 index f371b158c3..0000000000 --- a/interface/web/themes/default-304/yaml/core/slim_print_base.css +++ /dev/null @@ -1,21 +0,0 @@ -@charset "UTF-8"; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media print { -body,#page_margins,#page,#main{border:0;margin:0;padding:0} -#page_margins,#page{width:100%!important;min-width:0;max-width:none} -#header{height:auto} -#topnav,#nav,#search,#footer{display:none} -.c25l,.c33l,.c38l,.c50l,.c62l,.c66l,.c75l,.c25r,.c33r,.c38r,.c50r,.c62r,.c66r,.c75r{width:100%;float:none;overflow:visible;display:table;margin:0} -.subc,.subcl,.subcr{margin:0;padding:0} -.print{position:static;top:0;left:0;height:auto;width:auto} -body *{font-family:"Times New Roman", Times, serif} -code,pre{font-family:"Courier New", Courier, mono} -body{font-size:12pt} -h1,h2,h3,h4,h5,h6{page-break-after:avoid} -abbr[title]:after,acronym[title]:after{content:'(' attr(title) ')'} -#page a[href^="http:"],#page a[href^="https:"]{padding-left:0;background-image:none} -a[href]:after{content:" <URL: "attr(href)">";color:#444;background:inherit;font-style:italic} -#col1_content:before,#col2_content:before,#col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em} -.floatbox,.subcolumns,.subcolums_oldgecko{overflow:visible;display:table} -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/debug/debug.css b/interface/web/themes/default-304/yaml/debug/debug.css deleted file mode 100644 index f0a1304f77..0000000000 --- a/interface/web/themes/default-304/yaml/debug/debug.css +++ /dev/null @@ -1,157 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML debugging stylesheet - * (de) YAML Stylesheet zur Fehlersuche - * - * Don't make any changes in this file! - * Your changes should be placed in any css-file in your own stylesheet folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 43 $ - * @lastmodified $Date: 2007-06-11 16:09:28 +0200 (Mo, 11 Jun 2007) $ - */ - -@media all -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section layout preparation for debugging - * @see http://www.yaml.de/en/documentation/practice/drafting-and-debugging.html - */ - - /* Adding debugging background */ - body { background: transparent url(images/grid_pattern.png) top left no-repeat !important; } - - /* CSS-Warning, if core stylesheet 'iehacks.css' is missing in the layout */ - *:first-child+html #ie_clearing { display:block; } - * html #ie_clearing { display:block; } - - #ie_clearing { - width: 500px; - font-size: 25px; - position:absolute; - top: -2px; - left:0px; - background: url("images/warning_iehacks.gif") top left no-repeat; - } - - /** - * @section pixel grid - */ - - .bg_grid { - background-image:url(images/grid_pattern.png) !important; - background-repeat:no-repeat; - background-position:top left !important; - } - - /** - * @section transparency - */ - - .transOFF { -moz-opacity: 1.0; opacity: 1.0; filter: alpha(Opacity=100);} - .trans50, - .transON { -moz-opacity: 0.5; opacity: 0.5; filter: alpha(Opacity=50);} - .trans25 { -moz-opacity: 0.25; opacity: 0.25; filter: alpha(Opacity=25);} - .trans75 { -moz-opacity: 0.75; opacity: 0.75; filter: alpha(Opacity=75);} - - /** - * @section colors - */ - - .bg_red { background-color: #f00 !important;} - .bg_blue { background-color: #00f !important;} - .bg_green { background-color: #0f0 !important;} - - /** - * @visualize semantic structure - * - * Many thanks to Tomas Caspers for some ideas - */ - - div[id] { padding: 0 !important; margin: 2px; border: 1px #000 solid !important; } - div[id]:before { - display:block; - color: #fff; - background: #800; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div #"attr(id)"]"; - } - - div[class="floatbox"] { background: #f4f4f4; } - div[class="floatbox"]:before { - display:block; - color: #fff; - background: #66a; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subcolumns"] { background: #f8f8f8; } - div[class="subcolumns"]:before { - display:block; - color: #fff; - background: #444; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subcolumns"] > div:before { - display:block; - color: #fff; - background: #080; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subc"], div[class="subcl"], div[class="subcr"] { background: #eee; } - div[class="subc"]:before, div[class="subcl"]:before, div[class="subcr"]:before { - display:block; - color: #fff; - background: #6a6; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - h1:before { content: "[h1] "; } - h2:before { content: "[h2] "; } - h3:before { content: "[h3] "; } - h4:before { content: "[h4] "; } - h5:before { content: "[h5] "; } - h6:before { content: "[h6] "; } - - a:hover:before { content: " ( href='" attr(href) "' ) "; } - a:hover:after { content: " [ title='"attr(title)"' ] "; } - - img:after { content:" ( alt='" attr(alt)"' ) "; } - - address, blockquote, dl, fieldset, form, h1, h2, h3, h4, ol, p, pre, ul { - border: 1px dotted #888; - margin: 2px; - padding: 2px; - display: block; - } - - /** - * @visualize inline elements - * - * Many thanks to Tomas Caspers for some ideas - */ - - abbr, acronym { background: #d9eaff; } - q, cite, dfn, kbd { background: #ffe3f6; } - /* :lang(de), :lang(en), :lang(fr), :lang(es) { background: #d9efaa !important; } */ -} diff --git a/interface/web/themes/default-304/yaml/debug/images/grid_pattern.png b/interface/web/themes/default-304/yaml/debug/images/grid_pattern.png deleted file mode 100644 index 55e65e477c61a692d8d9c9cafd4cd986097897db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29833 zcmeFZ2UL??ur?ZuV!?m~Y!R>_f&z+w(osYN1QZCpBi#T}q(cxv1r<e#^xk_5y{e!f zod70O0cp}pXi5GZ!20Pq=UeALcinaGSuCS~dGo$|@0oe#nP=w7Eg5mxt|Pl35C}}- z#x*$zWa}0PWQ*nw@Cu3QIj;cz+G%k^#R>wU+E4yN0SOL01cB_5H5L`Ub<4=y+T6;> z+~SyosOT{ZOLGI`yZR7_9X3qfP(gn5fFQnS{;Jetl%JHj9Nms%a#y`kv@cJy9^bh~ z^6~MgPjt5{_lk*ag};w{41N9_^_1@Rx!qp7I=2rVkAChR^Vq9)wcjzuw7mrXrJk7A zAvByi7nakwy<*4ifEyQYbE9@AU1iwY=U(%+x_^*e#BJ9p3&@@wId_g*5l&J-mRtk` z&Yq~)UIwACYo*!&sgMq-IDhmJiDv9-kU9nGAw`At%ga(bP_z&chv!%0AtKi)P+_l6 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 diff --git a/interface/web/themes/default-304/yaml/debug/images/warning_iehacks.gif b/interface/web/themes/default-304/yaml/debug/images/warning_iehacks.gif deleted file mode 100644 index b7cc86d71acd3e87dff0489e0d0423f12f5a5c8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2912 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 diff --git a/interface/web/themes/default-304/yaml/debug/images/yaml_debug.gif b/interface/web/themes/default-304/yaml/debug/images/yaml_debug.gif deleted file mode 100644 index 80a4ea30c82acbcb024ccd89835d12f27a787ab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2842 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 diff --git a/interface/web/themes/default-304/yaml/navigation/nav_vlist.css b/interface/web/themes/default-304/yaml/navigation/nav_vlist.css deleted file mode 100644 index 7f1a5b9335..0000000000 --- a/interface/web/themes/default-304/yaml/navigation/nav_vlist.css +++ /dev/null @@ -1,109 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Vertical list navigation "vlist" - * (de) Vertikale Navigationsliste "vlist" - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - #submenu { - width: 100%; - overflow: hidden; - margin: 2.4em 0 1.5em 0; - list-style-type: none; - border-top: 2px #ddd solid; - border-bottom: 2px #ddd solid; - } - - #submenu ul { list-style-type: none; margin:0; padding: 0; } - #submenu li { float:left; width: 100%; margin:0; padding: 0; } - - #submenu a, - #submenu strong { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - text-decoration: none; - background-color:#fff; - color: #444; - border-bottom: 1px #eee solid; - } - - /* Menu Title */ - #submenu li#title { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #444; - background-color: #fff; - border-bottom: 4px #888 solid; - } - - #submenu li span { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - border-bottom: 1px #ddd solid; - } - - /* Level 1 */ - #submenu li#active, - #submenu li strong { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #fff; - background-color:#aab; - border-bottom: 1px #eee solid; - } - - #submenu li a { width: 90%; padding-left: 10%; background-color:#fff; color: #444; } - #submenu li a:focus, - #submenu li a:hover, - #submenu li a:active { background-color:#f63; color: #fff; } - - /* Level 2 */ - #submenu li ul li a, - #submenu li ul li#active, - #submenu li ul li strong, - #submenu li ul li span { width: 80%; padding-left: 20%; } - - #submenu li ul li a { background-color:#f8f8f8; color: #666; } - #submenu li ul li a:focus, - #submenu li ul li a:hover, - #submenu li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 3 */ - #submenu li ul li ul li a, - #submenu li ul li ul li#active, - #submenu li ul li ul li strong, - #submenu li ul li ul li span { width: 70%; padding-left: 30%; } - - #submenu li ul li ul li a { background-color:#fcfcfc; color: #888; } - #submenu li ul li ul li a:focus, - #submenu li ul li ul li a:hover, - #submenu li ul li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 4 */ - #submenu li ul li ul li ul li a, - #submenu li ul li ul li ul li#active, - #submenu li ul li ul li ul li strong, - #submenu li ul li ul li ul li span { width: 60%; padding-left: 40%; } - - #submenu li ul li ul li ul li a { background-color:#ffffff; color: #aaa; } - #submenu li ul li ul li ul li a:focus, - #submenu li ul li ul li ul li a:hover, - #submenu li ul li ul li ul li a:active { background-color:#f63; color: #fff; } -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/patches/patch_layout_draft.css b/interface/web/themes/default-304/yaml/patches/patch_layout_draft.css deleted file mode 100644 index 4490d7f1fb..0000000000 --- a/interface/web/themes/default-304/yaml/patches/patch_layout_draft.css +++ /dev/null @@ -1,29 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Example of a patch stylesheet for the Internet Explorer - * (de) Beispiel für ein Anpassungs-Stylesheet für den Internet Explorer - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* Layout independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ -@import url(/yaml/core/iehacks.css); - -/* Box model adjustments for vlist navigation | Box-Modell-Anpassungen für vlist-Navigation */ -/* @import url(/yaml/patches/patch_nav_vlist.css); */ - -/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ -@media screen, projection -{ - /* add your adjustments here | Fügen Sie Ihre Anpassungen hier ein */ - -} diff --git a/interface/web/themes/default-304/yaml/patches/patch_nav_vlist.css b/interface/web/themes/default-304/yaml/patches/patch_nav_vlist.css deleted file mode 100644 index cbf29487f9..0000000000 --- a/interface/web/themes/default-304/yaml/patches/patch_nav_vlist.css +++ /dev/null @@ -1,61 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) IE adjustment stylesheet for YAML vlist navigation - * Import this file within the IE-patch-file if needed in your layout - * - * (de) IE Anpassungs-Stylesheet für YAML vlist-Navigation - * Einbindung ins Layout erfolgt über den Import innerhalb des IE-Anspassungs-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /** - * Box Model Bug - * (en) Adjustment of width values for list elements of the menu in IE 5.x/Win. - * Note: If IE6 is running in quirks mode, it also needs 100% values! - * - * (de) Korrektur der Breitenangaben der Listenelemente des Submenüs im IE 5.x/Win. - * Hinweis: Befindet sich der IE6 im Quirks Mode, so benötigt er ebenfalls 100%-Werte ! - * - * @bugfix - * @affected IE 5.x/Win (IE6 in Quirks-Mode) - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - /* level 1 */ - * html #submenu li a, - * html #submenu li strong, - * html #submenu li span, - * html #submenu li#title, - * html #submenu li#active { width: 100%; w\idth: 90%; } - - /* level 2 */ - * html #submenu li ul li a, - * html #submenu li ul li strong, - * html #submenu li ul li span, - * html #submenu li ul li#active { width: 100%; w\idth: 80%; } - - /* level 3 */ - * html #submenu li ul li ul li a, - * html #submenu li ul li ul li strong, - * html #submenu li ul li ul li span, - * html #submenu li ul li ul li#active { width: 100%; w\idth: 70%; } - - /* level 4 */ - * html #submenu li ul li ul li ul li a, - * html #submenu li ul li ul li ul li strong, - * html #submenu li ul li ul li ul li span, - * html #submenu li ul li ul li ul li#active { width: 100%; w\idth: 60%; } -} diff --git a/interface/web/themes/default-304/yaml/print/print_003_draft.css b/interface/web/themes/default-304/yaml/print/print_003_draft.css deleted file mode 100644 index 0363b4ee82..0000000000 --- a/interface/web/themes/default-304/yaml/print/print_003_draft.css +++ /dev/null @@ -1,32 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - 0 -** #col3 - x -*/ - -@media print -{ - #col1 { display:none; } - #col2 { display:none; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/print/print_020_draft.css b/interface/web/themes/default-304/yaml/print/print_020_draft.css deleted file mode 100644 index 2ded4f1143..0000000000 --- a/interface/web/themes/default-304/yaml/print/print_020_draft.css +++ /dev/null @@ -1,31 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - x -** #col3 - 0 -*/ -@media print -{ - #col1 { display:none; } - #col3 { display:none; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/print/print_023_draft.css b/interface/web/themes/default-304/yaml/print/print_023_draft.css deleted file mode 100644 index e005a588ae..0000000000 --- a/interface/web/themes/default-304/yaml/print/print_023_draft.css +++ /dev/null @@ -1,40 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - x -** #col3 - x -*/ - -@media print -{ - #col1 { display:none; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3, #col3_content {width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col2_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ -} - diff --git a/interface/web/themes/default-304/yaml/print/print_100_draft.css b/interface/web/themes/default-304/yaml/print/print_100_draft.css deleted file mode 100644 index 2a6c71b197..0000000000 --- a/interface/web/themes/default-304/yaml/print/print_100_draft.css +++ /dev/null @@ -1,31 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - - #col2 { display:none; } - #col3 { display:none; } -} diff --git a/interface/web/themes/default-304/yaml/print/print_103_draft.css b/interface/web/themes/default-304/yaml/print/print_103_draft.css deleted file mode 100644 index a436374703..0000000000 --- a/interface/web/themes/default-304/yaml/print/print_103_draft.css +++ /dev/null @@ -1,38 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - x -*/ -@media print -{ - #col1, #col1_content {float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content {page-break-after:always; } - - #col2 { display:none; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/print/print_120_draft.css b/interface/web/themes/default-304/yaml/print/print_120_draft.css deleted file mode 100644 index 50ee571497..0000000000 --- a/interface/web/themes/default-304/yaml/print/print_120_draft.css +++ /dev/null @@ -1,39 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - x -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content { page-break-after:always; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3 { display:none; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col2_content:before { content:" [ left | middle | right column ]"; } - */ -} diff --git a/interface/web/themes/default-304/yaml/print/print_123_draft.css b/interface/web/themes/default-304/yaml/print/print_123_draft.css deleted file mode 100644 index 42a7de1d5a..0000000000 --- a/interface/web/themes/default-304/yaml/print/print_123_draft.css +++ /dev/null @@ -1,40 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - x -** #col3 - x -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content { page-break-after:always; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col2_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/screen/basemod_draft.css b/interface/web/themes/default-304/yaml/screen/basemod_draft.css deleted file mode 100644 index 6d33ff8dda..0000000000 --- a/interface/web/themes/default-304/yaml/screen/basemod_draft.css +++ /dev/null @@ -1,70 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Template for designing a screen layout - * (de) Gestaltungsvorlage für die Erstellung eines Screenlayouts - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Design of the Basic Layout | Gestaltung des YAML Basis-Layouts - * - * @section layout-basics - */ - - /* Page margins and background | Randbereiche & Seitenhintergrund */ - body { } - - /* Layout: Width, Background, Border | Layout: Breite, Hintergrund, Rahmen */ - #page_margins { } - #page{ } - - /* Design of the Main Layout Elements | Gestaltung der Hauptelemente des Layouts */ - #header { } - #topnav { } - - #main { } - - #footer { } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Formatting of the Content Area | Formatierung der Inhaltsbereichs - * - * @section layout-main - */ - - #col1 { } - #col1_content { } - - #col2 { } - #col2_content { } - - #col3 { } - #col3_content { } - - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Design of Additional Layout Elements | Gestaltung weiterer Layoutelemente - * - * @section layout-misc - */ - - -} \ No newline at end of file diff --git a/interface/web/themes/default-304/yaml/screen/content_default.css b/interface/web/themes/default-304/yaml/screen/content_default.css deleted file mode 100644 index 1852ac1169..0000000000 --- a/interface/web/themes/default-304/yaml/screen/content_default.css +++ /dev/null @@ -1,170 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of standard content elements - * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * Fonts - * (en) font-family and font-size selection for headings and standard text elements - * (de) Zeichensatz und Schriftgrößen für Ãœberschriften und übliche Text-Elemente - * - * @section content-fonts - */ - - /* (en) reset font size for all elements to standard (16 Pixel) */ - /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ - html * { font-size: 100.01%; } - - /* (en) reset monospaced elements to font size 16px in Gecko browsers */ - /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ - textarea, pre, tt, code { - font-family:"Courier New", Courier, monospace; - } - - /* (en) base layout gets standard font size 12px */ - /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ - body { - font-family: 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; - font-size: 75.00%; - } - - h1,h2,h3,h4,h5,h6 { font-weight:bold; margin: 0 0 0.25em 0; } - h1 { font-size: 200% } /* 24px */ - h2 { font-size: 166.67% } /* 20px */ - h3 { font-size: 150% } /* 18px */ - h4 { font-size: 133.33% } /* 16px */ - h5 { font-size: 116.67% } /* 14px */ - h6 { font-size: 116.67%; font-style:italic; } /* 14px */ - - p { line-height: 1.5em; margin: 0 0 1em 0; } - - /* ### Lists | Listen #### */ - - ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em; } - li { margin-left: 1.5em; line-height: 1.5em; } - - dt { font-weight: bold; } - dd { margin: 0 0 1em 2em; } - - /* ### text formatting | Textauszeichnung ### */ - - cite, blockquote { font-style:italic; } - blockquote { margin: 0 0 1em 1.5em; } - - strong,b { font-weight: bold; } - em,i { font-style:italic; } - - pre, code { font-family: monospace; font-size: 1.1em; } - - acronym, abbr { - letter-spacing: .07em; - border-bottom: .1em dashed #c00; - cursor: help; - } - - /** - * Generic Content Classes - * (en) standard classes for positioning and highlighting - * (de) Standardklassen zur Positionierung und Hervorhebung - * - * @section content-generic-classes - */ - - .note { background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted; } - .important { background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted; } - .warning { background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted; } - - .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } - .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } - .center { text-align:center; margin: 0.5em auto; } - - /** - * External Links - * - * (en) Formatting of hyperlinks - * (de) Gestaltung von Hyperlinks - * - */ - - a { color: #900; text-decoration:none; } - a:focus, - a:hover, - a:active { background-color: #fee; text-decoration:underline; } - - #topnav a { color: #aac; font-weight: bold; background:transparent; text-decoration:none; } - #topnav a:focus, - #topnav a:hover, - #topnav a:active{ text-decoration:underline; background-color: transparent; } - - #footer a { color: #aac; background:transparent; font-weight: bold; } - #footer a:focus, - #footer a:hover, - #footer a:active { color: #fff; background-color: transparent; text-decoration:underline; } - - /** - * (en) Emphasizing external Hyperlinks via CSS - * (de) Hervorhebung externer Hyperlinks mit CSS - * - * @section content-external-links - * @app-yaml-default disabled - */ - - /* - #main a[href^="http://www.my-domain.com"], - #main a[href^="https://www.my-domain.com"] - { - padding-left: 12px; - background-image: url('your_image.gif'); - background-repeat: no-repeat; - background-position: 0 0.45em; - } - */ - - /** - * Tables | Tabellen - * (en) Generic classes for table-width and design definition - * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen - * - * @section content-tables - */ - - table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } - table.full { width: 100%; } - table.fixed { table-layout:fixed; } - - th,td { padding: 0.5em; } - thead th { background: #444; color: #fff; } - tbody th { background: #ccc; color: #333; } - tbody th.sub { background: #ddd; color: #333; } - - /** - * Miscellaneous | Sonstiges - * - * @section content-misc - */ - - hr { - color: #fff; - background:transparent; - margin: 0 0 0.5em 0; - padding: 0 0 0.5em 0; - border:0; - border-bottom: 1px #000 solid; - } -} - -- GitLab From 94b44c61a92adcc52feed671f24a09f1f564cc3a Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 17:06:16 +0200 Subject: [PATCH 077/158] Improved checks in openvz plugin and DB library. --- interface/lib/classes/db_mysql.inc.php | 47 +++++++++++-- .../lib/plugins/vm_openvz_plugin.inc.php | 66 +++++++++---------- 2 files changed, 73 insertions(+), 40 deletions(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 12b3b4260b..13a8633a83 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -262,12 +262,18 @@ class db extends mysqli public function datalogSave($db_table, $action, $primary_field, $primary_id, $record_old, $record_new, $force_update = false) { global $app, $conf; - // Insert backticks only for incomplete table names. - if(stristr($db_table, '.')) { - $escape = ''; + // Check fields + if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$db_table)) $app->error('Invalid table name '.$db_table); + if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$primary_field)) $app->error('Invalid primary field '.$primary_field.' in table '.$db_table); + + if(strpos($db_table, '.') !== false) { + $db_table = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $db_table); } else { - $escape = '`'; + $db_table = '`' . $db_table . '`'; } + + $primary_field = $this->quote($primary_field); + $primary_id = intval($primary_id); if($force_update == true) { //* We force a update even if no record has changed @@ -307,7 +313,16 @@ class db extends mysqli public function datalogInsert($tablename, $insert_data, $index_field) { global $app; - $tablename = $this->quote($tablename); + // Check fields + if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); + + if(strpos($tablename, '.') !== false) { + $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); + } else { + $tablename = '`' . $tablename . '`'; + } + $index_field = $this->quote($index_field); if(is_array($insert_data)) { @@ -337,7 +352,16 @@ class db extends mysqli public function datalogUpdate($tablename, $update_data, $index_field, $index_value, $force_update = false) { global $app; - $tablename = $this->quote($tablename); + // Check fields + if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); + + if(strpos($tablename, '.') !== false) { + $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); + } else { + $tablename = '`' . $tablename . '`'; + } + $index_field = $this->quote($index_field); $index_value = $this->quote($index_value); @@ -364,7 +388,16 @@ class db extends mysqli public function datalogDelete($tablename, $index_field, $index_value) { global $app; - $tablename = $this->quote($tablename); + // Check fields + if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); + + if(strpos($tablename, '.') !== false) { + $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); + } else { + $tablename = '`' . $tablename . '`'; + } + $index_field = $this->quote($index_field); $index_value = $this->quote($index_value); diff --git a/interface/lib/plugins/vm_openvz_plugin.inc.php b/interface/lib/plugins/vm_openvz_plugin.inc.php index 98b0f9f422..94ccf350f0 100644 --- a/interface/lib/plugins/vm_openvz_plugin.inc.php +++ b/interface/lib/plugins/vm_openvz_plugin.inc.php @@ -33,7 +33,7 @@ class vm_openvz_plugin { function openvz_vm_insert($event_name, $page_form) { global $app, $conf; - $this->id = $page_form->id; + $this->id = $app->functions->intval($page_form->id); $this->dataRecord = $page_form->dataRecord; $this->oldDataRecord = $page_form->oldDataRecord; @@ -58,7 +58,7 @@ class vm_openvz_plugin { $this->applyTemplate(); // Set the IP address - $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$this->dataRecord['ip_address']."'"); + $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$app->db->quote($this->dataRecord['ip_address'])."'"); // Create the OpenVZ config file and store it in config field $this->makeOpenVZConfig(); @@ -74,7 +74,7 @@ class vm_openvz_plugin { function openvz_vm_update($event_name, $page_form) { global $app, $conf; - $this->id = $page_form->id; + $this->id = $app->functions->intval($page_form->id); $this->dataRecord = $page_form->dataRecord; $this->oldDataRecord = $page_form->oldDataRecord; @@ -94,7 +94,7 @@ class vm_openvz_plugin { } // Set the IP address - if(isset($this->dataRecord['ip_address'])) $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$this->dataRecord['ip_address']."'"); + if(isset($this->dataRecord['ip_address'])) $app->db->query("UPDATE openvz_ip SET vm_id = ".$this->id." WHERE ip_address = '".$app->db->quote($this->dataRecord['ip_address'])."'"); // Create the OpenVZ config file and store it in config field $this->makeOpenVZConfig(); @@ -111,7 +111,7 @@ class vm_openvz_plugin { global $app, $conf; //* Free the IP address - $tmp = $app->db->queryOneRecord("SELECT ip_address_id FROM openvz_ip WHERE vm_id = ".$page_form->id); + $tmp = $app->db->queryOneRecord("SELECT ip_address_id FROM openvz_ip WHERE vm_id = ".$app->functions->intval($page_form->id)); $app->db->datalogUpdate('openvz_ip', 'vm_id = 0', 'ip_address_id', $tmp['ip_address_id']); unset($tmp); @@ -120,20 +120,20 @@ class vm_openvz_plugin { private function applyTemplate() { global $app, $conf; - $tpl = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$this->dataRecord["template_id"]); + $tpl = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$app->functions->intval($this->dataRecord["template_id"])); $sql = "UPDATE openvz_vm SET "; - $sql .= "diskspace = '".$tpl['diskspace']."', "; - $sql .= "ram = '".$tpl['ram']."', "; - $sql .= "ram_burst = '".$tpl['ram_burst']."', "; - $sql .= "cpu_units = '".$tpl['cpu_units']."', "; - $sql .= "cpu_num = '".$tpl['cpu_num']."', "; - $sql .= "cpu_limit = '".$tpl['cpu_limit']."', "; - $sql .= "io_priority = '".$tpl['io_priority']."', "; - $sql .= "nameserver = '".$tpl['nameserver']."', "; - $sql .= "create_dns = '".$tpl['create_dns']."', "; - $sql .= "capability = '".$tpl['capability']."' "; - $sql .= "WHERE vm_id = ".$this->id; + $sql .= "diskspace = '".$app->db->quote($tpl['diskspace'])."', "; + $sql .= "ram = '".$app->db->quote($tpl['ram'])."', "; + $sql .= "ram_burst = '".$app->db->quote($tpl['ram_burst'])."', "; + $sql .= "cpu_units = '".$app->db->quote($tpl['cpu_units'])."', "; + $sql .= "cpu_num = '".$app->db->quote($tpl['cpu_num'])."', "; + $sql .= "cpu_limit = '".$app->db->quote($tpl['cpu_limit'])."', "; + $sql .= "io_priority = '".$app->db->quote($tpl['io_priority'])."', "; + $sql .= "nameserver = '".$app->db->quote($tpl['nameserver'])."', "; + $sql .= "create_dns = '".$app->db->quote($tpl['create_dns'])."', "; + $sql .= "capability = '".$app->db->quote($tpl['capability'])."' "; + $sql .= "WHERE vm_id = ".$app->functions->intval($this->id); $app->db->query($sql); } @@ -141,8 +141,8 @@ class vm_openvz_plugin { private function makeOpenVZConfig() { global $app, $conf; - $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$this->id); - $vm_template = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$vm['template_id']); + $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$app->functions->intval($this->id)); + $vm_template = $app->db->queryOneRecord("SELECT * FROM openvz_template WHERE template_id = ".$app->functions->intval($vm['template_id'])); $burst_ram = $vm['ram_burst']*256; $guar_ram = $vm['ram']*256; @@ -194,12 +194,12 @@ class vm_openvz_plugin { $tpl->setVar('nameserver', $vm['nameserver']); $tpl->setVar('capability', $vm['capability']); - $tmp = $app->db->queryOneRecord("SELECT template_file FROM openvz_ostemplate WHERE ostemplate_id = ".$vm['ostemplate_id']); + $tmp = $app->db->queryOneRecord("SELECT template_file FROM openvz_ostemplate WHERE ostemplate_id = ".$app->functions->intval($vm['ostemplate_id'])); $tpl->setVar('ostemplate', $tmp['template_file']); unset($tmp); $openvz_config = $app->db->quote($tpl->grab()); - $app->db->query("UPDATE openvz_vm SET config = '".$openvz_config."' WHERE vm_id = ".$this->id); + $app->db->query("UPDATE openvz_vm SET config = '".$openvz_config."' WHERE vm_id = ".$app->functions->intval($this->id)); unset($tpl); @@ -208,33 +208,33 @@ class vm_openvz_plugin { private function createDNS() { global $app, $conf; - $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$this->id); + $vm = $app->db->queryOneRecord("SELECT * FROM openvz_vm WHERE vm_id = ".$app->functions->intval($this->id)); if($vm['create_dns'] != 'y') return; $full_hostname = str_replace('{VEID}', $vm['veid'], $vm['hostname']); $hostname_parts = explode('.', $full_hostname); - $hostname = $hostname_parts[0]; + $hostname = $app->db->quote($hostname_parts[0]); unset($hostname_parts[0]); - $zone = implode('.', $hostname_parts); + $zone = $app->db->quote((implode('.', $hostname_parts)); unset($hostname_parts); // Find the dns zone - $zone_rec = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE origin = '$zone.'"); - $rr_rec = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = '".$zone_rec['id']."' AND name = '$hostname'"); + $zone_rec = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE origin = '".$app->db->quote($zone).".'"); + $rr_rec = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = '".$app->functions->intval($zone_rec['id'])."' AND name = '".$app->db->quote($hostname)."'"); if($zone_rec['id'] > 0) { - $ip_address = $vm['ip_address']; - $sys_userid = $zone_rec['sys_userid']; - $sys_groupid = $zone_rec['sys_groupid']; - $server_id = $zone_rec['server_id']; - $dns_soa_id = $zone_rec['id']; + $ip_address = $app->db->quote($vm['ip_address']); + $sys_userid = $app->functions->intval($zone_rec['sys_userid']); + $sys_groupid = $app->functions->intval($zone_rec['sys_groupid']); + $server_id = $app->functions->intval($zone_rec['server_id']); + $dns_soa_id = $app->functions->intval($zone_rec['id']); if($rr_rec['id'] > 0) { $app->uses('validate_dns'); - $app->db->datalogUpdate('dns_rr', "data = '$ip_address'", 'id', $rr_rec['id']); + $app->db->datalogUpdate('dns_rr', "data = '$ip_address'", 'id', $app->functions->intval($rr_rec['id'])); $serial = $app->validate_dns->increase_serial($zone_rec['serial']); - $app->db->datalogUpdate('dns_soa', "serial = '$serial'", 'id', $zone_rec['id']); + $app->db->datalogUpdate('dns_soa', "serial = '$serial'", 'id', $app->functions->intval($zone_rec['id'])); } else { $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `zone`, `name`, `type`, `data`, `aux`, `ttl`, `active`) VALUES ('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$dns_soa_id', '$hostname', 'A', '$ip_address', '0', '3600', 'Y')"; -- GitLab From 3ee67a99739154fa5fab3a041edabc14415d4e70 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 17:49:30 +0200 Subject: [PATCH 078/158] Added additional username check in form files. --- interface/web/sites/form/shell_user.tform.php | 7 +++++++ interface/web/sites/form/web_domain.tform.php | 14 ++++++++++++++ interface/web/sites/lib/lang/en_shell_user.lng | 1 + interface/web/sites/lib/lang/en_web_domain.lng | 1 + 4 files changed, 23 insertions(+) diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index 062ed6e0b0..8ad815998c 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -93,6 +93,13 @@ $form["tabs"]['shell'] = array ( 1 => array ( 'type' => 'REGEX', 'regex' => '/^[\w\.\-]{0,32}$/', 'errmsg'=> 'username_error_regex'), + 2 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => true, + 'errmsg' => 'invalid_username_txt' + ), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php index 651b64355a..04b0e1290a 100644 --- a/interface/web/sites/form/web_domain.tform.php +++ b/interface/web/sites/form/web_domain.tform.php @@ -582,6 +582,13 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'sysuser_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '', 'value' => '', @@ -593,6 +600,13 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'sysgroup_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => true, + 'errmsg' => 'invalid_system_user_or_group_txt' + ), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/lib/lang/en_shell_user.lng b/interface/web/sites/lib/lang/en_shell_user.lng index 2ae9b4e6a1..c3f21d52d7 100644 --- a/interface/web/sites/lib/lang/en_shell_user.lng +++ b/interface/web/sites/lib/lang/en_shell_user.lng @@ -31,4 +31,5 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; ?> diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index 8c8f90eb0f..0478e9972c 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> \ No newline at end of file -- GitLab From 19b5e01da02aa2115ee802cf2e43a7f3e58f4eac Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 19:28:03 +0200 Subject: [PATCH 079/158] Added function "is_superadmin" in auth library and improved other functions. --- interface/lib/classes/auth.inc.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 070662fda8..5be11cb7b4 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -44,6 +44,14 @@ class auth { return false; } } + + public function is_superadmin() { + if($_SESSION['s']['user']['typ'] == 'admin' && $_SESSION['s']['user']['userid'] === 1) { + return true; + } else { + return false; + } + } public function has_clients($userid) { global $app, $conf; @@ -83,6 +91,7 @@ class auth { global $app; $userid = $app->functions->intval($userid); + if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$limitname)) $app->error('Invalid limit name '.$limitname); // simple query cache if($this->client_limits===null) @@ -120,7 +129,8 @@ class auth { public function check_module_permissions($module) { // Check if the current user has the permissions to access this module - if(!stristr($_SESSION["s"]["user"]["modules"], $module)) { + $user_modules = explode(',',$_SESSION["s"]["user"]["modules"]); + if(!in_array($module,$user_modules)) { // echo "LOGIN_REDIRECT:/index.php"; header("Location: /index.php"); exit; -- GitLab From cd48c7ce11e4ca3b2094d6a1fd51dca3e07b6905 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 19:28:36 +0200 Subject: [PATCH 080/158] Added missing underscores in table name validation functions. --- interface/lib/classes/db_mysql.inc.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 13a8633a83..ccf4a84ca3 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -263,8 +263,8 @@ class db extends mysqli global $app, $conf; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$db_table)) $app->error('Invalid table name '.$db_table); - if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$primary_field)) $app->error('Invalid primary field '.$primary_field.' in table '.$db_table); + if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$db_table)) $app->error('Invalid table name '.$db_table); + if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$primary_field)) $app->error('Invalid primary field '.$primary_field.' in table '.$db_table); if(strpos($db_table, '.') !== false) { $db_table = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $db_table); @@ -314,8 +314,8 @@ class db extends mysqli global $app; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); - if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); if(strpos($tablename, '.') !== false) { $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); @@ -353,8 +353,8 @@ class db extends mysqli global $app; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); - if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); if(strpos($tablename, '.') !== false) { $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); @@ -389,8 +389,8 @@ class db extends mysqli global $app; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); - if(!preg_match('/^[a-zA-Z0-9\-]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); if(strpos($tablename, '.') !== false) { $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); -- GitLab From 93b75676ecc55ff703f920e3b6357dde4b1b884a Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 19:28:59 +0200 Subject: [PATCH 081/158] Added User validation in shell and web tform files. --- interface/web/sites/form/shell_user.tform.php | 2 +- interface/web/sites/form/web_domain.tform.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index 8ad815998c..db4efe34e9 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -97,7 +97,7 @@ $form["tabs"]['shell'] = array ( 'type' => 'CUSTOM', 'class' => 'validate_systemuser', 'function' => 'check_sysuser', - 'check_names' => true, + 'check_names' => false, 'errmsg' => 'invalid_username_txt' ), ), diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php index 04b0e1290a..f270de30f7 100644 --- a/interface/web/sites/form/web_domain.tform.php +++ b/interface/web/sites/form/web_domain.tform.php @@ -603,7 +603,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 1 => array( 'type' => 'CUSTOM', 'class' => 'validate_systemuser', - 'function' => 'check_sysuser', + 'function' => 'check_sysgroup', 'check_names' => true, 'errmsg' => 'invalid_system_user_or_group_txt' ), -- GitLab From 308c18aaadb730acf2e07363dd9d3783c94b72b2 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 13 Aug 2014 19:53:03 +0200 Subject: [PATCH 082/158] Fixed syntax error. --- interface/lib/plugins/vm_openvz_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/plugins/vm_openvz_plugin.inc.php b/interface/lib/plugins/vm_openvz_plugin.inc.php index 94ccf350f0..fd44205562 100644 --- a/interface/lib/plugins/vm_openvz_plugin.inc.php +++ b/interface/lib/plugins/vm_openvz_plugin.inc.php @@ -216,7 +216,7 @@ class vm_openvz_plugin { $hostname_parts = explode('.', $full_hostname); $hostname = $app->db->quote($hostname_parts[0]); unset($hostname_parts[0]); - $zone = $app->db->quote((implode('.', $hostname_parts)); + $zone = $app->db->quote((implode('.', $hostname_parts))); unset($hostname_parts); // Find the dns zone -- GitLab From 14ee7385443613d71f8d3824ae6efbd8340f087c Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 08:01:47 +0200 Subject: [PATCH 083/158] Fixed: FS#3609 - When create a sieve filter (ex. autoresponder) insert null in file. --- server/plugins-available/maildeliver_plugin.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php index e3799d716e..c8fc0694b2 100644 --- a/server/plugins-available/maildeliver_plugin.inc.php +++ b/server/plugins-available/maildeliver_plugin.inc.php @@ -130,6 +130,7 @@ class maildeliver_plugin { $tpl->setLoop('ccloop', $tmp_addresses_arr); // Custom filters + if($data["new"]["custom_mailfilter"] == 'NULL') $data["new"]["custom_mailfilter"] = ''; $tpl->setVar('custom_mailfilter', $data["new"]["custom_mailfilter"]); // Move junk -- GitLab From 4f1e6a27ed7712eceade6f17f66c54dc87db5ea9 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 08:39:50 +0200 Subject: [PATCH 084/158] FS#3601 - Stop creating .htaccess files for NginX sites --- server/plugins-available/nginx_plugin.inc.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index b0e18c79a2..3478fc7498 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -643,9 +643,9 @@ class nginx_plugin { if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) { exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); } - if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); - } + //if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) { + // exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + //} } else { if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) { @@ -655,7 +655,7 @@ class nginx_plugin { exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); if(is_file($conf['rootpath'] . '/conf/index/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); - if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + //if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); } } exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); -- GitLab From 12c2a9e2ae60ffc9075111bab7fc76fa36c79437 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Aug 2014 09:09:21 +0200 Subject: [PATCH 085/158] Fixes: FS#3610 - The optional wrning message on form tab change is not showing up when activated --- interface/web/themes/default/templates/main.tpl.htm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 3339d9f3bd..e331e441b8 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -48,8 +48,8 @@ jQuery('.ttip').tipsy({live: true, gravity: 'ne', html: true}); - tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled>'; - tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled>'; + tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled">'; + tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled">'; tabChangeWarningTxt = '<tmpl_var name="global_tabchange_warning_txt">'; tabChangeDiscardTxt = '<tmpl_var name="global_tabchange_discard_txt">'; -- GitLab From a5e225d6a00fa21f3fb3a77b43b318701377f0e3 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Aug 2014 09:23:09 +0200 Subject: [PATCH 086/158] Fixes: FS#3073 - Changes on Tab change possibly bug --- interface/web/js/scrigo.js.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php index 85a321c551..229c721be3 100644 --- a/interface/web/js/scrigo.js.php +++ b/interface/web/js/scrigo.js.php @@ -438,6 +438,8 @@ function loadMenus() { } function changeTab(tab,target,force) { + if(requestsRunning > 0) return false; + //document.forms[0].next_tab.value = tab; document.pageForm.next_tab.value = tab; -- GitLab From bfc771477f5a60509bf6318d6ee2a30e14412906 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Aug 2014 09:44:12 +0200 Subject: [PATCH 087/158] Fixes: FS#3364 - client_add does not check that reseller is actually reseller additionally fixes this for client_update --- interface/lib/classes/remoting.inc.php | 42 +++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index 3fe307deb2..0ccfd65478 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -1415,13 +1415,30 @@ class remoting { public function client_add($session_id, $reseller_id, $params) { + global $app; + if (!$this->checkPerm($session_id, 'client_add')) { $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); return false; } if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id; - $affected_rows = $this->klientadd('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $params); + + if($params['parent_client_id']) { + // check if this one is reseller + $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($client_id)); + if($check['limit_client'] == 0) { + $this->server->fault('Invalid reseller', 'Selected client is not a reseller.'); + return false; + } + + if(isset($params['limit_client']) && $params['limit_client'] != 0) { + $this->server->fault('Invalid reseller', 'Reseller cannot be client of another reseller.'); + return false; + } + } + + $affected_rows = $this->klientadd('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] != 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $params); return $affected_rows; } @@ -1437,9 +1454,25 @@ class remoting { } $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php'); + $app->remoting_lib->loadFormDef('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] != 0 ? 'reseller' : 'client') . '.tform.php'); $old_rec = $app->remoting_lib->getDataRecord($client_id); + if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id; + + if($params['parent_client_id']) { + // check if this one is reseller + $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($client_id)); + if($check['limit_client'] == 0) { + $this->server->fault('Invalid reseller', 'Selected client is not a reseller.'); + return false; + } + + if(isset($params['limit_client']) && $params['limit_client'] != 0) { + $this->server->fault('Invalid reseller', 'Reseller cannot be client of another reseller.'); + return false; + } + } + // we need the previuos templates assigned here $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $client_id); if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) { @@ -1462,8 +1495,7 @@ class remoting { } - if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id; - $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params, 'client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_update'); + $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] != 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params, 'client:' . ($params['parent_client_id'] ? 'reseller' : 'client') . ':on_after_update'); $app->remoting_lib->ispconfig_sysuser_update($params, $client_id); @@ -3195,7 +3227,7 @@ class remoting { $this->id = $insert_id; $this->dataRecord = $params; - $app->plugin->raiseEvent('client:' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . ':on_after_insert', $this); + $app->plugin->raiseEvent('client:' . (isset($params['limit_client']) && $params['limit_client'] != 0 ? 'reseller' : 'client') . ':on_after_insert', $this); /* if($app->db->errorMessage != '') { -- GitLab From c653844975fb13bf7aaf2cc0dc96c8c70906394e Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 09:46:18 +0200 Subject: [PATCH 088/158] Fixed: FS#3564 - shell users accounts are not removed. --- server/plugins-available/shelluser_base_plugin.inc.php | 2 +- server/plugins-available/shelluser_jailkit_plugin.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index e331624133..67cbee02c5 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -231,7 +231,7 @@ class shelluser_base_plugin { if($userid > $this->min_uid) { // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin. if ($data['old']['chroot'] != "jailkit") { - $command = 'userdel -f'; + $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f'; $command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null'; exec($command); $app->log("Deleted shelluser: ".$data['old']['username'], LOGLEVEL_DEBUG); diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index 9cf6fc89da..f0fb2799ea 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -226,7 +226,7 @@ class shelluser_jailkit_plugin { $app->system->web_folder_protection($web['document_root'], false); if(@is_dir($data['old']['dir'].$jailkit_chroot_userhome)) { - $command = 'userdel -f'; + $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f'; $command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null'; exec($command); $app->log("Jailkit Plugin -> delete chroot home:".$data['old']['dir'].$jailkit_chroot_userhome, LOGLEVEL_DEBUG); -- GitLab From d22542170f179c6de7d5f1c3b1bc48c7678ec797 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 09:57:46 +0200 Subject: [PATCH 089/158] FS#3614 - Check mailman on Ubuntu 14.04 --- install/lib/installer_base.lib.php | 2 +- server/plugins-available/mailman_plugin.inc.php | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index cc22d9e02d..9bf84b6e1f 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -646,7 +646,7 @@ class installer_base { copy('tpl/mailman-virtual_to_transport.sh', $full_file_name); } chgrp($full_file_name, 'list'); - chmod($full_file_name, 0750); + chmod($full_file_name, 0755); } //* Create aliasaes diff --git a/server/plugins-available/mailman_plugin.inc.php b/server/plugins-available/mailman_plugin.inc.php index e2bd36a8d6..acf4eb9363 100644 --- a/server/plugins-available/mailman_plugin.inc.php +++ b/server/plugins-available/mailman_plugin.inc.php @@ -75,6 +75,7 @@ class mailman_plugin { exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &"); if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); + if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$app->db->quote($data["new"]['mailinglist_id'])); @@ -84,12 +85,17 @@ class mailman_plugin { // The purpose of this plugin is to rewrite the main.cf file function update($event_name, $data) { global $app, $conf; + + $this->update_config(); if($data["new"]["password"] != $data["old"]["password"] && $data["new"]["password"] != '') { exec("nohup /usr/lib/mailman/bin/change_pw -l ".escapeshellcmd($data["new"]["listname"])." -p ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &"); exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$app->db->quote($data["new"]['mailinglist_id'])); } + + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); + if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); } function delete($event_name, $data) { @@ -100,6 +106,9 @@ class mailman_plugin { exec("nohup /usr/lib/mailman/bin/rmlist -a ".escapeshellcmd($data["old"]["listname"])." >/dev/null 2>&1 &"); exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); + + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); + if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); } -- GitLab From 7272e49c868f30d434965a59b1dc209925aec1b2 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 09:58:25 +0200 Subject: [PATCH 090/158] Improved database library. --- interface/lib/classes/db_mysql.inc.php | 40 +++++++++++--------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index ccf4a84ca3..56d43f879b 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -263,15 +263,9 @@ class db extends mysqli global $app, $conf; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$db_table)) $app->error('Invalid table name '.$db_table); + if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$db_table)) $app->error('Invalid table name '.$db_table); if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$primary_field)) $app->error('Invalid primary field '.$primary_field.' in table '.$db_table); - if(strpos($db_table, '.') !== false) { - $db_table = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $db_table); - } else { - $db_table = '`' . $db_table . '`'; - } - $primary_field = $this->quote($primary_field); $primary_id = intval($primary_id); @@ -314,13 +308,13 @@ class db extends mysqli global $app; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); if(strpos($tablename, '.') !== false) { - $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); + $tablename_escaped = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); } else { - $tablename = '`' . $tablename . '`'; + $tablename_escaped = '`' . $tablename . '`'; } $index_field = $this->quote($index_field); @@ -340,9 +334,9 @@ class db extends mysqli } $old_rec = array(); - $this->query("INSERT INTO $tablename $insert_data_str"); + $this->query("INSERT INTO $tablename_escaped $insert_data_str"); $index_value = $this->insertID(); - $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); + $new_rec = $this->queryOneRecord("SELECT * FROM $tablename_escaped WHERE $index_field = '$index_value'"); $this->datalogSave($tablename, 'INSERT', $index_field, $index_value, $old_rec, $new_rec); return $index_value; @@ -353,19 +347,19 @@ class db extends mysqli global $app; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); if(strpos($tablename, '.') !== false) { - $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); + $tablename_escaped = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); } else { - $tablename = '`' . $tablename . '`'; + $tablename_escaped = '`' . $tablename . '`'; } $index_field = $this->quote($index_field); $index_value = $this->quote($index_value); - $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); + $old_rec = $this->queryOneRecord("SELECT * FROM $tablename_escaped WHERE $index_field = '$index_value'"); if(is_array($update_data)) { $update_data_str = ''; @@ -377,8 +371,8 @@ class db extends mysqli $update_data_str = $update_data; } - $this->query("UPDATE $tablename SET $update_data_str WHERE $index_field = '$index_value'"); - $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); + $this->query("UPDATE $tablename_escaped SET $update_data_str WHERE $index_field = '$index_value'"); + $new_rec = $this->queryOneRecord("SELECT * FROM $tablename_escaped WHERE $index_field = '$index_value'"); $this->datalogSave($tablename, 'UPDATE', $index_field, $index_value, $old_rec, $new_rec, $force_update); return true; @@ -389,20 +383,20 @@ class db extends mysqli global $app; // Check fields - if(!preg_match('/^[a-zA-Z0-9\.\-\_]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); + if(!preg_match('/^[a-zA-Z0-9\-\_\.]{1,64}$/',$tablename)) $app->error('Invalid table name '.$tablename); if(!preg_match('/^[a-zA-Z0-9\-\_]{1,64}$/',$index_field)) $app->error('Invalid index field '.$index_field.' in table '.$tablename); if(strpos($tablename, '.') !== false) { - $tablename = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); + $tablename_escaped = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $tablename); } else { - $tablename = '`' . $tablename . '`'; + $tablename_escaped = '`' . $tablename . '`'; } $index_field = $this->quote($index_field); $index_value = $this->quote($index_value); - $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); - $this->query("DELETE FROM $tablename WHERE $index_field = '$index_value'"); + $old_rec = $this->queryOneRecord("SELECT * FROM $tablename_escaped WHERE $index_field = '$index_value'"); + $this->query("DELETE FROM $tablename_escaped WHERE $index_field = '$index_value'"); $new_rec = array(); $this->datalogSave($tablename, 'DELETE', $index_field, $index_value, $old_rec, $new_rec); -- GitLab From f227fb72b50e8580cd5ec1f539ec5749de6dd48c Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Aug 2014 10:31:42 +0200 Subject: [PATCH 091/158] Support passwords in login that are crypted with crypt-SHA256 --- interface/web/login/index.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/interface/web/login/index.php b/interface/web/login/index.php index 951dbaf29c..8043280cef 100644 --- a/interface/web/login/index.php +++ b/interface/web/login/index.php @@ -197,6 +197,13 @@ class login_index { //* The password is crypt-md5 encrypted $salt = '$1$'.substr($saved_password, 3, 8).'$'; + if(crypt(stripslashes($passwort), $salt) != $saved_password) { + $user = false; + } + } elseif(substr($saved_password, 0, 3) == '$5$') { + //* The password is crypt-md5 encrypted + $salt = '$5$'.substr($saved_password, 3, 16).'$'; + if(crypt(stripslashes($passwort), $salt) != $saved_password) { $user = false; } -- GitLab From 0e73fca2a24ffa6f1ec182563f22b73a387a59bb Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Aug 2014 10:49:02 +0200 Subject: [PATCH 092/158] - typo in comment --- interface/web/login/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/login/index.php b/interface/web/login/index.php index 8043280cef..48d3af652b 100644 --- a/interface/web/login/index.php +++ b/interface/web/login/index.php @@ -201,7 +201,7 @@ class login_index { $user = false; } } elseif(substr($saved_password, 0, 3) == '$5$') { - //* The password is crypt-md5 encrypted + //* The password is crypt-sha256 encrypted $salt = '$5$'.substr($saved_password, 3, 16).'$'; if(crypt(stripslashes($passwort), $salt) != $saved_password) { -- GitLab From fa029ba07e16cf79f2adc8e049c0d981ec61d18e Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 12:46:15 +0200 Subject: [PATCH 093/158] Added security directory. --- install/dist/lib/fedora.lib.php | 14 +++++++-- install/dist/lib/gentoo.lib.php | 12 +++++++- install/dist/lib/opensuse.lib.php | 12 +++++++- install/lib/installer_base.lib.php | 12 +++++++- security/check.php | 47 ++++++++++++++++++++++++++++++ security/data/empty.dir | 0 server/server.sh | 3 ++ 7 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 security/check.php create mode 100644 security/data/empty.dir diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index d6d975a150..e01a739d63 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -958,13 +958,13 @@ class installer_dist extends installer_base { $this->db->query($sql); } - /// chown install dir to root and chmod 755 + // chown install dir to root and chmod 755 $command = 'chown root:root '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chmod 755 '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* Chmod the files and directoreies in the install dir + //* Chmod the files and directories in the install dir $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -975,6 +975,16 @@ class installer_dist extends installer_base { //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security directory and security_settings.ini to root:ispconfig + $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 26474c51fc..fb6b13853a 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -856,7 +856,7 @@ class installer extends installer_base $command = 'chmod 755 '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* Chmod the files and directoreies in the install dir + //* Chmod the files and directories in the install dir $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -867,6 +867,16 @@ class installer extends installer_base //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security directory and security_settings.ini to root:ispconfig + $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index dad3a6a3cb..c76833169a 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -1034,7 +1034,7 @@ class installer_dist extends installer_base { $command = 'chmod 755 '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* Chmod the files and directoreies in the install dir + //* Chmod the files and directories in the install dir $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -1045,6 +1045,16 @@ class installer_dist extends installer_base { //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security directory and security_settings.ini to root:ispconfig + $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 9bf84b6e1f..19e1f032fd 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1891,7 +1891,7 @@ class installer_base { $command = 'chmod 755 '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - //* Chmod the files and directoreies in the install dir + //* Chmod the files and directories in the install dir $command = 'chmod -R 750 '.$install_dir.'/*'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -1902,6 +1902,16 @@ class installer_base { //* chown the server files to the root user and group $command = 'chown -R root:root '.$install_dir.'/server'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security directory and security_settings.ini to root:ispconfig + $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/security/check.php b/security/check.php new file mode 100644 index 0000000000..d6518a1c52 --- /dev/null +++ b/security/check.php @@ -0,0 +1,47 @@ +<?php + +/* +Copyright (c) 2014, Till Brehm, ISPConfig UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"])); +require SCRIPT_PATH."/lib/config.inc.php"; +require SCRIPT_PATH."/lib/app.inc.php"; + +set_time_limit(0); +ini_set('error_reporting', E_ALL & ~E_NOTICE); + +// make sure server_id is always an int +$conf['server_id'] = intval($conf['server_id']); + + +// Load required base-classes +$app->uses('ini_parser,file,services,getconf,system'); + + + +?> \ No newline at end of file diff --git a/security/data/empty.dir b/security/data/empty.dir new file mode 100644 index 0000000000..e69de29bb2 diff --git a/server/server.sh b/server/server.sh index 75253e7890..88c30e7445 100755 --- a/server/server.sh +++ b/server/server.sh @@ -13,5 +13,8 @@ if [ -f /usr/local/ispconfig/server/lib/php.ini ]; then fi fi +cd /usr/local/ispconfig/security +/usr/bin/php -q /usr/local/ispconfig/security/check.php + cd /usr/local/ispconfig/server /usr/bin/php -q /usr/local/ispconfig/server/server.php -- GitLab From 77edf6ef46c41285e3c29423c0d28e461c52eaa8 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Aug 2014 17:03:18 +0200 Subject: [PATCH 094/158] - added script to create additional htaccess for ispconfig interface --- server/scripts/ispconfig_htaccess.php | 75 +++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 server/scripts/ispconfig_htaccess.php diff --git a/server/scripts/ispconfig_htaccess.php b/server/scripts/ispconfig_htaccess.php new file mode 100644 index 0000000000..568ec50f5a --- /dev/null +++ b/server/scripts/ispconfig_htaccess.php @@ -0,0 +1,75 @@ +<?php + +/* +Copyright (c) 2014, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +$path = realpath(dirname(__FILE__)) . '/..'; +$iface_path = realpath(dirname(__FILE__)) . '/../../interface/web'; + +require $path . '/lib/mysql_clientdb.conf'; + +if(isset($argv[1])) $dbname = $argv[1]; +else $dbname = 'dbispconfig'; +if(!preg_match('/^[a-zA-Z0-9]+$/', $dbname)) die("Invalid database name\n"); + +$link = mysqli_init(); +$con = mysqli_real_connect($link, $clientdb_host, $clientdb_user, $clientdb_password, $dbname); +if(!$con) die('DB CON ERROR' . "\n"); + +$qry = "SELECT username, passwort FROM sys_user WHERE active = '1'"; +$result = mysqli_query($link, $qry); +if(!$result) die('Could not read users' . "\n"); + +$cont = ''; +while($row = mysqli_fetch_assoc($result)) { + $cont .= $row['username'] . ':' . $row['passwort'] . "\n"; +} +mysqli_free_result($result); +mysqli_close($link); + +if($cont == '') die('No users found' . "\n"); + +if(file_exists($iface_path . '/.htpasswd')) rename($iface_path . '/.htpasswd', $iface_path . '/.htpasswd.old'); +file_put_contents($iface_path . '/.htpasswd', $cont); +chmod($iface_path . '/.htpasswd', 0644); + +$cont = 'AuthType Basic +AuthName "Login" +AuthUserFile ' . $iface_path . '/.htpasswd +require valid-user'; + +if(file_exists($iface_path . '/.htaccess')) rename($iface_path . '/.htaccess', $iface_path . '/.htaccess.old'); +file_put_contents($iface_path . '/.htaccess', $cont); +chmod($iface_path . '/.htaccess', 0644); +unset($cont); + +print 'Data written. Please check, if everything is working correctly.' . "\n"; +exit; + +?> -- GitLab From 9edea9976bd605071e0694a90d704266c0b7e0f9 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 17:30:03 +0200 Subject: [PATCH 095/158] - Added warning in the interface when a path for a shelluser is set that is outside of the website docroot. - Added security settings feature to allow the root user of a server to control most aspects of whet the admin user of the controlpanel is allowed to do in system settings. This is especially useful for managed severs where the ispconfig admin user and the root user of the server are different persons. --- interface/lib/classes/auth.inc.php | 18 +++++- interface/lib/classes/getconf.inc.php | 9 +++ .../lib/classes/validate_systemuser.inc.php | 56 +++++++++++++++++++ interface/lib/lang/ar.lng | 2 + interface/lib/lang/bg.lng | 2 + interface/lib/lang/br.lng | 2 + interface/lib/lang/cz.lng | 2 + interface/lib/lang/de.lng | 2 + interface/lib/lang/el.lng | 2 + interface/lib/lang/en.lng | 6 +- interface/lib/lang/es.lng | 2 + interface/lib/lang/fi.lng | 2 + interface/lib/lang/fr.lng | 2 + interface/lib/lang/hr.lng | 4 +- interface/lib/lang/hu.lng | 4 +- interface/lib/lang/id.lng | 4 +- interface/lib/lang/it.lng | 4 +- interface/lib/lang/ja.lng | 4 +- interface/lib/lang/nl.lng | 4 +- interface/lib/lang/pl.lng | 4 +- interface/lib/lang/pt.lng | 4 +- interface/lib/lang/ro.lng | 4 +- interface/lib/lang/ru.lng | 4 +- interface/lib/lang/se.lng | 4 +- interface/lib/lang/sk.lng | 4 +- interface/lib/lang/tr.lng | 4 +- interface/web/admin/firewall_del.php | 1 + interface/web/admin/firewall_edit.php | 1 + interface/web/admin/groups_del.php | 1 + interface/web/admin/groups_edit.php | 1 + interface/web/admin/iptables_del.php | 1 + interface/web/admin/iptables_edit.php | 1 + interface/web/admin/iptables_list.php | 2 + interface/web/admin/language_add.php | 1 + interface/web/admin/language_complete.php | 1 + interface/web/admin/language_edit.php | 1 + interface/web/admin/language_export.php | 1 + interface/web/admin/language_import.php | 1 + .../web/admin/remote_action_osupdate.php | 1 + interface/web/admin/remote_user_del.php | 1 + interface/web/admin/remote_user_edit.php | 3 + interface/web/admin/server_config_del.php | 1 + interface/web/admin/server_config_edit.php | 2 + interface/web/admin/server_del.php | 1 + interface/web/admin/server_edit.php | 1 + interface/web/admin/server_ip_del.php | 1 + interface/web/admin/server_ip_edit.php | 1 + interface/web/admin/server_php_del.php | 1 + interface/web/admin/server_php_edit.php | 1 + interface/web/admin/software_package_del.php | 1 + interface/web/admin/software_package_edit.php | 1 + .../web/admin/software_package_install.php | 1 + interface/web/admin/software_repo_del.php | 1 + interface/web/admin/software_repo_edit.php | 1 + interface/web/admin/software_update_list.php | 1 + interface/web/admin/system_config_edit.php | 1 + interface/web/admin/tpl_default.php | 1 + interface/web/admin/users_del.php | 1 + interface/web/admin/users_edit.php | 13 +++++ interface/web/remote/index.php | 6 +- interface/web/sites/form/shell_user.tform.php | 4 ++ .../web/sites/lib/lang/en_shell_user.lng | 1 + interface/web/tools/user_settings.php | 4 ++ security/security_settings.ini | 25 +++++++++ server/lib/classes/getconf.inc.php | 9 +++ .../shelluser_base_plugin.inc.php | 30 ++++++++-- .../shelluser_jailkit_plugin.inc.php | 31 ++++++++-- 67 files changed, 289 insertions(+), 29 deletions(-) create mode 100644 security/security_settings.ini diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 5be11cb7b4..70c1722aed 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -46,7 +46,7 @@ class auth { } public function is_superadmin() { - if($_SESSION['s']['user']['typ'] == 'admin' && $_SESSION['s']['user']['userid'] === 1) { + if($_SESSION['s']['user']['typ'] == 'admin' && $_SESSION['s']['user']['userid'] == 1) { return true; } else { return false; @@ -136,6 +136,22 @@ class auth { exit; } } + + public function check_security_permissions($permission) { + + global $app; + + $app->uses('getconf'); + $security_config = $app->getconf->get_security_config('permissions'); + + $security_check = false; + if($security_config[$permission] == 'yes') $security_check = true; + if($security_config[$permission] == 'superadmin' && $app->auth->is_superadmin()) $security_check = true; + if($security_check !== true) { + $app->error($app->lng('security_check1_txt').' '.$permission.' '.$app->lng('security_check2_txt')); + } + + } public function get_random_password($length = 8) { $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; diff --git a/interface/lib/classes/getconf.inc.php b/interface/lib/classes/getconf.inc.php index 45fefa601b..7a29dbf425 100644 --- a/interface/lib/classes/getconf.inc.php +++ b/interface/lib/classes/getconf.inc.php @@ -54,6 +54,15 @@ class getconf { } return ($section == '') ? $this->config['global'] : $this->config['global'][$section]; } + + public function get_security_config($section = '') { + global $app; + + $app->uses('ini_parser'); + $security_config = $app->ini_parser->parse_ini_string(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + + return ($section == '') ? $security_config : $security_config[$section]; + } } diff --git a/interface/lib/classes/validate_systemuser.inc.php b/interface/lib/classes/validate_systemuser.inc.php index f1bbd2bb39..6df3a4589c 100644 --- a/interface/lib/classes/validate_systemuser.inc.php +++ b/interface/lib/classes/validate_systemuser.inc.php @@ -58,7 +58,63 @@ class validate_systemuser { } } + /* + Validator function to check if a given dir is ok. + */ + function shelluser_dir($field_name, $field_value, $validator) { + global $app; + + if($app->tform->primary_id == 0) { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + + + $shell_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM shell_user WHERE shell_user_id = '".$app->db->quote($app->tform->primary_id)."'"); + if(!is_array($shell_data) || $shell_data["parent_domain_id"] < 1) { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($shell_data["parent_domain_id"])."'"); + if(!is_array($domain_data) || $domain_data["domain_id"] < 1) { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + + $doc_root = $domain_data["document_root"]; + $is_ok = false; + if($doc_root == $field_value) $is_ok = true; + + $doc_root .= "/"; + if(substr($field_value, 0, strlen($doc_root)) == $doc_root) $is_ok = true; + + if(stristr($field_value, '..') or stristr($field_value, './') or stristr($field_value, '/.')) $is_ok = false; + + //* Final check if docroot path of website is >= 5 chars + if(strlen($doc_root) < 5) $is_ok = false; + + if($is_ok == false) { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } + } } diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng index 2bef4b0d64..ed4bb29c04 100644 --- a/interface/lib/lang/ar.lng +++ b/interface/lib/lang/ar.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng index 09b399ad5e..04380173ae 100644 --- a/interface/lib/lang/bg.lng +++ b/interface/lib/lang/bg.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng index 7007f7dec6..275be4d1bd 100644 --- a/interface/lib/lang/br.lng +++ b/interface/lib/lang/br.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index a48a835bb4..27fa49431b 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Silná'; $wb['strength_5'] = 'Velmi silná'; $wb['weak_password_txt'] = 'Zvolené heslo neodpovÃdá požadavkům zásad pro tvorbu hesel. Heslo musà být alespoň {chars} znaků dlouhé a majÃcà sÃlu \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'Zvolené heslo neodpovÃdá požadavkům zásad pro tvorbu hesel. Heslo musà být alespoň {chars} znaků dlouhé.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index dfd1c9b77d..735b1da09c 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Stark'; $wb['strength_5'] = 'Sehr stark'; $wb['weak_password_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein und die Stärke \\"{strength}\\" besitzen.'; $wb['weak_password_length_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein.'; +$wb['security_check1_txt'] = 'Sicherheitsüberprüfung für:'; +$wb['security_check2_txt'] = 'fehlgeschlagen.'; ?> diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index 20f26a448d..d8a2715909 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng index ec309d9f85..c89c97a7cc 100644 --- a/interface/lib/lang/en.lng +++ b/interface/lib/lang/en.lng @@ -131,7 +131,6 @@ $wb['datalog_status_d_web_folder'] = 'Delete folder protection'; $wb['datalog_status_i_web_folder_user'] = 'Create folder protection user'; $wb['datalog_status_u_web_folder_user'] = 'Update folder protection user'; $wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user'; - $wb['login_as_txt'] = 'Log in as'; $wb["no_domain_perm"] = 'You have no permission for this domain.'; $wb["no_destination_perm"] = 'You have no permission for this destination.'; @@ -149,5 +148,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of "{strength}".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; - -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng index 63b62451be..ae21baf04e 100644 --- a/interface/lib/lang/es.lng +++ b/interface/lib/lang/es.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng index 3cdfa12d8d..059c9b2deb 100755 --- a/interface/lib/lang/fi.lng +++ b/interface/lib/lang/fi.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng index 613f2a3428..c59aac41a1 100644 --- a/interface/lib/lang/fr.lng +++ b/interface/lib/lang/fr.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; ?> diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 26a98bfc14..634a396488 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index ce9a102599..9aa46b4882 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index a781fb597a..bc0a5f9504 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 8b2b810c3a..1f46893fe5 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index 04fef3d96f..41cd638f89 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index 458b53fa3e..b359dee1c5 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index 87973f64b1..058680c471 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index 84cd748af3..48beea8dd3 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index 6431e11803..c5234fb838 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index 566f8d83a1..7fb0ac863f 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index 41a972f5ca..a7813bc0b0 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Starkt'; $wb['strength_5'] = 'Väldigt starkt'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index 4abcf0ca9e..63a16ce29e 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index 0257a68b8b..e7d9e037fd 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -147,4 +147,6 @@ $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; $wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -?> +$wb['security_check1_txt'] = 'Check for security permission:'; +$wb['security_check2_txt'] = 'failed.'; +?> \ No newline at end of file diff --git a/interface/web/admin/firewall_del.php b/interface/web/admin/firewall_del.php index c4ea5605c7..3fc23fe708 100644 --- a/interface/web/admin/firewall_del.php +++ b/interface/web/admin/firewall_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_firewall_config'); $app->uses("tform_actions"); $app->tform_actions->onDelete(); diff --git a/interface/web/admin/firewall_edit.php b/interface/web/admin/firewall_edit.php index d0c35db8e8..6c29f766d1 100644 --- a/interface/web/admin/firewall_edit.php +++ b/interface/web/admin/firewall_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_firewall_config'); // Loading classes $app->uses('tpl,tform,tform_actions'); diff --git a/interface/web/admin/groups_del.php b/interface/web/admin/groups_del.php index 57b47d9f48..42eed9507b 100644 --- a/interface/web/admin/groups_del.php +++ b/interface/web/admin/groups_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_cpuser_group'); $app->uses("tform_actions"); $app->tform_actions->onDelete(); diff --git a/interface/web/admin/groups_edit.php b/interface/web/admin/groups_edit.php index 5ecf75fdf5..0000003616 100644 --- a/interface/web/admin/groups_edit.php +++ b/interface/web/admin/groups_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_cpuser_group'); // Loading classes $app->uses('tpl,tform,tform_actions'); diff --git a/interface/web/admin/iptables_del.php b/interface/web/admin/iptables_del.php index 2497768c19..55371d6cb4 100644 --- a/interface/web/admin/iptables_del.php +++ b/interface/web/admin/iptables_del.php @@ -1,4 +1,5 @@ <?php +die('unused'); /* Copyright (c) 2011, Andrew "lathama" Latham, Till Brehm, projektfarm Gmbh All rights reserved. diff --git a/interface/web/admin/iptables_edit.php b/interface/web/admin/iptables_edit.php index 61d1ee3310..77c2ae7e57 100644 --- a/interface/web/admin/iptables_edit.php +++ b/interface/web/admin/iptables_edit.php @@ -1,4 +1,5 @@ <?php +die('unused'); /* Copyright (c) 2011, Andrew "lathama" Latham, Till Brehm, projektfarm Gmbh All rights reserved. diff --git a/interface/web/admin/iptables_list.php b/interface/web/admin/iptables_list.php index 8110460c1c..06141b669b 100644 --- a/interface/web/admin/iptables_list.php +++ b/interface/web/admin/iptables_list.php @@ -1,4 +1,6 @@ <?php + +die('unused'); /* Copyright (c) 2011, Andrew "lathama" Latham, Till Brehm, projektfarm Gmbh All rights reserved. diff --git a/interface/web/admin/language_add.php b/interface/web/admin/language_add.php index 3444179a2a..8c488c34c9 100644 --- a/interface/web/admin/language_add.php +++ b/interface/web/admin/language_add.php @@ -32,6 +32,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_langedit'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); diff --git a/interface/web/admin/language_complete.php b/interface/web/admin/language_complete.php index 67cfb86ed2..d8f4bbda86 100644 --- a/interface/web/admin/language_complete.php +++ b/interface/web/admin/language_complete.php @@ -32,6 +32,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_langedit'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); //* This is only allowed for administrators diff --git a/interface/web/admin/language_edit.php b/interface/web/admin/language_edit.php index 8199244921..7d83b9bb74 100644 --- a/interface/web/admin/language_edit.php +++ b/interface/web/admin/language_edit.php @@ -32,6 +32,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_langedit'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); diff --git a/interface/web/admin/language_export.php b/interface/web/admin/language_export.php index a4c75f3df8..44bc787bd3 100644 --- a/interface/web/admin/language_export.php +++ b/interface/web/admin/language_export.php @@ -32,6 +32,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_langedit'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); diff --git a/interface/web/admin/language_import.php b/interface/web/admin/language_import.php index 1dfaa18468..d53575ba26 100644 --- a/interface/web/admin/language_import.php +++ b/interface/web/admin/language_import.php @@ -112,6 +112,7 @@ function validate_line($line) { //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_langedit'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); diff --git a/interface/web/admin/remote_action_osupdate.php b/interface/web/admin/remote_action_osupdate.php index 4000d7f262..61c6c23823 100644 --- a/interface/web/admin/remote_action_osupdate.php +++ b/interface/web/admin/remote_action_osupdate.php @@ -32,6 +32,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_osupdate'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); diff --git a/interface/web/admin/remote_user_del.php b/interface/web/admin/remote_user_del.php index e3a3832724..b23336cab3 100644 --- a/interface/web/admin/remote_user_del.php +++ b/interface/web/admin/remote_user_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_remote_users'); $app->uses('tpl,tform'); $app->load('tform_actions'); diff --git a/interface/web/admin/remote_user_edit.php b/interface/web/admin/remote_user_edit.php index 962aa57522..efc4f72a38 100644 --- a/interface/web/admin/remote_user_edit.php +++ b/interface/web/admin/remote_user_edit.php @@ -13,6 +13,9 @@ if(!stristr($_SESSION['s']['user']['modules'], 'admin')) { die; } +$app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_remote_users'); + // Disable this function in demo mode if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); diff --git a/interface/web/admin/server_config_del.php b/interface/web/admin/server_config_del.php index c50ca140f3..3a332edd12 100644 --- a/interface/web/admin/server_config_del.php +++ b/interface/web/admin/server_config_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_config'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); $app->uses("tform_actions"); diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index a47118114b..e561b00ac5 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -43,6 +43,8 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_config'); + // Loading classes $app->uses('tpl,tform,tform_actions'); diff --git a/interface/web/admin/server_del.php b/interface/web/admin/server_del.php index c39b73238f..f90bfa7f86 100644 --- a/interface/web/admin/server_del.php +++ b/interface/web/admin/server_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_services'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); $app->uses("tform_actions"); diff --git a/interface/web/admin/server_edit.php b/interface/web/admin/server_edit.php index caf79ef0b5..0adf313181 100644 --- a/interface/web/admin/server_edit.php +++ b/interface/web/admin/server_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_services'); // Loading classes $app->uses('tpl,tform,tform_actions'); diff --git a/interface/web/admin/server_ip_del.php b/interface/web/admin/server_ip_del.php index e1df934837..61252c31c0 100644 --- a/interface/web/admin/server_ip_del.php +++ b/interface/web/admin/server_ip_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_ip'); $app->uses("tform_actions"); $app->tform_actions->onDelete(); diff --git a/interface/web/admin/server_ip_edit.php b/interface/web/admin/server_ip_edit.php index c3bf380f85..c20f752b86 100644 --- a/interface/web/admin/server_ip_edit.php +++ b/interface/web/admin/server_ip_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_ip'); // Loading classes $app->uses('tpl,tform,tform_actions'); diff --git a/interface/web/admin/server_php_del.php b/interface/web/admin/server_php_del.php index d9c7baf2da..6848eea8d4 100644 --- a/interface/web/admin/server_php_del.php +++ b/interface/web/admin/server_php_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_php'); $app->uses("tform_actions"); $app->tform_actions->onDelete(); diff --git a/interface/web/admin/server_php_edit.php b/interface/web/admin/server_php_edit.php index ff65c70070..f60ae997a0 100644 --- a/interface/web/admin/server_php_edit.php +++ b/interface/web/admin/server_php_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_server_php'); // Loading classes $app->uses('tpl,tform,tform_actions'); diff --git a/interface/web/admin/software_package_del.php b/interface/web/admin/software_package_del.php index ff9ab6e5b7..31aeb1c09b 100644 --- a/interface/web/admin/software_package_del.php +++ b/interface/web/admin/software_package_del.php @@ -33,6 +33,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_software_packages'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); $software_update_inst_id = $app->functions->intval($_GET['software_update_inst_id']); diff --git a/interface/web/admin/software_package_edit.php b/interface/web/admin/software_package_edit.php index 038f377e72..65555d3a35 100644 --- a/interface/web/admin/software_package_edit.php +++ b/interface/web/admin/software_package_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_software_packages'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); // Loading classes diff --git a/interface/web/admin/software_package_install.php b/interface/web/admin/software_package_install.php index e45f47ac07..0fd58816a0 100644 --- a/interface/web/admin/software_package_install.php +++ b/interface/web/admin/software_package_install.php @@ -33,6 +33,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_software_packages'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); diff --git a/interface/web/admin/software_repo_del.php b/interface/web/admin/software_repo_del.php index b8effc1d57..630993717c 100644 --- a/interface/web/admin/software_repo_del.php +++ b/interface/web/admin/software_repo_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_software_repo'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); $app->uses("tform_actions"); diff --git a/interface/web/admin/software_repo_edit.php b/interface/web/admin/software_repo_edit.php index 2a6a4f4228..6d52da2b56 100644 --- a/interface/web/admin/software_repo_edit.php +++ b/interface/web/admin/software_repo_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_software_repo'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); // Loading classes diff --git a/interface/web/admin/software_update_list.php b/interface/web/admin/software_update_list.php index a709e0cff4..8bc8b79a41 100644 --- a/interface/web/admin/software_update_list.php +++ b/interface/web/admin/software_update_list.php @@ -33,6 +33,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_software_packages'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index 3c54fc2095..7d872fa456 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -43,6 +43,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_system_config'); // Loading classes $app->uses('tpl,tform,tform_actions'); diff --git a/interface/web/admin/tpl_default.php b/interface/web/admin/tpl_default.php index b9477f1e39..57395cfb28 100644 --- a/interface/web/admin/tpl_default.php +++ b/interface/web/admin/tpl_default.php @@ -1,4 +1,5 @@ <?php +die('unused'); /* Copyright (c) 2007, Till Brehm, projektfarm Gmbh All rights reserved. diff --git a/interface/web/admin/users_del.php b/interface/web/admin/users_del.php index 299eed2755..ce413b60f4 100644 --- a/interface/web/admin/users_del.php +++ b/interface/web/admin/users_del.php @@ -44,6 +44,7 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('admin'); +$app->auth->check_security_permissions('admin_allow_del_cpuser'); if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.'); $app->uses("tform_actions"); diff --git a/interface/web/admin/users_edit.php b/interface/web/admin/users_edit.php index 2b1be7f0fc..a405db4aed 100644 --- a/interface/web/admin/users_edit.php +++ b/interface/web/admin/users_edit.php @@ -52,16 +52,29 @@ class page_action extends tform_actions { function onBeforeInsert() { global $app, $conf; + + //* Security settings check + if(isset($this->dataRecord['typ']) && $this->dataRecord['typ'][0] == 'admin') { + $app->auth->check_security_permissions('admin_allow_new_admin'); + } if(!in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; } + + + } function onBeforeUpdate() { global $app, $conf; if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.'); + + //* Security settings check + if(isset($this->dataRecord['typ']) && $this->dataRecord['typ'][0] == 'admin') { + $app->auth->check_security_permissions('admin_allow_new_admin'); + } if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; diff --git a/interface/web/remote/index.php b/interface/web/remote/index.php index d60a1c95b5..c7ad8a9011 100644 --- a/interface/web/remote/index.php +++ b/interface/web/remote/index.php @@ -6,7 +6,11 @@ require_once '../../lib/app.inc.php'; if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); -$app->load('remoting'); +$app->load('remoting,getconf'); + +$security_config = $app->getconf->get_security_config('permissions'); +if($security_config['remote_api_allowed'] != 'yes') die('Remote API is disabled in security settings.'); + $server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI'])); $server->setClass('remoting'); diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index db4efe34e9..4268fc08ec 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -237,6 +237,10 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 1 => array ( 'type' => 'REGEX', 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', 'errmsg'=> 'directory_error_regex'), + 2 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'shelluser_dir', + 'errmsg' => 'directory_error_notinweb'), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/lib/lang/en_shell_user.lng b/interface/web/sites/lib/lang/en_shell_user.lng index c3f21d52d7..66d33678fb 100644 --- a/interface/web/sites/lib/lang/en_shell_user.lng +++ b/interface/web/sites/lib/lang/en_shell_user.lng @@ -32,4 +32,5 @@ $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; $wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/tools/user_settings.php b/interface/web/tools/user_settings.php index 95018ac07c..7065888dd7 100644 --- a/interface/web/tools/user_settings.php +++ b/interface/web/tools/user_settings.php @@ -44,6 +44,10 @@ require_once '../../lib/app.inc.php'; //* Check permissions for module $app->auth->check_module_permissions('tools'); +if($_SESSION['s']['user']['typ'] == 'admin') { + $app->auth->check_security_permissions('admin_allow_new_admin'); +} + // Loading classes $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); diff --git a/security/security_settings.ini b/security/security_settings.ini new file mode 100644 index 0000000000..0ea46f2d96 --- /dev/null +++ b/security/security_settings.ini @@ -0,0 +1,25 @@ +[permissions] +allow_shell_user=yes +admin_allow_server_config=superadmin +admin_allow_server_services=superadmin +admin_allow_server_ip=superadmin +admin_allow_remote_users=superadmin +admin_allow_system_config=superadmin +admin_allow_server_php=superadmin +admin_allow_langedit=superadmin +admin_allow_new_admin=superadmin +admin_allow_del_cpuser=superadmin +admin_allow_cpuser_group=superadmin +admin_allow_firewall_config=superadmin +admin_allow_osupdate=superadmin +admin_allow_software_packages=superadmin +admin_allow_software_repo=superadmin +remote_api_allowed=yes + +[systemcheck] +security_admin_email=root@localhost +warn_new_admin=yes +warn_passwd_change=no +warn_shadow_change=no +check_groups_in_passwd=yes +check_ispconfig_md5=yes \ No newline at end of file diff --git a/server/lib/classes/getconf.inc.php b/server/lib/classes/getconf.inc.php index c5ca6c696a..768ea2cabd 100644 --- a/server/lib/classes/getconf.inc.php +++ b/server/lib/classes/getconf.inc.php @@ -59,6 +59,15 @@ class getconf { } return ($section == '') ? $this->config['global'] : $this->config['global'][$section]; } + + public function get_security_config($section = '') { + global $app; + + $app->uses('ini_parser'); + $security_config = $app->ini_parser->parse_ini_string(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + + return ($section == '') ? $security_config : $security_config[$section]; + } } diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 67cbee02c5..3cb9d36ca5 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -58,19 +58,25 @@ class shelluser_base_plugin { /* Register for the events */ - + $app->plugins->registerEvent('shell_user_insert', $this->plugin_name, 'insert'); $app->plugins->registerEvent('shell_user_update', $this->plugin_name, 'update'); $app->plugins->registerEvent('shell_user_delete', $this->plugin_name, 'delete'); - + } function insert($event_name, $data) { global $app, $conf; - - $app->uses('system'); + + $app->uses('system,getconf'); + + $security_config = $app->getconf->get_security_config('permissions'); + if($security_config['allow_shell_user'] != 'yes') { + $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); + return false; + } //* Check if the resulting path is inside the docroot $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['new']['parent_domain_id'])); @@ -144,7 +150,13 @@ class shelluser_base_plugin { function update($event_name, $data) { global $app, $conf; - $app->uses('system'); + $app->uses('system,getconf'); + + $security_config = $app->getconf->get_security_config('permissions'); + if($security_config['allow_shell_user'] != 'yes') { + $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); + return false; + } //* Check if the resulting path is inside the docroot $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['new']['parent_domain_id'])); @@ -223,7 +235,13 @@ class shelluser_base_plugin { function delete($event_name, $data) { global $app, $conf; - $app->uses('system'); + $app->uses('system,getconf'); + + $security_config = $app->getconf->get_security_config('permissions'); + if($security_config['allow_shell_user'] != 'yes') { + $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); + return false; + } if($app->system->is_user($data['old']['username'])) { // Get the UID of the user diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index f0fb2799ea..cb222fdc47 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -59,11 +59,11 @@ class shelluser_jailkit_plugin { /* Register for the events */ - + $app->plugins->registerEvent('shell_user_insert', $this->plugin_name, 'insert'); $app->plugins->registerEvent('shell_user_update', $this->plugin_name, 'update'); $app->plugins->registerEvent('shell_user_delete', $this->plugin_name, 'delete'); - + } @@ -71,7 +71,15 @@ class shelluser_jailkit_plugin { function insert($event_name, $data) { global $app, $conf; - $app->uses('system'); + $app->uses('system,getconf'); + + $security_config = $app->getconf->get_security_config('permissions'); + if($security_config['allow_shell_user'] != 'yes') { + $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); + return false; + } + + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$data['new']['parent_domain_id']); if(!$app->system->is_allowed_user($data['new']['username'], false, false) @@ -143,7 +151,14 @@ class shelluser_jailkit_plugin { function update($event_name, $data) { global $app, $conf; - $app->uses('system'); + $app->uses('system,getconf'); + + $security_config = $app->getconf->get_security_config('permissions'); + if($security_config['allow_shell_user'] != 'yes') { + $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); + return false; + } + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$data['new']['parent_domain_id']); if(!$app->system->is_allowed_user($data['new']['username'], false, false) @@ -209,7 +224,13 @@ class shelluser_jailkit_plugin { function delete($event_name, $data) { global $app, $conf; - $app->uses('system'); + $app->uses('system,getconf'); + + $security_config = $app->getconf->get_security_config('permissions'); + if($security_config['allow_shell_user'] != 'yes') { + $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); + return false; + } $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$data['old']['parent_domain_id']); -- GitLab From 1ed92e187ae2dfb51f5f2d62c290a85f93b6dc21 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 19:54:00 +0200 Subject: [PATCH 096/158] - Added security check script. - Create md5 sums of all files at install and update. --- install/install.php | 5 ++ install/update.php | 5 ++ interface/web/admin/users_edit.php | 2 +- security/check.php | 113 ++++++++++++++++++++++++++++- security/security_settings.ini | 4 +- server/server.sh | 6 +- 6 files changed, 126 insertions(+), 9 deletions(-) diff --git a/install/install.php b/install/install.php index 108ed05b2e..49c2720403 100644 --- a/install/install.php +++ b/install/install.php @@ -679,6 +679,11 @@ if($install_mode == 'standard') { } //* << $install_mode / 'Standard' or Genius +//* Create md5 filelist +$md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5'; +exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename); +chmod($md5_filename,0700); + echo "Installation completed.\n"; diff --git a/install/update.php b/install/update.php index eec69bad3b..803e47d435 100644 --- a/install/update.php +++ b/install/update.php @@ -497,6 +497,11 @@ if($reconfigure_services_answer == 'yes') { } } +//* Create md5 filelist +$md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5'; +exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename); +chmod($md5_filename,0700); + echo "Update finished.\n"; ?> diff --git a/interface/web/admin/users_edit.php b/interface/web/admin/users_edit.php index a405db4aed..0a14ca5e1e 100644 --- a/interface/web/admin/users_edit.php +++ b/interface/web/admin/users_edit.php @@ -70,7 +70,7 @@ class page_action extends tform_actions { global $app, $conf; if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.'); - + //* Security settings check if(isset($this->dataRecord['typ']) && $this->dataRecord['typ'][0] == 'admin') { $app->auth->check_security_permissions('admin_allow_new_admin'); diff --git a/security/check.php b/security/check.php index d6518a1c52..dc930c5b79 100644 --- a/security/check.php +++ b/security/check.php @@ -28,9 +28,8 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"])); -require SCRIPT_PATH."/lib/config.inc.php"; -require SCRIPT_PATH."/lib/app.inc.php"; +require "/usr/local/ispconfig/server/lib/config.inc.php"; +require "/usr/local/ispconfig/server/lib/app.inc.php"; set_time_limit(0); ini_set('error_reporting', E_ALL & ~E_NOTICE); @@ -41,6 +40,114 @@ $conf['server_id'] = intval($conf['server_id']); // Load required base-classes $app->uses('ini_parser,file,services,getconf,system'); + +// get security config +$security_config = $app->getconf->get_security_config('systemcheck'); + +$alert = ''; +$data_dir = '/usr/local/ispconfig/security/data'; + + +// Check if a new ispconfig user has been added +if($security_config['warn_new_admin'] == 'yes') { + $data_file = $data_dir.'/admincount'; + //get number of admins + $tmp = $app->db->queryOneRecord("SELECT count(userid) AS number FROM sys_user WHERE typ = 'admin'"); + $admin_user_count_new = intval($tmp['number']); + + if(is_file($data_file)) { + $admin_user_count_old = intval(file_get_contents($data_file)); + if($admin_user_count_new != $admin_user_count_old) { + $alert .= "The number of ISPConfig administrator users has changed. Old: $admin_user_count_old New: $admin_user_count_new \n"; + file_put_contents($data_file,$admin_user_count_new); + } + } else { + // first run, so we save the current count + file_put_contents($data_file,$admin_user_count_new); + chmod($data_file,0700); + } +} + +// Check if /etc/passwd file has been changed +if($security_config['warn_passwd_change'] == 'yes') { + $data_file = $data_dir.'/passwd.md5'; + $md5sum_new = md5_file('/etc/passwd'); + + if(is_file($data_file)) { + $md5sum_old = trim(file_get_contents($data_file)); + if($md5sum_new != $md5sum_old) { + $alert .= "The file /etc/passwd has been changed.\n"; + file_put_contents($data_file,$md5sum_new); + } + } else { + file_put_contents($data_file,$md5sum_new); + chmod($data_file,0700); + } +} + +// Check if /etc/shadow file has been changed +if($security_config['warn_shadow_change'] == 'yes') { + $data_file = $data_dir.'/shadow.md5'; + $md5sum_new = md5_file('/etc/shadow'); + + if(is_file($data_file)) { + $md5sum_old = trim(file_get_contents($data_file)); + if($md5sum_new != $md5sum_old) { + $alert .= "The file /etc/shadow has been changed.\n"; + file_put_contents($data_file,$md5sum_new); + } + } else { + file_put_contents($data_file,$md5sum_new); + chmod($data_file,0700); + } +} + +// Check if /etc/group file has been changed +if($security_config['warn_group_change'] == 'yes') { + $data_file = $data_dir.'/group.md5'; + $md5sum_new = md5_file('/etc/group'); + + if(is_file($data_file)) { + $md5sum_old = trim(file_get_contents($data_file)); + if($md5sum_new != $md5sum_old) { + $alert .= "The file /etc/group has been changed.\n"; + file_put_contents($data_file,$md5sum_new); + } + } else { + file_put_contents($data_file,$md5sum_new); + chmod($data_file,0700); + } +} + + +if($alert != '') { + $admin_email = $security_config['security_admin_email']; + $admin_email_subject = $security_config['security_admin_email_subject']; + mail($admin_email, $admin_email_subject, $alert); + //$app->log(str_replace("\n"," -- ",$alert),1); + echo str_replace("\n"," -- ",$alert)."\n"; +} + + + + + + + + + + + + + + + + + + + + + diff --git a/security/security_settings.ini b/security/security_settings.ini index 0ea46f2d96..4dfe001624 100644 --- a/security/security_settings.ini +++ b/security/security_settings.ini @@ -18,8 +18,8 @@ remote_api_allowed=yes [systemcheck] security_admin_email=root@localhost +security_admin_email_subject=Security alert from server warn_new_admin=yes warn_passwd_change=no warn_shadow_change=no -check_groups_in_passwd=yes -check_ispconfig_md5=yes \ No newline at end of file +warn_group_change=no \ No newline at end of file diff --git a/server/server.sh b/server/server.sh index 88c30e7445..522e0d5f74 100755 --- a/server/server.sh +++ b/server/server.sh @@ -13,8 +13,8 @@ if [ -f /usr/local/ispconfig/server/lib/php.ini ]; then fi fi -cd /usr/local/ispconfig/security -/usr/bin/php -q /usr/local/ispconfig/security/check.php - cd /usr/local/ispconfig/server /usr/bin/php -q /usr/local/ispconfig/server/server.php + +cd /usr/local/ispconfig/security +/usr/bin/php -q /usr/local/ispconfig/security/check.php -- GitLab From 892d732fb407872a62548dbc2f8eae7430ae74ce Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Aug 2014 20:02:17 +0200 Subject: [PATCH 097/158] - added function to delete shell user home directory --- .../shelluser_base_plugin.inc.php | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 3cb9d36ca5..a6dbfcf68a 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -98,12 +98,17 @@ class shelluser_base_plugin { if($app->system->is_user($data['new']['puser'])) { - //* Remove webfolder protection - $app->system->web_folder_protection($web['document_root'], false); - // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); if($uid > $this->min_uid) { + //* Remove webfolder protection + $app->system->web_folder_protection($web['document_root'], false); + + if(!is_dir($data['new']['dir'])){ + $app->file->mkdirs(escapeshellcmd($data['new']['dir']), '0700'); + $app->system->chown(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['username'])); + $app->system->chgrp(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['pgroup'])); + } $command = 'useradd'; $command .= ' -d '.escapeshellcmd($data['new']['dir']); $command .= ' -g '.escapeshellcmd($data['new']['pgroup']); @@ -138,7 +143,6 @@ class shelluser_base_plugin { //* Add webfolder protection again $app->system->web_folder_protection($web['document_root'], true); - } else { $app->log("UID = $uid for shelluser:".$data['new']['username']." not allowed.", LOGLEVEL_ERROR); } @@ -247,6 +251,38 @@ class shelluser_base_plugin { // Get the UID of the user $userid = intval($app->system->getuid($data['old']['username'])); if($userid > $this->min_uid) { + // check if we have to delete the dir + $check = $app->db->queryOneRecord('SELECT shell_user_id FROM `shell_user` WHERE `dir` = \'' . $app->db->quote($data['old']['dir']) . '\''); + if(!$check && is_dir($data['old']['dir'])) { + // delete dir + $homedir = $data['old']['dir']; + if(substr($homedir, -1) !== '/') $homedir .= '/'; + $files = array('.bash_logout', '.bash_history', '.bashrc', '.profile'); + $dirs = array('.ssh'); + foreach($files as $delfile) { + if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); + } + foreach($dirs as $deldir) { + if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) exec('rm -rf ' . escapeshellarg($homedir . $deldir)); + } + $empty = true; + $dirres = opendir($homedir); + if($dirres) { + while(($entry = readdir($dirres)) !== false) { + if($entry != '.' && $entry != '..') { + $empty = false; + break; + } + } + closedir($dirres); + } + if($empty == true) { + rmdir($homedir); + } + unset($files); + unset($dirs); + } + // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin. if ($data['old']['chroot'] != "jailkit") { $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f'; -- GitLab From b51c22aecea55a2edb0e5fa712b297465a444b28 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 20:06:39 +0200 Subject: [PATCH 098/158] Fixed: FS#3624 - SSL cert for postfix not created on OpenSuSE Linux during install --- install/dist/lib/fedora.lib.php | 2 +- install/dist/lib/gentoo.lib.php | 3 ++- install/dist/lib/opensuse.lib.php | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index e01a739d63..5e28b8f3a7 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -114,7 +114,7 @@ class installer_dist extends installer_base { function configure_postfix($options = '') { - global $conf; + global $conf,$autoinstall; $cf = $conf['postfix']; $config_dir = $cf['config_dir']; diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index fb6b13853a..72b34dcf3d 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -49,7 +49,7 @@ class installer extends installer_base public function configure_postfix($options = '') { - global $conf; + global $conf,$autoinstall; $cf = $conf['postfix']; $config_dir = $cf['config_dir']; @@ -126,6 +126,7 @@ class installer extends installer_base $command = 'cd '.$config_dir.'; ' .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; } + exec($command); $command = 'chmod o= '.$config_dir.'/smtpd.key'; caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index c76833169a..c00903ee4a 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -130,7 +130,7 @@ class installer_dist extends installer_base { function configure_postfix($options = '') { - global $conf; + global $conf,$autoinstall; $cf = $conf['postfix']; $config_dir = $cf['config_dir']; @@ -264,6 +264,7 @@ class installer_dist extends installer_base { $command = 'cd '.$config_dir.'; ' .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; } + exec($command); $command = 'chmod o= '.$config_dir.'/smtpd.key'; caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); -- GitLab From 7c27524f673112971d6f425ddc8ee03041282720 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 20:25:15 +0200 Subject: [PATCH 099/158] Added readme file. --- security/README.txt | 96 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 security/README.txt diff --git a/security/README.txt b/security/README.txt new file mode 100644 index 0000000000..c73231237c --- /dev/null +++ b/security/README.txt @@ -0,0 +1,96 @@ + +Description for security_settings.ini values. + +The option "superadmin" means that a setting is only available to the admin user with userid 1 in the interface. +If there are other amdins, then they cant access this setting. + +----------------------------------------------------------- +Setting: allow_shell_user +Options: yes/no +Description: Disables the shell user plugins in ispconfig + +Setting: admin_allow_server_config +Options: yes/no/superadmin +Description: Disables System > Server config + +Setting: admin_allow_server_services +Options: yes/no/superadmin +Description: Disables System > Server services + +Setting: admin_allow_server_ip +Options: yes/no/superadmin +Description: Disables System > Server IP + +Setting: admin_allow_remote_users +Options: yes/no/superadmin +Description: Disables System > Remote Users + +Setting: admin_allow_system_config +Options: yes/no/superadmin +Description: Disables System > Interface > Main Config + +Setting: admin_allow_server_php +Options: yes/no/superadmin +Description: Disables System > Additional PHP versions + +Setting: admin_allow_langedit +Options: yes/no/superadmin +Description: Disables System > Language editor functions + +Setting: admin_allow_new_admin +Options: yes/no/superadmin +Description: Disables the ability to add new admin users trough the interface + +Setting: admin_allow_del_cpuser +Options: yes/no/superadmin +Description: Disables the ability to delete CP users + +Setting: admin_allow_cpuser_group +Options: yes/no/superadmin +Description: Disables cp user group editing + +Setting: admin_allow_firewall_config +Options: yes/no/superadmin +Description: Disables System > Firewall + +Setting: admin_allow_osupdate +Options: yes/no/superadmin +Description: Disables System > OS update + +Setting: admin_allow_software_packages +Options: yes/no/superadmin +Description: Disables System > Apps & Addons > Packages and Update + +Setting: admin_allow_software_repo +Options: yes/no/superadmin +Description: Disables System > Apps & Addons > Repo + +Setting: remote_api_allowed +Options: yes/no +Description: Disables the remote API + +Setting: security_admin_email +Options: email address +Description: Email address of the security admin + +Setting: security_admin_email_subject +Options: Text +Description: Subject of the notification email + +Setting: warn_new_admin +Options: yes/no +Description: Warn by email when a new admin user in ISPConfig has been added. + +Setting: warn_passwd_change +Options: yes/no +Description: Warn by email when /etc/passwd has been changed. + +Setting: warn_shadow_change +Options: yes/no +Description: Warn by email when /etc/shadow has been changed. + +Setting: warn_group_change +Options: yes/no +Description: Warn by email when /etc/group has been changed. + + -- GitLab From a13af29287c5f3c72f21d104651ece92b4a9e52e Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 21:06:14 +0200 Subject: [PATCH 100/158] Added copy commands for security directory to installer. --- install/dist/lib/fedora.lib.php | 4 ++++ install/dist/lib/gentoo.lib.php | 4 ++++ install/dist/lib/opensuse.lib.php | 4 ++++ install/lib/installer_base.lib.php | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 5e28b8f3a7..49403dec04 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -832,6 +832,10 @@ class installer_dist extends installer_base { //* copy the ISPConfig server part $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig security part + $command = 'cp -rf ../security '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 72b34dcf3d..9e398d1a4c 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -748,6 +748,10 @@ class installer extends installer_base //* copy the ISPConfig server part $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig security part + $command = 'cp -rf ../security '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Create the config file for ISPConfig interface diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index c00903ee4a..c44bf8b6f4 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -904,6 +904,10 @@ class installer_dist extends installer_base { //* copy the ISPConfig server part $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig security part + $command = 'cp -rf ../security '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 19e1f032fd..125ebe1a70 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1744,6 +1744,10 @@ class installer_base { //* copy the ISPConfig server part $command = 'cp -rf ../server '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig security part + $command = 'cp -rf ../security '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 -- GitLab From a7e4ec0ce669549c826cdbb8add5c7d50469a772 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 21:58:40 +0200 Subject: [PATCH 101/158] Added new directory delete procedure in jailkit plugin. --- .../shelluser_base_plugin.inc.php | 7 +++ .../shelluser_jailkit_plugin.inc.php | 46 +++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index a6dbfcf68a..651ccc9970 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -254,6 +254,11 @@ class shelluser_base_plugin { // check if we have to delete the dir $check = $app->db->queryOneRecord('SELECT shell_user_id FROM `shell_user` WHERE `dir` = \'' . $app->db->quote($data['old']['dir']) . '\''); if(!$check && is_dir($data['old']['dir'])) { + + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['old']['parent_domain_id'])); + + $app->system->web_folder_protection($web['document_root'], false); + // delete dir $homedir = $data['old']['dir']; if(substr($homedir, -1) !== '/') $homedir .= '/'; @@ -281,6 +286,8 @@ class shelluser_base_plugin { } unset($files); unset($dirs); + + $app->system->web_folder_protection($web['document_root'], true); } // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin. diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index cb222fdc47..a391835790 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -247,9 +247,13 @@ class shelluser_jailkit_plugin { $app->system->web_folder_protection($web['document_root'], false); if(@is_dir($data['old']['dir'].$jailkit_chroot_userhome)) { + $userid = intval($app->system->getuid($data['old']['username'])); $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f'; $command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null'; exec($command); + + $this->_delete_homedir($data['old']['dir'].$jailkit_chroot_userhome,$userid,$data['old']['parent_domain_id']); + $app->log("Jailkit Plugin -> delete chroot home:".$data['old']['dir'].$jailkit_chroot_userhome, LOGLEVEL_DEBUG); } @@ -523,6 +527,48 @@ class shelluser_jailkit_plugin { exec("chmod 600 '$sshkeys'"); } + + private function _delete_homedir($homedir,$userid,$parent_domain_id) { + global $app, $conf; + + // check if we have to delete the dir + $check = $app->db->queryOneRecord('SELECT shell_user_id FROM `shell_user` WHERE `dir` = \'' . $app->db->quote($homedir) . '\''); + + if(!$check && is_dir($homedir)) { + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($parent_domain_id)); + $app->system->web_folder_protection($web['document_root'], false); + + // delete dir + if(substr($homedir, -1) !== '/') $homedir .= '/'; + $files = array('.bash_logout', '.bash_history', '.bashrc', '.profile'); + $dirs = array('.ssh'); + foreach($files as $delfile) { + if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); + } + foreach($dirs as $deldir) { + if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) exec('rm -rf ' . escapeshellarg($homedir . $deldir)); + } + $empty = true; + $dirres = opendir($homedir); + if($dirres) { + while(($entry = readdir($dirres)) !== false) { + if($entry != '.' && $entry != '..') { + $empty = false; + break; + } + } + closedir($dirres); + } + if($empty == true) { + rmdir($homedir); + } + unset($files); + unset($dirs); + + $app->system->web_folder_protection($web['document_root'], true); + } + + } } // end class -- GitLab From 68fccf6d5e610c8ee078826bd9a759cafc9bf788 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 22:20:01 +0200 Subject: [PATCH 102/158] Added new temp directory for the interface as the server temp directory is not accessible anymore. --- install/tpl/apache_ispconfig_fcgi_starter.master | 2 +- interface/temp/empty.dir | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 interface/temp/empty.dir diff --git a/install/tpl/apache_ispconfig_fcgi_starter.master b/install/tpl/apache_ispconfig_fcgi_starter.master index cc6ec2d09c..240fcccd68 100644 --- a/install/tpl/apache_ispconfig_fcgi_starter.master +++ b/install/tpl/apache_ispconfig_fcgi_starter.master @@ -3,4 +3,4 @@ PHPRC={fastcgi_phpini_path} export PHPRC export PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_CHILDREN=1 -exec {fastcgi_bin} -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/server/temp \ No newline at end of file +exec {fastcgi_bin} -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/interface/temp \ No newline at end of file diff --git a/interface/temp/empty.dir b/interface/temp/empty.dir new file mode 100644 index 0000000000..e69de29bb2 -- GitLab From 56fda89e367aafed045375021b92ff7b3f0028a1 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 22:21:31 +0200 Subject: [PATCH 103/158] Updated temp path for php-fpm. --- install/tpl/php_fpm_pool.conf.master | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/tpl/php_fpm_pool.conf.master b/install/tpl/php_fpm_pool.conf.master index 9cde75ab60..9ff7ebc942 100644 --- a/install/tpl/php_fpm_pool.conf.master +++ b/install/tpl/php_fpm_pool.conf.master @@ -17,5 +17,5 @@ pm.max_spare_servers = 5 chdir = / ; php_admin_value[open_basedir] = /usr/local/ispconfig/interface:/usr/share -php_admin_value[session.save_path] = /usr/local/ispconfig/server/temp +php_admin_value[session.save_path] = /usr/local/ispconfig/interface/temp php_admin_flag[magic_quotes_gpc] = off \ No newline at end of file -- GitLab From 8a3cd2369d830d7d1ad9edd437908b6a741d9f2c Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 22:40:51 +0200 Subject: [PATCH 104/158] - Updated czech translation - Merged language files --- interface/lib/lang/hr.lng | 2 +- interface/lib/lang/hu.lng | 2 +- interface/lib/lang/id.lng | 2 +- interface/lib/lang/it.lng | 2 +- interface/lib/lang/ja.lng | 2 +- interface/lib/lang/nl.lng | 2 +- interface/lib/lang/pl.lng | 2 +- interface/lib/lang/pt.lng | 2 +- interface/lib/lang/ro.lng | 2 +- interface/lib/lang/ru.lng | 2 +- interface/lib/lang/se.lng | 4 ++-- interface/lib/lang/sk.lng | 2 +- interface/lib/lang/tr.lng | 2 +- interface/web/admin/lib/lang/cz.lng | 2 +- .../web/admin/lib/lang/cz_package_install.lng | 2 +- .../web/admin/lib/lang/cz_remote_action.lng | 4 ++-- .../web/admin/lib/lang/cz_server_config.lng | 4 ++-- .../web/admin/lib/lang/cz_software_repo.lng | 4 ++-- .../admin/lib/lang/cz_software_repo_list.lng | 4 ++-- .../web/admin/lib/lang/cz_system_config.lng | 2 +- .../web/admin/lib/lang/se_system_config.lng | 2 +- interface/web/client/lib/lang/se_client.lng | 2 +- .../dns/lib/lang/ar_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/ar_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/bg_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/bg_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/br_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/br_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/cz_dns_slave_admin_list.lng | 16 ++++++++-------- .../web/dns/lib/lang/cz_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/el_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/el_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/es_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/es_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/fi_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/fi_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/fr_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/fr_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/hr_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/hr_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/hu_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/hu_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/id_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/id_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/it_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/it_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/ja_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/ja_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/nl_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/nl_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/pl_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/pl_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/pt_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/pt_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/ro_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/ro_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/ru_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/ru_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/se_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/se_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/sk_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/sk_dns_soa_admin_list.lng | 18 +++++++++--------- .../dns/lib/lang/tr_dns_slave_admin_list.lng | 14 +++++++------- .../web/dns/lib/lang/tr_dns_soa_admin_list.lng | 18 +++++++++--------- interface/web/login/lib/lang/se_login_as.lng | 6 +++--- interface/web/mail/lib/lang/cz.lng | 4 ++-- interface/web/mail/lib/lang/cz_mail_user.lng | 2 +- .../mail/lib/lang/cz_mail_whitelist_list.lng | 2 +- .../lib/lang/cz_spamfilter_whitelist_list.lng | 2 +- interface/web/mail/lib/lang/se_mail_get.lng | 2 +- interface/web/sites/lib/lang/ar_shell_user.lng | 2 ++ interface/web/sites/lib/lang/ar_web_domain.lng | 1 + interface/web/sites/lib/lang/bg_shell_user.lng | 2 ++ interface/web/sites/lib/lang/bg_web_domain.lng | 1 + interface/web/sites/lib/lang/br_shell_user.lng | 2 ++ interface/web/sites/lib/lang/br_web_domain.lng | 1 + interface/web/sites/lib/lang/cz_ftp_user.lng | 6 +++--- interface/web/sites/lib/lang/cz_shell_user.lng | 6 ++++-- .../web/sites/lib/lang/cz_web_aliasdomain.lng | 4 ++-- interface/web/sites/lib/lang/cz_web_domain.lng | 1 + .../web/sites/lib/lang/cz_web_folder_list.lng | 2 +- .../sites/lib/lang/cz_web_folder_user_list.lng | 2 +- .../sites/lib/lang/cz_web_vhost_subdomain.lng | 2 +- .../web/sites/lib/lang/cz_webdav_user.lng | 14 +++++++------- interface/web/sites/lib/lang/de_shell_user.lng | 2 ++ interface/web/sites/lib/lang/de_web_domain.lng | 1 + interface/web/sites/lib/lang/el_shell_user.lng | 2 ++ interface/web/sites/lib/lang/el_web_domain.lng | 1 + interface/web/sites/lib/lang/es_shell_user.lng | 2 ++ interface/web/sites/lib/lang/es_web_domain.lng | 1 + interface/web/sites/lib/lang/fi_shell_user.lng | 2 ++ interface/web/sites/lib/lang/fi_web_domain.lng | 1 + interface/web/sites/lib/lang/fr_shell_user.lng | 2 ++ interface/web/sites/lib/lang/fr_web_domain.lng | 1 + interface/web/sites/lib/lang/hr_shell_user.lng | 2 ++ interface/web/sites/lib/lang/hr_web_domain.lng | 1 + interface/web/sites/lib/lang/hu_shell_user.lng | 2 ++ interface/web/sites/lib/lang/hu_web_domain.lng | 1 + interface/web/sites/lib/lang/id_shell_user.lng | 2 ++ interface/web/sites/lib/lang/id_web_domain.lng | 1 + interface/web/sites/lib/lang/it_shell_user.lng | 2 ++ interface/web/sites/lib/lang/it_web_domain.lng | 1 + interface/web/sites/lib/lang/ja_shell_user.lng | 2 ++ interface/web/sites/lib/lang/ja_web_domain.lng | 1 + interface/web/sites/lib/lang/nl_shell_user.lng | 2 ++ interface/web/sites/lib/lang/nl_web_domain.lng | 1 + interface/web/sites/lib/lang/pl_shell_user.lng | 2 ++ interface/web/sites/lib/lang/pl_web_domain.lng | 1 + interface/web/sites/lib/lang/pt_shell_user.lng | 2 ++ interface/web/sites/lib/lang/pt_web_domain.lng | 1 + interface/web/sites/lib/lang/ro_shell_user.lng | 2 ++ interface/web/sites/lib/lang/ro_web_domain.lng | 1 + interface/web/sites/lib/lang/ru_shell_user.lng | 2 ++ interface/web/sites/lib/lang/ru_web_domain.lng | 1 + interface/web/sites/lib/lang/se.lng | 2 +- interface/web/sites/lib/lang/se_aps.lng | 16 ++++++++-------- interface/web/sites/lib/lang/se_shell_user.lng | 2 ++ interface/web/sites/lib/lang/se_web_domain.lng | 1 + .../web/sites/lib/lang/se_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/sk_shell_user.lng | 2 ++ interface/web/sites/lib/lang/sk_web_domain.lng | 1 + interface/web/sites/lib/lang/tr_shell_user.lng | 2 ++ interface/web/sites/lib/lang/tr_web_domain.lng | 1 + 123 files changed, 466 insertions(+), 400 deletions(-) diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 634a396488..02ba8b1f66 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index 9aa46b4882..f45820ae35 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index bc0a5f9504..c5759c4ee2 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 1f46893fe5..f6c5c2d34a 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index 41cd638f89..0781f39a94 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index b359dee1c5..1fe07082d6 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index 058680c471..559302eb29 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index 48beea8dd3..14e6d16d48 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index c5234fb838..7ae78ba6c4 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index 7fb0ac863f..3fafcc570a 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index a7813bc0b0..535e04c623 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -145,8 +145,8 @@ $wb['strength_2'] = 'SÃ¥där'; $wb['strength_3'] = 'Bra'; $wb['strength_4'] = 'Starkt'; $wb['strength_5'] = 'Väldigt starkt'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index 63a16ce29e..5cd95401f3 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index e7d9e037fd..72c2324b47 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -149,4 +149,4 @@ $wb['weak_password_txt'] = 'The chosen password does not match the security guid $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; -?> \ No newline at end of file +?> diff --git a/interface/web/admin/lib/lang/cz.lng b/interface/web/admin/lib/lang/cz.lng index bc1c9bb83f..9916f929a3 100644 --- a/interface/web/admin/lib/lang/cz.lng +++ b/interface/web/admin/lib/lang/cz.lng @@ -34,7 +34,7 @@ $wb['Interface Config'] = 'Hlavnà konfigurace'; $wb['Domains'] = 'Domény'; $wb['Misc'] = 'Různé'; $wb['Software'] = 'Software'; -$wb['Repositories'] = 'Repozitáře'; +$wb['Repositories'] = 'Zdroje repozitářů'; $wb['Packages'] = 'BalÃÄky'; $wb['Updates'] = 'Aktualizace'; $wb['Language Editor'] = 'Jazykový editor'; diff --git a/interface/web/admin/lib/lang/cz_package_install.lng b/interface/web/admin/lib/lang/cz_package_install.lng index 64a190d9a1..2bdc9df315 100644 --- a/interface/web/admin/lib/lang/cz_package_install.lng +++ b/interface/web/admin/lib/lang/cz_package_install.lng @@ -1,5 +1,5 @@ <?php -$wb['repo_name_txt'] = 'Repozitář'; +$wb['repo_name_txt'] = 'Název zdroje'; $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Uživatel (volitelné)'; $wb['repo_password_txt'] = 'Heslo (volitelné)'; diff --git a/interface/web/admin/lib/lang/cz_remote_action.lng b/interface/web/admin/lib/lang/cz_remote_action.lng index e1908e2d04..68da1c065d 100644 --- a/interface/web/admin/lib/lang/cz_remote_action.lng +++ b/interface/web/admin/lib/lang/cz_remote_action.lng @@ -2,9 +2,9 @@ $wb['select_server_txt'] = 'Zvolit server'; $wb['btn_do_txt'] = 'Provést akci'; $wb['do_osupdate_caption'] = 'Aktualizace operaÄnÃho systému na vzdáleném serveru.'; -$wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITà TÉTO AKCE NA VLASTNà NEBEZPEČà !</strong>'; +$wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITà TÉTO AKCE NA VLASTNà NEBEZPEČà !</strong>'; $wb['do_ispcupdate_caption'] = 'Provedenà ISPConfig 3 - aktualizace na vzdáleném serveru'; -$wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vaÅ¡em vybraném serveru.<br><br><strong>POUŽITà TÉTO AKCE NA VLASTNà NEBEZPEČà !</strong>'; +$wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vaÅ¡em vybraném serveru.<br><br><strong>POUŽITà TÉTO AKCE NA VLASTNà NEBEZPEČà !</strong>'; $wb['action_scheduled'] = 'Akce je naplánována na provedenÃ'; $wb['select_all_server'] = 'VÅ¡echny servery'; $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index c2db3bab0f..306f29e916 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -145,10 +145,10 @@ $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM adresář pro socket je prázdn $wb['try_rescue_txt'] = 'Povolit monitorovánà služeb a restartovat pÅ™i selhánÃ'; $wb['do_not_try_rescue_mysql_txt'] = 'Zakázat MySQL monitorovánÃ'; $wb['do_not_try_rescue_mail_txt'] = 'Zakázat E-mail monitorovánÃ'; -$wb['rescue_description_txt'] = '<b>Informace:</b> Pokud chcete napÅ™. vypnout MySQL monitorovánà zatrhnÄ›te polÃÄko \\"Zakázat MySQL monitorovánÃ\\" zmÄ›na se provede do 2-3 minut.<br>Pokud nepoÄkáte 2-3 minuty, monitorovánà restartuje mysql!!'; +$wb['rescue_description_txt'] = '<b>Informace:</b> Pokud chcete napÅ™. vypnout MySQL monitorovánà zatrhnÄ›te polÃÄko \"Zakázat MySQL monitorovánÃ\" zmÄ›na se provede do 2-3 minut.<br>Pokud nepoÄkáte 2-3 minuty, monitorovánà restartuje mysql!!'; $wb['enable_sni_txt'] = 'Aktivovat SNI (Server Name Indication)'; $wb['do_not_try_rescue_httpd_txt'] = 'Zakázat HTTPD monitorovánÃ'; -$wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update'; +$wb['set_folder_permissions_on_update_txt'] = 'Nastavenà oprávnÄ›nà složky pÅ™i aktualizaci'; $wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group'; $wb['connect_userid_to_webid_txt'] = 'Connect Linux userid to webid'; $wb['connect_userid_to_webid_start_txt'] = 'Start ID for userid/webid connect'; diff --git a/interface/web/admin/lib/lang/cz_software_repo.lng b/interface/web/admin/lib/lang/cz_software_repo.lng index 6e200d8d12..bd7bc9d0f2 100644 --- a/interface/web/admin/lib/lang/cz_software_repo.lng +++ b/interface/web/admin/lib/lang/cz_software_repo.lng @@ -1,8 +1,8 @@ <?php -$wb['repo_name_txt'] = 'Repozitář'; +$wb['repo_name_txt'] = 'Název zdroje'; $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Uživatel (volitelné)'; $wb['repo_password_txt'] = 'Heslo (volitelné)'; $wb['active_txt'] = 'AktivnÃ'; -$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; +$wb['Software Repository which may contain addons or updates'] = 'Softwarové zdroje, které mohou obsahovat addony nebo aktualizace'; ?> diff --git a/interface/web/admin/lib/lang/cz_software_repo_list.lng b/interface/web/admin/lib/lang/cz_software_repo_list.lng index 5c82d4c41f..ca04f41dcf 100644 --- a/interface/web/admin/lib/lang/cz_software_repo_list.lng +++ b/interface/web/admin/lib/lang/cz_software_repo_list.lng @@ -1,6 +1,6 @@ <?php -$wb['list_head_txt'] = 'Repozitář'; +$wb['list_head_txt'] = 'Zdroje repozitářů'; $wb['active_txt'] = 'AktivnÃ'; -$wb['repo_name_txt'] = 'Repozitář'; +$wb['repo_name_txt'] = 'Název zdroje'; $wb['repo_url_txt'] = 'URL'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 31e8ce0563..a7cd502a61 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Zákaznické ÄÃslo Å¡ablony obs $wb['customer_no_start_txt'] = 'Zákaznické ÄÃslo - poÄáteÄnà hodnota'; $wb['customer_no_counter_txt'] = 'Zákaznické ÄÃslo - ÄÃtaÄ'; $wb['session_timeout_txt'] = 'ÄŒasový limit relace (minuty)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Povolit - zůstat pÅ™ihlášen'; $wb['No'] = 'Ne'; $wb['min_password_length_txt'] = 'Minimálnà délka hesla'; $wb['min_password_strength_txt'] = 'Minimálnà sÃla hesla'; diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index 7e9618102f..7d30a9b01d 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Kundnummermallen innehÃ¥ller otil $wb['customer_no_start_txt'] = 'Kundnummer startvärde'; $wb['customer_no_counter_txt'] = 'Kundnummer räknare'; $wb['session_timeout_txt'] = 'Session timeout (minuter)'; -$wb['session_allow_endless_txt'] = 'Aktivera \"hÃ¥ll mig inloggad\"'; +$wb['session_allow_endless_txt'] = 'Aktivera \\"hÃ¥ll mig inloggad\\"'; $wb['No'] = 'Nej'; $wb['min_password_length_txt'] = 'Minsta lösenordslängd'; $wb['min_password_strength_txt'] = 'Minsta lösenordsstyrka'; diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index f6336149ce..7f9a797b31 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Vänligen ange en giltig epostadress'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal epostadress'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/ar_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ar_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/bg_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/bg_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng index 43f67783ce..eb00f29ca9 100644 --- a/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/cz_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; -$wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'Sekundárnà DNS-Zóny'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zóna'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'PÅ™idat novou Sekundarnà DNS-Zónu'; +$wb['eg_domain_tld'] = 'napÅ™. domena.cz'; +$wb['sys_groupid_txt'] = 'Klient'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng index 44cec900b9..4a87f66462 100644 --- a/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/cz_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zóny'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zóna'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'E-mail'; +$wb['add_new_record_wizard_txt'] = 'PÅ™idat novou DNS zónu pomocà průvodce'; +$wb['add_new_record_txt'] = 'PÅ™idat novou DNS zónu manuálnÄ›'; +$wb['sys_groupid_txt'] = 'Klient'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/el_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/el_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/es_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/es_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/fi_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/fi_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/fr_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/fr_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/hu_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/hu_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/id_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/id_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/it_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/it_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/ja_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ja_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/nl_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/nl_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/pl_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/pl_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/pt_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/pt_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/ro_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ro_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/ru_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/ru_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/se_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/se_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/sk_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/sk_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng index 43f67783ce..59d84877c6 100644 --- a/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ <?php -$wb["list_head_txt"] = 'Secondary DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["add_new_record_txt"] = 'Add new Secondary DNS-Zone'; +$wb['list_head_txt'] = 'Secondary DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; $wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng index 44cec900b9..183d1a8349 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng @@ -1,11 +1,11 @@ <?php -$wb["list_head_txt"] = 'DNS-Zones'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["origin_txt"] = 'Zone'; -$wb["ns_txt"] = 'NS'; -$wb["mbox_txt"] = 'Email'; -$wb["add_new_record_wizard_txt"] = 'Add new DNS Zone with Wizard'; -$wb["add_new_record_txt"] = 'Add new DNS Zone manually'; -$wb["sys_groupid_txt"] = 'Client'; +$wb['list_head_txt'] = 'DNS-Zones'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['origin_txt'] = 'Zone'; +$wb['ns_txt'] = 'NS'; +$wb['mbox_txt'] = 'Email'; +$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; +$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; +$wb['sys_groupid_txt'] = 'Client'; ?> diff --git a/interface/web/login/lib/lang/se_login_as.lng b/interface/web/login/lib/lang/se_login_as.lng index fea3abca03..2fdd7f0753 100644 --- a/interface/web/login/lib/lang/se_login_as.lng +++ b/interface/web/login/lib/lang/se_login_as.lng @@ -1,11 +1,11 @@ <?php $wb['login_1_txt'] = 'Vill du loggga in som användare'; -$wb['login_2_txt'] = 'If you do so, you can \"go back\" by clicking at logout.'; +$wb['login_2_txt'] = 'If you do so, you can \\"go back\\" by clicking at logout.'; $wb['btn_yes_txt'] = 'Ja, logga in som kund'; $wb['btn_back_txt'] = 'Nej, tillbaka till listan'; $wb['udp_port_help_txt'] = 'Avdelade med kommatecken'; $wb['active_txt'] = 'Aktiv'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; ?> diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng index 16dd2667d8..a0c670ee85 100644 --- a/interface/web/mail/lib/lang/cz.lng +++ b/interface/web/mail/lib/lang/cz.lng @@ -1,6 +1,6 @@ <?php $wb['Email Alias'] = 'E-mailové aliasy'; -$wb['Email Blacklist'] = 'Email Äerná listina'; +$wb['Email Blacklist'] = 'E-mailová Äerná listina'; $wb['Blacklist'] = 'ÄŒerná listina'; $wb['Mail Content Filter'] = 'Obsahový filtr'; $wb['Filter'] = 'Filtr'; @@ -17,7 +17,7 @@ $wb['Autoresponder'] = 'Automatická odpovÄ›Ä'; $wb['Mail Filter'] = 'E-mailové filtry'; $wb['Custom Rules'] = 'Vlastnà pravidla'; $wb['Email filter'] = 'E-mailový filtr'; -$wb['Email Whitelist'] = 'E-mail bÃlá listina'; +$wb['Email Whitelist'] = 'E-mailová bÃlá listina'; $wb['Whitelist'] = 'BÃlá listina'; $wb['Spamfilter blacklist'] = 'Spamový filtr Äerná listina'; $wb['Spamfilter Config'] = 'Konfigurace spamfiltru'; diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng index 259727ea2c..9095c8d7c9 100644 --- a/interface/web/mail/lib/lang/cz_mail_user.lng +++ b/interface/web/mail/lib/lang/cz_mail_user.lng @@ -49,5 +49,5 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(PÅ™i pÅ™eposÃlánà na vÃce e-mailových adres, oddÄ›lte Äárkami.)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Zakázat SMTP (pouze odesÃlánÃ)'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng index 7fae368999..8bd58bfcc7 100644 --- a/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/cz_mail_whitelist_list.lng @@ -1,5 +1,5 @@ <?php -$wb['list_head_txt'] = 'Email bÃlá listina'; +$wb['list_head_txt'] = 'E-mailová bÃlá listina'; $wb['active_txt'] = 'AktivnÃ'; $wb['server_id_txt'] = 'Server'; $wb['source_txt'] = 'Adresy na bÃlé listinÄ›'; diff --git a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng index ad13897004..1b95524e18 100644 --- a/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/cz_spamfilter_whitelist_list.lng @@ -4,6 +4,6 @@ $wb['active_txt'] = 'AktivnÃ'; $wb['server_id_txt'] = 'Server'; $wb['priority_txt'] = 'Priorita'; $wb['rid_txt'] = 'Uživatel'; -$wb['email_txt'] = 'Emaily na bÃlé listinÄ›'; +$wb['email_txt'] = 'E-maily na bÃlé listinÄ›'; $wb['add_new_record_txt'] = 'PÅ™idat záznam na bÃlou listinu'; ?> diff --git a/interface/web/mail/lib/lang/se_mail_get.lng b/interface/web/mail/lib/lang/se_mail_get.lng index db4440210e..9ed9710055 100644 --- a/interface/web/mail/lib/lang/se_mail_get.lng +++ b/interface/web/mail/lib/lang/se_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Lösenord är tomt.'; $wb['destination_error_isemail'] = 'Ingen destination vald.'; $wb['source_server_error_regex'] = 'POP3-/Imapserver är inte ett giltigt domännamn.'; $wb['source_read_all_txt'] = 'Hämta all epost (även läst epost)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Vänligen kontrollera först om eposthämtning fungerar innan du aktiverar detta val..'; ?> diff --git a/interface/web/sites/lib/lang/ar_shell_user.lng b/interface/web/sites/lib/lang/ar_shell_user.lng index 8095f4becc..0b274d33aa 100644 --- a/interface/web/sites/lib/lang/ar_shell_user.lng +++ b/interface/web/sites/lib/lang/ar_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/ar_web_domain.lng b/interface/web/sites/lib/lang/ar_web_domain.lng index 99de4717bd..539d3b7124 100644 --- a/interface/web/sites/lib/lang/ar_web_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/bg_shell_user.lng b/interface/web/sites/lib/lang/bg_shell_user.lng index 15709147fa..1cf3c0d08b 100644 --- a/interface/web/sites/lib/lang/bg_shell_user.lng +++ b/interface/web/sites/lib/lang/bg_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_domain.lng b/interface/web/sites/lib/lang/bg_web_domain.lng index c9a0e84b2f..3af58cd1fa 100644 --- a/interface/web/sites/lib/lang/bg_web_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index 69e0f6e287..da57fb9206 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index 48cfb51be4..8b4484eb71 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/cz_ftp_user.lng b/interface/web/sites/lib/lang/cz_ftp_user.lng index b580e08f55..7d30e53ba9 100644 --- a/interface/web/sites/lib/lang/cz_ftp_user.lng +++ b/interface/web/sites/lib/lang/cz_ftp_user.lng @@ -24,13 +24,13 @@ $wb['uid_error_empty'] = 'GID je prázdné.'; $wb['directory_error_empty'] = 'Adresář je prázdný.'; $wb['directory_error_notinweb'] = 'Adresář nenà uvnitÅ™ webového koÅ™enového adresáře.'; $wb['parent_domain_id_error_empty'] = 'Nevybrána žádná webová stránka.'; -$wb['quota_size_error_regex'] = 'Quota: enter a -1 for unlimited or a number > 0'; +$wb['quota_size_error_regex'] = 'Kvóta: zadejte -1 je bez omezenà nebo ÄÃslo > 0 '; $wb['dir_dot_error'] = 'No .. in path allowed.'; $wb['dir_slashdot_error'] = 'No ./ in path allowed.'; $wb['generate_password_txt'] = 'Generovat heslo'; $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; -$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; -$wb['directory_error_regex'] = 'Invalid directory'; +$wb['invalid_system_user_or_group_txt'] = 'Neplatný systémový uživatel nebo skupina'; +$wb['directory_error_regex'] = 'Neplatný adresář'; ?> diff --git a/interface/web/sites/lib/lang/cz_shell_user.lng b/interface/web/sites/lib/lang/cz_shell_user.lng index fc933da057..eb66108057 100644 --- a/interface/web/sites/lib/lang/cz_shell_user.lng +++ b/interface/web/sites/lib/lang/cz_shell_user.lng @@ -28,7 +28,9 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; $wb['username_not_allowed_txt'] = 'The username is not allowed.'; -$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; -$wb['directory_error_regex'] = 'Invalid directory'; +$wb['invalid_system_user_or_group_txt'] = 'Neplatný systémový uživatel nebo skupina'; +$wb['directory_error_regex'] = 'Neplatný adresář'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng index 3fd0e9280c..1b9fc20c3a 100644 --- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng @@ -35,7 +35,7 @@ $wb['subdomain_txt'] = 'Automatická subdoména'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; -$wb['client_txt'] = 'Client'; +$wb['client_txt'] = 'Klient'; $wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; $wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; $wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; @@ -52,7 +52,7 @@ $wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; $wb['error_ssl_country_empty'] = 'SSL Country is empty.'; $wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; -$wb['client_group_id_txt'] = 'Client'; +$wb['client_group_id_txt'] = 'Klient'; $wb['stats_password_txt'] = 'Set Webstatistics password'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng index ddcac2e68b..99c9e10540 100644 --- a/interface/web/sites/lib/lang/cz_web_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'VylouÄené adresáře'; $wb['backup_excludes_note_txt'] = '(OddÄ›lte vÃce adresářů Äárkami. Vzor: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'VylouÄené adresáře obsahujà neplatné znaky.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Neplatné nastavenà php.ini'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_folder_list.lng b/interface/web/sites/lib/lang/cz_web_folder_list.lng index c7fa12cb24..d7c39c0308 100644 --- a/interface/web/sites/lib/lang/cz_web_folder_list.lng +++ b/interface/web/sites/lib/lang/cz_web_folder_list.lng @@ -4,5 +4,5 @@ $wb['active_txt'] = 'AktivnÃ'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webové stránky'; $wb['path_txt'] = 'Cesta'; -$wb['add_new_record_txt'] = 'Add new Folder'; +$wb['add_new_record_txt'] = 'PÅ™idat novou složku'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng index c0059b2344..1f09657560 100644 --- a/interface/web/sites/lib/lang/cz_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/cz_web_folder_user_list.lng @@ -3,5 +3,5 @@ $wb['list_head_txt'] = 'Složka (adresář) uživatele'; $wb['active_txt'] = 'AktivnÃ'; $wb['web_folder_id_txt'] = 'Složka'; $wb['username_txt'] = 'Uživatelské jméno'; -$wb['add_new_record_txt'] = 'Add new Folder User'; +$wb['add_new_record_txt'] = 'PÅ™idat nového uživatele složky'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng index 1eba50f336..9401e97198 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng @@ -1,6 +1,6 @@ <?php $wb['parent_domain_id_txt'] = 'RodiÄovské webové stránky'; -$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_txt'] = 'Webová složka'; $wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; $wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; $wb['backup_interval_txt'] = 'Interval zálohovánÃ'; diff --git a/interface/web/sites/lib/lang/cz_webdav_user.lng b/interface/web/sites/lib/lang/cz_webdav_user.lng index 3e89a1e625..659cf3e8cc 100644 --- a/interface/web/sites/lib/lang/cz_webdav_user.lng +++ b/interface/web/sites/lib/lang/cz_webdav_user.lng @@ -1,17 +1,17 @@ <?php -$wb['dir_txt'] = 'Directory'; +$wb['dir_txt'] = 'Webdav adresář'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Webové stránky'; $wb['username_txt'] = 'Uživatelské jméno'; $wb['password_txt'] = 'Heslo'; $wb['password_strength_txt'] = 'SÃla hesla'; $wb['active_txt'] = 'AktivnÃ'; -$wb['limit_webdav_user_txt'] = 'The max. number of webdav users for your account is reached.'; -$wb['username_error_empty'] = 'Username is empty.'; -$wb['username_error_unique'] = 'The username must be unique.'; -$wb['username_error_regex'] = 'The username contains characters that are not allowed.'; -$wb['directory_error_empty'] = 'Directory empty.'; -$wb['parent_domain_id_error_empty'] = 'No website selected.'; +$wb['limit_webdav_user_txt'] = 'Byl dosažen max. poÄet WebDAV uživatelů pro váš úÄet.'; +$wb['username_error_empty'] = 'Uživatelské jméno je prázdné.'; +$wb['username_error_unique'] = 'Uživatelské jméno musà být unikátnÃ.'; +$wb['username_error_regex'] = 'Uživatelské jméno obsahuje znaky, které nejsou povoleny.'; +$wb['directory_error_empty'] = 'Webdav adresář je prázdný.'; +$wb['parent_domain_id_error_empty'] = 'Nenà vybrán žádný web.'; $wb['dir_dot_error'] = 'No .. in path allowed.'; $wb['dir_slashdot_error'] = 'No ./ in path allowed.'; $wb['generate_password_txt'] = 'Generovat heslo'; diff --git a/interface/web/sites/lib/lang/de_shell_user.lng b/interface/web/sites/lib/lang/de_shell_user.lng index 3c4cc2d85a..6a7ee20edc 100644 --- a/interface/web/sites/lib/lang/de_shell_user.lng +++ b/interface/web/sites/lib/lang/de_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'Der Benutzername ist nicht erlaubt.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng index 0e6430546f..c005f90c2c 100644 --- a/interface/web/sites/lib/lang/de_web_domain.lng +++ b/interface/web/sites/lib/lang/de_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Auszuschließende Verzeichnisse'; $wb['backup_excludes_note_txt'] = '(Mehrere Verzeichnisse mit Kommas trennen. Beispiel: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Die auszuschließenden Verzeichnisse enthalten ungültige Zeichen.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Unzulässige php.ini-Einstellungen'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/el_shell_user.lng b/interface/web/sites/lib/lang/el_shell_user.lng index 2ced9c23db..a2868ef4d9 100644 --- a/interface/web/sites/lib/lang/el_shell_user.lng +++ b/interface/web/sites/lib/lang/el_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/el_web_domain.lng b/interface/web/sites/lib/lang/el_web_domain.lng index f073530ca6..bc9a8359ba 100644 --- a/interface/web/sites/lib/lang/el_web_domain.lng +++ b/interface/web/sites/lib/lang/el_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/es_shell_user.lng b/interface/web/sites/lib/lang/es_shell_user.lng index 46c39cc6ad..59a27d355c 100644 --- a/interface/web/sites/lib/lang/es_shell_user.lng +++ b/interface/web/sites/lib/lang/es_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/es_web_domain.lng b/interface/web/sites/lib/lang/es_web_domain.lng index bfcfc8bce1..f56e895dca 100644 --- a/interface/web/sites/lib/lang/es_web_domain.lng +++ b/interface/web/sites/lib/lang/es_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/fi_shell_user.lng b/interface/web/sites/lib/lang/fi_shell_user.lng index 116e8c8d86..83c8e89a56 100755 --- a/interface/web/sites/lib/lang/fi_shell_user.lng +++ b/interface/web/sites/lib/lang/fi_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_domain.lng b/interface/web/sites/lib/lang/fi_web_domain.lng index 2a4cfd48e0..e5323b21cc 100755 --- a/interface/web/sites/lib/lang/fi_web_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/fr_shell_user.lng b/interface/web/sites/lib/lang/fr_shell_user.lng index 2e518d70b7..940a78070f 100644 --- a/interface/web/sites/lib/lang/fr_shell_user.lng +++ b/interface/web/sites/lib/lang/fr_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'Le nom d\'utilisateur est interdit.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_domain.lng b/interface/web/sites/lib/lang/fr_web_domain.lng index 527843912f..00c2dcf151 100644 --- a/interface/web/sites/lib/lang/fr_web_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/hr_shell_user.lng b/interface/web/sites/lib/lang/hr_shell_user.lng index d081fd76f4..93a6455083 100644 --- a/interface/web/sites/lib/lang/hr_shell_user.lng +++ b/interface/web/sites/lib/lang/hr_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_domain.lng b/interface/web/sites/lib/lang/hr_web_domain.lng index b4848e0613..51fcb92d66 100644 --- a/interface/web/sites/lib/lang/hr_web_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/hu_shell_user.lng b/interface/web/sites/lib/lang/hu_shell_user.lng index 8eaa537b58..a0617d43bc 100644 --- a/interface/web/sites/lib/lang/hu_shell_user.lng +++ b/interface/web/sites/lib/lang/hu_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_domain.lng b/interface/web/sites/lib/lang/hu_web_domain.lng index 4a17994b1a..e160449c01 100644 --- a/interface/web/sites/lib/lang/hu_web_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/id_shell_user.lng b/interface/web/sites/lib/lang/id_shell_user.lng index 83153c14e5..4be2d11768 100644 --- a/interface/web/sites/lib/lang/id_shell_user.lng +++ b/interface/web/sites/lib/lang/id_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/id_web_domain.lng b/interface/web/sites/lib/lang/id_web_domain.lng index e568e5a7ae..ef3423ee36 100644 --- a/interface/web/sites/lib/lang/id_web_domain.lng +++ b/interface/web/sites/lib/lang/id_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/it_shell_user.lng b/interface/web/sites/lib/lang/it_shell_user.lng index 8095f4becc..0b274d33aa 100644 --- a/interface/web/sites/lib/lang/it_shell_user.lng +++ b/interface/web/sites/lib/lang/it_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/it_web_domain.lng b/interface/web/sites/lib/lang/it_web_domain.lng index 019f68793a..c946023d5e 100644 --- a/interface/web/sites/lib/lang/it_web_domain.lng +++ b/interface/web/sites/lib/lang/it_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/ja_shell_user.lng b/interface/web/sites/lib/lang/ja_shell_user.lng index 2ce5ad345e..79a8e5ca05 100644 --- a/interface/web/sites/lib/lang/ja_shell_user.lng +++ b/interface/web/sites/lib/lang/ja_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_domain.lng b/interface/web/sites/lib/lang/ja_web_domain.lng index 90a8738ab5..d32a9d19b3 100644 --- a/interface/web/sites/lib/lang/ja_web_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/nl_shell_user.lng b/interface/web/sites/lib/lang/nl_shell_user.lng index 9a4ae63ed1..ce3458ddc4 100644 --- a/interface/web/sites/lib/lang/nl_shell_user.lng +++ b/interface/web/sites/lib/lang/nl_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng index c736386667..1efbbc6e3f 100644 --- a/interface/web/sites/lib/lang/nl_web_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/pl_shell_user.lng b/interface/web/sites/lib/lang/pl_shell_user.lng index 19674e3bd7..aad0cf26f4 100644 --- a/interface/web/sites/lib/lang/pl_shell_user.lng +++ b/interface/web/sites/lib/lang/pl_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_domain.lng b/interface/web/sites/lib/lang/pl_web_domain.lng index a60fdd5b2d..ed288131e7 100644 --- a/interface/web/sites/lib/lang/pl_web_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/pt_shell_user.lng b/interface/web/sites/lib/lang/pt_shell_user.lng index 4564bbc5a8..a3ee41e938 100644 --- a/interface/web/sites/lib/lang/pt_shell_user.lng +++ b/interface/web/sites/lib/lang/pt_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_domain.lng b/interface/web/sites/lib/lang/pt_web_domain.lng index adabe2fb07..3d197794e9 100644 --- a/interface/web/sites/lib/lang/pt_web_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/ro_shell_user.lng b/interface/web/sites/lib/lang/ro_shell_user.lng index 912b6b2b0c..8757337039 100644 --- a/interface/web/sites/lib/lang/ro_shell_user.lng +++ b/interface/web/sites/lib/lang/ro_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_domain.lng b/interface/web/sites/lib/lang/ro_web_domain.lng index 1f124bae47..e568b8cf4a 100644 --- a/interface/web/sites/lib/lang/ro_web_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/ru_shell_user.lng b/interface/web/sites/lib/lang/ru_shell_user.lng index f3b788f14e..0a6282bae1 100644 --- a/interface/web/sites/lib/lang/ru_shell_user.lng +++ b/interface/web/sites/lib/lang/ru_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_domain.lng b/interface/web/sites/lib/lang/ru_web_domain.lng index aaf219b1a9..c192656924 100644 --- a/interface/web/sites/lib/lang/ru_web_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/se.lng b/interface/web/sites/lib/lang/se.lng index a63670545c..6b44cdcf7c 100644 --- a/interface/web/sites/lib/lang/se.lng +++ b/interface/web/sites/lib/lang/se.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Tillgängliga paket'; $wb['Installed packages'] = 'Installerade paket'; $wb['Update Packagelist'] = 'Uppdatera paketlista'; $wb['Subdomain (Vhost)'] = 'Underdomän (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/se_aps.lng b/interface/web/sites/lib/lang/se_aps.lng index 1fe86175d3..1a21cd0fd2 100644 --- a/interface/web/sites/lib/lang/se_aps.lng +++ b/interface/web/sites/lib/lang/se_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Installation planerad'; $wb['installation_error_txt'] = 'Installationsfel'; diff --git a/interface/web/sites/lib/lang/se_shell_user.lng b/interface/web/sites/lib/lang/se_shell_user.lng index 8095f4becc..0b274d33aa 100644 --- a/interface/web/sites/lib/lang/se_shell_user.lng +++ b/interface/web/sites/lib/lang/se_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index 2b9a05647c..5156df19f8 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Ogiltiga php.ini-inställningar'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/se_web_subdomain.lng b/interface/web/sites/lib/lang/se_web_subdomain.lng index 856d3c20a0..b542b998d9 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain.lng @@ -42,5 +42,5 @@ $wb['no_flag_txt'] = 'Ingan flagga'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/sk_shell_user.lng b/interface/web/sites/lib/lang/sk_shell_user.lng index 8b94d0d01c..4307afad5a 100644 --- a/interface/web/sites/lib/lang/sk_shell_user.lng +++ b/interface/web/sites/lib/lang/sk_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_domain.lng b/interface/web/sites/lib/lang/sk_web_domain.lng index f372e6bed8..5497f9f5df 100644 --- a/interface/web/sites/lib/lang/sk_web_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> diff --git a/interface/web/sites/lib/lang/tr_shell_user.lng b/interface/web/sites/lib/lang/tr_shell_user.lng index 0c932c1a4a..20abb0bba9 100644 --- a/interface/web/sites/lib/lang/tr_shell_user.lng +++ b/interface/web/sites/lib/lang/tr_shell_user.lng @@ -31,4 +31,6 @@ $wb['username_not_allowed_txt'] = 'The username is not allowed.'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; $wb['directory_error_regex'] = 'Invalid directory'; $wb['shell_error_regex'] = 'Invalid shell'; +$wb['invalid_username_txt'] = 'Invalid Username'; +$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng index 83edeed11d..59dc02aa8c 100644 --- a/interface/web/sites/lib/lang/tr_web_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_domain.lng @@ -127,4 +127,5 @@ $wb['backup_excludes_txt'] = 'Excluded Directories'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; ?> -- GitLab From e14a82779bd6451ea33f1c25a293743a38161caf Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 22:41:45 +0200 Subject: [PATCH 105/158] - Search in relative path for security settings if they were not found in the default location. --- interface/lib/classes/getconf.inc.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/lib/classes/getconf.inc.php b/interface/lib/classes/getconf.inc.php index 7a29dbf425..5cc223ae79 100644 --- a/interface/lib/classes/getconf.inc.php +++ b/interface/lib/classes/getconf.inc.php @@ -59,7 +59,9 @@ class getconf { global $app; $app->uses('ini_parser'); - $security_config = $app->ini_parser->parse_ini_string(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + $security_config_path = '/usr/local/ispconfig/security/security_settings.ini'; + if(!is_file($security_config_path)) $security_config_path = realpath(ISPC_ROOT_PATH.'/../security/security_settings.ini'); + $security_config = $app->ini_parser->parse_ini_string(file_get_contents($security_config_path)); return ($section == '') ? $security_config : $security_config[$section]; } -- GitLab From e020f74511f7aa822c8b3a174529e710dbb91387 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 22:44:30 +0200 Subject: [PATCH 106/158] Updated version to 3.0.5.4p3 --- install/sql/ispconfig3.sql | 2 +- install/tpl/config.inc.php.master | 2 +- interface/lib/config.inc.php | 2 +- interface/web/themes/blue/ispconfig_version | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index ab5f795cd2..46b8025d4d 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -2292,7 +2292,7 @@ INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, -- Dumping data for table `sys_config` -- -INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p2'); +INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p3'); INSERT INTO sys_config VALUES ('interface','session_timeout','0'); SET FOREIGN_KEY_CHECKS = 1; diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master index 6f40a1cda0..bae2adb932 100644 --- a/install/tpl/config.inc.php.master +++ b/install/tpl/config.inc.php.master @@ -56,7 +56,7 @@ $revision = str_replace(array('Revision:','$',' '), '', $svn_revision); //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p2'); +define('ISPC_APP_VERSION', '3.0.5.4p3'); define('DEVSYSTEM', 0); diff --git a/interface/lib/config.inc.php b/interface/lib/config.inc.php index 179acc9325..b6ee79e920 100644 --- a/interface/lib/config.inc.php +++ b/interface/lib/config.inc.php @@ -44,7 +44,7 @@ $revision = str_replace(array('Revision:', '$', ' '), '', $svn_revision); //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p2'); +define('ISPC_APP_VERSION', '3.0.5.4p3'); define('DEVSYSTEM', 0); diff --git a/interface/web/themes/blue/ispconfig_version b/interface/web/themes/blue/ispconfig_version index 0b23ab9c7a..000d1abcef 100644 --- a/interface/web/themes/blue/ispconfig_version +++ b/interface/web/themes/blue/ispconfig_version @@ -1 +1 @@ -3.0.5.4p2 +3.0.5.4p3 -- GitLab From 36633e70259d9f56f74a45075d30bd38f164096f Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 14 Aug 2014 23:18:14 +0200 Subject: [PATCH 107/158] Changed .htpasswd path in ispconfig_htaccess.php script. --- server/scripts/ispconfig_htaccess.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/server/scripts/ispconfig_htaccess.php b/server/scripts/ispconfig_htaccess.php index 568ec50f5a..b72e7918fb 100644 --- a/server/scripts/ispconfig_htaccess.php +++ b/server/scripts/ispconfig_htaccess.php @@ -29,8 +29,9 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -$path = realpath(dirname(__FILE__)) . '/..'; -$iface_path = realpath(dirname(__FILE__)) . '/../../interface/web'; +$path = realpath(dirname(__FILE__) . '/..'); +$iface_path = realpath(dirname(__FILE__) . '/../../interface/web'); +$iface_base_path = realpath(dirname(__FILE__) . '/../../interface'); require $path . '/lib/mysql_clientdb.conf'; @@ -55,13 +56,13 @@ mysqli_close($link); if($cont == '') die('No users found' . "\n"); -if(file_exists($iface_path . '/.htpasswd')) rename($iface_path . '/.htpasswd', $iface_path . '/.htpasswd.old'); -file_put_contents($iface_path . '/.htpasswd', $cont); -chmod($iface_path . '/.htpasswd', 0644); +if(file_exists($iface_base_path . '/.htpasswd')) rename($iface_base_path . '/.htpasswd', $iface_base_path . '/.htpasswd.old'); +file_put_contents($iface_base_path . '/.htpasswd', $cont); +chmod($iface_base_path . '/.htpasswd', 0644); $cont = 'AuthType Basic AuthName "Login" -AuthUserFile ' . $iface_path . '/.htpasswd +AuthUserFile ' . $iface_base_path . '/.htpasswd require valid-user'; if(file_exists($iface_path . '/.htaccess')) rename($iface_path . '/.htaccess', $iface_path . '/.htaccess.old'); -- GitLab From 65a0b9c10da329a4c9df4f00fb7e26ce04a3c203 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 15 Aug 2014 00:11:11 +0200 Subject: [PATCH 108/158] Added .cache dir to removed directories list of shell users. --- server/plugins-available/shelluser_base_plugin.inc.php | 2 +- server/plugins-available/shelluser_jailkit_plugin.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 651ccc9970..e19796cfca 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -263,7 +263,7 @@ class shelluser_base_plugin { $homedir = $data['old']['dir']; if(substr($homedir, -1) !== '/') $homedir .= '/'; $files = array('.bash_logout', '.bash_history', '.bashrc', '.profile'); - $dirs = array('.ssh'); + $dirs = array('.ssh', '.cache'); foreach($files as $delfile) { if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); } diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index a391835790..3c8e2948a1 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -541,7 +541,7 @@ class shelluser_jailkit_plugin { // delete dir if(substr($homedir, -1) !== '/') $homedir .= '/'; $files = array('.bash_logout', '.bash_history', '.bashrc', '.profile'); - $dirs = array('.ssh'); + $dirs = array('.ssh', '.cache'); foreach($files as $delfile) { if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); } -- GitLab From 90b13a1767098edf70c9c4c96e37ca5957400c83 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 15 Aug 2014 09:40:51 +0200 Subject: [PATCH 109/158] - removed unneeded session_start to avoid session files being created --- interface/web/js/scrigo.js.php | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php index 229c721be3..18c0885d92 100644 --- a/interface/web/js/scrigo.js.php +++ b/interface/web/js/scrigo.js.php @@ -1,5 +1,4 @@ <?php -session_start(); include '../../lib/config.inc.php'; header('Content-Type: text/javascript; charset=utf-8'); // the config file sets the content type header so we have to override it here! require_once '../../lib/app.inc.php'; -- GitLab From b54d416889c8497bf53c13e7dbe57c11fad25493 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 21 Aug 2014 10:31:59 +0200 Subject: [PATCH 110/158] FS#3634 - Add option to disable statistics for a website --- interface/web/sites/form/web_domain.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php index f270de30f7..efaea89cf4 100644 --- a/interface/web/sites/form/web_domain.tform.php +++ b/interface/web/sites/form/web_domain.tform.php @@ -496,7 +496,7 @@ $form["tabs"]['stats'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => 'webalizer', - 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats') + 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats', '' => 'None') ), //################################# // ENDE Datatable fields -- GitLab From e23c47d06adda746c330be387f042319f0d7e4dc Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 21 Aug 2014 10:35:59 +0200 Subject: [PATCH 111/158] FS#3635 - Adding Shell Users with remote API is broken in 3.0.5.4p3 FS#3632 - Adding websites with remote API is broken in 3.0.5.4p3 release. Missed to commit one file for: FS#3634 - Add option to disable statistics for a website --- .../lib/classes/validate_ftpuser.inc.php | 28 ++++++---- .../lib/classes/validate_systemuser.inc.php | 52 ++++++++++++++----- interface/web/sites/form/ftp_user.tform.php | 4 ++ .../sites/form/web_vhost_subdomain.tform.php | 2 +- .../examples/sites_ftp_user_add.php | 6 +-- .../examples/sites_ftp_user_update.php | 2 +- .../examples/sites_shell_user_add.php | 10 ++-- .../examples/sites_shell_user_update.php | 2 +- 8 files changed, 73 insertions(+), 33 deletions(-) diff --git a/interface/lib/classes/validate_ftpuser.inc.php b/interface/lib/classes/validate_ftpuser.inc.php index 64ca12f227..8e0663ecae 100644 --- a/interface/lib/classes/validate_ftpuser.inc.php +++ b/interface/lib/classes/validate_ftpuser.inc.php @@ -36,7 +36,10 @@ class validate_ftpuser { function ftp_dir($field_name, $field_value, $validator) { global $app; - if($app->tform->primary_id == 0) { + $primary_id = (isset($app->tform->primary_id) && $app->tform->primary_id > 0)?$app->tform->primary_id:$app->remoting_lib->primary_id; + $primary_id = $app->functions->intval($primary_id); + + if($primary_id == 0 && !isset($app->remoting_lib->dataRecord['parent_domain_id'])) { $errmsg = $validator['errmsg']; if(isset($app->tform->wordbook[$errmsg])) { return $app->tform->wordbook[$errmsg]."<br>\r\n"; @@ -45,18 +48,25 @@ class validate_ftpuser { } } - - $ftp_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM ftp_user WHERE ftp_user_id = '".$app->db->quote($app->tform->primary_id)."'"); - if(!is_array($ftp_data) || $ftp_data["parent_domain_id"] < 1) { - $errmsg = $validator['errmsg']; - if(isset($app->tform->wordbook[$errmsg])) { - return $app->tform->wordbook[$errmsg]."<br>\r\n"; + if($primary_id > 0) { + //* get parent_domain_id from website + $ftp_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM ftp_user WHERE ftp_user_id = '".$app->db->quote($primary_id)."'"); + if(!is_array($ftp_data) || $ftp_data["parent_domain_id"] < 1) { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } } else { - return $errmsg."<br>\r\n"; + $parent_domain_id = $ftp_data["parent_domain_id"]; } + } else { + //* get parent_domain_id from dataRecord when we have a insert operation trough remote API + $parent_domain_id = $app->functions->intval($app->remoting_lib->dataRecord['parent_domain_id']); } - $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($ftp_data["parent_domain_id"])."'"); + $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($parent_domain_id)."'"); if(!is_array($domain_data) || $domain_data["domain_id"] < 1) { $errmsg = $validator['errmsg']; if(isset($app->tform->wordbook[$errmsg])) { diff --git a/interface/lib/classes/validate_systemuser.inc.php b/interface/lib/classes/validate_systemuser.inc.php index 6df3a4589c..2cab1cf444 100644 --- a/interface/lib/classes/validate_systemuser.inc.php +++ b/interface/lib/classes/validate_systemuser.inc.php @@ -29,6 +29,16 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ class validate_systemuser { + + function get_error($errmsg) { + global $app; + + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } + } /* Validator function to check if a given user is ok. @@ -36,11 +46,15 @@ class validate_systemuser { function check_sysuser($field_name, $field_value, $validator) { global $app; + //* Skip Test if we have the placeholder input of the remote APi for the web_domain system_user field here. + if($field_name == 'system_user' && $field_value == '-') return ''; + + //* Check the input $errmsg = $validator['errmsg']; $check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false; if($app->functions->is_allowed_user(trim(strtolower($field_value)),$check_names) == false) { - return $app->tform->wordbook[$errmsg]."<br>\r\n"; + return $this->get_error($errmsg); } } @@ -50,11 +64,14 @@ class validate_systemuser { function check_sysgroup($field_name, $field_value, $validator) { global $app; + //* Skip Test if we have the placeholder input of the remote APi for the web_domain system_group field here. + if($field_name == 'system_group' && $field_value == '-') return ''; + $errmsg = $validator['errmsg']; $check_names = (isset($validator['check_names']) && $validator['check_names'] == true)?true:false; if($app->functions->is_allowed_group(trim(strtolower($field_value)),$check_names) == false) { - return $app->tform->wordbook[$errmsg]."<br>\r\n"; + return $this->get_error($errmsg); } } @@ -63,8 +80,11 @@ class validate_systemuser { */ function shelluser_dir($field_name, $field_value, $validator) { global $app; - - if($app->tform->primary_id == 0) { + + $primary_id = (isset($app->tform->primary_id) && $app->tform->primary_id > 0)?$app->tform->primary_id:$app->remoting_lib->primary_id; + $primary_id = $app->functions->intval($primary_id); + + if($primary_id == 0 && !isset($app->remoting_lib->dataRecord['parent_domain_id'])) { $errmsg = $validator['errmsg']; if(isset($app->tform->wordbook[$errmsg])) { return $app->tform->wordbook[$errmsg]."<br>\r\n"; @@ -73,18 +93,25 @@ class validate_systemuser { } } - - $shell_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM shell_user WHERE shell_user_id = '".$app->db->quote($app->tform->primary_id)."'"); - if(!is_array($shell_data) || $shell_data["parent_domain_id"] < 1) { - $errmsg = $validator['errmsg']; - if(isset($app->tform->wordbook[$errmsg])) { - return $app->tform->wordbook[$errmsg]."<br>\r\n"; + if($primary_id > 0) { + //* get parent_domain_id from website + $shell_data = $app->db->queryOneRecord("SELECT parent_domain_id FROM shell_user WHERE shell_user_id = '".$app->db->quote($primary_id)."'"); + if(!is_array($shell_data) || $shell_data["parent_domain_id"] < 1) { + $errmsg = $validator['errmsg']; + if(isset($app->tform->wordbook[$errmsg])) { + return $app->tform->wordbook[$errmsg]."<br>\r\n"; + } else { + return $errmsg."<br>\r\n"; + } } else { - return $errmsg."<br>\r\n"; + $parent_domain_id = $shell_data["parent_domain_id"]; } + } else { + //* get parent_domain_id from dataRecord when we have a insert operation trough remote API + $parent_domain_id = $app->functions->intval($app->remoting_lib->dataRecord['parent_domain_id']); } - $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($shell_data["parent_domain_id"])."'"); + $domain_data = $app->db->queryOneRecord("SELECT domain_id, document_root FROM web_domain WHERE domain_id = '".$app->db->quote($parent_domain_id)."'"); if(!is_array($domain_data) || $domain_data["domain_id"] < 1) { $errmsg = $validator['errmsg']; if(isset($app->tform->wordbook[$errmsg])) { @@ -116,5 +143,4 @@ class validate_systemuser { } } - } diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php index ef11b6058a..e96e63d16b 100644 --- a/interface/web/sites/form/ftp_user.tform.php +++ b/interface/web/sites/form/ftp_user.tform.php @@ -205,6 +205,10 @@ if($app->auth->is_admin()) { 1 => array ( 'type' => 'REGEX', 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', 'errmsg'=> 'directory_error_regex'), + 2 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_ftpuser', + 'function' => 'ftp_dir', + 'errmsg' => 'directory_error_notinweb'), ), 'default' => '', 'value' => '', diff --git a/interface/web/sites/form/web_vhost_subdomain.tform.php b/interface/web/sites/form/web_vhost_subdomain.tform.php index e4ca6a2fd0..3aa2276fc5 100644 --- a/interface/web/sites/form/web_vhost_subdomain.tform.php +++ b/interface/web/sites/form/web_vhost_subdomain.tform.php @@ -486,7 +486,7 @@ $form["tabs"]['stats'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => 'webalizer', - 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats') + 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats', '' => 'None') ), //################################# // ENDE Datatable fields diff --git a/remoting_client/examples/sites_ftp_user_add.php b/remoting_client/examples/sites_ftp_user_add.php index b8d499b2ff..6e48d80bab 100644 --- a/remoting_client/examples/sites_ftp_user_add.php +++ b/remoting_client/examples/sites_ftp_user_add.php @@ -20,13 +20,13 @@ try { $params = array( 'server_id' => 1, 'parent_domain_id' => 1, - 'username' => 'threep', - 'password' => 'wood', + 'username' => 'tom', + 'password' => 'secret', 'quota_size' => 10000, 'active' => 'y', 'uid' => '5000', 'gid' => '5000', - 'dir' => 'maybe', + 'dir' => '/var/www/clients/client0/web1', 'quota_files' => -1, 'ul_ratio' => -1, 'dl_ratio' => -1, diff --git a/remoting_client/examples/sites_ftp_user_update.php b/remoting_client/examples/sites_ftp_user_update.php index d09b416701..1f36953575 100644 --- a/remoting_client/examples/sites_ftp_user_update.php +++ b/remoting_client/examples/sites_ftp_user_update.php @@ -15,7 +15,7 @@ try { } //* Parameters - $client_id = 1; + $client_id = 0; $ftp_user_id = 1; diff --git a/remoting_client/examples/sites_shell_user_add.php b/remoting_client/examples/sites_shell_user_add.php index 84d4012f0e..c3f875bf01 100644 --- a/remoting_client/examples/sites_shell_user_add.php +++ b/remoting_client/examples/sites_shell_user_add.php @@ -20,14 +20,14 @@ try { $params = array( 'server_id' => 1, 'parent_domain_id' => 1, - 'username' => 'threep2', - 'password' => 'wood', + 'username' => 'tom', + 'password' => 'test', 'quota_size' => 10000, 'active' => 'y', - 'puser' => 'null', - 'pgroup' => 'null', + 'puser' => 'web1', + 'pgroup' => 'client0', 'shell' => '/bin/bash', - 'dir' => 'maybe', + 'dir' => '/var/www/clients/client0/web1', 'chroot' => '' ); diff --git a/remoting_client/examples/sites_shell_user_update.php b/remoting_client/examples/sites_shell_user_update.php index 73b90138f6..a60262d20a 100644 --- a/remoting_client/examples/sites_shell_user_update.php +++ b/remoting_client/examples/sites_shell_user_update.php @@ -15,7 +15,7 @@ try { } //* Parameters - $client_id = 3; + $client_id = 0; $shell_user_id = 1; -- GitLab From fb6c56e0236932606670b6baf4f1affd6318aea7 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 21 Aug 2014 12:47:22 +0200 Subject: [PATCH 112/158] Added code to installer to apply updates to the security_settings.ini --- install/dist/lib/fedora.lib.php | 21 +++++++++++++++++++++ install/dist/lib/gentoo.lib.php | 21 +++++++++++++++++++++ install/dist/lib/opensuse.lib.php | 21 +++++++++++++++++++++ install/lib/installer_base.lib.php | 21 +++++++++++++++++++++ 4 files changed, 84 insertions(+) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 49403dec04..a7179ef8e7 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -833,9 +833,30 @@ class installer_dist extends installer_base { $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + //* Make a backup of the security settings + if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Apply changed security_settings.ini values to new security_settings.ini file + if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { + $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); + $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + if(is_array($security_settings_new) && is_array($security_settings_old)) { + foreach($security_settings_new as $section => $sval) { + if(is_array($sval)) { + foreach($sval as $key => $val) { + if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { + $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; + } + } + } + } + file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); + } + } //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 9e398d1a4c..153a4e0197 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -749,9 +749,30 @@ class installer extends installer_base $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + //* Make a backup of the security settings + if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Apply changed security_settings.ini values to new security_settings.ini file + if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { + $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); + $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + if(is_array($security_settings_new) && is_array($security_settings_old)) { + foreach($security_settings_new as $section => $sval) { + if(is_array($sval)) { + foreach($sval as $key => $val) { + if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { + $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; + } + } + } + } + file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); + } + } //* Create the config file for ISPConfig interface diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index c44bf8b6f4..935b816086 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -905,9 +905,30 @@ class installer_dist extends installer_base { $command = "cp -rf ../server $install_dir"; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + //* Make a backup of the security settings + if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Apply changed security_settings.ini values to new security_settings.ini file + if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { + $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); + $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + if(is_array($security_settings_new) && is_array($security_settings_old)) { + foreach($security_settings_new as $section => $sval) { + if(is_array($sval)) { + foreach($sval as $key => $val) { + if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { + $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; + } + } + } + } + file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); + } + } //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 125ebe1a70..538f21e76f 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1745,9 +1745,30 @@ class installer_base { $command = 'cp -rf ../server '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + //* Make a backup of the security settings + if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); + //* copy the ISPConfig security part $command = 'cp -rf ../security '.$install_dir; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Apply changed security_settings.ini values to new security_settings.ini file + if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { + $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); + $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + if(is_array($security_settings_new) && is_array($security_settings_old)) { + foreach($security_settings_new as $section => $sval) { + if(is_array($sval)) { + foreach($sval as $key => $val) { + if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { + $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; + } + } + } + } + file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); + } + } //* Create a symlink, so ISPConfig is accessible via web // Replaced by a separate vhost definition for port 8080 -- GitLab From d96e29ee1a7569aa25197ade01f35522af1570d2 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 22 Aug 2014 08:51:43 +0200 Subject: [PATCH 113/158] - added alias- and subdomains to ssl domain select --- interface/web/sites/web_domain_edit.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index 1208e48a1e..b15222c193 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -406,8 +406,15 @@ class page_action extends tform_actions { } $ssl_domain_select = ''; - $tmp = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id = ".$this->id); - $ssl_domains = array($tmp["domain"], 'www.'.$tmp["domain"], '*.'.$tmp["domain"]); + $ssl_domains = array(); + $tmpd = $app->db->queryAllRecords("SELECT domain, type FROM web_domain WHERE domain_id = ".$this->id." OR parent_domain_id = ".$this->id); + foreach($tmpd as $tmp) { + if($tmp['type'] == 'subdomain' || $tmp['type'] == 'vhostsubdomain']) { + $ssl_domains[] = $tmp["domain"]; + } else { + $ssl_domains = array_merge($ssl_domains, array($tmp["domain"],'www.'.$tmp["domain"],'*.'.$tmp["domain"])); + } + } if(is_array($ssl_domains)) { foreach( $ssl_domains as $ssl_domain) { $selected = ($ssl_domain == $this->dataRecord['ssl_domain'])?'SELECTED':''; -- GitLab From 90923d227d949b59138a5a755ed16c2e87e78b70 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 22 Aug 2014 08:59:49 +0200 Subject: [PATCH 114/158] - fixed typo in previous commit --- interface/web/sites/web_domain_edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index b15222c193..a757700ba9 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -409,7 +409,7 @@ class page_action extends tform_actions { $ssl_domains = array(); $tmpd = $app->db->queryAllRecords("SELECT domain, type FROM web_domain WHERE domain_id = ".$this->id." OR parent_domain_id = ".$this->id); foreach($tmpd as $tmp) { - if($tmp['type'] == 'subdomain' || $tmp['type'] == 'vhostsubdomain']) { + if($tmp['type'] == 'subdomain' || $tmp['type'] == 'vhostsubdomain') { $ssl_domains[] = $tmp["domain"]; } else { $ssl_domains = array_merge($ssl_domains, array($tmp["domain"],'www.'.$tmp["domain"],'*.'.$tmp["domain"])); -- GitLab From cb1221013251b4e9cba8e129edc6b8dbd8fd5145 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 25 Aug 2014 15:33:09 +0200 Subject: [PATCH 115/158] FS#3640 - Add Intrusion Detection System --- install/dist/lib/fedora.lib.php | 6 + install/dist/lib/gentoo.lib.php | 6 + install/dist/lib/opensuse.lib.php | 6 + install/lib/installer_base.lib.php | 6 + interface/lib/app.inc.php | 13 +- interface/lib/classes/IDS/.htaccess | 5 + .../lib/classes/IDS/Caching/ApcCache.php | 144 +++ .../lib/classes/IDS/Caching/CacheFactory.php | 85 ++ .../classes/IDS/Caching/CacheInterface.php | 64 ++ .../lib/classes/IDS/Caching/DatabaseCache.php | 277 ++++++ .../lib/classes/IDS/Caching/FileCache.php | 189 ++++ .../classes/IDS/Caching/MemcachedCache.php | 181 ++++ .../lib/classes/IDS/Caching/SessionCache.php | 136 +++ interface/lib/classes/IDS/Config.ini.php | 59 ++ .../lib/classes/IDS/Config/Config.ini.php | 91 ++ interface/lib/classes/IDS/Converter.php | 779 +++++++++++++++ interface/lib/classes/IDS/Event.php | 221 +++++ interface/lib/classes/IDS/Filter.php | 175 ++++ interface/lib/classes/IDS/Filter/Storage.php | 401 ++++++++ interface/lib/classes/IDS/Init.php | 174 ++++ interface/lib/classes/IDS/Monitor.php | 566 +++++++++++ interface/lib/classes/IDS/Report.php | 339 +++++++ interface/lib/classes/IDS/Version.php | 49 + interface/lib/classes/IDS/default_filter.json | 933 ++++++++++++++++++ interface/lib/classes/IDS/default_filter.xml | 787 +++++++++++++++ interface/lib/classes/IDS/license.txt | 18 + interface/lib/classes/db_mysql.inc.php | 47 + interface/lib/classes/getconf.inc.php | 18 +- interface/lib/classes/ids.inc.php | 149 +++ security/apache_directives.blacklist | 3 + security/ids.htmlfield | 5 + security/ids.whitelist | 45 + security/security_settings.ini | 9 + 33 files changed, 5979 insertions(+), 7 deletions(-) create mode 100644 interface/lib/classes/IDS/.htaccess create mode 100644 interface/lib/classes/IDS/Caching/ApcCache.php create mode 100644 interface/lib/classes/IDS/Caching/CacheFactory.php create mode 100644 interface/lib/classes/IDS/Caching/CacheInterface.php create mode 100644 interface/lib/classes/IDS/Caching/DatabaseCache.php create mode 100644 interface/lib/classes/IDS/Caching/FileCache.php create mode 100644 interface/lib/classes/IDS/Caching/MemcachedCache.php create mode 100644 interface/lib/classes/IDS/Caching/SessionCache.php create mode 100644 interface/lib/classes/IDS/Config.ini.php create mode 100644 interface/lib/classes/IDS/Config/Config.ini.php create mode 100644 interface/lib/classes/IDS/Converter.php create mode 100644 interface/lib/classes/IDS/Event.php create mode 100644 interface/lib/classes/IDS/Filter.php create mode 100644 interface/lib/classes/IDS/Filter/Storage.php create mode 100644 interface/lib/classes/IDS/Init.php create mode 100644 interface/lib/classes/IDS/Monitor.php create mode 100644 interface/lib/classes/IDS/Report.php create mode 100644 interface/lib/classes/IDS/Version.php create mode 100644 interface/lib/classes/IDS/default_filter.json create mode 100644 interface/lib/classes/IDS/default_filter.xml create mode 100644 interface/lib/classes/IDS/license.txt create mode 100644 interface/lib/classes/ids.inc.php create mode 100644 security/apache_directives.blacklist create mode 100644 security/ids.htmlfield create mode 100644 security/ids.whitelist diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index a7179ef8e7..7dd7d9b04a 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -1010,6 +1010,12 @@ class installer_dist extends installer_base { caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chown root:ispconfig '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 153a4e0197..005a2fc2ee 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -903,6 +903,12 @@ class installer extends installer_base caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chown root:ispconfig '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 935b816086..ea13cd2598 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -1081,6 +1081,12 @@ class installer_dist extends installer_base { caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chown root:ispconfig '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 538f21e76f..a30a7ec02a 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1937,6 +1937,12 @@ class installer_base { caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); $command = 'chown root:ispconfig '.$install_dir.'/security'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); //* Make the global language file directory group writable exec("chmod -R 770 $install_dir/interface/lib/lang"); diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 8832f45e1c..615e39087b 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -48,6 +48,7 @@ class app { private $_wb; private $_loaded_classes = array(); private $_conf; + private $_security_config; public $loaded_plugins = array(); @@ -109,7 +110,8 @@ class app { } $this->uses('functions'); // we need this before all others! - $this->uses('auth,plugin'); + $this->uses('auth,plugin,ini_parser,getconf'); + } public function __get($prop) { @@ -327,4 +329,13 @@ class app { //* possible future = new app($conf); $app = new app(); +// load and enable PHP Intrusion Detection System (PHPIDS) +$ids_security_config = $app->getconf->get_security_config('ids'); + +if(is_dir(ISPC_CLASS_PATH.'/IDS') && $ids_security_config['ids_enabled'] == 'yes') { + $app->uses('ids'); + $app->ids->start(); +} +unset($ids_security_config); + ?> diff --git a/interface/lib/classes/IDS/.htaccess b/interface/lib/classes/IDS/.htaccess new file mode 100644 index 0000000000..878d02ab1a --- /dev/null +++ b/interface/lib/classes/IDS/.htaccess @@ -0,0 +1,5 @@ +# in case PHPIDS is placed in the web-root +deny from all + +# silence is golden +php_flag display_errors off \ No newline at end of file diff --git a/interface/lib/classes/IDS/Caching/ApcCache.php b/interface/lib/classes/IDS/Caching/ApcCache.php new file mode 100644 index 0000000000..e82cc88c5f --- /dev/null +++ b/interface/lib/classes/IDS/Caching/ApcCache.php @@ -0,0 +1,144 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ + +namespace IDS\Caching; + +/** + * APC caching wrapper + * + * This class inhabits functionality to get and set cache via memcached. + * + * @category Security + * @package PHPIDS + * @author Yves Berkholz <godzilla80@gmx.net> + * @copyright 2007-2009 The PHPIDS Groupoup + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.6.5 + */ +class ApcCache implements CacheInterface +{ + /** + * Caching type + * + * @var string + */ + private $type = null; + + /** + * Cache configuration + * + * @var array + */ + private $config = null; + + /** + * Flag if the filter storage has been found in memcached + * + * @var boolean + */ + private $isCached = false; + + /** + * Holds an instance of this class + * + * @var object + */ + private static $cachingInstance = null; + + /** + * Constructor + * + * @param string $type caching type + * @param array $init the IDS_Init object + * + * @return void + */ + public function __construct($type, $init) + { + $this->type = $type; + $this->config = $init->config['Caching']; + } + + /** + * Returns an instance of this class + * + * @param string $type caching type + * @param object $init the IDS_Init object + * + * @return object $this + */ + public static function getInstance($type, $init) + { + if (!self::$cachingInstance) { + self::$cachingInstance = new ApcCache($type, $init); + } + + return self::$cachingInstance; + } + + /** + * Writes cache data + * + * @param array $data the caching data + * + * @return object $this + */ + public function setCache(array $data) + { + if (!$this->isCached) { + apc_store( + $this->config['key_prefix'] . '.storage', + $data, + $this->config['expiration_time'] + ); + } + + return $this; + } + + /** + * Returns the cached data + * + * Note that this method returns false if either type or file cache is + * not set + * + * @return mixed cache data or false + */ + public function getCache() + { + $data = apc_fetch($this->config['key_prefix'] . '.storage'); + $this->isCached = !empty($data); + + return $data; + } +} diff --git a/interface/lib/classes/IDS/Caching/CacheFactory.php b/interface/lib/classes/IDS/Caching/CacheFactory.php new file mode 100644 index 0000000000..c358332550 --- /dev/null +++ b/interface/lib/classes/IDS/Caching/CacheFactory.php @@ -0,0 +1,85 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS\Caching; + +/** + * Caching factory + * + * This class is used as a factory to load the correct concrete caching + * implementation. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.4 + */ +class CacheFactory +{ + /** + * Factory method + * + * @param object $init the IDS_Init object + * @param string $type the caching type + * + * @return object the caching facility + */ + public static function factory($init, $type) + { + $object = false; + $wrapper = preg_replace( + '/\W+/m', + null, + ucfirst($init->config['Caching']['caching']) + ); + $class = '\\IDS\\Caching\\' . $wrapper . 'Cache'; + $path = dirname(__FILE__) . DIRECTORY_SEPARATOR . $wrapper . 'Cache.php'; + + if (file_exists($path)) { + include_once $path; + + if (class_exists($class)) { + $object = call_user_func( + array('' . $class, 'getInstance'), + $type, + $init + ); + } + } + + return $object; + } +} diff --git a/interface/lib/classes/IDS/Caching/CacheInterface.php b/interface/lib/classes/IDS/Caching/CacheInterface.php new file mode 100644 index 0000000000..c1a6a60920 --- /dev/null +++ b/interface/lib/classes/IDS/Caching/CacheInterface.php @@ -0,0 +1,64 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS\Caching; + +/** + * Caching wrapper interface + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @since Version 0.4 + * @link http://php-ids.org/ + */ +interface CacheInterface +{ + /** + * Interface method + * + * @param array $data the cache data + * + * @return void + */ + public function setCache(array $data); + + /** + * Interface method + * + * @return void + */ + public function getCache(); +} diff --git a/interface/lib/classes/IDS/Caching/DatabaseCache.php b/interface/lib/classes/IDS/Caching/DatabaseCache.php new file mode 100644 index 0000000000..09c77a87d2 --- /dev/null +++ b/interface/lib/classes/IDS/Caching/DatabaseCache.php @@ -0,0 +1,277 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS\Caching; + +/** + * + */ + +/** + * Database caching wrapper + * + * This class inhabits functionality to get and set cache via a database. + * + * Needed SQL: + * + +#create the database + +CREATE DATABASE IF NOT EXISTS `phpids` DEFAULT CHARACTER +SET utf8 COLLATE utf8_general_ci; +DROP TABLE IF EXISTS `cache`; + +#now select the created datbase and create the table + +CREATE TABLE `cache` ( +`type` VARCHAR( 32 ) NOT null , +`data` TEXT NOT null , +`created` DATETIME NOT null , +`modified` DATETIME NOT null +) ENGINE = MYISAM ; + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Groupup + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.4 + */ +class DatabaseCache implements CacheInterface +{ + + /** + * Caching type + * + * @var string + */ + private $type = null; + + /** + * Cache configuration + * + * @var array + */ + private $config = null; + + /** + * DBH + * + * @var object + */ + private $handle = null; + + /** + * Holds an instance of this class + * + * @var object + */ + private static $cachingInstance = null; + + /** + * Constructor + * + * Connects to database. + * + * @param string $type caching type + * @param object $init the IDS_Init object + * + * @return void + */ + public function __construct($type, $init) + { + $this->type = $type; + $this->config = $init->config['Caching']; + $this->handle = $this->connect(); + } + + /** + * Returns an instance of this class + * + * @static + * @param string $type caching type + * @param object $init the IDS_Init object + * + * @return object $this + */ + public static function getInstance($type, $init) + { + + if (!self::$cachingInstance) { + self::$cachingInstance = new DatabaseCache($type, $init); + } + + return self::$cachingInstance; + } + + /** + * Writes cache data into the database + * + * @param array $data the caching data + * + * @throws PDOException if a db error occurred + * @return object $this + */ + public function setCache(array $data) + { + $handle = $this->handle; + + $rows = $handle->query('SELECT created FROM `' . $this->config['table'].'`'); + + if (!$rows || $rows->rowCount() === 0) { + + $this->write($handle, $data); + } else { + + foreach ($rows as $row) { + + if ((time()-strtotime($row['created'])) > + $this->config['expiration_time']) { + + $this->write($handle, $data); + } + } + } + + return $this; + } + + /** + * Returns the cached data + * + * Note that this method returns false if either type or file cache is + * not set + * + * @throws PDOException if a db error occurred + * @return mixed cache data or false + */ + public function getCache() + { + try { + $handle = $this->handle; + $result = $handle->prepare( + 'SELECT * FROM `' . + $this->config['table'] . + '` where type=?' + ); + $result->execute(array($this->type)); + + foreach ($result as $row) { + return unserialize($row['data']); + } + + } catch (\PDOException $e) { + throw new \PDOException('PDOException: ' . $e->getMessage()); + } + + return false; + } + + /** + * Connect to database and return a handle + * + * @return object PDO + * @throws Exception if connection parameters are faulty + * @throws PDOException if a db error occurred + */ + private function connect() + { + // validate connection parameters + if (!$this->config['wrapper'] + || !$this->config['user'] + || !$this->config['password'] + || !$this->config['table']) { + + throw new \Exception('Insufficient connection parameters'); + } + + // try to connect + try { + $handle = new \PDO( + $this->config['wrapper'], + $this->config['user'], + $this->config['password'] + ); + $handle->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); + + } catch (\PDOException $e) { + throw new \PDOException('PDOException: ' . $e->getMessage()); + } + + return $handle; + } + + /** + * Write the cache data to the table + * + * @param object $handle the database handle + * @param array $data the caching data + * + * @return object PDO + * @throws PDOException if a db error occurred + */ + private function write($handle, $data) + { + try { + $handle->query('TRUNCATE ' . $this->config['table'].''); + $statement = $handle->prepare( + 'INSERT INTO `' . + $this->config['table'].'` ( + type, + data, + created, + modified + ) + VALUES ( + :type, + :data, + now(), + now() + )' + ); + + $statement->bindValue( + 'type', + $handle->quote($this->type) + ); + $statement->bindValue('data', serialize($data)); + + if (!$statement->execute()) { + throw new \PDOException($statement->errorCode()); + } + } catch (\PDOException $e) { + throw new \PDOException('PDOException: ' . $e->getMessage()); + } + } +} diff --git a/interface/lib/classes/IDS/Caching/FileCache.php b/interface/lib/classes/IDS/Caching/FileCache.php new file mode 100644 index 0000000000..71f01c7dc8 --- /dev/null +++ b/interface/lib/classes/IDS/Caching/FileCache.php @@ -0,0 +1,189 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS\Caching; + +use IDS\Init; + +/** + * File caching wrapper + * + * This class inhabits functionality to get and set cache via a static flatfile. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.4 + */ +class FileCache implements CacheInterface +{ + /** + * Caching type + * + * @var string + */ + private $type; + + /** + * Cache configuration + * + * @var array + */ + private $config; + + /** + * Path to cache file + * + * @var string + */ + private $path; + + /** + * Holds an instance of this class + * + * @var object + */ + private static $cachingInstance; + + /** + * Constructor + * + * @param string $type caching type + * @param object $init the IDS_Init object + * @throws \Exception + * + * @return void + */ + public function __construct($type, Init $init) + { + $this->type = $type; + $this->config = $init->config['Caching']; + $this->path = $init->getBasePath() . $this->config['path']; + + if (file_exists($this->path) && !is_writable($this->path)) { + throw new \Exception( + 'Make sure all files in ' . + htmlspecialchars($this->path, ENT_QUOTES, 'UTF-8') . + 'are writeable!' + ); + } + } + + /** + * Returns an instance of this class + * + * @param string $type caching type + * @param object $init the IDS_Init object + * + * @return object $this + */ + public static function getInstance($type, $init) + { + if (!self::$cachingInstance) { + self::$cachingInstance = new FileCache($type, $init); + } + + return self::$cachingInstance; + } + + /** + * Writes cache data into the file + * + * @param array $data the cache data + * + * @throws Exception if cache file couldn't be created + * @return object $this + */ + public function setCache(array $data) + { + if (!is_writable(preg_replace('/[\/][^\/]+\.[^\/]++$/', null, $this->path))) { + throw new \Exception( + 'Temp directory ' . + htmlspecialchars($this->path, ENT_QUOTES, 'UTF-8') . + ' seems not writable' + ); + } + + if (!$this->isValidFile($this->path)) { + $handle = @fopen($this->path, 'w+'); + + if (!$handle) { + throw new \Exception("Cache file couldn't be created"); + } + + $serialized = @serialize($data); + if (!$serialized) { + throw new \Exception("Cache data couldn't be serialized"); + } + + fwrite($handle, $serialized); + fclose($handle); + } + + return $this; + } + + /** + * Returns the cached data + * + * Note that this method returns false if either type or file cache is + * not set + * + * @return mixed cache data or false + */ + public function getCache() + { + // make sure filters are parsed again if cache expired + if (!$this->isValidFile($this->path)) { + return false; + } + + $data = unserialize(file_get_contents($this->path)); + + return $data; + } + + /** + * Returns true if the cache file is still valid + * + * @param string $file + * @return bool + */ + private function isValidFile($file) + { + return file_exists($file) && time() - filectime($file) <= $this->config['expiration_time']; + } +} diff --git a/interface/lib/classes/IDS/Caching/MemcachedCache.php b/interface/lib/classes/IDS/Caching/MemcachedCache.php new file mode 100644 index 0000000000..b3dd5b72d7 --- /dev/null +++ b/interface/lib/classes/IDS/Caching/MemcachedCache.php @@ -0,0 +1,181 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS\Caching; + +/** + * File caching wrapper + * + * This class inhabits functionality to get and set cache via memcached. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Groupoup + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.4 + */ +class MemcachedCache implements CacheInterface +{ + /** + * Caching type + * + * @var string + */ + private $type = null; + + /** + * Cache configuration + * + * @var array + */ + private $config = null; + + /** + * Flag if the filter storage has been found in memcached + * + * @var boolean + */ + private $isCached = false; + + /** + * Memcache object + * + * @var object + */ + private $memcache = null; + + /** + * Holds an instance of this class + * + * @var object + */ + private static $cachingInstance = null; + + /** + * Constructor + * + * @param string $type caching type + * @param array $init the IDS_Init object + * + * @return void + */ + public function __construct($type, $init) + { + + $this->type = $type; + $this->config = $init->config['Caching']; + + $this->connect(); + } + + /** + * Returns an instance of this class + * + * @param string $type caching type + * @param object $init the IDS_Init object + * + * @return object $this + */ + public static function getInstance($type, $init) + { + if (!self::$cachingInstance) { + self::$cachingInstance = new MemcachedCache($type, $init); + } + + return self::$cachingInstance; + } + + /** + * Writes cache data + * + * @param array $data the caching data + * + * @return object $this + */ + public function setCache(array $data) + { + if (!$this->isCached) { + $this->memcache->set( + $this->config['key_prefix'] . '.storage', + $data, + false, + $this->config['expiration_time'] + ); + } + + return $this; + } + + /** + * Returns the cached data + * + * Note that this method returns false if either type or file cache is + * not set + * + * @return mixed cache data or false + */ + public function getCache() + { + $data = $this->memcache->get( + $this->config['key_prefix'] . + '.storage' + ); + $this->isCached = !empty($data); + + return $data; + } + + /** + * Connect to the memcached server + * + * @throws Exception if connection parameters are insufficient + * @return void + */ + private function connect() + { + + if ($this->config['host'] && $this->config['port']) { + // establish the memcache connection + $this->memcache = new \Memcache; + $this->memcache->pconnect( + $this->config['host'], + $this->config['port'] + ); + + } else { + throw new \Exception('Insufficient connection parameters'); + } + } +} diff --git a/interface/lib/classes/IDS/Caching/SessionCache.php b/interface/lib/classes/IDS/Caching/SessionCache.php new file mode 100644 index 0000000000..7168a63ce7 --- /dev/null +++ b/interface/lib/classes/IDS/Caching/SessionCache.php @@ -0,0 +1,136 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ + +namespace IDS\Caching; + +/** + * File caching wrapper + * + * This class inhabits functionality to get and set cache via session. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.4 + */ +class SessionCache implements CacheInterface +{ + /** + * Caching type + * + * @var string + */ + private $type = null; + + /** + * Cache configuration + * + * @var array + */ + private $config = null; + + /** + * Holds an instance of this class + * + * @var object + */ + private static $cachingInstance = null; + + /** + * Constructor + * + * @param string $type caching type + * @param object $init the IDS_Init object + * + * @return void + */ + public function __construct($type, $init) + { + $this->type = $type; + $this->config = $init->config['Caching']; + } + + /** + * Returns an instance of this class + * + * @param string $type caching type + * @param object $init the IDS_Init object + * + * @return object $this + */ + public static function getInstance($type, $init) + { + + if (!self::$cachingInstance) { + self::$cachingInstance = new SessionCache($type, $init); + } + + return self::$cachingInstance; + } + + /** + * Writes cache data into the session + * + * @param array $data the caching data + * + * @return object $this + */ + public function setCache(array $data) + { + + $_SESSION['PHPIDS'][$this->type] = $data; + + return $this; + } + + /** + * Returns the cached data + * + * Note that this method returns false if either type or file cache is not set + * + * @return mixed cache data or false + */ + public function getCache() + { + + if ($this->type && $_SESSION['PHPIDS'][$this->type]) { + return $_SESSION['PHPIDS'][$this->type]; + } + + return false; + } +} diff --git a/interface/lib/classes/IDS/Config.ini.php b/interface/lib/classes/IDS/Config.ini.php new file mode 100644 index 0000000000..f87ccc8d67 --- /dev/null +++ b/interface/lib/classes/IDS/Config.ini.php @@ -0,0 +1,59 @@ +; <?php die(); ?> + +; PHPIDS Config.ini + +; General configuration settings + +[General] + + ; basic settings - customize to make the PHPIDS work at all + filter_type = xml + + base_path = /full/path/to/IDS/ + use_base_path = false + + filter_path = default_filter.xml + tmp_path = tmp + scan_keys = false + + ; in case you want to use a different HTMLPurifier source, specify it here + ; By default, those files are used that are being shipped with PHPIDS + HTML_Purifier_Cache = vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer + + ; define which fields contain html and need preparation before + ; hitting the PHPIDS rules (new in PHPIDS 0.5) + ;html[] = POST.__wysiwyg + + ; define which fields contain JSON data and should be treated as such + ; for fewer false positives (new in PHPIDS 0.5.3) + ;json[] = POST.__jsondata + + ; define which fields shouldn't be monitored (a[b]=c should be referenced via a.b) + exceptions[] = GET.__utmz + exceptions[] = GET.__utmc + exceptions[] = POST.maildir_path + + ; you can use regular expressions for wildcard exceptions - example: /.*foo/i + +[Caching] + + ; caching: session|file|database|memcached|apc|none + caching = file + expiration_time = 600 + + ; file cache + path = tmp/default_filter.cache + + ; database cache + wrapper = "mysql:host=localhost;port=3306;dbname=phpids" + user = phpids_user + password = 123456 + table = cache + + ; memcached + ;host = localhost + ;port = 11211 + ;key_prefix = PHPIDS + + ; apc + ;key_prefix = PHPIDS diff --git a/interface/lib/classes/IDS/Config/Config.ini.php b/interface/lib/classes/IDS/Config/Config.ini.php new file mode 100644 index 0000000000..080055298d --- /dev/null +++ b/interface/lib/classes/IDS/Config/Config.ini.php @@ -0,0 +1,91 @@ +; <?php die(); ?> + +; PHPIDS Config.ini + +; General configuration settings + +[General] + + ; basic settings - customize to make the PHPIDS work at all + filter_type = xml + + base_path = /full/path/to/IDS/ + use_base_path = false + + filter_path = default_filter.xml + tmp_path = tmp + scan_keys = false + + ; in case you want to use a different HTMLPurifier source, specify it here + ; By default, those files are used that are being shipped with PHPIDS + HTML_Purifier_Cache = vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer + + ; define which fields contain html and need preparation before + ; hitting the PHPIDS rules (new in PHPIDS 0.5) + ;html[] = POST.__wysiwyg + ;html[] = POST.records + ;html[] = REQUEST.records + + ; define which fields contain JSON data and should be treated as such + ; for fewer false positives (new in PHPIDS 0.5.3) + ;json[] = POST.__jsondata + + ; define which fields shouldn't be monitored (a[b]=c should be referenced via a.b) + ; exceptions[] = GET.__utmz + ; exceptions[] = GET.__utmc + ; exceptions[] = POST.maildir_path + ; exceptions[] = REQUEST.maildir_path + ; exceptions[] = REQUEST.website_path + ; exceptions[] = REQUEST.website_symlinks + ; exceptions[] = REQUEST.vhost_conf_dir + ; exceptions[] = REQUEST.vhost_conf_enabled_dir + ; exceptions[] = REQUEST.nginx_vhost_conf_dir + ; exceptions[] = REQUEST.nginx_vhost_conf_enabled_dir + ; exceptions[] = REQUEST.php_open_basedir + ; exceptions[] = REQUEST.awstats_pl + ; exceptions[] = POST.website_path + ; exceptions[] = POST.website_symlinks + ; exceptions[] = POST.vhost_conf_dir + ; exceptions[] = POST.vhost_conf_enabled_dir + ; exceptions[] = POST.nginx_vhost_conf_dir + ; exceptions[] = POST.nginx_vhost_conf_enabled_dir + ; exceptions[] = POST.php_open_basedir + ; exceptions[] = POST.awstats_pl + ; exceptions[] = REQUEST.fastcgi_starter_path + ; exceptions[] = REQUEST.fastcgi_bin + ; exceptions[] = POST.fastcgi_starter_path + ; exceptions[] = POST.fastcgi_bin + ; exceptions[] = REQUEST.jailkit_chroot_home + ; exceptions[] = POST.jailkit_chroot_home + ; exceptions[] = REQUEST.phpmyadmin_url + ; exceptions[] = REQUEST.phpmyadmin_url + ; exceptions[] = REQUEST.records.weak_password_txt + ; exceptions[] = POST.records.weak_password_txt + + + + ; you can use regular expressions for wildcard exceptions - example: /.*foo/i + +[Caching] + + ; caching: session|file|database|memcached|apc|none + caching = file + expiration_time = 600 + + ; file cache + path = tmp/default_filter.cache + + ; database cache + wrapper = "mysql:host=localhost;port=3306;dbname=phpids" + user = phpids_user + password = 123456 + table = cache + + ; memcached + ;host = localhost + ;port = 11211 + ;key_prefix = PHPIDS + + ; apc + ;key_prefix = PHPIDS + diff --git a/interface/lib/classes/IDS/Converter.php b/interface/lib/classes/IDS/Converter.php new file mode 100644 index 0000000000..770d1ccc9c --- /dev/null +++ b/interface/lib/classes/IDS/Converter.php @@ -0,0 +1,779 @@ +<?php + +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ + +/** + * PHPIDS specific utility class to convert charsets manually + * + * Note that if you make use of IDS_Converter::runAll(), existing class + * methods will be executed in the same order as they are implemented in the + * class tree! + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ + +namespace IDS; + +class Converter +{ + /** + * Runs all converter functions + * + * Note that if you make use of IDS_Converter::runAll(), existing class + * methods will be executed in the same order as they are implemented in the + * class tree! + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function runAll($value) + { + foreach (get_class_methods(__CLASS__) as $method) { + if (strpos($method, 'run') !== 0) { + $value = self::$method($value); + } + } + + return $value; + } + + /** + * Check for comments and erases them if available + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromCommented($value) + { + // check for existing comments + if (preg_match('/(?:\<!-|-->|\/\*|\*\/|\/\/\W*\w+\s*$)|(?:--[^-]*-)/ms', $value)) { + + $pattern = array( + '/(?:(?:<!)(?:(?:--(?:[^-]*(?:-[^-]+)*)--\s*)*)(?:>))/ms', + '/(?:(?:\/\*\/*[^\/\*]*)+\*\/)/ms', + '/(?:--[^-]*-)/ms' + ); + + $converted = preg_replace($pattern, ';', $value); + $value .= "\n" . $converted; + } + + //make sure inline comments are detected and converted correctly + $value = preg_replace('/(<\w+)\/+(\w+=?)/m', '$1/$2', $value); + $value = preg_replace('/[^\\\:]\/\/(.*)$/m', '/**/$1', $value); + $value = preg_replace('/([^\-&])#.*[\r\n\v\f]/m', '$1', $value); + $value = preg_replace('/([^&\-])#.*\n/m', '$1 ', $value); + $value = preg_replace('/^#.*\n/m', ' ', $value); + + return $value; + } + + /** + * Strip newlines + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromWhiteSpace($value) + { + //check for inline linebreaks + $search = array('\r', '\n', '\f', '\t', '\v'); + $value = str_replace($search, ';', $value); + + // replace replacement characters regular spaces + $value = str_replace('�', ' ', $value); + + //convert real linebreaks + return preg_replace('/(?:\n|\r|\v)/m', ' ', $value); + } + + /** + * Checks for common charcode pattern and decodes them + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromJSCharcode($value) + { + $matches = array(); + + // check if value matches typical charCode pattern + if (preg_match_all('/(?:[\d+-=\/\* ]+(?:\s?,\s?[\d+-=\/\* ]+)){4,}/ms', $value, $matches)) { + $converted = ''; + $string = implode(',', $matches[0]); + $string = preg_replace('/\s/', '', $string); + $string = preg_replace('/\w+=/', '', $string); + $charcode = explode(',', $string); + + foreach ($charcode as $char) { + $char = preg_replace('/\W0/s', '', $char); + + if (preg_match_all('/\d*[+-\/\* ]\d+/', $char, $matches)) { + $match = preg_split('/(\W?\d+)/', implode('', $matches[0]), null, PREG_SPLIT_DELIM_CAPTURE); + + if (array_sum($match) >= 20 && array_sum($match) <= 127) { + $converted .= chr(array_sum($match)); + } + + } elseif (!empty($char) && $char >= 20 && $char <= 127) { + $converted .= chr($char); + } + } + + $value .= "\n" . $converted; + } + + // check for octal charcode pattern + if (preg_match_all('/(?:(?:[\\\]+\d+[ \t]*){8,})/ims', $value, $matches)) { + $converted = ''; + $charcode = explode('\\', preg_replace('/\s/', '', implode(',', $matches[0]))); + + foreach (array_map('octdec', array_filter($charcode)) as $char) { + if (20 <= $char && $char <= 127) { + $converted .= chr($char); + } + } + $value .= "\n" . $converted; + } + + // check for hexadecimal charcode pattern + if (preg_match_all('/(?:(?:[\\\]+\w+\s*){8,})/ims', $value, $matches)) { + $converted = ''; + $charcode = explode('\\', preg_replace('/[ux]/', '', implode(',', $matches[0]))); + + foreach (array_map('hexdec', array_filter($charcode)) as $char) { + if (20 <= $char && $char <= 127) { + $converted .= chr($char); + } + } + $value .= "\n" . $converted; + } + + return $value; + } + + /** + * Eliminate JS regex modifiers + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertJSRegexModifiers($value) + { + return preg_replace('/\/[gim]+/', '/', $value); + } + + /** + * Converts from hex/dec entities + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertEntities($value) + { + $converted = null; + + //deal with double encoded payload + $value = preg_replace('/&/', '&', $value); + + if (preg_match('/&#x?[\w]+/ms', $value)) { + $converted = preg_replace('/(&#x?[\w]{2}\d?);?/ms', '$1;', $value); + $converted = html_entity_decode($converted, ENT_QUOTES, 'UTF-8'); + $value .= "\n" . str_replace(';;', ';', $converted); + } + + // normalize obfuscated protocol handlers + $value = preg_replace( + '/(?:j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:)|(d\s*a\s*t\s*a\s*:)/ms', + 'javascript:', + $value + ); + + return $value; + } + + /** + * Normalize quotes + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertQuotes($value) + { + // normalize different quotes to " + $pattern = array('\'', '`', '´', '’', '‘'); + $value = str_replace($pattern, '"', $value); + + //make sure harmless quoted strings don't generate false alerts + $value = preg_replace('/^"([^"=\\!><~]+)"$/', '$1', $value); + + return $value; + } + + /** + * Converts SQLHEX to plain text + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromSQLHex($value) + { + $matches = array(); + if (preg_match_all('/(?:(?:\A|[^\d])0x[a-f\d]{3,}[a-f\d]*)+/im', $value, $matches)) { + foreach ($matches[0] as $match) { + $converted = ''; + foreach (str_split($match, 2) as $hex_index) { + if (preg_match('/[a-f\d]{2,3}/i', $hex_index)) { + $converted .= chr(hexdec($hex_index)); + } + } + $value = str_replace($match, $converted, $value); + } + } + // take care of hex encoded ctrl chars + $value = preg_replace('/0x\d+/m', ' 1 ', $value); + + return $value; + } + + /** + * Converts basic SQL keywords and obfuscations + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromSQLKeywords($value) + { + $pattern = array( + '/(?:is\s+null)|(like\s+null)|' . + '(?:(?:^|\W)in[+\s]*\([\s\d"]+[^()]*\))/ims' + ); + $value = preg_replace($pattern, '"=0', $value); + + $value = preg_replace('/[^\w\)]+\s*like\s*[^\w\s]+/ims', '1" OR "1"', $value); + $value = preg_replace('/null([,"\s])/ims', '0$1', $value); + $value = preg_replace('/\d+\./ims', ' 1', $value); + $value = preg_replace('/,null/ims', ',0', $value); + $value = preg_replace('/(?:between)/ims', 'or', $value); + $value = preg_replace('/(?:and\s+\d+\.?\d*)/ims', '', $value); + $value = preg_replace('/(?:\s+and\s+)/ims', ' or ', $value); + + $pattern = array( + '/(?:not\s+between)|(?:is\s+not)|(?:not\s+in)|' . + '(?:xor|<>|rlike(?:\s+binary)?)|' . + '(?:regexp\s+binary)|' . + '(?:sounds\s+like)/ims' + ); + $value = preg_replace($pattern, '!', $value); + $value = preg_replace('/"\s+\d/', '"', $value); + $value = preg_replace('/(\W)div(\W)/ims', '$1 OR $2', $value); + $value = preg_replace('/\/(?:\d+|null)/', null, $value); + + return $value; + } + + /** + * Detects nullbytes and controls chars via ord() + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromControlChars($value) + { + // critical ctrl values + $search = array( + chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), + chr(6), chr(7), chr(8), chr(11), chr(12), chr(14), + chr(15), chr(16), chr(17), chr(18), chr(19), chr(24), + chr(25), chr(192), chr(193), chr(238), chr(255), '\\0' + ); + + $value = str_replace($search, '%00', $value); + + //take care for malicious unicode characters + $value = urldecode( + preg_replace( + '/(?:%E(?:2|3)%8(?:0|1)%(?:A|8|9)\w|%EF%BB%BF|%EF%BF%BD)|(?:&#(?:65|8)\d{3};?)/i', + null, + urlencode($value) + ) + ); + $value = urlencode($value); + $value = preg_replace('/(?:%F0%80%BE)/i', '>', $value); + $value = preg_replace('/(?:%F0%80%BC)/i', '<', $value); + $value = preg_replace('/(?:%F0%80%A2)/i', '"', $value); + $value = preg_replace('/(?:%F0%80%A7)/i', '\'', $value); + $value = urldecode($value); + + $value = preg_replace('/(?:%ff1c)/', '<', $value); + $value = preg_replace('/(?:&[#x]*(200|820|200|820|zwn?j|lrm|rlm)\w?;?)/i', null, $value); + $value = preg_replace( + '/(?:&#(?:65|8)\d{3};?)|' . + '(?:&#(?:56|7)3\d{2};?)|' . + '(?:&#x(?:fe|20)\w{2};?)|' . + '(?:&#x(?:d[c-f])\w{2};?)/i', + null, + $value + ); + + $value = str_replace( + array( + '«', + '〈', + '<', + '‹', + '〈', + '⟨' + ), + '<', + $value + ); + $value = str_replace( + array( + '»', + '〉', + '>', + '›', + '〉', + '⟩' + ), + '>', + $value + ); + + return $value; + } + + /** + * This method matches and translates base64 strings and fragments + * used in data URIs + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromNestedBase64($value) + { + $matches = array(); + preg_match_all('/(?:^|[,&?])\s*([a-z0-9]{50,}=*)(?:\W|$)/im', $value, $matches); + + foreach ($matches[1] as $item) { + if (isset($item) && !preg_match('/[a-f0-9]{32}/i', $item)) { + $base64_item = base64_decode($item); + $value = str_replace($item, $base64_item, $value); + } + } + + return $value; + } + + /** + * Detects nullbytes and controls chars via ord() + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromOutOfRangeChars($value) + { + $values = str_split($value); + foreach ($values as $item) { + if (ord($item) >= 127) { + $value = str_replace($item, ' ', $value); + } + } + + return $value; + } + + /** + * Strip XML patterns + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromXML($value) + { + $converted = strip_tags($value); + if (!$converted || $converted === $value) { + return $value; + } else { + return $value . "\n" . $converted; + } + } + + /** + * This method converts JS unicode code points to + * regular characters + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromJSUnicode($value) + { + $matches = array(); + preg_match_all('/\\\u[0-9a-f]{4}/ims', $value, $matches); + + if (!empty($matches[0])) { + foreach ($matches[0] as $match) { + $chr = chr(hexdec(substr($match, 2, 4))); + $value = str_replace($match, $chr, $value); + } + $value .= "\n\u0001"; + } + + return $value; + } + + /** + * Converts relevant UTF-7 tags to UTF-8 + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromUTF7($value) + { + if (preg_match('/\+A\w+-?/m', $value)) { + if (function_exists('mb_convert_encoding')) { + if (version_compare(PHP_VERSION, '5.2.8', '<')) { + $tmp_chars = str_split($value); + $value = ''; + foreach ($tmp_chars as $char) { + if (ord($char) <= 127) { + $value .= $char; + } + } + } + $value .= "\n" . mb_convert_encoding($value, 'UTF-8', 'UTF-7'); + } else { + //list of all critical UTF7 codepoints + $schemes = array( + '+ACI-' => '"', + '+ADw-' => '<', + '+AD4-' => '>', + '+AFs-' => '[', + '+AF0-' => ']', + '+AHs-' => '{', + '+AH0-' => '}', + '+AFw-' => '\\', + '+ADs-' => ';', + '+ACM-' => '#', + '+ACY-' => '&', + '+ACU-' => '%', + '+ACQ-' => '$', + '+AD0-' => '=', + '+AGA-' => '`', + '+ALQ-' => '"', + '+IBg-' => '"', + '+IBk-' => '"', + '+AHw-' => '|', + '+ACo-' => '*', + '+AF4-' => '^', + '+ACIAPg-' => '">', + '+ACIAPgA8-' => '">' + ); + + $value = str_ireplace( + array_keys($schemes), + array_values($schemes), + $value + ); + } + } + + return $value; + } + + /** + * Converts basic concatenations + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromConcatenated($value) + { + //normalize remaining backslashes + if ($value != preg_replace('/(\w)\\\/', "$1", $value)) { + $value .= preg_replace('/(\w)\\\/', "$1", $value); + } + + $compare = stripslashes($value); + + $pattern = array( + '/(?:<\/\w+>\+<\w+>)/s', + '/(?:":\d+[^"[]+")/s', + '/(?:"?"\+\w+\+")/s', + '/(?:"\s*;[^"]+")|(?:";[^"]+:\s*")/s', + '/(?:"\s*(?:;|\+).{8,18}:\s*")/s', + '/(?:";\w+=)|(?:!""&&")|(?:~)/s', + '/(?:"?"\+""?\+?"?)|(?:;\w+=")|(?:"[|&]{2,})/s', + '/(?:"\s*\W+")/s', + '/(?:";\w\s*\+=\s*\w?\s*")/s', + '/(?:"[|&;]+\s*[^|&\n]*[|&]+\s*"?)/s', + '/(?:";\s*\w+\W+\w*\s*[|&]*")/s', + '/(?:"\s*"\s*\.)/s', + '/(?:\s*new\s+\w+\s*[+",])/', + '/(?:(?:^|\s+)(?:do|else)\s+)/', + '/(?:[{(]\s*new\s+\w+\s*[)}])/', + '/(?:(this|self)\.)/', + '/(?:undefined)/', + '/(?:in\s+)/' + ); + + // strip out concatenations + $converted = preg_replace($pattern, null, $compare); + + //strip object traversal + $converted = preg_replace('/\w(\.\w\()/', "$1", $converted); + + // normalize obfuscated method calls + $converted = preg_replace('/\)\s*\+/', ")", $converted); + + //convert JS special numbers + $converted = preg_replace( + '/(?:\(*[.\d]e[+-]*[^a-z\W]+\)*)|(?:NaN|Infinity)\W/ims', + 1, + $converted + ); + + if ($converted && ($compare != $converted)) { + $value .= "\n" . $converted; + } + + return $value; + } + + /** + * This method collects and decodes proprietary encoding types + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromProprietaryEncodings($value) + { + //Xajax error reportings + $value = preg_replace('/<!\[CDATA\[(\W+)\]\]>/im', '$1', $value); + + //strip false alert triggering apostrophes + $value = preg_replace('/(\w)\"(s)/m', '$1$2', $value); + + //strip quotes within typical search patterns + $value = preg_replace('/^"([^"=\\!><~]+)"$/', '$1', $value); + + //OpenID login tokens + $value = preg_replace('/{[\w-]{8,9}\}(?:\{[\w=]{8}\}){2}/', null, $value); + + //convert Content and \sdo\s to null + $value = preg_replace('/Content|\Wdo\s/', null, $value); + + //strip emoticons + $value = preg_replace( + '/(?:\s[:;]-[)\/PD]+)|(?:\s;[)PD]+)|(?:\s:[)PD]+)|-\.-|\^\^/m', + null, + $value + ); + + //normalize separation char repetion + $value = preg_replace('/([.+~=*_\-;])\1{2,}/m', '$1', $value); + + //normalize multiple single quotes + $value = preg_replace('/"{2,}/m', '"', $value); + + //normalize quoted numerical values and asterisks + $value = preg_replace('/"(\d+)"/m', '$1', $value); + + //normalize pipe separated request parameters + $value = preg_replace('/\|(\w+=\w+)/m', '&$1', $value); + + //normalize ampersand listings + $value = preg_replace('/(\w\s)&\s(\w)/', '$1$2', $value); + + //normalize escaped RegExp modifiers + $value = preg_replace('/\/\\\(\w)/', '/$1', $value); + + return $value; + } + + /** + * This method removes encoded sql # comments + * + * @param string $value the value to convert + * + * @static + * @return string + */ + public static function convertFromUrlencodeSqlComment($value) + { + if (preg_match_all('/(?:\%23.*?\%0a)/im',$value,$matches)){ + $converted = $value; + foreach($matches[0] as $match){ + $converted = str_replace($match,' ',$converted); + } + $value .= "\n" . $converted; + } + return $value; + } + + /** + * This method is the centrifuge prototype + * + * @param string $value the value to convert + * @param Monitor $monitor the monitor object + * + * @static + * @return string + */ + public static function runCentrifuge($value, Monitor $monitor = null) + { + $threshold = 3.49; + if (strlen($value) > 25) { + //strip padding + $tmp_value = preg_replace('/\s{4}|==$/m', null, $value); + $tmp_value = preg_replace( + '/\s{4}|[\p{L}\d\+\-=,.%()]{8,}/m', + 'aaa', + $tmp_value + ); + + // Check for the attack char ratio + $tmp_value = preg_replace('/([*.!?+-])\1{1,}/m', '$1', $tmp_value); + $tmp_value = preg_replace('/"[\p{L}\d\s]+"/m', null, $tmp_value); + + $stripped_length = strlen( + preg_replace( + '/[\d\s\p{L}\.:,%&\/><\-)!|]+/m', + null, + $tmp_value + ) + ); + $overall_length = strlen( + preg_replace( + '/([\d\s\p{L}:,\.]{3,})+/m', + 'aaa', + preg_replace('/\s{2,}/m', null, $tmp_value) + ) + ); + + if ($stripped_length != 0 && $overall_length/$stripped_length <= $threshold) { + $monitor->centrifuge['ratio'] = $overall_length / $stripped_length; + $monitor->centrifuge['threshold'] =$threshold; + + $value .= "\n$[!!!]"; + } + } + + if (strlen($value) > 40) { + // Replace all non-special chars + $converted = preg_replace('/[\w\s\p{L},.:!]/', null, $value); + + // Split string into an array, unify and sort + $array = str_split($converted); + $array = array_unique($array); + asort($array); + + // Normalize certain tokens + $schemes = array( + '~' => '+', + '^' => '+', + '|' => '+', + '*' => '+', + '%' => '+', + '&' => '+', + '/' => '+' + ); + + $converted = implode($array); + + $_keys = array_keys($schemes); + $_values = array_values($schemes); + + $converted = str_replace($_keys, $_values, $converted); + + $converted = preg_replace('/[+-]\s*\d+/', '+', $converted); + $converted = preg_replace('/[()[\]{}]/', '(', $converted); + $converted = preg_replace('/[!?:=]/', ':', $converted); + $converted = preg_replace('/[^:(+]/', null, stripslashes($converted)); + + // Sort again and implode + $array = str_split($converted); + asort($array); + $converted = implode($array); + + if (preg_match('/(?:\({2,}\+{2,}:{2,})|(?:\({2,}\+{2,}:+)|(?:\({3,}\++:{2,})/', $converted)) { + $monitor->centrifuge['converted'] = $converted; + + return $value . "\n" . $converted; + } + } + + return $value; + } +} diff --git a/interface/lib/classes/IDS/Event.php b/interface/lib/classes/IDS/Event.php new file mode 100644 index 0000000000..ebda1715ef --- /dev/null +++ b/interface/lib/classes/IDS/Event.php @@ -0,0 +1,221 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS; + +/** + * PHPIDS event object + * + * This class represents a certain event that occured while applying the filters + * to the supplied data. It aggregates a bunch of IDS_Filter implementations and + * is a assembled in IDS_Report. + * + * Note that this class implements both Countable and IteratorAggregate + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +class Event implements \Countable, \IteratorAggregate +{ + /** + * Event name + * + * @var string + */ + protected $name = null; + + /** + * Value of the event + * + * @var mixed + */ + protected $value = null; + + /** + * List of filter objects + * + * Filter objects in this array are those that matched the events value + * + * @var Filter[]|array + */ + protected $filters = array(); + + /** + * Calculated impact + * + * Total impact of the event + * + * @var integer + */ + protected $impact = 0; + + /** + * Affecte tags + * + * @var string[]|array + */ + protected $tags = array(); + + /** + * Constructor + * + * Fills event properties + * + * @param string $name the event name + * @param mixed $value the event value + * @param Filter[]|array $filters the corresponding filters + * + * @throws \InvalidArgumentException + * @return \IDS\Event + */ + public function __construct($name, $value, array $filters) + { + if (!is_scalar($name)) { + throw new \InvalidArgumentException( + 'Expected $name to be a scalar,' . gettype($name) . ' given' + ); + } + + if (!is_scalar($value)) { + throw new \InvalidArgumentException( + 'Expected $value to be a scalar,' . gettype($value) . ' given' + ); + } + + $this->name = $name; + $this->value = $value; + + foreach ($filters as $filter) { + if (!$filter instanceof Filter) { + throw new \InvalidArgumentException( + 'Filter must be derived from IDS_Filter' + ); + } + + $this->filters[] = $filter; + } + } + + /** + * Returns event name + * + * The name of the event usually is the key of the variable that was + * considered to be malicious + * + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Returns event value + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } + + /** + * Returns calculated impact + * + * @return integer + */ + public function getImpact() + { + if (!$this->impact) { + $this->impact = 0; + foreach ($this->filters as $filter) { + $this->impact += $filter->getImpact(); + } + } + + return $this->impact; + } + + /** + * Returns affected tags + * + * @return string[]|array + */ + public function getTags() + { + foreach ($this->getFilters() as $filter) { + $this->tags = array_merge($this->tags, $filter->getTags()); + } + + return $this->tags = array_values(array_unique($this->tags)); + } + + /** + * Returns list of filter objects + * + * @return Filter[]|array + */ + public function getFilters() + { + return $this->filters; + } + + /** + * Returns number of filters + * + * To implement interface Countable this returns the number of filters + * appended. + * + * @return integer + */ + public function count() + { + return count($this->getFilters()); + } + + /** + * IteratorAggregate iterator getter + * + * Returns an iterator to iterate over the appended filters. + * + * @return \Iterator the filter collection + */ + public function getIterator() + { + return new \ArrayIterator($this->getFilters()); + } +} diff --git a/interface/lib/classes/IDS/Filter.php b/interface/lib/classes/IDS/Filter.php new file mode 100644 index 0000000000..573988f398 --- /dev/null +++ b/interface/lib/classes/IDS/Filter.php @@ -0,0 +1,175 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS; + +/** + * PHPIDS Filter object + * + * Each object of this class serves as a container for a specific filter. The + * object provides methods to get information about this particular filter and + * also to match an arbitrary string against it. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.4 + */ +class Filter +{ + /** + * Filter rule + * + * @var string + */ + protected $rule; + + /** + * List of tags of the filter + * + * @var string[]|array + */ + protected $tags = array(); + + /** + * Filter impact level + * + * @var integer + */ + protected $impact = 0; + + /** + * Filter description + * + * @var string + */ + protected $description = ''; + + /** + * Constructor + * + * @param integer $id filter id + * @param string $rule filter rule + * @param string $description filter description + * @param string[]|array $tags list of tags + * @param integer $impact filter impact level + * + * @return \IDS\Filter + */ + public function __construct($id, $rule, $description, array $tags, $impact) + { + $this->id = $id; + $this->rule = $rule; + $this->tags = $tags; + $this->impact = $impact; + $this->description = $description; + } + + /** + * Matches a string against current filter + * + * Matches given string against the filter rule the specific object of this + * class represents + * + * @param string $input the string input to match + * + * @throws \InvalidArgumentException if argument is no string + * @return boolean + */ + public function match($input) + { + if (!is_string($input)) { + throw new \InvalidArgumentException( + 'Invalid argument. Expected a string, received ' . gettype($input) + ); + } + + return (bool) preg_match('/' . $this->getRule() . '/ms', strtolower($input)); + } + + /** + * Returns filter description + * + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Return list of affected tags + * + * Each filter rule is concerned with a certain kind of attack vectors. + * This method returns those affected kinds. + * + * @return string[]|array + */ + public function getTags() + { + return $this->tags; + } + + /** + * Returns filter rule + * + * @return string + */ + public function getRule() + { + return $this->rule; + } + + /** + * Get filter impact level + * + * @return integer + */ + public function getImpact() + { + return $this->impact; + } + + /** + * Get filter ID + * + * @return integer + */ + public function getId() + { + return $this->id; + } +} diff --git a/interface/lib/classes/IDS/Filter/Storage.php b/interface/lib/classes/IDS/Filter/Storage.php new file mode 100644 index 0000000000..f17549b278 --- /dev/null +++ b/interface/lib/classes/IDS/Filter/Storage.php @@ -0,0 +1,401 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS\Filter; + +use IDS\Init; +use IDS\Caching\CacheFactory; + +/** + * Filter Storage + * + * This class provides various default functions for gathering filter patterns + * to be used later on by the detection mechanism. You might extend this class + * to your requirements. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +class Storage +{ + /** + * Filter source file + * + * @var string + */ + protected $source = null; + + /** + * Holds caching settings + * + * @var array + */ + protected $cacheSettings = null; + + /** + * Cache container + * + * @var object IDS_Caching wrapper + */ + protected $cache = null; + + /** + * Filter container + * + * @var array + */ + protected $filterSet = array(); + + /** + * Constructor + * + * Loads filters based on provided IDS_Init settings. + * + * @param object $init IDS_Init instance + * + * @throws \InvalidArgumentException if unsupported filter type is given + * @return void + */ + final public function __construct(Init $init) + { + if ($init->config) { + + $caching = isset($init->config['Caching']['caching']) ? $init->config['Caching']['caching'] : 'none'; + + $type = $init->config['General']['filter_type']; + $this->source = $init->getBasePath(). $init->config['General']['filter_path']; + + if ($caching && $caching !== 'none') { + $this->cacheSettings = $init->config['Caching']; + $this->cache = CacheFactory::factory($init, 'storage'); + } + + switch ($type) { + case 'xml': + return $this->getFilterFromXML(); + case 'json': + return $this->getFilterFromJson(); + default: + throw new \InvalidArgumentException('Unsupported filter type.'); + } + } + } + + /** + * Sets the filter array + * + * @param array $filterSet array containing multiple IDS_Filter instances + * + * @return object $this + */ + final public function setFilterSet($filterSet) + { + foreach ($filterSet as $filter) { + $this->addFilter($filter); + } + + return $this; + } + + /** + * Returns registered filters + * + * @return array + */ + final public function getFilterSet() + { + return $this->filterSet; + } + + /** + * Adds a filter + * + * @param object $filter IDS_Filter instance + * + * @return object $this + */ + final public function addFilter(\IDS\Filter $filter) + { + $this->filterSet[] = $filter; + + return $this; + } + + /** + * Checks if any filters are cached + * + * @return mixed $filters cached filters or false + */ + private function isCached() + { + $filters = false; + + if ($this->cacheSettings) { + if ($this->cache) { + $filters = $this->cache->getCache(); + } + } + + return $filters; + } + + /** + * Loads filters from XML using SimpleXML + * + * This function parses the provided source file and stores the result. + * If caching mode is enabled the result will be cached to increase + * the performance. + * + * @throws \InvalidArgumentException if source file doesn't exist + * @throws \RuntimeException if problems with fetching the XML data occur + * @return object $this + */ + public function getFilterFromXML() + { + if (extension_loaded('SimpleXML')) { + + /* + * See if filters are already available in the cache + */ + $filters = $this->isCached(); + + /* + * If they aren't, parse the source file + */ + if (!$filters) { + + if (!file_exists($this->source)) { + throw new \InvalidArgumentException( + sprintf('Invalid config: %s doesn\'t exist.', $this->source) + ); + } + + if (LIBXML_VERSION >= 20621) { + $filters = simplexml_load_file($this->source, null, LIBXML_COMPACT); + } else { + $filters = simplexml_load_file($this->source); + } + } + + /* + * In case we still don't have any filters loaded and exception + * will be thrown + */ + if (empty($filters)) { + throw new \RuntimeException( + 'XML data could not be loaded.' . + ' Make sure you specified the correct path.' + ); + } + + /* + * Now the storage will be filled with IDS_Filter objects + */ + $nocache = $filters instanceof \SimpleXMLElement; + + if ($nocache) + { + // build filters and cache them for re-use on next run + $data = array(); + $filters = $filters->filter; + + foreach ($filters as $filter) { + $id = (string) $filter->id; + $rule = (string) $filter->rule; + $impact = (string) $filter->impact; + $tags = array_values((array) $filter->tags); + $description = (string) $filter->description; + + $this->addFilter( + new \IDS\Filter( + $id, + $rule, + $description, + (array) $tags[0], + (int) $impact + ) + ); + + $data[] = array( + 'id' => $id, + 'rule' => $rule, + 'impact' => $impact, + 'tags' => $tags, + 'description' => $description + ); + } + + /* + * If caching is enabled, the fetched data will be cached + */ + if ($this->cacheSettings) { + $this->cache->setCache($data); + } + + } else { + + // build filters from cached content + $this->addFiltersFromArray($filters); + } + + return $this; + } + + throw new \RuntimeException('SimpleXML is not loaded.'); + } + + /** + * Loads filters from Json file using ext/Json + * + * This function parses the provided source file and stores the result. + * If caching mode is enabled the result will be cached to increase + * the performance. + * + * @throws \RuntimeException if problems with fetching the JSON data occur + * @return object $this + */ + public function getFilterFromJson() + { + + if (extension_loaded('Json')) { + + /* + * See if filters are already available in the cache + */ + $filters = $this->isCached(); + + /* + * If they aren't, parse the source file + */ + if (!$filters) { + if (!file_exists($this->source)) { + throw new \InvalidArgumentException( + sprintf('Invalid config: %s doesn\'t exist.', $this->source) + ); + } + $filters = json_decode(file_get_contents($this->source)); + } + + if (!$filters) { + throw new \RuntimeException('JSON data could not be loaded. Make sure you specified the correct path.'); + } + + /* + * Now the storage will be filled with IDS_Filter objects + */ + $nocache = !is_array($filters); + + if ($nocache) { + + // build filters and cache them for re-use on next run + $data = array(); + $filters = $filters->filters->filter; + + foreach ($filters as $filter) { + + $id = (string) $filter->id; + $rule = (string) $filter->rule; + $impact = (string) $filter->impact; + $tags = array_values((array) $filter->tags); + $description = (string) $filter->description; + + $this->addFilter( + new \IDS\Filter( + $id, + $rule, + $description, + (array) $tags[0], + (int) $impact + ) + ); + + $data[] = array( + 'id' => $id, + 'rule' => $rule, + 'impact' => $impact, + 'tags' => $tags, + 'description' => $description + ); + } + + /* + * If caching is enabled, the fetched data will be cached + */ + if ($this->cacheSettings) { + $this->cache->setCache($data); + } + + } else { + + // build filters from cached content + $this->addFiltersFromArray($filters); + } + + return $this; + } + + throw new \RuntimeException('json extension is not loaded.'); + } + + /** + * This functions adds an array of filters to the IDS_Storage object. + * Each entry within the array is expected to be an simple array containing all parts of the filter. + * + * @param array $filters + */ + private function addFiltersFromArray(array $filters) + { + foreach ($filters as $filter) { + + $id = $filter['id']; + $rule = $filter['rule']; + $impact = $filter['impact']; + $tags = $filter['tags']; + $description = $filter['description']; + + $this->addFilter( + new \IDS\Filter( + $id, + $rule, + $description, + (array) $tags[0], + (int) $impact + ) + ); + } + } +} diff --git a/interface/lib/classes/IDS/Init.php b/interface/lib/classes/IDS/Init.php new file mode 100644 index 0000000000..1b6269adc3 --- /dev/null +++ b/interface/lib/classes/IDS/Init.php @@ -0,0 +1,174 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS; + +/** + * Framework initiation + * + * This class is used for the purpose to initiate the framework and inhabits + * functionality to parse the needed configuration file. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Groupup + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + * @since Version 0.4 + */ +class Init +{ + /** + * Holds config settings + * + * @var array + */ + public $config = array(); + + /** + * Instance of this class depending on the supplied config file + * + * @var Init[]|array + * @static + */ + private static $instances = array(); + + /** + * Constructor + * + * Includes needed classes and parses the configuration file + * + * @param array $config + * + * @return \IDS\Init $this + */ + public function __construct(array $config = array()) + { + $this->config = $config; + } + + /** + * Returns an instance of this class. Also a PHP version check + * is being performed to avoid compatibility problems with PHP < 5.1.6 + * + * @param string|null $configPath the path to the config file + * + * @throws \InvalidArgumentException + * @return self + */ + public static function init($configPath = null) + { + if (!$configPath) { + return new self(); + } + if (!isset(self::$instances[$configPath])) { + if (!file_exists($configPath) || !is_readable($configPath)) { + throw new \InvalidArgumentException("Invalid config path '$configPath'"); + } + self::$instances[$configPath] = new static(parse_ini_file($configPath, true)); + } + + return self::$instances[$configPath]; + } + + /** + * This method checks if a base path is given and usage is set to true. + * If all that tests succeed the base path will be returned as a string - + * else null will be returned. + * + * @return string|null the base path or null + */ + public function getBasePath() + { + return (!empty($this->config['General']['base_path']) + && !empty($this->config['General']['use_base_path'])) + ? $this->config['General']['base_path'] : null; + } + + /** + * Merges new settings into the exsiting ones or overwrites them + * + * @param array $config the config array + * @param boolean $overwrite config overwrite flag + * + * @return void + */ + public function setConfig(array $config, $overwrite = false) + { + if ($overwrite) { + $this->config = $this->mergeConfig($this->config, $config); + } else { + $this->config = $this->mergeConfig($config, $this->config); + } + } + + /** + * Merge config hashes recursivly + * + * The algorithm merges configuration arrays recursively. If an element is + * an array in both, the values will be appended. If it is a scalar in both, + * the value will be replaced. + * + * @param array $current The legacy hash + * @param array $successor The hash which values count more when in doubt + * @return array Merged hash + */ + protected function mergeConfig($current, $successor) + { + if (is_array($current) and is_array($successor)) { + foreach ($successor as $key => $value) { + if (isset($current[$key]) + and is_array($value) + and is_array($current[$key])) { + + $current[$key] = $this->mergeConfig($current[$key], $value); + } else { + $current[$key] = $successor[$key]; + } + } + } + + return $current; + } + + /** + * Returns the config array + * + * @return array the config array + */ + public function getConfig() + { + return $this->config; + } +} diff --git a/interface/lib/classes/IDS/Monitor.php b/interface/lib/classes/IDS/Monitor.php new file mode 100644 index 0000000000..f93e748e49 --- /dev/null +++ b/interface/lib/classes/IDS/Monitor.php @@ -0,0 +1,566 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS; + +use IDS\Filter\Storage; + +/** + * Monitoring engine + * + * This class represents the core of the frameworks attack detection mechanism + * and provides functions to scan incoming data for malicious appearing script + * fragments. + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +class Monitor +{ + /** + * Tags to define what to search for + * + * Accepted values are xss, csrf, sqli, dt, id, lfi, rfe, spam, dos + * + * @var array + */ + private $tags = null; + + /** + * Container for filter rules + * + * Holds an instance of Storage + * + * @var Storage + */ + private $storage = null; + + /** + * Scan keys switch + * + * Enabling this property will cause the monitor to scan both the key and + * the value of variables + * + * @var boolean + */ + public $scanKeys = false; + + /** + * Exception container + * + * Using this array it is possible to define variables that must not be + * scanned. Per default, utmz google analytics parameters are permitted. + * + * @var array + */ + private $exceptions = array(); + + /** + * Html container + * + * Using this array it is possible to define variables that legally + * contain html and have to be prepared before hitting the rules to + * avoid too many false alerts + * + * @var array + */ + private $html = array(); + + /** + * JSON container + * + * Using this array it is possible to define variables that contain + * JSON data - and should be treated as such + * + * @var array + */ + private $json = array(); + + /** + * Holds HTMLPurifier object + * + * @var \HTMLPurifier + */ + private $htmlPurifier = null; + + /** + * HTMLPurifier cache directory + * + * @var string + */ + private $HTMLPurifierCache = ''; + + /** + * This property holds the tmp JSON string from the _jsonDecodeValues() callback + * + * @var string + */ + private $tmpJsonString = ''; + + /** + * Constructor + * + * @throws \InvalidArgumentException When PHP version is less than what the library supports + * @throws \Exception + * @param Init $init instance of IDS_Init + * @param array|null $tags list of tags to which filters should be applied + * @return Monitor + */ + public function __construct(Init $init, array $tags = null) + { + $this->storage = new Storage($init); + $this->tags = $tags; + $this->scanKeys = $init->config['General']['scan_keys']; + $this->exceptions = isset($init->config['General']['exceptions']) ? $init->config['General']['exceptions'] : array(); + $this->html = isset($init->config['General']['html']) ? $init->config['General']['html'] : array(); + $this->json = isset($init->config['General']['json']) ? $init->config['General']['json'] : array(); + + if (isset($init->config['General']['HTML_Purifier_Cache'])) { + $this->HTMLPurifierCache = $init->getBasePath() . $init->config['General']['HTML_Purifier_Cache']; + } + + $tmpPath = $init->getBasePath() . $init->config['General']['tmp_path']; + + if (!is_writeable($tmpPath)) { + throw new \InvalidArgumentException("Please make sure the folder '$tmpPath' is writable"); + } + } + + /** + * Starts the scan mechanism + * + * @param array $request + * @return Report + */ + public function run(array $request) + { + $report = new Report; + foreach ($request as $key => $value) { + $report = $this->iterate($key, $value, $report); + } + return $report; + } + + /** + * Iterates through given data and delegates it to IDS_Monitor::_detect() in + * order to check for malicious appearing fragments + * + * @param string $key the former array key + * @param array|string $value the former array value + * @param Report $report + * @return Report + */ + private function iterate($key, $value, Report $report) + { + if (is_array($value)) { + foreach ($value as $subKey => $subValue) { + $this->iterate("$key.$subKey", $subValue, $report); + } + } elseif (is_string($value)) { + if ($filter = $this->detect($key, $value)) { + $report->addEvent(new Event($key, $value, $filter)); + } + } + return $report; + } + + /** + * Checks whether given value matches any of the supplied filter patterns + * + * @param mixed $key the key of the value to scan + * @param mixed $value the value to scan + * + * @return Filter[] array of filter(s) that matched the value + */ + private function detect($key, $value) + { + // define the pre-filter + $preFilter = '([^\w\s/@!?\.]+|(?:\./)|(?:@@\w+)|(?:\+ADw)|(?:union\s+select))i'; + + // to increase performance, only start detection if value isn't alphanumeric + if ((!$this->scanKeys || !$key || !preg_match($preFilter, $key)) && (!$value || !preg_match($preFilter, $value))) { + return array(); + } + + // check if this field is part of the exceptions + foreach ($this->exceptions as $exception) { + $matches = array(); + if (($exception === $key) || preg_match('((/.*/[^eE]*)$)', $exception, $matches) && isset($matches[1]) && preg_match($matches[1], $key)) { + return array(); + } + } + + // check for magic quotes and remove them if necessary + if (function_exists('get_magic_quotes_gpc') && !get_magic_quotes_gpc()) { + $value = preg_replace('(\\\(["\'/]))im', '$1', $value); + } + + // if html monitoring is enabled for this field - then do it! + if (is_array($this->html) && in_array($key, $this->html, true)) { + list($key, $value) = $this->purifyValues($key, $value); + } + + // check if json monitoring is enabled for this field + if (is_array($this->json) && in_array($key, $this->json, true)) { + list($key, $value) = $this->jsonDecodeValues($key, $value); + } + + // use the converter + $value = Converter::runAll($value); + $value = Converter::runCentrifuge($value, $this); + + // scan keys if activated via config + $key = $this->scanKeys ? Converter::runAll($key) : $key; + $key = $this->scanKeys ? Converter::runCentrifuge($key, $this) : $key; + + $filterSet = $this->storage->getFilterSet(); + + if ($tags = $this->tags) { + $filterSet = array_filter( + $filterSet, + function (Filter $filter) use ($tags) { + return (bool) array_intersect($tags, $filter->getTags()); + } + ); + } + + $scanKeys = $this->scanKeys; + $filterSet = array_filter( + $filterSet, + function (Filter $filter) use ($key, $value, $scanKeys) { + return $filter->match($value) || $scanKeys && $filter->match($key); + } + ); + + return $filterSet; + } + + + /** + * Purifies given key and value variables using HTMLPurifier + * + * This function is needed whenever there is variables for which HTML + * might be allowed like e.g. WYSIWYG post bodies. It will detect malicious + * code fragments and leaves harmless parts untouched. + * + * @param mixed $key + * @param mixed $value + * @since 0.5 + * @throws \Exception + * + * @return array tuple [key,value] + */ + private function purifyValues($key, $value) + { + /* + * Perform a pre-check if string is valid for purification + */ + if ($this->purifierPreCheck($key, $value)) { + if (!is_writeable($this->HTMLPurifierCache)) { + throw new \Exception($this->HTMLPurifierCache . ' must be writeable'); + } + + /** @var $config \HTMLPurifier_Config */ + $config = \HTMLPurifier_Config::createDefault(); + $config->set('Attr.EnableID', true); + $config->set('Cache.SerializerPath', $this->HTMLPurifierCache); + $config->set('Output.Newline', "\n"); + $this->htmlPurifier = new \HTMLPurifier($config); + + $value = preg_replace('([\x0b-\x0c])', ' ', $value); + $key = preg_replace('([\x0b-\x0c])', ' ', $key); + + $purifiedValue = $this->htmlPurifier->purify($value); + $purifiedKey = $this->htmlPurifier->purify($key); + + $plainValue = strip_tags($value); + $plainKey = strip_tags($key); + + $value = $value != $purifiedValue || $plainValue ? $this->diff($value, $purifiedValue, $plainValue) : null; + $key = $key != $purifiedKey ? $this->diff($key, $purifiedKey, $plainKey) : null; + } + return array($key, $value); + } + + /** + * This method makes sure no dangerous markup can be smuggled in + * attributes when HTML mode is switched on. + * + * If the precheck considers the string too dangerous for + * purification false is being returned. + * + * @param string $key + * @param string $value + * @since 0.6 + * + * @return boolean + */ + private function purifierPreCheck($key = '', $value = '') + { + /* + * Remove control chars before pre-check + */ + $tmpValue = preg_replace('/\p{C}/', null, $value); + $tmpKey = preg_replace('/\p{C}/', null, $key); + + $preCheck = '/<(script|iframe|applet|object)\W/i'; + return !(preg_match($preCheck, $tmpKey) || preg_match($preCheck, $tmpValue)); + } + + /** + * This method calculates the difference between the original + * and the purified markup strings. + * + * @param string $original the original markup + * @param string $purified the purified markup + * @param string $plain the string without html + * @since 0.5 + * + * @return string the difference between the strings + */ + private function diff($original, $purified, $plain) + { + /* + * deal with over-sensitive alt-attribute addition of the purifier + * and other common html formatting problems + */ + $purified = preg_replace('/\s+alt="[^"]*"/m', null, $purified); + $purified = preg_replace('/=?\s*"\s*"/m', null, $purified); + $original = preg_replace('/\s+alt="[^"]*"/m', null, $original); + $original = preg_replace('/=?\s*"\s*"/m', null, $original); + $original = preg_replace('/style\s*=\s*([^"])/m', 'style = "$1', $original); + + # deal with oversensitive CSS normalization + $original = preg_replace('/(?:([\w\-]+:)+\s*([^;]+;\s*))/m', '$1$2', $original); + + # strip whitespace between tags + $original = trim(preg_replace('/>\s*</m', '><', $original)); + $purified = trim(preg_replace('/>\s*</m', '><', $purified)); + + $original = preg_replace('/(=\s*(["\'`])[^>"\'`]*>[^>"\'`]*["\'`])/m', 'alt$1', $original); + + // no purified html is left + if (!$purified) { + return $original; + } + + // calculate the diff length + $length = mb_strlen($original) - mb_strlen($purified); + + /* + * Calculate the difference between the original html input + * and the purified string. + */ + $array1 = preg_split('/(?<!^)(?!$)/u', html_entity_decode(urldecode($original))); + $array2 = preg_split('/(?<!^)(?!$)/u', $purified); + + // create an array containing the single character differences + $differences = array_diff_assoc($array1, $array2); + + // return the diff - ready to hit the converter and the rules + $differences = trim(implode('', $differences)); + $diff = $length <= 10 ? $differences : mb_substr($differences, 0, strlen($original)); + + // clean up spaces between tag delimiters + $diff = preg_replace('/>\s*</m', '><', $diff); + + // correct over-sensitively stripped bad html elements + $diff = preg_replace('/[^<](iframe|script|embed|object|applet|base|img|style)/m', '<$1', $diff ); + + return mb_strlen($diff) >= 4 ? $diff . $plain : null; + } + + /** + * This method prepares incoming JSON data for the PHPIDS detection + * process. It utilizes _jsonConcatContents() as callback and returns a + * string version of the JSON data structures. + * + * @param string $key + * @param string $value + * @since 0.5.3 + * + * @return array tuple [key,value] + */ + private function jsonDecodeValues($key, $value) + { + $decodedKey = json_decode($key); + $decodedValue = json_decode($value); + + if ($decodedValue && is_array($decodedValue) || is_object($decodedValue)) { + array_walk_recursive($decodedValue, array($this, 'jsonConcatContents')); + $value = $this->tmpJsonString; + } else { + $this->tmpJsonString .= " " . $decodedValue . "\n"; + } + + if ($decodedKey && is_array($decodedKey) || is_object($decodedKey)) { + array_walk_recursive($decodedKey, array($this, 'jsonConcatContents')); + $key = $this->tmpJsonString; + } else { + $this->tmpJsonString .= " " . $decodedKey . "\n"; + } + + return array($key, $value); + } + + /** + * This is the callback used in _jsonDecodeValues(). The method + * concatenates key and value and stores them in $this->tmpJsonString. + * + * @param mixed $key + * @param mixed $value + * @since 0.5.3 + * + * @return void + */ + private function jsonConcatContents($key, $value) + { + if (is_string($key) && is_string($value)) { + $this->tmpJsonString .= $key . " " . $value . "\n"; + } else { + $this->jsonDecodeValues(json_encode($key), json_encode($value)); + } + } + + /** + * Sets exception array + * + * @param string[]|string $exceptions the thrown exceptions + * + * @return void + */ + public function setExceptions($exceptions) + { + $this->exceptions = (array) $exceptions; + } + + /** + * Returns exception array + * + * @return array + */ + public function getExceptions() + { + return $this->exceptions; + } + + /** + * Sets html array + * + * @param string[]|string $html the fields containing html + * @since 0.5 + * + * @return void + */ + public function setHtml($html) + { + $this->html = (array) $html; + } + + /** + * Adds a value to the html array + * + * @since 0.5 + * + * @param mixed $value + * @return void + */ + public function addHtml($value) + { + $this->html[] = $value; + } + + /** + * Returns html array + * + * @since 0.5 + * + * @return array the fields that contain allowed html + */ + public function getHtml() + { + return $this->html; + } + + /** + * Sets json array + * + * @param string[]|string $json the fields containing json + * @since 0.5.3 + * + * @return void + */ + public function setJson($json) + { + $this->json = (array) $json; + } + + /** + * Adds a value to the json array + * + * @param string $value the value containing JSON data + * @since 0.5.3 + * + * @return void + */ + public function addJson($value) + { + $this->json[] = $value; + } + + /** + * Returns json array + * + * @since 0.5.3 + * + * @return array the fields that contain json + */ + public function getJson() + { + return $this->json; + } + + /** + * Returns storage container + * + * @return array + */ + public function getStorage() + { + return $this->storage; + } +} diff --git a/interface/lib/classes/IDS/Report.php b/interface/lib/classes/IDS/Report.php new file mode 100644 index 0000000000..daebfc030e --- /dev/null +++ b/interface/lib/classes/IDS/Report.php @@ -0,0 +1,339 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS; + +/** + * PHPIDS report object + * + * The report objects collects a number of events and thereby presents the + * detected results. It provides a convenient API to work with the results. + * + * Note that this class implements Countable, IteratorAggregate and + * a __toString() method + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +class Report implements \Countable, \IteratorAggregate +{ + /** + * Event container + * + * @var Event[]|array + */ + protected $events = array(); + + /** + * List of affected tags + * + * This list of tags is collected from the collected event objects on + * demand when IDS_Report->getTags() is called + * + * @var string[]|array + */ + protected $tags = array(); + + /** + * Impact level + * + * The impact level is calculated on demand by adding the results of the + * event objects on IDS\Report->getImpact() + * + * @var integer + */ + protected $impact = 0; + + /** + * Centrifuge data + * + * This variable - initiated as an empty array - carries all information + * about the centrifuge data if available + * + * @var array + */ + protected $centrifuge = array(); + + /** + * Constructor + * + * @param array $events the events the report should include + * + * @return Report + */ + public function __construct(array $events = null) + { + foreach ((array) $events as $event) { + $this->addEvent($event); + } + } + + /** + * Adds an IDS_Event object to the report + * + * @param Event $event IDS_Event + * + * @return self $this + */ + public function addEvent(Event $event) + { + $this->clear(); + $this->events[$event->getName()] = $event; + + return $this; + } + + /** + * Get event by name + * + * In most cases an event is identified by the key of the variable that + * contained maliciously appearing content + * + * @param string|integer $name the event name + * + * @throws \InvalidArgumentException if argument is invalid + * @return Event|null IDS_Event object or false if the event does not exist + */ + public function getEvent($name) + { + if (!is_scalar($name)) { + throw new \InvalidArgumentException('Invalid argument type given'); + } + + return $this->hasEvent($name) ? $this->events[$name] : null; + } + + /** + * Returns list of events + * + * @return string[]|array + */ + + public function getEvents() + { + return $this->events; + } + + /** + * Returns list of affected tags + * + * @return string[]|array + */ + public function getTags() + { + if (!$this->tags) { + $this->tags = array(); + + foreach ($this->events as $event) { + $this->tags = array_merge($this->tags, $event->getTags()); + } + + $this->tags = array_values(array_unique($this->tags)); + } + + return $this->tags; + } + + /** + * Returns total impact + * + * Each stored IDS_Event object and its IDS_Filter sub-object are called + * to calculate the overall impact level of this request + * + * @return integer + */ + public function getImpact() + { + if (!$this->impact) { + $this->impact = 0; + foreach ($this->events as $event) { + $this->impact += $event->getImpact(); + } + } + + return $this->impact; + } + + /** + * Checks if a specific event with given name exists + * + * @param string|integer $name the event name + * + * @throws \InvalidArgumentException if argument is illegal + * @return boolean + */ + public function hasEvent($name) + { + if (!is_scalar($name)) { + throw new \InvalidArgumentException('Invalid argument given'); + } + + return isset($this->events[$name]); + } + + /** + * Returns total amount of events + * + * @return integer + */ + public function count() + { + return count($this->events); + } + + /** + * Return iterator object + * + * In order to provide the possibility to directly iterate over the + * IDS_Event object the IteratorAggregate is implemented. One can easily + * use foreach() to iterate through all stored IDS_Event objects. + * + * @return \Iterator the event collection + */ + public function getIterator() + { + return new \ArrayIterator($this->events); + } + + /** + * Checks if any events are registered + * + * @return boolean + */ + public function isEmpty() + { + return empty($this->events); + } + + /** + * Clears calculated/collected values + * + * @return void + */ + protected function clear() + { + $this->impact = 0; + $this->tags = array(); + } + + /** + * This method returns the centrifuge property or null if not + * filled with data + * + * @return array + */ + public function getCentrifuge() + { + return $this->centrifuge; + } + + /** + * This method sets the centrifuge property + * + * @param array $centrifuge the centrifuge data + * + * @throws \InvalidArgumentException if argument is illegal + * @return void + */ + public function setCentrifuge(array $centrifuge = array()) + { + if (!$centrifuge) { + throw new \InvalidArgumentException('Empty centrifuge given'); + } + $this->centrifuge = $centrifuge; + } + + /** + * Directly outputs all available information + * + * @return string + */ + public function __toString() + { + $output = ''; + if (!$this->isEmpty()) { + $output .= vsprintf( + "Total impact: %d<br/>\nAffected tags: %s<br/>\n", + array( + $this->getImpact(), + implode(', ', $this->getTags()) + ) + ); + + foreach ($this->events as $event) { + $output .= vsprintf( + "<br/>\nVariable: %s | Value: %s<br/>\nImpact: %d | Tags: %s<br/>\n", + array( + htmlspecialchars($event->getName()), + htmlspecialchars($event->getValue()), + $event->getImpact(), + implode(', ', $event->getTags()) + ) + ); + + foreach ($event as $filter) { + $output .= vsprintf( + "Description: %s | Tags: %s | ID %s<br/>\n", + array( + $filter->getDescription(), + implode(', ', $filter->getTags()), + $filter->getId() + ) + ); + } + } + + $output .= '<br/>'; + + if ($centrifuge = $this->getCentrifuge()) { + $output .= vsprintf( + "Centrifuge detection data<br/> Threshold: %s<br/> Ratio: %s", + array( + isset($centrifuge['threshold']) && $centrifuge['threshold'] ? $centrifuge['threshold'] : '---', + isset($centrifuge['ratio']) && $centrifuge['ratio'] ? $centrifuge['ratio'] : '---' + ) + ); + if (isset($centrifuge['converted'])) { + $output .= '<br/> Converted: ' . $centrifuge['converted']; + } + $output .= "<br/><br/>\n"; + } + } + + return $output; + } +} diff --git a/interface/lib/classes/IDS/Version.php b/interface/lib/classes/IDS/Version.php new file mode 100644 index 0000000000..b32438ffa4 --- /dev/null +++ b/interface/lib/classes/IDS/Version.php @@ -0,0 +1,49 @@ +<?php +/** + * PHPIDS + * + * Requirements: PHP5, SimpleXML + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. + * + * PHP version 5.1.6+ + * + * @category Security + * @package PHPIDS + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Christian Matthies <ch0012@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +namespace IDS; + +/** + * PHPIDS version class + * + * @category Security + * @package PHPIDS + * @author Christian Matthies <ch0012@gmail.com> + * @author Mario Heiderich <mario.heiderich@gmail.com> + * @author Lars Strojny <lars@strojny.net> + * @copyright 2007-2009 The PHPIDS Group + * @license http://www.gnu.org/licenses/lgpl.html LGPL + * @link http://php-ids.org/ + */ +abstract class Version +{ + const VERSION = 'master'; +} diff --git a/interface/lib/classes/IDS/default_filter.json b/interface/lib/classes/IDS/default_filter.json new file mode 100644 index 0000000000..c158ded574 --- /dev/null +++ b/interface/lib/classes/IDS/default_filter.json @@ -0,0 +1,933 @@ +{ + "filters":{ + "filter":[ + { + "id":"1", + "rule":"(?:\"[^\"]*[^-]?>)|(?:[^\\w\\s]\\s*\\\/>)|(?:>\")", + "description":"Finds html breaking injections including whitespace attacks", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"4" + }, + { + "id":"2", + "rule":"(?:\"+.*[<=]\\s*\"[^\"]+\")|(?:\"\\s*\\w+\\s*=)|(?:>\\w=\\\/)|(?:#.+\\)[\"\\s]*>)|(?:\"\\s*(?:src|style|on\\w+)\\s*=\\s*\")|(?:[^\"]?\"[,;\\s]+\\w*[\\[\\(])", + "description":"Finds attribute breaking injections including whitespace attacks", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"4" + }, + { + "id":"3", + "rule":"(?:^>[\\w\\s]*<\\\/?\\w{2,}>)", + "description":"Finds unquoted attribute breaking injections", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"2" + }, + { + "id":"4", + "rule":"(?:[+\\\/]\\s*name[\\W\\d]*[)+])|(?:;\\W*url\\s*=)|(?:[^\\w\\s\\\/?:>]\\s*(?:location|referrer|name)\\s*[^\\\/\\w\\s-])", + "description":"Detects url-, name-, JSON, and referrer-contained payload attacks", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"5", + "rule":"(?:\\W\\s*hash\\s*[^\\w\\s-])|(?:\\w+=\\W*[^,]*,[^\\s(]\\s*\\()|(?:\\?\"[^\\s\"]\":)|(?:(?<!\\\/)__[a-z]+__)|(?:(?:^|[\\s)\\]\\}])(?:s|g)etter\\s*=)", + "description":"Detects hash-contained xss payload attacks, setter usage and property overloading", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"6", + "rule":"(?:with\\s*\\(\\s*.+\\s*\\)\\s*\\w+\\s*\\()|(?:(?:do|while|for)\\s*\\([^)]*\\)\\s*\\{)|(?:\\\/[\\w\\s]*\\[\\W*\\w)", + "description":"Detects self contained xss via with(), common loops and regex to string conversion", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"7", + "rule":"(?:[=(].+\\?.+:)|(?:with\\([^)]*\\)\\))|(?:\\.\\s*source\\W)", + "description":"Detects JavaScript with(), ternary operators and XML predicate attacks", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"8", + "rule":"(?:\\\/\\w*\\s*\\)\\s*\\()|(?:\\([\\w\\s]+\\([\\w\\s]+\\)[\\w\\s]+\\))|(?:(?<!(?:mozilla\\\/\\d\\.\\d\\s))\\([^)[]+\\[[^\\]]+\\][^)]*\\))|(?:[^\\s!][{([][^({[]+[{([][^}\\])]+[}\\])][\\s+\",\\d]*[}\\])])|(?:\"\\)?\\]\\W*\\[)|(?:=\\s*[^\\s:;]+\\s*[{([][^}\\])]+[}\\])];)", + "description":"Detects self-executing JavaScript functions", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"9", + "rule":"(?:\\\\u00[a-f0-9]{2})|(?:\\\\x0*[a-f0-9]{2})|(?:\\\\\\d{2,3})", + "description":"Detects the IE octal, hex and unicode entities", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"2" + }, + { + "id":"10", + "rule":"(?:(?:\\\/|\\\\)?\\.+(\\\/|\\\\)(?:\\.+)?)|(?:\\w+\\.exe\\??\\s)|(?:;\\s*\\w+\\s*\\\/[\\w*-]+\\\/)|(?:\\d\\.\\dx\\|)|(?:%(?:c0\\.|af\\.|5c\\.))|(?:\\\/(?:%2e){2})", + "description":"Detects basic directory traversal", + "tags":{ + "tag":[ + "dt", + "id", + "lfi" + ] + }, + "impact":"5" + }, + { + "id":"11", + "rule":"(?:%c0%ae\\\/)|(?:(?:\\\/|\\\\)(home|conf|usr|etc|proc|opt|s?bin|local|dev|tmp|kern|[br]oot|sys|system|windows|winnt|program|%[a-z_-]{3,}%)(?:\\\/|\\\\))|(?:(?:\\\/|\\\\)inetpub|localstart\\.asp|boot\\.ini)", + "description":"Detects specific directory and path traversal", + "tags":{ + "tag":[ + "dt", + "id", + "lfi" + ] + }, + "impact":"5" + }, + { + "id":"12", + "rule":"(?:etc\\\/\\W*passwd)", + "description":"Detects etc\/passwd inclusion attempts", + "tags":{ + "tag":[ + "dt", + "id", + "lfi" + ] + }, + "impact":"5" + }, + { + "id":"13", + "rule":"(?:%u(?:ff|00|e\\d)\\w\\w)|(?:(?:%(?:e\\w|c[^3\\W]|))(?:%\\w\\w)(?:%\\w\\w)?)", + "description":"Detects halfwidth\/fullwidth encoded unicode HTML breaking attempts", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"3" + }, + { + "id":"14", + "rule":"(?:#@~\\^\\w+)|(?:\\w+script:|@import[^\\w]|;base64|base64,)|(?:\\w\\s*\\([\\w\\s]+,[\\w\\s]+,[\\w\\s]+,[\\w\\s]+,[\\w\\s]+,[\\w\\s]+\\))", + "description":"Detects possible includes, VBSCript\/JScript encodeed and packed functions", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"5" + }, + { + "id":"15", + "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@\\-\\|])(\\s*return\\s*)?(?:create(?:element|attribute|textnode)|[a-z]+events?|setattribute|getelement\\w+|appendchild|createrange|createcontextualfragment|removenode|parentnode|decodeuricomponent|\\wettimeout|(?:ms)?setimmediate|option|useragent)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%\",.+\\-]))", + "description":"Detects JavaScript DOM\/miscellaneous properties and methods", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"6" + }, + { + "id":"16", + "rule":"([^*\\s\\w,.\\\/?+-]\\s*)?(?<![a-mo-z]\\s)(?<![a-z\\\/_@])(\\s*return\\s*)?(?:alert|inputbox|showmod(?:al|eless)dialog|showhelp|infinity|isnan|isnull|iterator|msgbox|executeglobal|expression|prompt|write(?:ln)?|confirm|dialog|urn|(?:un)?eval|exec|execscript|tostring|status|execute|window|unescape|navigate|jquery|getscript|extend|prototype)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%\",.:\\\/+\\-]))", + "description":"Detects possible includes and typical script methods", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"5" + }, + { + "id":"17", + "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@])(\\s*return\\s*)?(?:hash|name|href|navigateandfind|source|pathname|close|constructor|port|protocol|assign|replace|back|forward|document|ownerdocument|window|top|this|self|parent|frames|_?content|date|cookie|innerhtml|innertext|csstext+?|outerhtml|print|moveby|resizeto|createstylesheet|stylesheets)(?(1)[^\\w%\"]|(?:\\s*[^@\\\/\\s\\w%.+\\-]))", + "description":"Detects JavaScript object properties and methods", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"4" + }, + { + "id":"18", + "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@\\-\\|])(\\s*return\\s*)?(?:join|pop|push|reverse|reduce|concat|map|shift|sp?lice|sort|unshift)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%,.+\\-]))", + "description":"Detects JavaScript array properties and methods", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"4" + }, + { + "id":"19", + "rule":"([^*:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z\\\/_@\\-\\|])(\\s*return\\s*)?(?:set|atob|btoa|charat|charcodeat|charset|concat|crypto|frames|fromcharcode|indexof|lastindexof|match|navigator|toolbar|menubar|replace|regexp|slice|split|substr|substring|escape|\\w+codeuri\\w*)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%,.+\\-]))", + "description":"Detects JavaScript string properties and methods", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"4" + }, + { + "id":"20", + "rule":"(?:\\)\\s*\\[)|([^*\":\\s\\w,.\\\/?+-]\\s*)?(?<![a-z]\\s)(?<![a-z_@\\|])(\\s*return\\s*)?(?:globalstorage|sessionstorage|postmessage|callee|constructor|content|domain|prototype|try|catch|top|call|apply|url|function|object|array|string|math|if|for\\s*(?:each)?|elseif|case|switch|regex|boolean|location|(?:ms)?setimmediate|settimeout|setinterval|void|setexpression|namespace|while)(?(1)[^\\w%\"]|(?:\\s*[^@\\s\\w%\".+\\-\\\/]))", + "description":"Detects JavaScript language constructs", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"4" + }, + { + "id":"21", + "rule":"(?:,\\s*(?:alert|showmodaldialog|eval)\\s*,)|(?::\\s*eval\\s*[^\\s])|([^:\\s\\w,.\\\/?+-]\\s*)?(?<![a-z\\\/_@])(\\s*return\\s*)?(?:(?:document\\s*\\.)?(?:.+\\\/)?(?:alert|eval|msgbox|showmod(?:al|eless)dialog|showhelp|prompt|write(?:ln)?|confirm|dialog|open))\\s*(?:[^.a-z\\s\\-]|(?:\\s*[^\\s\\w,.@\\\/+-]))|(?:java[\\s\\\/]*\\.[\\s\\\/]*lang)|(?:\\w\\s*=\\s*new\\s+\\w+)|(?:&\\s*\\w+\\s*\\)[^,])|(?:\\+[\\W\\d]*new\\s+\\w+[\\W\\d]*\\+)|(?:document\\.\\w)", + "description":"Detects very basic XSS probings", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"3" + }, + { + "id":"22", + "rule":"(?:=\\s*(?:top|this|window|content|self|frames|_content))|(?:\\\/\\s*[gimx]*\\s*[)}])|(?:[^\\s]\\s*=\\s*script)|(?:\\.\\s*constructor)|(?:default\\s+xml\\s+namespace\\s*=)|(?:\\\/\\s*\\+[^+]+\\s*\\+\\s*\\\/)", + "description":"Detects advanced XSS probings via Script(), RexExp, constructors and XML namespaces", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"5" + }, + { + "id":"23", + "rule":"(?:\\.\\s*\\w+\\W*=)|(?:\\W\\s*(?:location|document)\\s*\\W[^({[;]+[({[;])|(?:\\(\\w+\\?[:\\w]+\\))|(?:\\w{2,}\\s*=\\s*\\d+[^&\\w]\\w+)|(?:\\]\\s*\\(\\s*\\w+)", + "description":"Detects JavaScript location\/document property access and window access obfuscation", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"24", + "rule":"(?:[\".]script\\s*\\()|(?:\\$\\$?\\s*\\(\\s*[\\w\"])|(?:\\\/[\\w\\s]+\\\/\\.)|(?:=\\s*\\\/\\w+\\\/\\s*\\.)|(?:(?:this|window|top|parent|frames|self|content)\\[\\s*[(,\"]*\\s*[\\w\\$])|(?:,\\s*new\\s+\\w+\\s*[,;)])", + "description":"Detects basic obfuscated JavaScript script injections", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"25", + "rule":"(?:=\\s*[$\\w]\\s*[\\(\\[])|(?:\\(\\s*(?:this|top|window|self|parent|_?content)\\s*\\))|(?:src\\s*=s*(?:\\w+:|\\\/\\\/))|(?:\\w+\\[(\"\\w+\"|\\w+\\|\\|))|(?:[\\d\\W]\\|\\|[\\d\\W]|\\W=\\w+,)|(?:\\\/\\s*\\+\\s*[a-z\"])|(?:=\\s*\\$[^([]*\\()|(?:=\\s*\\(\\s*\")", + "description":"Detects obfuscated JavaScript script injections", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"26", + "rule":"(?:[^:\\s\\w]+\\s*[^\\w\\\/](href|protocol|host|hostname|pathname|hash|port|cookie)[^\\w])", + "description":"Detects JavaScript cookie stealing and redirection attempts", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"4" + }, + { + "id":"27", + "rule":"(?:(?:vbs|vbscript|data):.*[,+])|(?:\\w+\\s*=\\W*(?!https?)\\w+:)|(jar:\\w+:)|(=\\s*\"?\\s*vbs(?:ript)?:)|(language\\s*=\\s?\"?\\s*vbs(?:ript)?)|on\\w+\\s*=\\*\\w+\\-\"?", + "description":"Detects data: URL injections, VBS injections and common URI schemes", + "tags":{ + "tag":[ + "xss", + "rfe" + ] + }, + "impact":"5" + }, + { + "id":"28", + "rule":"(?:firefoxurl:\\w+\\|)|(?:(?:file|res|telnet|nntp|news|mailto|chrome)\\s*:\\s*[%&#xu\\\/]+)|(wyciwyg|firefoxurl\\s*:\\s*\\\/\\s*\\\/)", + "description":"Detects IE firefoxurl injections, cache poisoning attempts and local file inclusion\/execution", + "tags":{ + "tag":[ + "xss", + "rfe", + "lfi", + "csrf" + ] + }, + "impact":"5" + }, + { + "id":"29", + "rule":"(?:binding\\s?=|moz-binding|behavior\\s?=)|(?:[\\s\\\/]style\\s*=\\s*[-\\\\])", + "description":"Detects bindings and behavior injections", + "tags":{ + "tag":[ + "xss", + "csrf", + "rfe" + ] + }, + "impact":"4" + }, + { + "id":"30", + "rule":"(?:=\\s*\\w+\\s*\\+\\s*\")|(?:\\+=\\s*\\(\\s\")|(?:!+\\s*[\\d.,]+\\w?\\d*\\s*\\?)|(?:=\\s*\\[s*\\])|(?:\"\\s*\\+\\s*\")|(?:[^\\s]\\[\\s*\\d+\\s*\\]\\s*[;+])|(?:\"\\s*[&|]+\\s*\")|(?:\\\/\\s*\\?\\s*\")|(?:\\\/\\s*\\)\\s*\\[)|(?:\\d\\?.+:\\d)|(?:]\\s*\\[\\W*\\w)|(?:[^\\s]\\s*=\\s*\\\/)", + "description":"Detects common XSS concatenation patterns 1\/2", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"4" + }, + { + "id":"31", + "rule":"(?:=\\s*\\d*\\.\\d*\\?\\d*\\.\\d*)|(?:[|&]{2,}\\s*\")|(?:!\\d+\\.\\d*\\?\")|(?:\\\/:[\\w.]+,)|(?:=[\\d\\W\\s]*\\[[^]]+\\])|(?:\\?\\w+:\\w+)", + "description":"Detects common XSS concatenation patterns 2\/2", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe" + ] + }, + "impact":"4" + }, + { + "id":"32", + "rule":"(?:[^\\w\\s=]on(?!g\\>)\\w+[^=_+-]*=[^$]+(?:\\W|\\>)?)", + "description":"Detects possible event handlers", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"4" + }, + { + "id":"33", + "rule":"(?:\\<\\w*:?\\s(?:[^\\>]*)t(?!rong))|(?:\\<scri)|(<\\w+:\\w+)", + "description":"Detects obfuscated script tags and XML wrapped HTML", + "tags":{ + "tag":"xss" + }, + "impact":"4" + }, + { + "id":"34", + "rule":"(?:\\<\\\/\\w+\\s\\w+)|(?:@(?:cc_on|set)[\\s@,\"=])", + "description":"Detects attributes in closing tags and conditional compilation tokens", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"4" + }, + { + "id":"35", + "rule":"(?:--[^\\n]*$)|(?:\\<!-|-->)|(?:[^*]\\\/\\*|\\*\\\/[^*])|(?:(?:[\\W\\d]#|--|{)$)|(?:\\\/{3,}.*$)|(?:<!\\[\\W)|(?:\\]!>)", + "description":"Detects common comment types", + "tags":{ + "tag":[ + "xss", + "csrf", + "id" + ] + }, + "impact":"3" + }, + { + "id":"37", + "rule":"(?:\\<base\\s+)|(?:<!(?:element|entity|\\[CDATA))", + "description":"Detects base href injections and XML entity injections", + "tags":{ + "tag":[ + "xss", + "csrf", + "id" + ] + }, + "impact":"5" + }, + { + "id":"38", + "rule":"(?:\\<[\\\/]?(?:[i]?frame|applet|isindex|marquee|keygen|script|audio|video|input|button|textarea|style|base|body|meta|link|object|embed|param|plaintext|xm\\w+|image|im(?:g|port)))", + "description":"Detects possibly malicious html elements including some attributes", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe", + "lfi" + ] + }, + "impact":"4" + }, + { + "id":"39", + "rule":"(?:\\\\x[01fe][\\db-ce-f])|(?:%[01fe][\\db-ce-f])|(?:&#[01fe][\\db-ce-f])|(?:\\\\[01fe][\\db-ce-f])|(?:&#x[01fe][\\db-ce-f])", + "description":"Detects nullbytes and other dangerous characters", + "tags":{ + "tag":[ + "id", + "rfe", + "xss" + ] + }, + "impact":"5" + }, + { + "id":"40", + "rule":"(?:\\)\\s*when\\s*\\d+\\s*then)|(?:\"\\s*(?:#|--|{))|(?:\\\/\\*!\\s?\\d+)|(?:ch(?:a)?r\\s*\\(\\s*\\d)|(?:(?:(n?and|x?or|not)\\s+|\\|\\||\\&\\&)\\s*\\w+\\()", + "description":"Detects MySQL comments, conditions and ch(a)r injections", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"6" + }, + { + "id":"41", + "rule":"(?:[\\s()]case\\s*\\()|(?:\\)\\s*like\\s*\\()|(?:having\\s*[^\\s]+\\s*[^\\w\\s])|(?:if\\s?\\([\\d\\w]\\s*[=<>~])", + "description":"Detects conditional SQL injection attempts", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"6" + }, + { + "id":"42", + "rule":"(?:\"\\s*or\\s*\"?\\d)|(?:\\\\x(?:23|27|3d))|(?:^.?\"$)|(?:(?:^[\"\\\\]*(?:[\\d\"]+|[^\"]+\"))+\\s*(?:n?and|x?or|not|\\|\\||\\&\\&)\\s*[\\w\"[+&!@(),.-])|(?:[^\\w\\s]\\w+\\s*[|-]\\s*\"\\s*\\w)|(?:@\\w+\\s+(and|or)\\s*[\"\\d]+)|(?:@[\\w-]+\\s(and|or)\\s*[^\\w\\s])|(?:[^\\w\\s:]\\s*\\d\\W+[^\\w\\s]\\s*\".)|(?:\\Winformation_schema|table_name\\W)", + "description":"Detects classic SQL injection probings 1\/2", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"6" + }, + { + "id":"43", + "rule":"(?:\"\\s*\\*.+(?:or|id)\\W*\"\\d)|(?:\\^\")|(?:^[\\w\\s\"-]+(?<=and\\s)(?<=or\\s)(?<=xor\\s)(?<=nand\\s)(?<=not\\s)(?<=\\|\\|)(?<=\\&\\&)\\w+\\()|(?:\"[\\s\\d]*[^\\w\\s]+\\W*\\d\\W*.*[\"\\d])|(?:\"\\s*[^\\w\\s?]+\\s*[^\\w\\s]+\\s*\")|(?:\"\\s*[^\\w\\s]+\\s*[\\W\\d].*(?:#|--))|(?:\".*\\*\\s*\\d)|(?:\"\\s*or\\s[^\\d]+[\\w-]+.*\\d)|(?:[()*<>%+-][\\w-]+[^\\w\\s]+\"[^,])", + "description":"Detects classic SQL injection probings 2\/2", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"6" + }, + { + "id":"44", + "rule":"(?:\\d\"\\s+\"\\s+\\d)|(?:^admin\\s*\"|(\\\/\\*)+\"+\\s?(?:--|#|\\\/\\*|{)?)|(?:\"\\s*or[\\w\\s-]+\\s*[+<>=(),-]\\s*[\\d\"])|(?:\"\\s*[^\\w\\s]?=\\s*\")|(?:\"\\W*[+=]+\\W*\")|(?:\"\\s*[!=|][\\d\\s!=+-]+.*[\"(].*$)|(?:\"\\s*[!=|][\\d\\s!=]+.*\\d+$)|(?:\"\\s*like\\W+[\\w\"(])|(?:\\sis\\s*0\\W)|(?:where\\s[\\s\\w\\.,-]+\\s=)|(?:\"[<>~]+\")", + "description":"Detects basic SQL authentication bypass attempts 1\/3", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"7" + }, + { + "id":"45", + "rule":"(?:union\\s*(?:all|distinct|[(!@]*)\\s*[([]*\\s*select)|(?:\\w+\\s+like\\s+\\\")|(?:like\\s*\"\\%)|(?:\"\\s*like\\W*[\"\\d])|(?:\"\\s*(?:n?and|x?or|not |\\|\\||\\&\\&)\\s+[\\s\\w]+=\\s*\\w+\\s*having)|(?:\"\\s*\\*\\s*\\w+\\W+\")|(?:\"\\s*[^?\\w\\s=.,;)(]+\\s*[(@\"]*\\s*\\w+\\W+\\w)|(?:select\\s*[\\[\\]()\\s\\w\\.,\"-]+from)|(?:find_in_set\\s*\\()", + "description":"Detects basic SQL authentication bypass attempts 2\/3", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"7" + }, + { + "id":"46", + "rule":"(?:in\\s*\\(+\\s*select)|(?:(?:n?and|x?or|not |\\|\\||\\&\\&)\\s+[\\s\\w+]+(?:regexp\\s*\\(|sounds\\s+like\\s*\"|[=\\d]+x))|(\"\\s*\\d\\s*(?:--|#))|(?:\"[%&<>^=]+\\d\\s*(=|or))|(?:\"\\W+[\\w+-]+\\s*=\\s*\\d\\W+\")|(?:\"\\s*is\\s*\\d.+\"?\\w)|(?:\"\\|?[\\w-]{3,}[^\\w\\s.,]+\")|(?:\"\\s*is\\s*[\\d.]+\\s*\\W.*\")", + "description":"Detects basic SQL authentication bypass attempts 3\/3", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"7" + }, + { + "id":"47", + "rule":"(?:[\\d\\W]\\s+as\\s*[\"\\w]+\\s*from)|(?:^[\\W\\d]+\\s*(?:union|select|create|rename|truncate|load|alter|delete|update|insert|desc))|(?:(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s+(?:(?:group_)concat|char|load_file)\\s?\\(?)|(?:end\\s*\\);)|(\"\\s+regexp\\W)|(?:[\\s(]load_file\\s*\\()", + "description":"Detects concatenated basic SQL injection and SQLLFI attempts", + "tags":{ + "tag":[ + "sqli", + "id", + "lfi" + ] + }, + "impact":"5" + }, + { + "id":"48", + "rule":"(?:@.+=\\s*\\(\\s*select)|(?:\\d+\\s*or\\s*\\d+\\s*[\\-+])|(?:\\\/\\w+;?\\s+(?:having|and|or|select)\\W)|(?:\\d\\s+group\\s+by.+\\()|(?:(?:;|#|--)\\s*(?:drop|alter))|(?:(?:;|#|--)\\s*(?:update|insert)\\s*\\w{2,})|(?:[^\\w]SET\\s*@\\w+)|(?:(?:n?and|x?or|not |\\|\\||\\&\\&)[\\s(]+\\w+[\\s)]*[!=+]+[\\s\\d]*[\"=()])", + "description":"Detects chained SQL injection attempts 1\/2", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"6" + }, + { + "id":"49", + "rule":"(?:\"\\s+and\\s*=\\W)|(?:\\(\\s*select\\s*\\w+\\s*\\()|(?:\\*\\\/from)|(?:\\+\\s*\\d+\\s*\\+\\s*@)|(?:\\w\"\\s*(?:[-+=|@]+\\s*)+[\\d(])|(?:coalesce\\s*\\(|@@\\w+\\s*[^\\w\\s])|(?:\\W!+\"\\w)|(?:\";\\s*(?:if|while|begin))|(?:\"[\\s\\d]+=\\s*\\d)|(?:order\\s+by\\s+if\\w*\\s*\\()|(?:[\\s(]+case\\d*\\W.+[tw]hen[\\s(])", + "description":"Detects chained SQL injection attempts 2\/2", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"6" + }, + { + "id":"50", + "rule":"(?:(select|;)\\s+(?:benchmark|if|sleep)\\s*?\\(\\s*\\(?\\s*\\w+)", + "description":"Detects SQL benchmark and sleep injection attempts including conditional queries", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"4" + }, + { + "id":"51", + "rule":"(?:create\\s+function\\s+\\w+\\s+returns)|(?:;\\s*(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s*[\\[(]?\\w{2,})", + "description":"Detects MySQL UDF injection and other data\/structure manipulation attempts", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"6" + }, + { + "id":"52", + "rule":"(?:alter\\s*\\w+.*character\\s+set\\s+\\w+)|(\";\\s*waitfor\\s+time\\s+\")|(?:\";.*:\\s*goto)", + "description":"Detects MySQL charset switch and MSSQL DoS attempts", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"6" + }, + { + "id":"53", + "rule":"(?:procedure\\s+analyse\\s*\\()|(?:;\\s*(declare|open)\\s+[\\w-]+)|(?:create\\s+(procedure|function)\\s*\\w+\\s*\\(\\s*\\)\\s*-)|(?:declare[^\\w]+[@#]\\s*\\w+)|(exec\\s*\\(\\s*@)", + "description":"Detects MySQL and PostgreSQL stored procedure\/function injections", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"7" + }, + { + "id":"54", + "rule":"(?:select\\s*pg_sleep)|(?:waitfor\\s*delay\\s?\"+\\s?\\d)|(?:;\\s*shutdown\\s*(?:;|--|#|\\\/\\*|{))", + "description":"Detects Postgres pg_sleep injection, waitfor delay attacks and database shutdown attempts", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"5" + }, + { + "id":"55", + "rule":"(?:\\sexec\\s+xp_cmdshell)|(?:\"\\s*!\\s*[\"\\w])|(?:from\\W+information_schema\\W)|(?:(?:(?:current_)?user|database|schema|connection_id)\\s*\\([^\\)]*)|(?:\";?\\s*(?:select|union|having)\\s*[^\\s])|(?:\\wiif\\s*\\()|(?:exec\\s+master\\.)|(?:union select @)|(?:union[\\w(\\s]*select)|(?:select.*\\w?user\\()|(?:into[\\s+]+(?:dump|out)file\\s*\")", + "description":"Detects MSSQL code execution and information gathering attempts", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"5" + }, + { + "id":"56", + "rule":"(?:merge.*using\\s*\\()|(execute\\s*immediate\\s*\")|(?:\\W+\\d*\\s*having\\s*[^\\s\\-])|(?:match\\s*[\\w(),+-]+\\s*against\\s*\\()", + "description":"Detects MATCH AGAINST, MERGE, EXECUTE IMMEDIATE and HAVING injections", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"5" + }, + { + "id":"57", + "rule":"(?:,.*[)\\da-f\"]\"(?:\".*\"|\\Z|[^\"]+))|(?:\\Wselect.+\\W*from)|((?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\\s*\\(\\s*space\\s*\\()", + "description":"Detects MySQL comment-\/space-obfuscated injections and backtick termination", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"5" + }, + { + "id":"58", + "rule":"(?:@[\\w-]+\\s*\\()|(?:]\\s*\\(\\s*[\"!]\\s*\\w)|(?:<[?%](?:php)?.*(?:[?%]>)?)|(?:;[\\s\\w|]*\\$\\w+\\s*=)|(?:\\$\\w+\\s*=(?:(?:\\s*\\$?\\w+\\s*[(;])|\\s*\".*\"))|(?:;\\s*\\{\\W*\\w+\\s*\\()", + "description":"Detects code injection attempts 1\/3", + "tags":{ + "tag":[ + "id", + "rfe", + "lfi" + ] + }, + "impact":"7" + }, + { + "id":"59", + "rule":"(?:(?:[;]+|(<[?%](?:php)?)).*(?:define|eval|file_get_contents|include|require|require_once|set|shell_exec|phpinfo|system|passthru|preg_\\w+|execute)\\s*[\"(@])", + "description":"Detects code injection attempts 2\/3", + "tags":{ + "tag":[ + "id", + "rfe", + "lfi" + ] + }, + "impact":"7" + }, + { + "id":"60", + "rule":"(?:(?:[;]+|(<[?%](?:php)?)).*[^\\w](?:echo|print|print_r|var_dump|[fp]open))|(?:;\\s*rm\\s+-\\w+\\s+)|(?:;.*{.*\\$\\w+\\s*=)|(?:\\$\\w+\\s*\\[\\]\\s*=\\s*)", + "description":"Detects code injection attempts 3\/3", + "tags":{ + "tag":[ + "id", + "rfe", + "lfi" + ] + }, + "impact":"7" + }, + { + "id":"62", + "rule":"(?:function[^(]*\\([^)]*\\))|(?:(?:delete|void|throw|instanceof|new|typeof)[^\\w.]+\\w+\\s*[([])|([)\\]]\\s*\\.\\s*\\w+\\s*=)|(?:\\(\\s*new\\s+\\w+\\s*\\)\\.)", + "description":"Detects common function declarations and special JS operators", + "tags":{ + "tag":[ + "id", + "rfe", + "lfi" + ] + }, + "impact":"5" + }, + { + "id":"63", + "rule":"(?:[\\w.-]+@[\\w.-]+%(?:[01][\\db-ce-f])+\\w+:)", + "description":"Detects common mail header injections", + "tags":{ + "tag":[ + "id", + "spam" + ] + }, + "impact":"5" + }, + { + "id":"64", + "rule":"(?:\\.pl\\?\\w+=\\w?\\|\\w+;)|(?:\\|\\(\\w+=\\*)|(?:\\*\\s*\\)+\\s*;)", + "description":"Detects perl echo shellcode injection and LDAP vectors", + "tags":{ + "tag":[ + "lfi", + "rfe" + ] + }, + "impact":"5" + }, + { + "id":"65", + "rule":"(?:(^|\\W)const\\s+[\\w\\-]+\\s*=)|(?:(?:do|for|while)\\s*\\([^;]+;+\\))|(?:(?:^|\\W)on\\w+\\s*=[\\w\\W]*(?:on\\w+|alert|eval|print|confirm|prompt))|(?:groups=\\d+\\(\\w+\\))|(?:(.)\\1{128,})", + "description":"Detects basic XSS DoS attempts", + "tags":{ + "tag":[ + "rfe", + "dos" + ] + }, + "impact":"5" + }, + { + "id":"67", + "rule":"(?:\\({2,}\\+{2,}:{2,})|(?:\\({2,}\\+{2,}:+)|(?:\\({3,}\\++:{2,})|(?:\\$\\[!!!\\])", + "description":"Detects unknown attack vectors based on PHPIDS Centrifuge detection", + "tags":{ + "tag":[ + "xss", + "csrf", + "id", + "rfe", + "lfi" + ] + }, + "impact":"7" + }, + { + "id":"68", + "rule":"(?:[\\s\\\/\"]+[-\\w\\\/\\\\\\*]+\\s*=.+(?:\\\/\\s*>))", + "description":"Finds attribute breaking injections including obfuscated attributes", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"4" + }, + { + "id":"69", + "rule":"(?:(?:msgbox|eval)\\s*\\+|(?:language\\s*=\\*vbscript))", + "description":"Finds basic VBScript injection attempts", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"4" + }, + { + "id":"70", + "rule":"(?:\\[\\$(?:ne|eq|lte?|gte?|n?in|mod|all|size|exists|type|slice|or)\\])", + "description":"Finds basic MongoDB SQL injection attempts", + "tags":{ + "tag":"sqli" + }, + "impact":"4" + }, + { + "id":"71", + "rule":"(?:[\\s\\d\\\/\"]+(?:on\\w+|style|poster|background)=[$\"\\w])|(?:-type\\s*:\\s*multipart)", + "description":"Finds malicious attribute injection attempts and MHTML attacks", + "tags":{ + "tag":[ + "xss", + "csrf" + ] + }, + "impact":"6" + }, + { + "id":"72", + "rule":"(?:(sleep\\((\\s*)(\\d*)(\\s*)\\)|benchmark\\((.*)\\,(.*)\\)))", + "description":"Detects blind sqli tests using sleep() or benchmark().", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"4" + }, + { + "id":"73", + "rule":"(?:(\\%SYSTEMROOT\\%))", + "description":"An attacker is trying to locate a file to read or write.", + "tags":{ + "tag":[ + "files", + "id" + ] + }, + "impact":"4" + }, + { + "id":"75", + "rule":"(?:(((.*)\\%[c|d|i|e|f|g|o|s|u|x|p|n]){8}))", + "description":"Looking for a format string attack", + "tags":{ + "tag":"format string" + }, + "impact":"4" + }, + { + "id":"76", + "rule":"(?:(union(.*)select(.*)from))", + "description":"Looking for basic sql injection. Common attack string for mysql, oracle and others.", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"3" + }, + { + "id":"77", + "rule":"(?:^(-0000023456|4294967295|4294967296|2147483648|2147483647|0000012345|-2147483648|-2147483649|0000023456|2.2250738585072007e-308|1e309)$)", + "description":"Looking for integer overflow attacks, these are taken from skipfish, except 2.2250738585072007e-308 is the \"magic number\" crash", + "tags":{ + "tag":[ + "sqli", + "id" + ] + }, + "impact":"3" + }, + { + "id":"78", + "rule":"(?:%23.*?%0a)", + "description":"Detects SQL comment filter evasion", + "tags":{ + "tag":[ + "format string" + ] + }, + "impact":"4" + } + ] + } +} diff --git a/interface/lib/classes/IDS/default_filter.xml b/interface/lib/classes/IDS/default_filter.xml new file mode 100644 index 0000000000..fdd9cefbe7 --- /dev/null +++ b/interface/lib/classes/IDS/default_filter.xml @@ -0,0 +1,787 @@ +<filters> + <filter> + <id>1</id> + <rule><![CDATA[(?:"[^"]*[^-]?>)|(?:[^\w\s]\s*\/>)|(?:>")]]></rule> + <description>Finds html breaking injections including whitespace attacks</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>2</id> + <rule><![CDATA[(?:"+.*[<=]\s*"[^"]+")|(?:"\s*\w+\s*=)|(?:>\w=\/)|(?:#.+\)["\s]*>)|(?:"\s*(?:src|style|on\w+)\s*=\s*")|(?:[^"]?"[,;\s]+\w*[\[\(])]]></rule> + <description>Finds attribute breaking injections including whitespace attacks</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>3</id> + <rule><![CDATA[(?:^>[\w\s]*<\/?\w{2,}>)]]></rule> + <description>Finds unquoted attribute breaking injections</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>2</impact> + </filter> + <filter> + <id>4</id> + <rule><![CDATA[(?:[+\/]\s*name[\W\d]*[)+])|(?:;\W*url\s*=)|(?:[^\w\s\/?:>]\s*(?:location|referrer|name)\s*[^\/\w\s-])]]></rule> + <description>Detects url-, name-, JSON, and referrer-contained payload attacks</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>5</id> + <rule><![CDATA[(?:\W\s*hash\s*[^\w\s-])|(?:\w+=\W*[^,]*,[^\s(]\s*\()|(?:\?"[^\s"]":)|(?:(?<!\/)__[a-z]+__)|(?:(?:^|[\s)\]\}])(?:s|g)etter\s*=)]]></rule> + <description>Detects hash-contained xss payload attacks, setter usage and property overloading</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>6</id> + <rule><![CDATA[(?:with\s*\(\s*.+\s*\)\s*\w+\s*\()|(?:(?:do|while|for)\s*\([^)]*\)\s*\{)|(?:\/[\w\s]*\[\W*\w)]]></rule> + <description>Detects self contained xss via with(), common loops and regex to string conversion</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>7</id> + <rule><![CDATA[(?:[=(].+\?.+:)|(?:with\([^)]*\)\))|(?:\.\s*source\W)]]></rule> + <description>Detects JavaScript with(), ternary operators and XML predicate attacks</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>8</id> + <rule><![CDATA[(?:\/\w*\s*\)\s*\()|(?:\([\w\s]+\([\w\s]+\)[\w\s]+\))|(?:(?<!(?:mozilla\/\d\.\d\s))\([^)[]+\[[^\]]+\][^)]*\))|(?:[^\s!][{([][^({[]+[{([][^}\])]+[}\])][\s+",\d]*[}\])])|(?:"\)?\]\W*\[)|(?:=\s*[^\s:;]+\s*[{([][^}\])]+[}\])];)]]></rule> + <description>Detects self-executing JavaScript functions</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>9</id> + <rule><![CDATA[(?:\\u00[a-f0-9]{2})|(?:\\x0*[a-f0-9]{2})|(?:\\\d{2,3})]]></rule> + <description>Detects the IE octal, hex and unicode entities</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>2</impact> + </filter> + <filter> + <id>10</id> + <rule><![CDATA[(?:(?:\/|\\)?\.+(\/|\\)(?:\.+)?)|(?:\w+\.exe\??\s)|(?:;\s*\w+\s*\/[\w*-]+\/)|(?:\d\.\dx\|)|(?:%(?:c0\.|af\.|5c\.))|(?:\/(?:%2e){2})]]></rule> + <description>Detects basic directory traversal</description> + <tags> + <tag>dt</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>11</id> + <rule><![CDATA[(?:%c0%ae\/)|(?:(?:\/|\\)(home|conf|usr|etc|proc|opt|s?bin|local|dev|tmp|kern|[br]oot|sys|system|windows|winnt|program|%[a-z_-]{3,}%)(?:\/|\\))|(?:(?:\/|\\)inetpub|localstart\.asp|boot\.ini)]]></rule> + <description>Detects specific directory and path traversal</description> + <tags> + <tag>dt</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>12</id> + <rule><![CDATA[(?:etc\/\W*passwd)]]></rule> + <description>Detects etc/passwd inclusion attempts</description> + <tags> + <tag>dt</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>13</id> + <rule><![CDATA[(?:%u(?:ff|00|e\d)\w\w)|(?:(?:%(?:e\w|c[^3\W]|))(?:%\w\w)(?:%\w\w)?)]]></rule> + <description>Detects halfwidth/fullwidth encoded unicode HTML breaking attempts</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>3</impact> + </filter> + <filter> + <id>14</id> + <rule><![CDATA[(?:#@~\^\w+)|(?:\w+script:|@import[^\w]|;base64|base64,)|(?:\w\s*\([\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+,[\w\s]+\))]]></rule> + <description>Detects possible includes, VBSCript/JScript encodeed and packed functions</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>15</id> + <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@\-\|])(\s*return\s*)?(?:create(?:element|attribute|textnode)|[a-z]+events?|setattribute|getelement\w+|appendchild|createrange|createcontextualfragment|removenode|parentnode|decodeuricomponent|\wettimeout|(?:ms)?setimmediate|option|useragent)(?(1)[^\w%"]|(?:\s*[^@\s\w%",.+\-]))]]></rule> + <description>Detects JavaScript DOM/miscellaneous properties and methods</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>16</id> + <rule><![CDATA[([^*\s\w,.\/?+-]\s*)?(?<![a-mo-z]\s)(?<![a-z\/_@])(\s*return\s*)?(?:alert|inputbox|showmod(?:al|eless)dialog|showhelp|infinity|isnan|isnull|iterator|msgbox|executeglobal|expression|prompt|write(?:ln)?|confirm|dialog|urn|(?:un)?eval|exec|execscript|tostring|status|execute|window|unescape|navigate|jquery|getscript|extend|prototype)(?(1)[^\w%"]|(?:\s*[^@\s\w%",.:\/+\-]))]]></rule> + <description>Detects possible includes and typical script methods</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>17</id> + <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@])(\s*return\s*)?(?:hash|name|href|navigateandfind|source|pathname|close|constructor|port|protocol|assign|replace|back|forward|document|ownerdocument|window|top|this|self|parent|frames|_?content|date|cookie|innerhtml|innertext|csstext+?|outerhtml|print|moveby|resizeto|createstylesheet|stylesheets)(?(1)[^\w%"]|(?:\s*[^@\/\s\w%.+\-]))]]></rule> + <description>Detects JavaScript object properties and methods</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>18</id> + <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@\-\|])(\s*return\s*)?(?:join|pop|push|reverse|reduce|concat|map|shift|sp?lice|sort|unshift)(?(1)[^\w%"]|(?:\s*[^@\s\w%,.+\-]))]]></rule> + <description>Detects JavaScript array properties and methods</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>19</id> + <rule><![CDATA[([^*:\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z\/_@\-\|])(\s*return\s*)?(?:set|atob|btoa|charat|charcodeat|charset|concat|crypto|frames|fromcharcode|indexof|lastindexof|match|navigator|toolbar|menubar|replace|regexp|slice|split|substr|substring|escape|\w+codeuri\w*)(?(1)[^\w%"]|(?:\s*[^@\s\w%,.+\-]))]]></rule> + <description>Detects JavaScript string properties and methods</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>20</id> + <rule><![CDATA[(?:\)\s*\[)|([^*":\s\w,.\/?+-]\s*)?(?<![a-z]\s)(?<![a-z_@\|])(\s*return\s*)?(?:globalstorage|sessionstorage|postmessage|callee|constructor|content|domain|prototype|try|catch|top|call|apply|url|function|object|array|string|math|if|for\s*(?:each)?|elseif|case|switch|regex|boolean|location|(?:ms)?setimmediate|settimeout|setinterval|void|setexpression|namespace|while)(?(1)[^\w%"]|(?:\s*[^@\s\w%".+\-\/]))]]></rule> + <description>Detects JavaScript language constructs</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>21</id> + <rule><![CDATA[(?:,\s*(?:alert|showmodaldialog|eval)\s*,)|(?::\s*eval\s*[^\s])|([^:\s\w,.\/?+-]\s*)?(?<![a-z\/_@])(\s*return\s*)?(?:(?:document\s*\.)?(?:.+\/)?(?:alert|eval|msgbox|showmod(?:al|eless)dialog|showhelp|prompt|write(?:ln)?|confirm|dialog|open))\s*(?:[^.a-z\s\-]|(?:\s*[^\s\w,.@\/+-]))|(?:java[\s\/]*\.[\s\/]*lang)|(?:\w\s*=\s*new\s+\w+)|(?:&\s*\w+\s*\)[^,])|(?:\+[\W\d]*new\s+\w+[\W\d]*\+)|(?:document\.\w)]]></rule> + <description>Detects very basic XSS probings</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>3</impact> + </filter> + <filter> + <id>22</id> + <rule><![CDATA[(?:=\s*(?:top|this|window|content|self|frames|_content))|(?:\/\s*[gimx]*\s*[)}])|(?:[^\s]\s*=\s*script)|(?:\.\s*constructor)|(?:default\s+xml\s+namespace\s*=)|(?:\/\s*\+[^+]+\s*\+\s*\/)]]></rule> + <description>Detects advanced XSS probings via Script(), RexExp, constructors and XML namespaces</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>23</id> + <rule><![CDATA[(?:\.\s*\w+\W*=)|(?:\W\s*(?:location|document)\s*\W[^({[;]+[({[;])|(?:\(\w+\?[:\w]+\))|(?:\w{2,}\s*=\s*\d+[^&\w]\w+)|(?:\]\s*\(\s*\w+)]]></rule> + <description>Detects JavaScript location/document property access and window access obfuscation</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>24</id> + <rule><![CDATA[(?:[".]script\s*\()|(?:\$\$?\s*\(\s*[\w"])|(?:\/[\w\s]+\/\.)|(?:=\s*\/\w+\/\s*\.)|(?:(?:this|window|top|parent|frames|self|content)\[\s*[(,"]*\s*[\w\$])|(?:,\s*new\s+\w+\s*[,;)])]]></rule> + <description>Detects basic obfuscated JavaScript script injections</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>25</id> + <rule><![CDATA[(?:=\s*[$\w]\s*[\(\[])|(?:\(\s*(?:this|top|window|self|parent|_?content)\s*\))|(?:src\s*=s*(?:\w+:|\/\/))|(?:\w+\[("\w+"|\w+\|\|))|(?:[\d\W]\|\|[\d\W]|\W=\w+,)|(?:\/\s*\+\s*[a-z"])|(?:=\s*\$[^([]*\()|(?:=\s*\(\s*")]]></rule> + <description>Detects obfuscated JavaScript script injections</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>26</id> + <rule><![CDATA[(?:[^:\s\w]+\s*[^\w\/](href|protocol|host|hostname|pathname|hash|port|cookie)[^\w])]]></rule> + <description>Detects JavaScript cookie stealing and redirection attempts</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>27</id> + <rule><![CDATA[(?:(?:vbs|vbscript|data):.*[,+])|(?:\w+\s*=\W*(?!https?)\w+:)|(jar:\w+:)|(=\s*"?\s*vbs(?:ript)?:)|(language\s*=\s?"?\s*vbs(?:ript)?)|on\w+\s*=\*\w+\-"?]]></rule> + <description>Detects data: URL injections, VBS injections and common URI schemes</description> + <tags> + <tag>xss</tag> + <tag>rfe</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>28</id> + <rule><![CDATA[(?:firefoxurl:\w+\|)|(?:(?:file|res|telnet|nntp|news|mailto|chrome)\s*:\s*[%&#xu\/]+)|(wyciwyg|firefoxurl\s*:\s*\/\s*\/)]]></rule> + <description>Detects IE firefoxurl injections, cache poisoning attempts and local file inclusion/execution</description> + <tags> + <tag>xss</tag> + <tag>rfe</tag> + <tag>lfi</tag> + <tag>csrf</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>29</id> + <rule><![CDATA[(?:binding\s?=|moz-binding|behavior\s?=)|(?:[\s\/]style\s*=\s*[-\\])]]></rule> + <description>Detects bindings and behavior injections</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>rfe</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>30</id> + <rule><![CDATA[(?:=\s*\w+\s*\+\s*")|(?:\+=\s*\(\s")|(?:!+\s*[\d.,]+\w?\d*\s*\?)|(?:=\s*\[s*\])|(?:"\s*\+\s*")|(?:[^\s]\[\s*\d+\s*\]\s*[;+])|(?:"\s*[&|]+\s*")|(?:\/\s*\?\s*")|(?:\/\s*\)\s*\[)|(?:\d\?.+:\d)|(?:]\s*\[\W*\w)|(?:[^\s]\s*=\s*\/)]]></rule> + <description>Detects common XSS concatenation patterns 1/2</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>31</id> + <rule><![CDATA[(?:=\s*\d*\.\d*\?\d*\.\d*)|(?:[|&]{2,}\s*")|(?:!\d+\.\d*\?")|(?:\/:[\w.]+,)|(?:=[\d\W\s]*\[[^]]+\])|(?:\?\w+:\w+)]]></rule> + <description>Detects common XSS concatenation patterns 2/2</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>32</id> + <rule><![CDATA[(?:[^\w\s=]on(?!g\>)\w+[^=_+-]*=[^$]+(?:\W|\>)?)]]></rule> + <description>Detects possible event handlers</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>33</id> + <rule><![CDATA[(?:\<\w*:?\s(?:[^\>]*)t(?!rong))|(?:\<scri)|(<\w+:\w+)]]></rule> + <description>Detects obfuscated script tags and XML wrapped HTML</description> + <tags> + <tag>xss</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>34</id> + <rule><![CDATA[(?:\<\/\w+\s\w+)|(?:@(?:cc_on|set)[\s@,"=])]]></rule> + <description>Detects attributes in closing tags and conditional compilation tokens</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>35</id> + <rule><![CDATA[(?:--[^\n]*$)|(?:\<!-|-->)|(?:[^*]\/\*|\*\/[^*])|(?:(?:[\W\d]#|--|{)$)|(?:\/{3,}.*$)|(?:<!\[\W)|(?:\]!>)]]></rule> + <description>Detects common comment types</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + </tags> + <impact>3</impact> + </filter> + <filter> + <id>37</id> + <rule><![CDATA[(?:\<base\s+)|(?:<!(?:element|entity|\[CDATA))]]></rule> + <description>Detects base href injections and XML entity injections</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>38</id> + <rule><![CDATA[(?:\<[\/]?(?:[i]?frame|applet|isindex|marquee|keygen|script|audio|video|input|button|textarea|style|base|body|meta|link|object|embed|param|plaintext|xm\w+|image|im(?:g|port)))]]></rule> + <description>Detects possibly malicious html elements including some attributes</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + <tag>lfi</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>39</id> + <rule><![CDATA[(?:\\x[01fe][\db-ce-f])|(?:%[01fe][\db-ce-f])|(?:&#[01fe][\db-ce-f])|(?:\\[01fe][\db-ce-f])|(?:&#x[01fe][\db-ce-f])]]></rule> + <description>Detects nullbytes and other dangerous characters</description> + <tags> + <tag>id</tag> + <tag>rfe</tag> + <tag>xss</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>40</id> + <rule><![CDATA[(?:\)\s*when\s*\d+\s*then)|(?:"\s*(?:#|--|{))|(?:\/\*!\s?\d+)|(?:ch(?:a)?r\s*\(\s*\d)|(?:(?:(n?and|x?or|not)\s+|\|\||\&\&)\s*\w+\()]]></rule> + <description>Detects MySQL comments, conditions and ch(a)r injections</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>41</id> + <rule><![CDATA[(?:[\s()]case\s*\()|(?:\)\s*like\s*\()|(?:having\s*[^\s]+\s*[^\w\s])|(?:if\s?\([\d\w]\s*[=<>~])]]></rule> + <description>Detects conditional SQL injection attempts</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>42</id> + <rule><![CDATA[(?:"\s*or\s*"?\d)|(?:\\x(?:23|27|3d))|(?:^.?"$)|(?:(?:^["\\]*(?:[\d"]+|[^"]+"))+\s*(?:n?and|x?or|not|\|\||\&\&)\s*[\w"[+&!@(),.-])|(?:[^\w\s]\w+\s*[|-]\s*"\s*\w)|(?:@\w+\s+(and|or)\s*["\d]+)|(?:@[\w-]+\s(and|or)\s*[^\w\s])|(?:[^\w\s:]\s*\d\W+[^\w\s]\s*".)|(?:\Winformation_schema|table_name\W)]]></rule> + <description>Detects classic SQL injection probings 1/2</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>43</id> + <rule><![CDATA[(?:"\s*\*.+(?:or|id)\W*"\d)|(?:\^")|(?:^[\w\s"-]+(?<=and\s)(?<=or\s)(?<=xor\s)(?<=nand\s)(?<=not\s)(?<=\|\|)(?<=\&\&)\w+\()|(?:"[\s\d]*[^\w\s]+\W*\d\W*.*["\d])|(?:"\s*[^\w\s?]+\s*[^\w\s]+\s*")|(?:"\s*[^\w\s]+\s*[\W\d].*(?:#|--))|(?:".*\*\s*\d)|(?:"\s*or\s[^\d]+[\w-]+.*\d)|(?:[()*<>%+-][\w-]+[^\w\s]+"[^,])]]></rule> + <description>Detects classic SQL injection probings 2/2</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>44</id> + <rule><![CDATA[(?:\d"\s+"\s+\d)|(?:^admin\s*"|(\/\*)+"+\s?(?:--|#|\/\*|{)?)|(?:"\s*or[\w\s-]+\s*[+<>=(),-]\s*[\d"])|(?:"\s*[^\w\s]?=\s*")|(?:"\W*[+=]+\W*")|(?:"\s*[!=|][\d\s!=+-]+.*["(].*$)|(?:"\s*[!=|][\d\s!=]+.*\d+$)|(?:"\s*like\W+[\w"(])|(?:\sis\s*0\W)|(?:where\s[\s\w\.,-]+\s=)|(?:"[<>~]+")]]></rule> + <description>Detects basic SQL authentication bypass attempts 1/3</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>45</id> + <rule><![CDATA[(?:union\s*(?:all|distinct|[(!@]*)\s*[([]*\s*select)|(?:\w+\s+like\s+\")|(?:like\s*"\%)|(?:"\s*like\W*["\d])|(?:"\s*(?:n?and|x?or|not |\|\||\&\&)\s+[\s\w]+=\s*\w+\s*having)|(?:"\s*\*\s*\w+\W+")|(?:"\s*[^?\w\s=.,;)(]+\s*[(@"]*\s*\w+\W+\w)|(?:select\s*[\[\]()\s\w\.,"-]+from)|(?:find_in_set\s*\()]]></rule> + <description>Detects basic SQL authentication bypass attempts 2/3</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>46</id> + <rule><![CDATA[(?:in\s*\(+\s*select)|(?:(?:n?and|x?or|not |\|\||\&\&)\s+[\s\w+]+(?:regexp\s*\(|sounds\s+like\s*"|[=\d]+x))|("\s*\d\s*(?:--|#))|(?:"[%&<>^=]+\d\s*(=|or))|(?:"\W+[\w+-]+\s*=\s*\d\W+")|(?:"\s*is\s*\d.+"?\w)|(?:"\|?[\w-]{3,}[^\w\s.,]+")|(?:"\s*is\s*[\d.]+\s*\W.*")]]></rule> + <description>Detects basic SQL authentication bypass attempts 3/3</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>47</id> + <rule><![CDATA[(?:[\d\W]\s+as\s*["\w]+\s*from)|(?:^[\W\d]+\s*(?:union|select|create|rename|truncate|load|alter|delete|update|insert|desc))|(?:(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s+(?:(?:group_)concat|char|load_file)\s?\(?)|(?:end\s*\);)|("\s+regexp\W)|(?:[\s(]load_file\s*\()]]></rule> + <description>Detects concatenated basic SQL injection and SQLLFI attempts</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + <tag>lfi</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>48</id> + <rule><![CDATA[(?:@.+=\s*\(\s*select)|(?:\d+\s*or\s*\d+\s*[\-+])|(?:\/\w+;?\s+(?:having|and|or|select)\W)|(?:\d\s+group\s+by.+\()|(?:(?:;|#|--)\s*(?:drop|alter))|(?:(?:;|#|--)\s*(?:update|insert)\s*\w{2,})|(?:[^\w]SET\s*@\w+)|(?:(?:n?and|x?or|not |\|\||\&\&)[\s(]+\w+[\s)]*[!=+]+[\s\d]*["=()])]]></rule> + <description>Detects chained SQL injection attempts 1/2</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>49</id> + <rule><![CDATA[(?:"\s+and\s*=\W)|(?:\(\s*select\s*\w+\s*\()|(?:\*\/from)|(?:\+\s*\d+\s*\+\s*@)|(?:\w"\s*(?:[-+=|@]+\s*)+[\d(])|(?:coalesce\s*\(|@@\w+\s*[^\w\s])|(?:\W!+"\w)|(?:";\s*(?:if|while|begin))|(?:"[\s\d]+=\s*\d)|(?:order\s+by\s+if\w*\s*\()|(?:[\s(]+case\d*\W.+[tw]hen[\s(])]]></rule> + <description>Detects chained SQL injection attempts 2/2</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>50</id> + <rule><![CDATA[(?:(select|;)\s+(?:benchmark|if|sleep)\s*?\(\s*\(?\s*\w+)]]></rule> + <description>Detects SQL benchmark and sleep injection attempts including conditional queries</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>51</id> + <rule><![CDATA[(?:create\s+function\s+\w+\s+returns)|(?:;\s*(?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s*[\[(]?\w{2,})]]></rule> + <description>Detects MySQL UDF injection and other data/structure manipulation attempts</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>52</id> + <rule><![CDATA[(?:alter\s*\w+.*character\s+set\s+\w+)|(";\s*waitfor\s+time\s+")|(?:";.*:\s*goto)]]></rule> + <description>Detects MySQL charset switch and MSSQL DoS attempts</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>53</id> + <rule><![CDATA[(?:procedure\s+analyse\s*\()|(?:;\s*(declare|open)\s+[\w-]+)|(?:create\s+(procedure|function)\s*\w+\s*\(\s*\)\s*-)|(?:declare[^\w]+[@#]\s*\w+)|(exec\s*\(\s*@)]]></rule> + <description>Detects MySQL and PostgreSQL stored procedure/function injections</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>54</id> + <rule><![CDATA[(?:select\s*pg_sleep)|(?:waitfor\s*delay\s?"+\s?\d)|(?:;\s*shutdown\s*(?:;|--|#|\/\*|{))]]></rule> + <description>Detects Postgres pg_sleep injection, waitfor delay attacks and database shutdown attempts</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>55</id> + <rule><![CDATA[(?:\sexec\s+xp_cmdshell)|(?:"\s*!\s*["\w])|(?:from\W+information_schema\W)|(?:(?:(?:current_)?user|database|schema|connection_id)\s*\([^\)]*)|(?:";?\s*(?:select|union|having)\s*[^\s])|(?:\wiif\s*\()|(?:exec\s+master\.)|(?:union select @)|(?:union[\w(\s]*select)|(?:select.*\w?user\()|(?:into[\s+]+(?:dump|out)file\s*")]]></rule> + <description>Detects MSSQL code execution and information gathering attempts</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>56</id> + <rule><![CDATA[(?:merge.*using\s*\()|(execute\s*immediate\s*")|(?:\W+\d*\s*having\s*[^\s\-])|(?:match\s*[\w(),+-]+\s*against\s*\()]]></rule> + <description>Detects MATCH AGAINST, MERGE, EXECUTE IMMEDIATE and HAVING injections</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>57</id> + <rule><![CDATA[(?:,.*[)\da-f"]"(?:".*"|\Z|[^"]+))|(?:\Wselect.+\W*from)|((?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s*\(\s*space\s*\()]]></rule> + <description>Detects MySQL comment-/space-obfuscated injections and backtick termination</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>58</id> + <rule><![CDATA[(?:@[\w-]+\s*\()|(?:]\s*\(\s*["!]\s*\w)|(?:<[?%](?:php)?.*(?:[?%]>)?)|(?:;[\s\w|]*\$\w+\s*=)|(?:\$\w+\s*=(?:(?:\s*\$?\w+\s*[(;])|\s*".*"))|(?:;\s*\{\W*\w+\s*\()]]></rule> + <description>Detects code injection attempts 1/3</description> + <tags> + <tag>id</tag> + <tag>rfe</tag> + <tag>lfi</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>59</id> + <rule><![CDATA[(?:(?:[;]+|(<[?%](?:php)?)).*(?:define|eval|file_get_contents|include|require|require_once|set|shell_exec|phpinfo|system|passthru|preg_\w+|execute)\s*["(@])]]></rule> + <description>Detects code injection attempts 2/3</description> + <tags> + <tag>id</tag> + <tag>rfe</tag> + <tag>lfi</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>60</id> + <rule><![CDATA[(?:(?:[;]+|(<[?%](?:php)?)).*[^\w](?:echo|print|print_r|var_dump|[fp]open))|(?:;\s*rm\s+-\w+\s+)|(?:;.*{.*\$\w+\s*=)|(?:\$\w+\s*\[\]\s*=\s*)]]></rule> + <description>Detects code injection attempts 3/3</description> + <tags> + <tag>id</tag> + <tag>rfe</tag> + <tag>lfi</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>62</id> + <rule><![CDATA[(?:function[^(]*\([^)]*\))|(?:(?:delete|void|throw|instanceof|new|typeof)[^\w.]+\w+\s*[([])|([)\]]\s*\.\s*\w+\s*=)|(?:\(\s*new\s+\w+\s*\)\.)]]></rule> + <description>Detects common function declarations and special JS operators</description> + <tags> + <tag>id</tag> + <tag>rfe</tag> + <tag>lfi</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>63</id> + <rule><![CDATA[(?:[\w.-]+@[\w.-]+%(?:[01][\db-ce-f])+\w+:)]]></rule> + <description>Detects common mail header injections</description> + <tags> + <tag>id</tag> + <tag>spam</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>64</id> + <rule><![CDATA[(?:\.pl\?\w+=\w?\|\w+;)|(?:\|\(\w+=\*)|(?:\*\s*\)+\s*;)]]></rule> + <description>Detects perl echo shellcode injection and LDAP vectors</description> + <tags> + <tag>lfi</tag> + <tag>rfe</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>65</id> + <rule><![CDATA[(?:(^|\W)const\s+[\w\-]+\s*=)|(?:(?:do|for|while)\s*\([^;]+;+\))|(?:(?:^|\W)on\w+\s*=[\w\W]*(?:on\w+|alert|eval|print|confirm|prompt))|(?:groups=\d+\(\w+\))|(?:(.)\1{128,})]]></rule> + <description>Detects basic XSS DoS attempts</description> + <tags> + <tag>rfe</tag> + <tag>dos</tag> + </tags> + <impact>5</impact> + </filter> + <filter> + <id>67</id> + <rule><![CDATA[(?:\({2,}\+{2,}:{2,})|(?:\({2,}\+{2,}:+)|(?:\({3,}\++:{2,})|(?:\$\[!!!\])]]></rule> + <description>Detects unknown attack vectors based on PHPIDS Centrifuge detection</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + <tag>id</tag> + <tag>rfe</tag> + <tag>lfi</tag> + </tags> + <impact>7</impact> + </filter> + <filter> + <id>68</id> + <rule><![CDATA[(?:[\s\/"]+[-\w\/\\\*]+\s*=.+(?:\/\s*>))]]></rule> + <description>Finds attribute breaking injections including obfuscated attributes</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>69</id> + <rule><![CDATA[(?:(?:msgbox|eval)\s*\+|(?:language\s*=\*vbscript))]]></rule> + <description>Finds basic VBScript injection attempts</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>70</id> + <rule><![CDATA[(?:\[\$(?:ne|eq|lte?|gte?|n?in|mod|all|size|exists|type|slice|or)\])]]></rule> + <description>Finds basic MongoDB SQL injection attempts</description> + <tags> + <tag>sqli</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>71</id> + <rule><![CDATA[(?:[\s\d\/"]+(?:on\w+|style|poster|background)=[$"\w])|(?:-type\s*:\s*multipart)]]></rule> + <description>Finds malicious attribute injection attempts and MHTML attacks</description> + <tags> + <tag>xss</tag> + <tag>csrf</tag> + </tags> + <impact>6</impact> + </filter> + <filter> + <id>72</id> + <rule><![CDATA[(?:(sleep\((\s*)(\d*)(\s*)\)|benchmark\((.*)\,(.*)\)))]]></rule> + <description>Detects blind sqli tests using sleep() or benchmark().</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>73</id> + <rule><![CDATA[(?:(\%SYSTEMROOT\%))]]></rule> + <description>An attacker is trying to locate a file to read or write.</description> + <tags> + <tag>files</tag> + <tag>id</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>75</id> + <rule><![CDATA[(?:(((.*)\%[c|d|i|e|f|g|o|s|u|x|p|n]){8}))]]></rule> + <description>Looking for a format string attack</description> + <tags> + <tag>format string</tag> + </tags> + <impact>4</impact> + </filter> + <filter> + <id>76</id> + <rule><![CDATA[(?:(union(.*)select(.*)from))]]></rule> + <description>Looking for basic sql injection. Common attack string for mysql, oracle and others.</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>3</impact> + </filter> + <filter> + <id>77</id> + <rule><![CDATA[(?:^(-0000023456|4294967295|4294967296|2147483648|2147483647|0000012345|-2147483648|-2147483649|0000023456|2.2250738585072007e-308|1e309)$)]]></rule> + <description>Looking for integer overflow attacks, these are taken from skipfish, except 2.2250738585072007e-308 is the "magic number" crash</description> + <tags> + <tag>sqli</tag> + <tag>id</tag> + </tags> + <impact>3</impact> + </filter> + <filter> + <id>78</id> + <rule><![CDATA[(?:%23.*?%0a)]]></rule> + <description>Detects SQL comment filter evasion</description> + <tags> + <tag>format string</tag> + </tags> + <impact>4</impact> + </filter> +</filters> diff --git a/interface/lib/classes/IDS/license.txt b/interface/lib/classes/IDS/license.txt new file mode 100644 index 0000000000..4a3cd1b3e2 --- /dev/null +++ b/interface/lib/classes/IDS/license.txt @@ -0,0 +1,18 @@ + * + * The files in the folder IDS and its subfolders belong to the + * PHP Intrusion Detection System software and are licensed under LGPL. + * + * Copyright (c) 2008 PHPIDS group (https://phpids.org) + * + * PHPIDS is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, version 3 of the License, or + * (at your option) any later version. + * + * PHPIDS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with PHPIDS. If not, see <http://www.gnu.org/licenses/>. \ No newline at end of file diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 56d43f879b..b96b8d0199 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -121,6 +121,52 @@ class db extends mysqli parent::query( 'SET NAMES '.$this->dbCharset); parent::query( "SET character_set_results = '".$this->dbCharset."', character_set_client = '".$this->dbCharset."', character_set_connection = '".$this->dbCharset."', character_set_database = '".$this->dbCharset."', character_set_server = '".$this->dbCharset."'"); } + + private function securityScan($string) { + global $app, $conf; + + // get security config + if(isset($app)) { + $app->uses('getconf'); + $ids_config = $app->getconf->get_security_config('ids'); + + if($ids_config['sql_scan_enabled'] == 'yes') { + + $string_orig = $string; + + //echo $string; + $chars = array(';', '#', '/*', '*/', '--', ' UNION ', '\\\'', '\\"'); + + $string = str_replace('\\\\', '', $string); + $string = preg_replace('/(^|[^\\\])([\'"])(.*?[^\\\])\\2/is', '$1', $string); + $ok = true; + + if(substr_count($string, "`") % 2 != 0 || substr_count($string, "'") % 2 != 0 || substr_count($string, '"') % 2 != 0) { + $app->log("SQL injection warning (" . $string_orig . ")",2); + $ok = false; + } else { + foreach($chars as $char) { + if(strpos($string, $char) !== false) { + $ok = false; + $app->log("SQL injection warning (" . $string_orig . ")",2); + break; + } + } + } + if($ok == true) { + return true; + } else { + if($ids_config['sql_scan_action'] == 'warn') { + // we return false in warning level. + return false; + } else { + // if sql action = 'block' or anything else then stop here. + $app->error('Possible SQL injection. All actions have been logged.'); + } + } + } + } + } public function query($queryString) { global $conf; @@ -143,6 +189,7 @@ class db extends mysqli } } } while($ok == false); + $this->securityScan($queryString); $this->queryId = parent::query($queryString); $this->updateError('DB::query('.$queryString.') -> mysqli_query'); if($this->errorNumber && $conf['demo_mode'] === false) debug_print_backtrace(); diff --git a/interface/lib/classes/getconf.inc.php b/interface/lib/classes/getconf.inc.php index 5cc223ae79..0cc282e021 100644 --- a/interface/lib/classes/getconf.inc.php +++ b/interface/lib/classes/getconf.inc.php @@ -31,6 +31,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class getconf { private $config; + private $security_config; public function get_server_config($server_id, $section = '') { global $app; @@ -55,15 +56,20 @@ class getconf { return ($section == '') ? $this->config['global'] : $this->config['global'][$section]; } + // Function has been moved to $app->get_security_config($section) public function get_security_config($section = '') { global $app; + + if(is_array($this->security_config)) { + return ($section == '') ? $this->security_config : $this->security_config[$section]; + } else { + $this->uses('ini_parser'); + $security_config_path = '/usr/local/ispconfig/security/security_settings.ini'; + if(!is_file($security_config_path)) $security_config_path = realpath(ISPC_ROOT_PATH.'/../security/security_settings.ini'); + $this->security_config = $this->ini_parser->parse_ini_string(file_get_contents($security_config_path)); - $app->uses('ini_parser'); - $security_config_path = '/usr/local/ispconfig/security/security_settings.ini'; - if(!is_file($security_config_path)) $security_config_path = realpath(ISPC_ROOT_PATH.'/../security/security_settings.ini'); - $security_config = $app->ini_parser->parse_ini_string(file_get_contents($security_config_path)); - - return ($section == '') ? $security_config : $security_config[$section]; + return ($section == '') ? $this->security_config : $this->security_config[$section]; + } } } diff --git a/interface/lib/classes/ids.inc.php b/interface/lib/classes/ids.inc.php new file mode 100644 index 0000000000..a98b0b265a --- /dev/null +++ b/interface/lib/classes/ids.inc.php @@ -0,0 +1,149 @@ +<?php + +/* +Copyright (c) 2014, Till Brehm, ISPConfig UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class ids { + + public function start() + { + global $app, $conf; + + $security_config = $app->getconf->get_security_config('ids'); + + set_include_path( + get_include_path() + . PATH_SEPARATOR + . ISPC_CLASS_PATH.'/' + ); + + require_once(ISPC_CLASS_PATH.'/IDS/Init.php'); + require_once(ISPC_CLASS_PATH.'/IDS/Monitor.php'); + require_once(ISPC_CLASS_PATH.'/IDS/Filter.php'); + require_once(ISPC_CLASS_PATH.'/IDS/Filter/Storage.php'); + require_once(ISPC_CLASS_PATH.'/IDS/Report.php'); + require_once(ISPC_CLASS_PATH.'/IDS/Event.php'); + require_once(ISPC_CLASS_PATH.'/IDS/Converter.php'); + + $ids_request = array( + 'SESSION' => $_SESSION, + 'GET' => $_GET, + 'POST' => $_POST, + 'COOKIE' => $_COOKIE + ); + + $ids_init = IDS\Init::init(ISPC_CLASS_PATH.'/IDS/Config/Config.ini.php'); + + $ids_init->config['General']['base_path'] = ISPC_CLASS_PATH.'/IDS/'; + $ids_init->config['General']['tmp_path'] = '../../../temp'; + $ids_init->config['General']['use_base_path'] = true; + $ids_init->config['Caching']['caching'] = 'none'; + $ids_init->config['Logging']['path'] = '../../../temp/ids.log'; + + $current_script_name = trim($_SERVER['SCRIPT_NAME']); + + // Get whitelist + $whitelist_path = '/usr/local/ispconfig/security/ids.whitelist'; + if(is_file('/usr/local/ispconfig/security/ids.whitelist.custom')) $whitelist_path = '/usr/local/ispconfig/security/ids.whitelist.custom'; + if(!is_file($whitelist_path)) $whitelist_path = realpath(ISPC_ROOT_PATH.'/../security/ids.whitelist'); + + $whitelist_lines = file($whitelist_path); + if(is_array($whitelist_lines)) { + foreach($whitelist_lines as $line) { + $line = trim($line); + if(substr($line,0,1) != '#') { + list($user,$path,$varname) = explode(':',$line); + if($current_script_name == $path) { + if($user = 'any' + || ($user == 'user' && ($_SESSION['s']['user']['typ'] == 'user' || $_SESSION['s']['user']['typ'] == 'admin')) + || ($user == 'admin' && $_SESSION['s']['user']['typ'] == 'admin')) { + $ids_init->config['General']['exceptions'][] = $varname; + + } + } + } + } + } + + // Get HTML fields + $htmlfield_path = '/usr/local/ispconfig/security/ids.htmlfield'; + if(is_file('/usr/local/ispconfig/security/ids.htmlfield.custom')) $htmlfield_path = '/usr/local/ispconfig/security/ids.htmlfield.custom'; + if(!is_file($htmlfield_path)) $htmlfield_path = realpath(ISPC_ROOT_PATH.'/../security/ids.htmlfield'); + + $htmlfield_lines = file($htmlfield_path); + if(is_array($htmlfield_lines)) { + foreach($htmlfield_lines as $line) { + $line = trim($line); + if(substr($line,0,1) != '#') { + list($user,$path,$varname) = explode(':',$line); + if($current_script_name == $path) { + if($user = 'any' + || ($user == 'user' && ($_SESSION['s']['user']['typ'] == 'user' || $_SESSION['s']['user']['typ'] == 'admin')) + || ($user == 'admin' && $_SESSION['s']['user']['typ'] == 'admin')) { + $ids_init->config['General']['html'][] = $varname; + } + } + } + } + } + + $ids = new IDS\Monitor($ids_init); + $ids_result = $ids->run($ids_request); + + if (!$ids_result->isEmpty()) { + + $impact = $ids_result->getImpact(); + + if($impact >= $security_config['ids_log_level']) { + $ids_log = ISPC_ROOT_PATH.'/temp/ids.log'; + if(!is_file($ids_log)) touch($ids_log); + + $user = isset($_SESSION['s']['user']['typ'])?$_SESSION['s']['user']['typ']:'any'; + + $log_lines = ''; + foreach ($ids_result->getEvents() as $event) { + $log_lines .= $user.':'.$current_script_name.':'.$event->getName()."\n"; + } + file_put_contents($ids_log,$log_lines,FILE_APPEND); + + } + + if($impact >= $security_config['ids_warn_level']) { + $app->log("PHP IDS Alert.".$ids_result, 2); + } + + if($impact >= $security_config['ids_block_level']) { + $app->error("Possible attack detected. This action has been logged.",'', true, 2); + } + + } + } + +} + +?> diff --git a/security/apache_directives.blacklist b/security/apache_directives.blacklist new file mode 100644 index 0000000000..edb4b503d3 --- /dev/null +++ b/security/apache_directives.blacklist @@ -0,0 +1,3 @@ +/^\s*(LoadModule|LoadFile|Include)(\s+|[\\\\])/mi +/^\s*(SuexecUserGroup|suPHP_UserGroup|suPHP_PHPPath|suPHP_ConfigPath)(\s+|[\\\\])/mi +/^\s*(FCGIWrapper|FastCgiExternalServer)(\s+|[\\\\])/mi \ No newline at end of file diff --git a/security/ids.htmlfield b/security/ids.htmlfield new file mode 100644 index 0000000000..2c6e92a4a6 --- /dev/null +++ b/security/ids.htmlfield @@ -0,0 +1,5 @@ +# Format: usertype:url_path:field +# usertype can be: any/client/admin +# Example: +# admin:/admin/language_edit.php:POST.records.weak_password_txt +admin:/admin/language_edit.php:POST.records \ No newline at end of file diff --git a/security/ids.whitelist b/security/ids.whitelist new file mode 100644 index 0000000000..58a96e6ac1 --- /dev/null +++ b/security/ids.whitelist @@ -0,0 +1,45 @@ +# Format: usertype:url_path:field +# usertype can be: any/client/admin +# Example: +# admin:/admin/language_edit.php:POST.records.weak_password_txt +admin:/admin/server_config_edit.php:POST.maildir_path +admin:/admin/server_config_edit.php:POST.website_path +admin:/admin/server_config_edit.php:POST.website_symlinks +admin:/admin/server_config_edit.php:POST.vhost_conf_dir +admin:/admin/server_config_edit.php:POST.vhost_conf_enabled_dir +admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_dir +admin:/admin/server_config_edit.php:POST.nginx_vhost_conf_enabled_dir +admin:/admin/server_config_edit.php:POST.php_open_basedir +admin:/admin/server_config_edit.php:POST.awstats_pl +admin:/admin/server_config_edit.php:POST.fastcgi_starter_path +admin:/admin/server_config_edit.php:POST.fastcgi_bin +admin:/admin/server_config_edit.php:POST.jailkit_chroot_home +admin:/admin/remote_user_edit.php:POST.remote_functions.1 +admin:/admin/firewall_edit.php:POST.tcp_port +admin:/admin/system_config_edit.php:POST.admin_dashlets_right +admin:/admin/system_config_edit.php:POST.reseller_dashlets_left +admin:/admin/system_config_edit.php:POST.reseller_dashlets_right +admin:/admin/language_edit.php:POST.records.weak_password_txt +user:/client/client_message.php:POST.message +user:/client/message_template_edit.php:POST.subject +admin:/dns/dns_template_edit.php:POST.template +admin:/nav.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/show_sys_state.php:SESSION.s.module.nav.1.items.0.title +admin:/capp.php:SESSION.s.module.nav.1.items.0.title +admin:/keepalive.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/log_list.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/datalog_list.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/show_data.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/show_sys_state.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/show_monit.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/show_munin.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/show_data.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/show_log.php:SESSION.s.module.nav.1.items.0.title +admin:/monitor/log_del.php:SESSION.s.module.nav.1.items.0.title +admin:/keepalive.php:SESSION.s.module.nav.1.items.0.title +admin:/capp.php:SESSION.s.module.nav.1.items.0.title +admin:/sites/web_vhost_subdomain_edit.php:POST.php_open_basedir +admin:/sites/web_domain_edit.php:POST.php_open_basedir +admin:/sites/web_domain_edit.php:POST.apache_directives +user:/sites/shell_user_edit.php:POST.ssh_rsa +user:/sites/cron_edit.php:POST.command \ No newline at end of file diff --git a/security/security_settings.ini b/security/security_settings.ini index 4dfe001624..43bcebf1e9 100644 --- a/security/security_settings.ini +++ b/security/security_settings.ini @@ -16,6 +16,15 @@ admin_allow_software_packages=superadmin admin_allow_software_repo=superadmin remote_api_allowed=yes +[ids] +ids_enabled=yes +ids_log_level=1 +ids_warn_level=5 +ids_block_level=30 +sql_scan_enabled=yes +sql_scan_action=warn +apache_directives_scan_enabled=yes + [systemcheck] security_admin_email=root@localhost security_admin_email_subject=Security alert from server -- GitLab From 984aadfc91779e11564ed57742bb349e7b9746a1 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 25 Aug 2014 15:49:06 +0200 Subject: [PATCH 116/158] Fixed: FS#3639 - Error: [Invalid reseller] after update --- interface/lib/classes/remoting.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index 0ccfd65478..4a6609eb23 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -1426,7 +1426,7 @@ class remoting { if($params['parent_client_id']) { // check if this one is reseller - $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($client_id)); + $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($params['parent_client_id'])); if($check['limit_client'] == 0) { $this->server->fault('Invalid reseller', 'Selected client is not a reseller.'); return false; -- GitLab From a063c3a3b423884c7bc038ffb67cdd1e83859eb3 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 25 Aug 2014 15:49:54 +0200 Subject: [PATCH 117/158] Fixed: FS#3639 - Error: [Invalid reseller] after update (missing fix for previous commit) --- interface/lib/classes/remoting.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index 4a6609eb23..b47d9cf73c 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -1461,7 +1461,7 @@ class remoting { if($params['parent_client_id']) { // check if this one is reseller - $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($client_id)); + $check = $app->db->queryOneRecord('SELECT `limit_client` FROM `client` WHERE `client_id` = ' . intval($params['parent_client_id'])); if($check['limit_client'] == 0) { $this->server->fault('Invalid reseller', 'Selected client is not a reseller.'); return false; -- GitLab From 4f2cc4eabd8cdafb15042d70129d8ea5e2aa815c Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 25 Aug 2014 16:16:53 +0200 Subject: [PATCH 118/158] Syntax errors. --- interface/lib/classes/getconf.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/getconf.inc.php b/interface/lib/classes/getconf.inc.php index 0cc282e021..a246b1853c 100644 --- a/interface/lib/classes/getconf.inc.php +++ b/interface/lib/classes/getconf.inc.php @@ -63,10 +63,10 @@ class getconf { if(is_array($this->security_config)) { return ($section == '') ? $this->security_config : $this->security_config[$section]; } else { - $this->uses('ini_parser'); + $app->uses('ini_parser'); $security_config_path = '/usr/local/ispconfig/security/security_settings.ini'; if(!is_file($security_config_path)) $security_config_path = realpath(ISPC_ROOT_PATH.'/../security/security_settings.ini'); - $this->security_config = $this->ini_parser->parse_ini_string(file_get_contents($security_config_path)); + $this->security_config = $app->ini_parser->parse_ini_string(file_get_contents($security_config_path)); return ($section == '') ? $this->security_config : $this->security_config[$section]; } -- GitLab From 614b23b18053c58c3f85db5ceaa982484175d276 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 25 Aug 2014 16:35:53 +0200 Subject: [PATCH 119/158] Added apache directives check agains regex blacklist in security settings. --- interface/lib/classes/IDS/Monitor.php | 4 +- interface/lib/classes/validate_domain.inc.php | 40 +++++++++++++++++++ interface/web/sites/form/web_domain.tform.php | 7 ++++ .../sites/form/web_vhost_subdomain.tform.php | 7 ++++ .../web/sites/lib/lang/ar_web_domain.lng | 1 + .../web/sites/lib/lang/bg_web_domain.lng | 1 + .../web/sites/lib/lang/br_web_domain.lng | 1 + .../web/sites/lib/lang/cz_web_domain.lng | 1 + .../web/sites/lib/lang/de_web_domain.lng | 1 + .../web/sites/lib/lang/el_web_domain.lng | 1 + .../web/sites/lib/lang/en_web_domain.lng | 1 + .../web/sites/lib/lang/es_web_domain.lng | 1 + .../web/sites/lib/lang/fi_web_domain.lng | 1 + .../web/sites/lib/lang/fr_web_domain.lng | 1 + .../web/sites/lib/lang/hr_web_domain.lng | 1 + .../web/sites/lib/lang/hu_web_domain.lng | 1 + .../web/sites/lib/lang/id_web_domain.lng | 1 + .../web/sites/lib/lang/it_web_domain.lng | 1 + .../web/sites/lib/lang/ja_web_domain.lng | 1 + .../web/sites/lib/lang/nl_web_domain.lng | 1 + .../web/sites/lib/lang/pl_web_domain.lng | 1 + .../web/sites/lib/lang/pt_web_domain.lng | 1 + .../web/sites/lib/lang/ro_web_domain.lng | 1 + .../web/sites/lib/lang/ru_web_domain.lng | 1 + .../web/sites/lib/lang/se_web_domain.lng | 1 + .../web/sites/lib/lang/sk_web_domain.lng | 1 + .../web/sites/lib/lang/tr_web_domain.lng | 1 + 27 files changed, 79 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/IDS/Monitor.php b/interface/lib/classes/IDS/Monitor.php index f93e748e49..90c89589d2 100644 --- a/interface/lib/classes/IDS/Monitor.php +++ b/interface/lib/classes/IDS/Monitor.php @@ -250,7 +250,7 @@ class Monitor $filterSet = $this->storage->getFilterSet(); if ($tags = $this->tags) { - $filterSet = array_filter( + $filterSet = @array_filter( $filterSet, function (Filter $filter) use ($tags) { return (bool) array_intersect($tags, $filter->getTags()); @@ -259,7 +259,7 @@ class Monitor } $scanKeys = $this->scanKeys; - $filterSet = array_filter( + $filterSet = @array_filter( $filterSet, function (Filter $filter) use ($key, $value, $scanKeys) { return $filter->match($value) || $scanKeys && $filter->match($key); diff --git a/interface/lib/classes/validate_domain.inc.php b/interface/lib/classes/validate_domain.inc.php index d92de9b943..8df0d2f1aa 100644 --- a/interface/lib/classes/validate_domain.inc.php +++ b/interface/lib/classes/validate_domain.inc.php @@ -97,6 +97,45 @@ class validate_domain { $result = $this->_check_unique($field_value . '.' . $check_domain, true); if(!$result) return $this->get_error('domain_error_autosub'); } + + /* Check apache directives */ + function web_apache_directives($field_name, $field_value, $validator) { + global $app; + + if(trim($field_value) != '') { + $security_config = $app->getconf->get_security_config('ids'); + + if($security_config['apache_directives_scan_enabled'] == 'yes') { + + // Get blacklist + $blacklist_path = '/usr/local/ispconfig/security/apache_directives.blacklist'; + if(is_file('/usr/local/ispconfig/security/apache_directives.blacklist.custom')) $blacklist_path = '/usr/local/ispconfig/security/apache_directives.blacklist.custom'; + if(!is_file($blacklist_path)) $blacklist_path = realpath(ISPC_ROOT_PATH.'/../security/apache_directives.blacklist'); + + $directives = explode("\n",$field_value); + $regex = explode("\n",file_get_contents($blacklist_path)); + $blocked = false; + $blocked_line = ''; + + if(is_array($directives) && is_array($regex)) { + foreach($directives as $directive) { + $directive = trim($directive); + foreach($regex as $r) { + if(preg_match(trim($r),$directive)) { + $blocked = true; + $blocked_line = $directive; + }; + } + } + } + } + } + + if($blocked === true) { + return $this->get_error('apache_directive_blocked_error').' '.$blocked_line; + } + } + /* internal validator function to match regexp */ function _regex_validate($domain_name, $allow_wildcard = false) { @@ -175,5 +214,6 @@ class validate_domain { } return true; // admin may always add wildcard domain } + } diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php index efaea89cf4..16a0c856c2 100644 --- a/interface/web/sites/form/web_domain.tform.php +++ b/interface/web/sites/form/web_domain.tform.php @@ -730,6 +730,13 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'apache_directives' => array ( 'datatype' => 'TEXT', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_domain', + 'function' => 'web_apache_directives', + 'errmsg' => 'apache_directive_blockd_error' + ), + ), 'default' => '', 'value' => '', 'width' => '30', diff --git a/interface/web/sites/form/web_vhost_subdomain.tform.php b/interface/web/sites/form/web_vhost_subdomain.tform.php index 3aa2276fc5..55dd261df1 100644 --- a/interface/web/sites/form/web_vhost_subdomain.tform.php +++ b/interface/web/sites/form/web_vhost_subdomain.tform.php @@ -706,6 +706,13 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'apache_directives' => array ( 'datatype' => 'TEXT', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_domain', + 'function' => 'web_apache_directives', + 'errmsg' => 'apache_directive_blockd_error' + ), + ), 'default' => '', 'value' => '', 'width' => '30', diff --git a/interface/web/sites/lib/lang/ar_web_domain.lng b/interface/web/sites/lib/lang/ar_web_domain.lng index 539d3b7124..1714b64177 100644 --- a/interface/web/sites/lib/lang/ar_web_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_domain.lng b/interface/web/sites/lib/lang/bg_web_domain.lng index 3af58cd1fa..594b6f2c7c 100644 --- a/interface/web/sites/lib/lang/bg_web_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index 8b4484eb71..21525c5d95 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng index 99c9e10540..db8f37f9db 100644 --- a/interface/web/sites/lib/lang/cz_web_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(OddÄ›lte vÃce adresářů Äárkami. Vzor: $wb['backup_excludes_error_regex'] = 'VylouÄené adresáře obsahujà neplatné znaky.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Neplatné nastavenà php.ini'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng index c005f90c2c..b90ff9a53a 100644 --- a/interface/web/sites/lib/lang/de_web_domain.lng +++ b/interface/web/sites/lib/lang/de_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Mehrere Verzeichnisse mit Kommas trennen. Be $wb['backup_excludes_error_regex'] = 'Die auszuschließenden Verzeichnisse enthalten ungültige Zeichen.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Unzulässige php.ini-Einstellungen'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Die Apache Direktive wurde durch die Sicherheitsrichtline blockiert:'; ?> diff --git a/interface/web/sites/lib/lang/el_web_domain.lng b/interface/web/sites/lib/lang/el_web_domain.lng index bc9a8359ba..b2792cefb7 100644 --- a/interface/web/sites/lib/lang/el_web_domain.lng +++ b/interface/web/sites/lib/lang/el_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index 0478e9972c..14b3d526fd 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/es_web_domain.lng b/interface/web/sites/lib/lang/es_web_domain.lng index f56e895dca..48c37ffd8e 100644 --- a/interface/web/sites/lib/lang/es_web_domain.lng +++ b/interface/web/sites/lib/lang/es_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_domain.lng b/interface/web/sites/lib/lang/fi_web_domain.lng index e5323b21cc..e13fb8f54a 100755 --- a/interface/web/sites/lib/lang/fi_web_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_domain.lng b/interface/web/sites/lib/lang/fr_web_domain.lng index 00c2dcf151..7c01ca3f94 100644 --- a/interface/web/sites/lib/lang/fr_web_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_domain.lng b/interface/web/sites/lib/lang/hr_web_domain.lng index 51fcb92d66..a7927a354b 100644 --- a/interface/web/sites/lib/lang/hr_web_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_domain.lng b/interface/web/sites/lib/lang/hu_web_domain.lng index e160449c01..3fc994edc4 100644 --- a/interface/web/sites/lib/lang/hu_web_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/id_web_domain.lng b/interface/web/sites/lib/lang/id_web_domain.lng index ef3423ee36..8ed9ad9dfe 100644 --- a/interface/web/sites/lib/lang/id_web_domain.lng +++ b/interface/web/sites/lib/lang/id_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/it_web_domain.lng b/interface/web/sites/lib/lang/it_web_domain.lng index c946023d5e..5a2bdf5448 100644 --- a/interface/web/sites/lib/lang/it_web_domain.lng +++ b/interface/web/sites/lib/lang/it_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_domain.lng b/interface/web/sites/lib/lang/ja_web_domain.lng index d32a9d19b3..41ce4717fd 100644 --- a/interface/web/sites/lib/lang/ja_web_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng index 1efbbc6e3f..aa3134b92e 100644 --- a/interface/web/sites/lib/lang/nl_web_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_domain.lng b/interface/web/sites/lib/lang/pl_web_domain.lng index ed288131e7..858b35c6f4 100644 --- a/interface/web/sites/lib/lang/pl_web_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_domain.lng b/interface/web/sites/lib/lang/pt_web_domain.lng index 3d197794e9..ac0f7f724f 100644 --- a/interface/web/sites/lib/lang/pt_web_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_domain.lng b/interface/web/sites/lib/lang/ro_web_domain.lng index e568b8cf4a..d4667d00c4 100644 --- a/interface/web/sites/lib/lang/ro_web_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_domain.lng b/interface/web/sites/lib/lang/ru_web_domain.lng index c192656924..06d82c1a2b 100644 --- a/interface/web/sites/lib/lang/ru_web_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index 5156df19f8..d25c8b1528 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Ogiltiga php.ini-inställningar'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_domain.lng b/interface/web/sites/lib/lang/sk_web_domain.lng index 5497f9f5df..e38610de4f 100644 --- a/interface/web/sites/lib/lang/sk_web_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng index 59dc02aa8c..557b69b25b 100644 --- a/interface/web/sites/lib/lang/tr_web_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_domain.lng @@ -128,4 +128,5 @@ $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. E $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; +$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> -- GitLab From 1f4d646d3229aa4bdfe17b4653b2cd73d48b5f9a Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 25 Aug 2014 16:43:27 +0200 Subject: [PATCH 120/158] Show all blocked apache directives lines in error message. --- interface/lib/classes/validate_domain.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/validate_domain.inc.php b/interface/lib/classes/validate_domain.inc.php index 8df0d2f1aa..a072412584 100644 --- a/interface/lib/classes/validate_domain.inc.php +++ b/interface/lib/classes/validate_domain.inc.php @@ -123,7 +123,7 @@ class validate_domain { foreach($regex as $r) { if(preg_match(trim($r),$directive)) { $blocked = true; - $blocked_line = $directive; + $blocked_line .= $directive.'<br />'; }; } } -- GitLab From f9529b330f229fd845fe4f11d612610a84888de1 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 25 Aug 2014 16:45:33 +0200 Subject: [PATCH 121/158] Set higher IDS block level to avaoid false positives until we have a complete whitelist. --- security/security_settings.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/security_settings.ini b/security/security_settings.ini index 43bcebf1e9..85d0433443 100644 --- a/security/security_settings.ini +++ b/security/security_settings.ini @@ -20,7 +20,7 @@ remote_api_allowed=yes ids_enabled=yes ids_log_level=1 ids_warn_level=5 -ids_block_level=30 +ids_block_level=100 sql_scan_enabled=yes sql_scan_action=warn apache_directives_scan_enabled=yes -- GitLab From fc0a1c8d6171243c8184f99f506b1bba13a36b25 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 25 Aug 2014 17:01:07 +0200 Subject: [PATCH 122/158] - fixed sql injection regex --- interface/lib/classes/db_mysql.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index b96b8d0199..6609ec94ee 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -138,7 +138,7 @@ class db extends mysqli $chars = array(';', '#', '/*', '*/', '--', ' UNION ', '\\\'', '\\"'); $string = str_replace('\\\\', '', $string); - $string = preg_replace('/(^|[^\\\])([\'"])(.*?[^\\\])\\2/is', '$1', $string); + $string = preg_replace('/(^|[^\\\])([\'"])(.*?[^\\\]?)\\2/is', '$1', $string); $ok = true; if(substr_count($string, "`") % 2 != 0 || substr_count($string, "'") % 2 != 0 || substr_count($string, '"') % 2 != 0) { -- GitLab From 7536c8e4a052bc889e434da3f6df8ae47faedd3d Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 25 Aug 2014 17:10:10 +0200 Subject: [PATCH 123/158] Updated security README.txt --- security/README.txt | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/security/README.txt b/security/README.txt index c73231237c..b68f64780f 100644 --- a/security/README.txt +++ b/security/README.txt @@ -69,6 +69,45 @@ Setting: remote_api_allowed Options: yes/no Description: Disables the remote API +Setting: ids_enabled +Options: yes/no +Description: Enables the Intrusion Detection System + +Setting: ids_log_level +Options: 1 (number, default = 1) +Description: IDS score that triggers the log in /usr/local/ispconfig/interface/temp/ids.log + This log can be used to feed the whitelist. + + Example: + + cat /usr/local/ispconfig/interface/temp/ids.log >> /usr/local/ispconfig/security/ids.whitelist + rm -f /usr/local/ispconfig/interface/temp/ids.log + + If you want to use a custom whitelist, then store it as /usr/local/ispconfig/security/ids.whitelist.custom + +Setting: ids_warn_level +Options: 5 (number, default = 5) +Description: When the IDS score exceeds this level, a error message is logged into the system log. No message is displayed to the user. + +Setting: ids_block_level +Options: 100 (number, default = 100) +Description: When the IDS score exceeds this level, a error message is shown to the user and further processing is blocked. A score of 100 will most likely never be reached. + We have choosen such a high score as default until we have more complete whitelists for this new feature. + +Setting: sql_scan_enabled +Options: yes/no +Description: Enables the scan for SQL injections in the DB library. + +Setting: sql_scan_action +Options: warn/block +Description: warn = write errot message to log only. Block = block user action and show error to the user. + +Setting: apache_directives_scan_enabled +Options: yes/no +Description: Scan apache directives field for potentially malicious directives. This function uses the regex + list from /usr/local/ispconfig/security/apache_directives.blacklist file. + If you want to use a custom blacklist, then store it as /usr/local/ispconfig/security/apache_directives.blacklist.custom + Setting: security_admin_email Options: email address Description: Email address of the security admin -- GitLab From f986a3c5d914c5cfd62b61366202026331f75d0a Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 25 Aug 2014 17:16:27 +0200 Subject: [PATCH 124/158] - another regexp fix for sql injection detection --- interface/lib/classes/db_mysql.inc.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 6609ec94ee..bcf1b008a2 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -138,7 +138,8 @@ class db extends mysqli $chars = array(';', '#', '/*', '*/', '--', ' UNION ', '\\\'', '\\"'); $string = str_replace('\\\\', '', $string); - $string = preg_replace('/(^|[^\\\])([\'"])(.*?[^\\\]?)\\2/is', '$1', $string); + $string = preg_replace('/(^|[^\\\])([\'"])\\2/is', '$1', $string); + $string = preg_replace('/(^|[^\\\])([\'"])(.*?[^\\\])\\2/is', '$1', $string); $ok = true; if(substr_count($string, "`") % 2 != 0 || substr_count($string, "'") % 2 != 0 || substr_count($string, '"') % 2 != 0) { -- GitLab From 0baacefd19b7d78ab2c31d947109dec82a17f1cd Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 25 Aug 2014 20:32:20 +0200 Subject: [PATCH 125/158] FS#3641 - Add option to disable the password reset function --- interface/web/login/index.php | 9 +++++++++ interface/web/login/password_reset.php | 5 +++++ interface/web/login/templates/index.htm | 2 +- security/README.txt | 4 ++++ security/security_settings.ini | 1 + 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/interface/web/login/index.php b/interface/web/login/index.php index 48d3af652b..4cb2e3e7e9 100644 --- a/interface/web/login/index.php +++ b/interface/web/login/index.php @@ -325,6 +325,15 @@ class login_index { $error = '<div class="box box_error"><h1>Error</h1>'.$error.'</div>'; } + $app->load('getconf'); + + $security_config = $app->getconf->get_security_config('permissions'); + if($security_config['password_reset_allowed'] == 'yes') { + $app->tpl->setVar('pw_lost_show', 1); + } else { + $app->tpl->setVar('pw_lost_show', 0); + } + $app->tpl->setVar('error', $error); $app->tpl->setVar('pw_lost_txt', $app->lng('pw_lost_txt')); $app->tpl->setVar('username_txt', $app->lng('username_txt')); diff --git a/interface/web/login/password_reset.php b/interface/web/login/password_reset.php index e29b1637dd..c466ac8e4b 100644 --- a/interface/web/login/password_reset.php +++ b/interface/web/login/password_reset.php @@ -31,6 +31,11 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. require_once '../../lib/config.inc.php'; require_once '../../lib/app.inc.php'; +$app->load('getconf'); + +$security_config = $app->getconf->get_security_config('permissions'); +if($security_config['password_reset_allowed'] != 'yes') die('Password reset function has been disabled.'); + // Loading the template $app->uses('tpl'); $app->tpl->newTemplate("form.tpl.htm"); diff --git a/interface/web/login/templates/index.htm b/interface/web/login/templates/index.htm index 3fbd278ddd..bcdd8bdb9b 100644 --- a/interface/web/login/templates/index.htm +++ b/interface/web/login/templates/index.htm @@ -35,7 +35,7 @@ <div class="buttonHolder buttons"> <button class="positive iconstxt icoKey" type="button" value="{tmpl_var name='add_new_record_txt'}" onclick="submitLoginForm('pageForm');"><span>{tmpl_var name='login_button_txt'}</span></button> - <button class="negative iconstxt icoKey" type="button" value="{tmpl_var name='pw_lost_txt'}" onclick="loadContent('login/password_reset.php');"><span>{tmpl_var name='pw_lost_txt'}</span></button> + <tmpl_if name="pw_lost_show"><button class="negative iconstxt icoKey" type="button" value="{tmpl_var name='pw_lost_txt'}" onclick="loadContent('login/password_reset.php');"><span>{tmpl_var name='pw_lost_txt'}</span></button></tmpl_if> </div> </div> diff --git a/security/README.txt b/security/README.txt index b68f64780f..b42cbaabb4 100644 --- a/security/README.txt +++ b/security/README.txt @@ -69,6 +69,10 @@ Setting: remote_api_allowed Options: yes/no Description: Disables the remote API +Setting: password_reset_allowed +Options: yes/no +Description: Disables the password reset function. + Setting: ids_enabled Options: yes/no Description: Enables the Intrusion Detection System diff --git a/security/security_settings.ini b/security/security_settings.ini index 85d0433443..4b4327aafc 100644 --- a/security/security_settings.ini +++ b/security/security_settings.ini @@ -15,6 +15,7 @@ admin_allow_osupdate=superadmin admin_allow_software_packages=superadmin admin_allow_software_repo=superadmin remote_api_allowed=yes +password_reset_allowed=yes [ids] ids_enabled=yes -- GitLab From c505a8e45a82ed8673c64a27fde30890a39849e4 Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Thu, 28 Aug 2014 13:36:12 +0200 Subject: [PATCH 126/158] - MySQL table generator: default value of text fields must be NULL, not 'NULL'. --- interface/lib/classes/tform_tpl_generator.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/tform_tpl_generator.inc.php b/interface/lib/classes/tform_tpl_generator.inc.php index a2da27606e..49fd274a89 100644 --- a/interface/lib/classes/tform_tpl_generator.inc.php +++ b/interface/lib/classes/tform_tpl_generator.inc.php @@ -268,7 +268,7 @@ class tform_tpl_generator { case 'TEXT': $type = 'text'; $typevalue = ''; - $defaultValue = 'NULL'; + $defaultValue = NULL; break; case 'DATE': $type = 'date'; -- GitLab From 6227d73ec10dc088bf944609ec43011da771cd9c Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 29 Aug 2014 12:16:49 +0200 Subject: [PATCH 127/158] Fixed: FS#3649 - Resellers can not add domains for their clients in client module --- interface/web/client/domain_edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/client/domain_edit.php b/interface/web/client/domain_edit.php index cca5c2dc22..1ed17e54a0 100644 --- a/interface/web/client/domain_edit.php +++ b/interface/web/client/domain_edit.php @@ -193,7 +193,7 @@ class page_action extends tform_actions { // make sure that the record belongs to the client group and not the admin group when admin inserts it // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + if(($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) || ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid']))) { $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); $app->db->query("UPDATE domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); } -- GitLab From 8c82ef808582a4fc39e7cf449a26d426c6a7b64c Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Mon, 1 Sep 2014 11:13:12 +0200 Subject: [PATCH 128/158] - Fixed: creation of wildcard certificates wasn't working. --- .../plugins-available/apache2_plugin.inc.php | 18 +++++++++++------- server/plugins-available/nginx_plugin.inc.php | 18 +++++++++++------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index a5339579fb..bdf6a05bd7 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -171,30 +171,34 @@ class apache2_plugin { $rand_file = escapeshellcmd($rand_file); $key_file = escapeshellcmd($key_file); + $openssl_cmd_key_file = $key_file; if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate $key_file2 = escapeshellcmd($key_file2); + $openssl_cmd_key_file2 = $key_file2; if(substr($domain, 0, 2) == '*.' && strpos($key_file2, '/ssl/\*.') !== false) $key_file2 = str_replace('/ssl/\*.', '/ssl/*.', $key_file2); // wildcard certificate $ssl_days = 3650; $csr_file = escapeshellcmd($csr_file); + $openssl_cmd_csr_file = $csr_file; if(substr($domain, 0, 2) == '*.' && strpos($csr_file, '/ssl/\*.') !== false) $csr_file = str_replace('/ssl/\*.', '/ssl/*.', $csr_file); // wildcard certificate $config_file = escapeshellcmd($ssl_cnf_file); $crt_file = escapeshellcmd($crt_file); + $openssl_cmd_crt_file = $crt_file; if(substr($domain, 0, 2) == '*.' && strpos($crt_file, '/ssl/\*.') !== false) $crt_file = str_replace('/ssl/\*.', '/ssl/*.', $crt_file); // wildcard certificate if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $key_file 2048"); - exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -out $csr_file -days $ssl_days -config $config_file"); - exec("openssl rsa -passin pass:$ssl_password -in $key_file -out $key_file2"); + exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file 2048"); + exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); + exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file -out $openssl_cmd_key_file2"); if(file_exists($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -out $crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $csr_file"); + exec("openssl ca -batch -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file"); $app->log("Creating CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); - if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $csr_file", LOGLEVEL_ERROR); + if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file", LOGLEVEL_ERROR); }; if (@filesize($crt_file)==0 || !file_exists($crt_file)){ - exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -in $csr_file -out $crt_file -days $ssl_days -config $config_file "); + exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file "); $app->log("Creating self-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; @@ -273,7 +277,7 @@ class apache2_plugin { $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; if(file_exists($web_config['CA_path'].'/openssl.cnf') && !is_link($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke $crt_file"); + exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke ".escapeshellcmd($crt_file)); $app->log("Revoking CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; $app->system->unlink($csr_file); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 3478fc7498..e56abe8422 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -170,30 +170,34 @@ class nginx_plugin { $rand_file = escapeshellcmd($rand_file); $key_file = escapeshellcmd($key_file); + $openssl_cmd_key_file = $key_file; if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate $key_file2 = escapeshellcmd($key_file2); + $openssl_cmd_key_file2 = $key_file2; if(substr($domain, 0, 2) == '*.' && strpos($key_file2, '/ssl/\*.') !== false) $key_file2 = str_replace('/ssl/\*.', '/ssl/*.', $key_file2); // wildcard certificate $ssl_days = 3650; $csr_file = escapeshellcmd($csr_file); + $openssl_cmd_csr_file = $csr_file; if(substr($domain, 0, 2) == '*.' && strpos($csr_file, '/ssl/\*.') !== false) $csr_file = str_replace('/ssl/\*.', '/ssl/*.', $csr_file); // wildcard certificate $config_file = escapeshellcmd($ssl_cnf_file); $crt_file = escapeshellcmd($crt_file); + $openssl_cmd_crt_file = $crt_file; if(substr($domain, 0, 2) == '*.' && strpos($crt_file, '/ssl/\*.') !== false) $crt_file = str_replace('/ssl/\*.', '/ssl/*.', $crt_file); // wildcard certificate if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $key_file 2048"); - exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -out $csr_file -days $ssl_days -config $config_file"); - exec("openssl rsa -passin pass:$ssl_password -in $key_file -out $key_file2"); + exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file 2048"); + exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); + exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file -out $openssl_cmd_key_file2"); if(file_exists($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -out $crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $csr_file"); + exec("openssl ca -batch -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file"); $app->log("Creating CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); - if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $csr_file", LOGLEVEL_ERROR); + if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file", LOGLEVEL_ERROR); }; if (@filesize($crt_file)==0 || !file_exists($crt_file)){ - exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -in $csr_file -out $crt_file -days $ssl_days -config $config_file "); + exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file "); $app->log("Creating self-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; @@ -274,7 +278,7 @@ class nginx_plugin { //$bundle_file = $ssl_dir.'/'.$domain.'.bundle'; if(file_exists($web_config['CA_path'].'/openssl.cnf') && !is_link($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke $crt_file"); + exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke ".escapeshellcmd($crt_file)); $app->log("Revoking CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; $app->system->unlink($csr_file); -- GitLab From 285cfb7843aa4345e7e13854e6d79e4c11590269 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 1 Sep 2014 13:29:56 +0200 Subject: [PATCH 129/158] Fix mailuser logins for systems with cutom mailuser logins. --- interface/web/login/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/login/index.php b/interface/web/login/index.php index 4cb2e3e7e9..80c4d17c71 100644 --- a/interface/web/login/index.php +++ b/interface/web/login/index.php @@ -160,7 +160,7 @@ class login_index { } else { if(stristr($username, '@')) { //* mailuser login - $sql = "SELECT * FROM mail_user WHERE login = '$username'"; + $sql = "SELECT * FROM mail_user WHERE login = '$username' or email = '$username'"; $mailuser = $app->db->queryOneRecord($sql); $user = false; if($mailuser) { -- GitLab From 7c18547d88442e05e10187cfd8e805a4d34b3137 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 1 Sep 2014 13:30:37 +0200 Subject: [PATCH 130/158] Allow resellers to delete domains of their clients in client module. --- interface/web/client/templates/domain_list.htm | 2 -- 1 file changed, 2 deletions(-) diff --git a/interface/web/client/templates/domain_list.htm b/interface/web/client/templates/domain_list.htm index 3100660896..6224cbc247 100644 --- a/interface/web/client/templates/domain_list.htm +++ b/interface/web/client/templates/domain_list.htm @@ -34,9 +34,7 @@ <td class="tbl_col_domain"><a href="#" onclick="loadContent('client/domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> <td class="tbl_col_domain"><a href="#" onclick="loadContent('client/domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> <td class="tbl_col_buttons"> - <tmpl_if name="is_admin"> <a class="button icons16 icoDelete" href="javascript: del_record('client/domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </tmpl_if> </td> </tr> </tmpl_loop> -- GitLab From 6c9bc3ea7766bbabd0c7826d2cb87090bc89edb0 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 1 Sep 2014 13:31:01 +0200 Subject: [PATCH 131/158] Enable mod_logio in apache on opensuse. --- install/dist/lib/opensuse.lib.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index ea13cd2598..cd47d0533e 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -656,6 +656,9 @@ class installer_dist extends installer_base { if($conf['apache']['installed'] == false) return; //* Create the logging directory for the vhost logfiles exec('mkdir -p /var/log/ispconfig/httpd'); + + //* enable apache logio module + exec('a2enmod logio'); //if(is_file('/etc/suphp.conf')) { replaceLine('/etc/suphp.conf', 'php=php', 'x-httpd-suphp="php:/srv/www/cgi-bin/php5"', 0, 0); -- GitLab From ca0a19edac6a9821d704143e93ce7eac1f5540a8 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 5 Sep 2014 10:17:33 +0200 Subject: [PATCH 132/158] - Disabled session content check in IDS. --- interface/lib/classes/ids.inc.php | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/lib/classes/ids.inc.php b/interface/lib/classes/ids.inc.php index a98b0b265a..ac5cb19128 100644 --- a/interface/lib/classes/ids.inc.php +++ b/interface/lib/classes/ids.inc.php @@ -51,7 +51,6 @@ class ids { require_once(ISPC_CLASS_PATH.'/IDS/Converter.php'); $ids_request = array( - 'SESSION' => $_SESSION, 'GET' => $_GET, 'POST' => $_POST, 'COOKIE' => $_COOKIE -- GitLab From 4aec3040f93a71d0995934e42ee796efd1ff9bf3 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 9 Sep 2014 18:55:16 +0200 Subject: [PATCH 133/158] - Show number of domains in limits dashlet. --- interface/web/dashboard/dashlets/limits.php | 4 +++- interface/web/dashboard/lib/lang/de_dashlet_limits.lng | 1 + interface/web/dashboard/lib/lang/en_dashlet_limits.lng | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/interface/web/dashboard/dashlets/limits.php b/interface/web/dashboard/dashlets/limits.php index b361f6e9ba..58ed1d86ca 100644 --- a/interface/web/dashboard/dashlets/limits.php +++ b/interface/web/dashboard/dashlets/limits.php @@ -105,7 +105,9 @@ class dashlet_limits { 'db_table' => 'client', 'db_where' => ""); - + $limits[] = array('field' => 'limit_domain', + 'db_table' => 'domain', + 'db_where' => ""); //* Loading Template diff --git a/interface/web/dashboard/lib/lang/de_dashlet_limits.lng b/interface/web/dashboard/lib/lang/de_dashlet_limits.lng index fe1d57327f..a966a4dabf 100644 --- a/interface/web/dashboard/lib/lang/de_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/de_dashlet_limits.lng @@ -27,4 +27,5 @@ $wb['limit_webdav_user_txt'] = 'Anzahl der WebDAV Benutzer'; $wb['limit_client_txt'] = 'Anzahl der Kunden'; $wb['limit_database_txt'] = 'Anzahl der Datenbanken'; $wb['limit_mailmailinglist_txt'] = 'Anzahl der Mailinglisten'; +$wb['limit_domain_txt'] = 'Anzahl der Domains'; ?> diff --git a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng index f6d8ed8840..abcec57fb0 100644 --- a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng @@ -27,4 +27,5 @@ $wb["limit_shell_user_txt"] = 'Number of Shell users'; $wb["limit_webdav_user_txt"] = 'Number of Webdav users'; $wb["limit_client_txt"] = 'Number of Clients'; $wb["limit_database_txt"] = 'Number of Databases'; +$wb['limit_domain_txt'] = 'Number of Domains'; ?> -- GitLab From 6f03cca3e114830205f2f71747246b609ffb4053 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 10 Sep 2014 19:29:54 +0200 Subject: [PATCH 134/158] Fixed a issue in reseller limit validation. --- interface/lib/classes/validate_reseller.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/validate_reseller.inc.php b/interface/lib/classes/validate_reseller.inc.php index c02c4fd8d2..3ffabdc5b1 100644 --- a/interface/lib/classes/validate_reseller.inc.php +++ b/interface/lib/classes/validate_reseller.inc.php @@ -36,7 +36,7 @@ class validate_reseller { function limit_client($field_name, $field_value, $validator) { global $app; - if($field_value <= 0) { + if($field_value != -1 && $field_value <= 0) { return $app->tform->lng('limit_client_error_positive'); } else { return ''; -- GitLab From 80262299f00d3c5a3bc0e5ef73f3d6d24792d2c1 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 10 Sep 2014 19:30:35 +0200 Subject: [PATCH 135/158] Added backup mount script to backup plugin. --- server/plugins-available/backup_plugin.inc.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php index c3ed1aee4f..b0a4e42336 100644 --- a/server/plugins-available/backup_plugin.inc.php +++ b/server/plugins-available/backup_plugin.inc.php @@ -72,6 +72,7 @@ class backup_plugin { $backup_dir = $server_config['backup_dir'].'/web'.$web['domain_id']; //* mount backup directory, if necessary + /* $backup_dir_is_ready = true; $server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']); if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){ @@ -80,6 +81,19 @@ class backup_plugin { sleep(1); if(!$app->system->is_mounted($server_config['backup_dir'])) $backup_dir_is_ready = false; } + }*/ + $backup_dir_is_ready = true; + $backup_dir_mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'; + if( $server_config['backup_dir_is_mount'] == 'y' && + is_file($backup_dir_mount_cmd) && + is_executable($backup_dir_mount_cmd) && + fileowner($backup_dir_mount_cmd) === 0 + ){ + if(!$app->system->is_mounted($backup_dir)){ + exec($backup_dir_mount_cmd); + sleep(1); + if(!$app->system->is_mounted($server_config['backup_dir'])) $backup_dir_is_ready = false; + } } if($backup_dir_is_ready){ -- GitLab From 21c8aacf5317867f71d0a7bb71c4c2b088d02d23 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 12 Sep 2014 10:42:02 +0200 Subject: [PATCH 136/158] Updated HR translation. --- interface/lib/lang/hr.lng | 166 +++++++-------- interface/web/admin/lib/lang/hr.lng | 4 +- .../admin/lib/lang/hr_directive_snippets.lng | 18 +- .../lib/lang/hr_directive_snippets_list.lng | 12 +- interface/web/admin/lib/lang/hr_firewall.lng | 2 + .../web/admin/lib/lang/hr_firewall_list.lng | 2 + interface/web/admin/lib/lang/hr_groups.lng | 2 + .../web/admin/lib/lang/hr_groups_list.lng | 2 + interface/web/admin/lib/lang/hr_iptables.lng | 4 +- .../web/admin/lib/lang/hr_iptables_list.lng | 2 + .../web/admin/lib/lang/hr_language_add.lng | 2 + .../admin/lib/lang/hr_language_complete.lng | 2 + .../web/admin/lib/lang/hr_language_edit.lng | 2 + .../web/admin/lib/lang/hr_language_export.lng | 2 + .../web/admin/lib/lang/hr_language_import.lng | 6 +- .../web/admin/lib/lang/hr_language_list.lng | 2 + interface/web/admin/lib/lang/hr_login_as.lng | 13 ++ .../web/admin/lib/lang/hr_package_install.lng | 2 + .../web/admin/lib/lang/hr_remote_action.lng | 2 + .../web/admin/lib/lang/hr_remote_user.lng | 10 +- .../admin/lib/lang/hr_remote_user_list.lng | 2 + interface/web/admin/lib/lang/hr_server.lng | 4 +- .../web/admin/lib/lang/hr_server_config.lng | 132 ++++++------ .../admin/lib/lang/hr_server_config_list.lng | 2 + interface/web/admin/lib/lang/hr_server_ip.lng | 2 + .../web/admin/lib/lang/hr_server_ip_list.lng | 2 + .../web/admin/lib/lang/hr_server_list.lng | 4 +- .../web/admin/lib/lang/hr_server_php.lng | 22 +- .../web/admin/lib/lang/hr_server_php_list.lng | 4 +- .../admin/lib/lang/hr_software_package.lng | 2 + .../lib/lang/hr_software_package_install.lng | 2 + .../lib/lang/hr_software_package_list.lng | 4 +- .../web/admin/lib/lang/hr_software_repo.lng | 2 + .../admin/lib/lang/hr_software_repo_list.lng | 2 + .../lib/lang/hr_software_update_list.lng | 4 +- .../web/admin/lib/lang/hr_system_config.lng | 2 + .../admin/lib/lang/hr_tpl_default_admin.lng | 30 +-- interface/web/admin/lib/lang/hr_users.lng | 16 +- .../web/admin/lib/lang/hr_users_list.lng | 2 + interface/web/client/lib/lang/hr.lng | 28 +-- interface/web/client/lib/lang/hr_client.lng | 12 +- .../web/client/lib/lang/hr_client_circle.lng | 16 +- .../client/lib/lang/hr_client_circle_list.lng | 16 +- .../web/client/lib/lang/hr_client_del.lng | 2 + .../web/client/lib/lang/hr_client_message.lng | 38 ++-- .../lib/lang/hr_client_message_template.lng | 2 + .../lang/hr_client_message_template_list.lng | 8 +- .../client/lib/lang/hr_client_template.lng | 2 + .../lib/lang/hr_client_template_list.lng | 2 + .../web/client/lib/lang/hr_clients_list.lng | 2 + interface/web/client/lib/lang/hr_domain.lng | 4 +- .../web/client/lib/lang/hr_domain_list.lng | 4 +- interface/web/client/lib/lang/hr_reseller.lng | 28 +-- .../web/client/lib/lang/hr_resellers_list.lng | 6 +- interface/web/dashboard/lib/lang/hr.lng | 2 + .../dashboard/lib/lang/hr_dashlet_limits.lng | 2 + .../lib/lang/hr_dashlet_mailquota.lng | 6 +- .../dashboard/lib/lang/hr_dashlet_modules.lng | 2 + .../dashboard/lib/lang/hr_dashlet_quota.lng | 2 + interface/web/dns/lib/lang/hr.lng | 2 + interface/web/dns/lib/lang/hr_dns_a.lng | 4 +- interface/web/dns/lib/lang/hr_dns_a_list.lng | 2 + interface/web/dns/lib/lang/hr_dns_aaaa.lng | 4 +- interface/web/dns/lib/lang/hr_dns_alias.lng | 4 +- interface/web/dns/lib/lang/hr_dns_cname.lng | 4 +- interface/web/dns/lib/lang/hr_dns_hinfo.lng | 4 +- interface/web/dns/lib/lang/hr_dns_import.lng | 18 +- interface/web/dns/lib/lang/hr_dns_mx.lng | 6 +- interface/web/dns/lib/lang/hr_dns_ns.lng | 4 +- interface/web/dns/lib/lang/hr_dns_ptr.lng | 4 +- interface/web/dns/lib/lang/hr_dns_rp.lng | 4 +- interface/web/dns/lib/lang/hr_dns_slave.lng | 8 +- .../dns/lib/lang/hr_dns_slave_admin_list.lng | 14 +- .../web/dns/lib/lang/hr_dns_slave_list.lng | 2 + interface/web/dns/lib/lang/hr_dns_soa.lng | 16 +- .../dns/lib/lang/hr_dns_soa_admin_list.lng | 14 +- .../web/dns/lib/lang/hr_dns_soa_list.lng | 6 +- interface/web/dns/lib/lang/hr_dns_srv.lng | 10 +- .../web/dns/lib/lang/hr_dns_template.lng | 2 + .../web/dns/lib/lang/hr_dns_template_list.lng | 4 +- interface/web/dns/lib/lang/hr_dns_txt.lng | 4 +- interface/web/dns/lib/lang/hr_dns_wizard.lng | 20 +- interface/web/help/lib/lang/hr.lng | 2 + interface/web/help/lib/lang/hr_faq_form.lng | 2 + .../lib/lang/hr_faq_manage_questions_list.lng | 2 + .../help/lib/lang/hr_faq_sections_form.lng | 2 + .../web/help/lib/lang/hr_help_faq_list.lng | 2 + .../lib/lang/hr_help_faq_sections_list.lng | 2 + .../web/help/lib/lang/hr_support_message.lng | 2 + .../help/lib/lang/hr_support_message_list.lng | 2 + interface/web/login/lib/lang/hr.lng | 12 +- interface/web/login/lib/lang/hr_login_as.lng | 6 +- interface/web/mail/lib/lang/hr.lng | 4 +- interface/web/mail/lib/lang/hr_mail_alias.lng | 2 + .../web/mail/lib/lang/hr_mail_alias_list.lng | 2 + .../web/mail/lib/lang/hr_mail_aliasdomain.lng | 2 + .../lib/lang/hr_mail_aliasdomain_list.lng | 2 + .../web/mail/lib/lang/hr_mail_blacklist.lng | 2 + .../mail/lib/lang/hr_mail_blacklist_list.lng | 2 + .../mail/lib/lang/hr_mail_content_filter.lng | 2 + .../lib/lang/hr_mail_content_filter_list.lng | 2 + .../web/mail/lib/lang/hr_mail_domain.lng | 2 + .../lib/lang/hr_mail_domain_admin_list.lng | 2 + .../mail/lib/lang/hr_mail_domain_catchall.lng | 2 + .../lib/lang/hr_mail_domain_catchall_list.lng | 2 + .../web/mail/lib/lang/hr_mail_domain_list.lng | 2 + .../web/mail/lib/lang/hr_mail_forward.lng | 4 +- .../mail/lib/lang/hr_mail_forward_list.lng | 2 + interface/web/mail/lib/lang/hr_mail_get.lng | 2 + .../web/mail/lib/lang/hr_mail_get_list.lng | 2 + .../web/mail/lib/lang/hr_mail_mailinglist.lng | 14 +- .../lib/lang/hr_mail_mailinglist_list.lng | 2 + .../mail/lib/lang/hr_mail_relay_recipient.lng | 2 + .../lib/lang/hr_mail_relay_recipient_list.lng | 2 + .../web/mail/lib/lang/hr_mail_spamfilter.lng | 2 + .../mail/lib/lang/hr_mail_spamfilter_list.lng | 2 + .../web/mail/lib/lang/hr_mail_transport.lng | 2 + .../mail/lib/lang/hr_mail_transport_list.lng | 2 + interface/web/mail/lib/lang/hr_mail_user.lng | 10 +- .../web/mail/lib/lang/hr_mail_user_filter.lng | 18 +- .../lib/lang/hr_mail_user_filter_list.lng | 8 +- .../web/mail/lib/lang/hr_mail_user_list.lng | 6 +- .../mail/lib/lang/hr_mail_user_stats_list.lng | 2 + .../web/mail/lib/lang/hr_mail_whitelist.lng | 2 + .../mail/lib/lang/hr_spamfilter_blacklist.lng | 2 + .../lib/lang/hr_spamfilter_blacklist_list.lng | 2 + .../mail/lib/lang/hr_spamfilter_config.lng | 2 + .../lib/lang/hr_spamfilter_config_list.lng | 2 + .../mail/lib/lang/hr_spamfilter_policy.lng | 2 + .../lib/lang/hr_spamfilter_policy_list.lng | 2 + .../web/mail/lib/lang/hr_spamfilter_users.lng | 2 + .../lib/lang/hr_spamfilter_users_list.lng | 2 + .../mail/lib/lang/hr_spamfilter_whitelist.lng | 2 + .../lib/lang/hr_spamfilter_whitelist_list.lng | 2 + .../lib/lang/hr_user_quota_stats_list.lng | 14 +- interface/web/mailuser/lib/lang/hr.lng | 12 +- interface/web/mailuser/lib/lang/hr_index.lng | 18 +- .../lib/lang/hr_mail_user_autoresponder.lng | 6 +- .../web/mailuser/lib/lang/hr_mail_user_cc.lng | 2 + .../mailuser/lib/lang/hr_mail_user_filter.lng | 38 ++-- .../lib/lang/hr_mail_user_filter_list.lng | 14 +- .../lib/lang/hr_mail_user_password.lng | 16 +- .../lib/lang/hr_mail_user_spamfilter.lng | 10 +- interface/web/monitor/lib/lang/hr.lng | 22 +- .../web/monitor/lib/lang/hr_datalog_list.lng | 2 + .../web/monitor/lib/lang/hr_syslog_list.lng | 2 + interface/web/sites/lib/lang/hr.lng | 32 +-- interface/web/sites/lib/lang/hr_aps.lng | 78 +++---- .../sites/lib/lang/hr_aps_instances_list.lng | 22 +- .../sites/lib/lang/hr_aps_packages_list.lng | 2 + .../lib/lang/hr_aps_update_packagelist.lng | 8 +- interface/web/sites/lib/lang/hr_cron.lng | 8 +- interface/web/sites/lib/lang/hr_cron_list.lng | 2 + interface/web/sites/lib/lang/hr_database.lng | 12 +- .../sites/lib/lang/hr_database_admin_list.lng | 4 +- .../web/sites/lib/lang/hr_database_list.lng | 4 +- .../web/sites/lib/lang/hr_database_user.lng | 38 ++-- .../lib/lang/hr_database_user_admin_list.lng | 10 +- .../sites/lib/lang/hr_database_user_list.lng | 8 +- interface/web/sites/lib/lang/hr_ftp_user.lng | 18 +- .../web/sites/lib/lang/hr_ftp_user_list.lng | 2 + .../web/sites/lib/lang/hr_shell_user.lng | 28 +-- .../web/sites/lib/lang/hr_shell_user_list.lng | 4 +- .../lib/lang/hr_user_quota_stats_list.lng | 4 +- .../web/sites/lib/lang/hr_web_aliasdomain.lng | 166 +++++++-------- .../lib/lang/hr_web_aliasdomain_list.lng | 2 + .../web/sites/lib/lang/hr_web_backup_list.lng | 2 + .../web/sites/lib/lang/hr_web_domain.lng | 79 +++---- .../lib/lang/hr_web_domain_admin_list.lng | 2 + .../web/sites/lib/lang/hr_web_domain_list.lng | 2 + .../web/sites/lib/lang/hr_web_folder.lng | 4 +- .../web/sites/lib/lang/hr_web_folder_list.lng | 4 +- .../web/sites/lib/lang/hr_web_folder_user.lng | 16 +- .../lib/lang/hr_web_folder_user_list.lng | 4 +- .../lib/lang/hr_web_sites_stats_list.lng | 4 +- .../web/sites/lib/lang/hr_web_subdomain.lng | 10 +- .../sites/lib/lang/hr_web_subdomain_list.lng | 2 + .../sites/lib/lang/hr_web_vhost_subdomain.lng | 192 +++++++++--------- .../lib/lang/hr_web_vhost_subdomain_list.lng | 2 + .../web/sites/lib/lang/hr_webdav_user.lng | 14 +- .../sites/lib/lang/hr_webdav_user_list.lng | 2 + .../lib/lang/hr_strengthmeter.lng | 2 + interface/web/tools/lib/lang/hr.lng | 4 +- .../tools/lib/lang/hr_import_ispconfig.lng | 44 ++-- interface/web/tools/lib/lang/hr_index.lng | 2 + interface/web/tools/lib/lang/hr_interface.lng | 12 +- interface/web/tools/lib/lang/hr_resync.lng | 26 +-- .../web/tools/lib/lang/hr_tpl_default.lng | 12 +- .../web/tools/lib/lang/hr_usersettings.lng | 10 +- interface/web/vm/lib/lang/hr.lng | 2 + .../web/vm/lib/lang/hr_openvz_action.lng | 4 +- interface/web/vm/lib/lang/hr_openvz_ip.lng | 2 + .../web/vm/lib/lang/hr_openvz_ip_list.lng | 2 + .../web/vm/lib/lang/hr_openvz_ostemplate.lng | 2 + .../vm/lib/lang/hr_openvz_ostemplate_list.lng | 2 + .../web/vm/lib/lang/hr_openvz_template.lng | 22 +- .../vm/lib/lang/hr_openvz_template_list.lng | 2 + interface/web/vm/lib/lang/hr_openvz_vm.lng | 4 +- .../web/vm/lib/lang/hr_openvz_vm_list.lng | 2 + 199 files changed, 1260 insertions(+), 852 deletions(-) create mode 100644 interface/web/admin/lib/lang/hr_login_as.lng diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 02ba8b1f66..8c62161f67 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -8,16 +8,16 @@ $wb['number_format_decimals'] = '4'; $wb['number_format_decimals_client'] = '2'; $wb['number_format_dec_point'] = ','; $wb['number_format_thousands_sep'] = '.'; -$wb['delete_confirmation'] = 'Da li želite obrisati ovaj DNS zapis?'; -$wb['error_no_view_permission'] = 'Nemate dozvolu za pregled DNS zapisa ili zapis ne postoji!'; -$wb['error_no_delete_permission'] = 'Nemate dozvolu za brisanje DNS zapisa!'; +$wb['delete_confirmation'] = 'Da li sigurno želite obrisati ovaj zapis?'; +$wb['error_no_view_permission'] = 'Nemate dozvolu za pregled zapisa ili zapis ne postoji!'; +$wb['error_no_delete_permission'] = 'Nemate dozvolu za brisanje zapisa!'; $wb['page_txt'] = 'Stranica'; $wb['page_of_txt'] = 'od'; $wb['page_and_txt'] = 'i'; $wb['page_next_txt'] = 'Naprijed'; $wb['page_back_txt'] = 'Natrag'; $wb['delete_txt'] = 'ObriÅ¡i'; -$wb['filter_txt'] = 'Filter'; +$wb['filter_txt'] = 'Filtriraj'; $wb['add_new_record_txt'] = 'Dodaj'; $wb['btn_save_txt'] = 'Spremi'; $wb['btn_cancel_txt'] = 'Natrag'; @@ -70,83 +70,85 @@ $wb['datepicker_nextText'] = 'Naprijed'; $wb['datepicker_prevText'] = 'Natrag'; $wb['logout_txt'] = 'Odjavi'; $wb['conf_format_dateshort_human_readable'] = 'yyyy-mm-dd'; -$wb['submit_confirmation'] = 'Do you really want to perform this action?'; +$wb['submit_confirmation'] = 'Da li stvarno želite nastaviti?'; $wb['top_menu_mailuser'] = 'Mailuser'; -$wb['globalsearch_resultslimit_of_txt'] = 'of'; -$wb['globalsearch_resultslimit_results_txt'] = 'results'; -$wb['globalsearch_noresults_text_txt'] = 'No results.'; -$wb['globalsearch_noresults_limit_txt'] = '0 results'; -$wb['globalsearch_searchfield_watermark_txt'] = 'Search'; -$wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; -$wb['global_tabchange_warning_txt'] = 'Changed data in this tab will be changed if you press OK. On cancel they will be discarded.'; -$wb['global_tabchange_discard_txt'] = 'You have unsaved changes in this tab. Changes will be discarded if you continue.'; -$wb['datalog_changes_txt'] = 'The following changes are not yet populated to all servers:'; -$wb['datalog_changes_end_txt'] = 'Storing updates can take up to one minute. Please be patient.'; -$wb['datalog_status_i_web_database'] = 'Create new database'; -$wb['datalog_status_u_web_database'] = 'Update database'; -$wb['datalog_status_d_web_database'] = 'Delete database'; -$wb['datalog_status_i_web_database_user'] = 'Create database user for database'; -$wb['datalog_status_u_web_database_user'] = 'Update database user'; -$wb['datalog_status_d_web_database_user'] = 'Delete database user'; -$wb['datalog_status_i_web_domain'] = 'Create new website'; -$wb['datalog_status_u_web_domain'] = 'Update website settings'; -$wb['datalog_status_d_web_domain'] = 'Delete website'; -$wb['datalog_status_i_ftp_user'] = 'Create FTP user'; -$wb['datalog_status_u_ftp_user'] = 'Update FTP user'; -$wb['datalog_status_d_ftp_user'] = 'Delete FTP user'; -$wb['datalog_status_i_mail_domain'] = 'Create email domain'; -$wb['datalog_status_u_mail_domain'] = 'Update email domain'; -$wb['datalog_status_d_mail_domain'] = 'Delete email domain'; -$wb['datalog_status_i_mail_user'] = 'Create email user'; -$wb['datalog_status_u_mail_user'] = 'Update email user'; -$wb['datalog_status_d_mail_user'] = 'Delete email user'; -$wb['datalog_status_i_mail_forwarding'] = 'Create email address'; -$wb['datalog_status_u_mail_forwarding'] = 'Update email address'; -$wb['datalog_status_d_mail_forwarding'] = 'Delete email address'; -$wb['datalog_status_i_dns_rr'] = 'Create DNS record'; -$wb['datalog_status_u_dns_rr'] = 'Update DNS record'; -$wb['datalog_status_d_dns_rr'] = 'Delete DNS record'; -$wb['datalog_status_i_dns_soa'] = 'Create DNS zone'; -$wb['datalog_status_u_dns_soa'] = 'Update DNS zone'; -$wb['datalog_status_d_dns_soa'] = 'Delete DNS zone'; -$wb['datalog_status_i_cron'] = 'Create cron job'; -$wb['datalog_status_u_cron'] = 'Update cron job'; -$wb['datalog_status_d_cron'] = 'Delete cron job'; -$wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; -$wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; -$wb['datalog_status_d_mail_get'] = 'Delete mail fetcher account'; -$wb['datalog_status_i_mail_mailinglist'] = 'Create mailing list'; -$wb['datalog_status_u_mail_mailinglist'] = 'Update mailing list'; -$wb['datalog_status_d_mail_mailinglist'] = 'Delete mailing list'; -$wb['datalog_status_i_shell_user'] = 'Create shell user'; -$wb['datalog_status_u_shell_user'] = 'Update shell user'; -$wb['datalog_status_d_shell_user'] = 'Delete shell user'; -$wb['datalog_status_i_web_folder'] = 'Create folder protection'; -$wb['datalog_status_u_web_folder'] = 'Update folder protection'; -$wb['datalog_status_d_web_folder'] = 'Delete folder protection'; -$wb['datalog_status_i_web_folder_user'] = 'Create folder protection user'; -$wb['datalog_status_u_web_folder_user'] = 'Update folder protection user'; -$wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user'; -$wb['datalog_status_i_spamfilter_users'] = 'Create spam filter settings'; -$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings'; -$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings'; -$wb['login_as_txt'] = 'Log in as'; -$wb['no_domain_perm'] = 'You have no permission for this domain.'; -$wb['no_destination_perm'] = 'You have no permission for this destination.'; -$wb['client_you_are_locked'] = 'You have no permission to change any settings.'; -$wb['gender_m_txt'] = 'Mr.'; -$wb['gender_f_txt'] = 'Ms.'; -$wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'This client has records in the billing module, therefore he cannot be deleted.'; -$wb['yes_txt'] = 'Yes'; -$wb['no_txt'] = 'No'; -$wb['None'] = 'None'; -$wb['strength_1'] = 'Weak'; -$wb['strength_2'] = 'Fair'; -$wb['strength_3'] = 'Good'; -$wb['strength_4'] = 'Strong'; -$wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; -$wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; -$wb['security_check1_txt'] = 'Check for security permission:'; -$wb['security_check2_txt'] = 'failed.'; +$wb['globalsearch_resultslimit_of_txt'] = 'od'; +$wb['globalsearch_resultslimit_results_txt'] = 'rezultata'; +$wb['globalsearch_noresults_text_txt'] = 'Nema rezultata.'; +$wb['globalsearch_noresults_limit_txt'] = '0 rezultata'; +$wb['globalsearch_searchfield_watermark_txt'] = 'Traži'; +$wb['globalsearch_suggestions_text_txt'] = 'Sugestija'; +$wb['global_tabchange_warning_txt'] = 'Promijenjeni podaci u kartici će biti spremljeni ako pritisnete OK. Na odustani će biti poniÅ¡teni.'; +$wb['global_tabchange_discard_txt'] = 'Neki podaci na kartici nisu spremljeni. Promjene će biti poniÅ¡tene ako nastavite.'; +$wb['datalog_changes_txt'] = 'Slijedeće promjene joÅ¡ nisu proslijeÄ‘ene na sve servere:'; +$wb['datalog_changes_end_txt'] = 'Spremanje promjena može potrajati minutu. Budite strpljivi.'; +$wb['datalog_status_i_web_database'] = 'Kreiraj novu bazu'; +$wb['datalog_status_u_web_database'] = 'Podesi bazu'; +$wb['datalog_status_d_web_database'] = 'ObriÅ¡i bazu'; +$wb['datalog_status_i_web_database_user'] = 'Kreiraj korisnika za bazu'; +$wb['datalog_status_u_web_database_user'] = 'Podesi korisnika'; +$wb['datalog_status_d_web_database_user'] = 'ObriÅ¡i korisnika baze'; +$wb['datalog_status_i_web_domain'] = 'Kreiraj novu stranicu'; +$wb['datalog_status_u_web_domain'] = 'Podesi stranicu'; +$wb['datalog_status_d_web_domain'] = 'ObriÅ¡i stranicu'; +$wb['datalog_status_i_ftp_user'] = 'Kreiraj FTP korisnika'; +$wb['datalog_status_u_ftp_user'] = 'Podesi FTP korisnika'; +$wb['datalog_status_d_ftp_user'] = 'ObriÅ¡i FTP korisnika'; +$wb['datalog_status_i_mail_domain'] = 'Kreiraj email domenu'; +$wb['datalog_status_u_mail_domain'] = 'Podesi email domenu'; +$wb['datalog_status_d_mail_domain'] = 'ObriÅ¡i email domenu'; +$wb['datalog_status_i_mail_user'] = 'Kreiraj email korisnika'; +$wb['datalog_status_u_mail_user'] = 'Podesi email korisnika'; +$wb['datalog_status_d_mail_user'] = 'ObriÅ¡i email korisnika'; +$wb['datalog_status_i_mail_forwarding'] = 'Kreiraj email raÄun'; +$wb['datalog_status_u_mail_forwarding'] = 'Podesi email raÄun'; +$wb['datalog_status_d_mail_forwarding'] = 'ObriÅ¡i email raÄun'; +$wb['datalog_status_i_dns_rr'] = 'Kreiraj DNS zapis'; +$wb['datalog_status_u_dns_rr'] = 'Podesi DNS zapis'; +$wb['datalog_status_d_dns_rr'] = 'ObriÅ¡i DNS zapis'; +$wb['datalog_status_i_dns_soa'] = 'Kreiraj DNS zonu'; +$wb['datalog_status_u_dns_soa'] = 'Podesi DNS zonu'; +$wb['datalog_status_d_dns_soa'] = 'ObriÅ¡i DNS zonu'; +$wb['datalog_status_i_cron'] = 'Kreiraj cron zadatak'; +$wb['datalog_status_u_cron'] = 'Podesi cron zadatak'; +$wb['datalog_status_d_cron'] = 'ObriÅ¡i cron zadatak'; +$wb['datalog_status_i_mail_get'] = 'Kreiraj mail fetcher raÄun'; +$wb['datalog_status_u_mail_get'] = 'Podesi mail fetcher raÄun'; +$wb['datalog_status_d_mail_get'] = 'ObriÅ¡i mail fetcher raÄun'; +$wb['datalog_status_i_mail_mailinglist'] = 'Kreiraj mailing listu'; +$wb['datalog_status_u_mail_mailinglist'] = 'Podesi mailing listu'; +$wb['datalog_status_d_mail_mailinglist'] = 'ObriÅ¡i mailing listu'; +$wb['datalog_status_i_shell_user'] = 'Kreiraj shell korisnika'; +$wb['datalog_status_u_shell_user'] = 'Podesi shell korisnika'; +$wb['datalog_status_d_shell_user'] = 'ObriÅ¡i shell korisnika'; +$wb['datalog_status_i_web_folder'] = 'Kreiraj zaÅ¡titu direktorija'; +$wb['datalog_status_u_web_folder'] = 'Podesi zaÅ¡titu direktorija'; +$wb['datalog_status_d_web_folder'] = 'ObriÅ¡i zaÅ¡titu direktorija'; +$wb['datalog_status_i_web_folder_user'] = 'Kreiraj folder protection korisnika'; +$wb['datalog_status_u_web_folder_user'] = 'Podesi folder protection korisnika'; +$wb['datalog_status_d_web_folder_user'] = 'ObriÅ¡i folder protection korisnika'; +$wb['datalog_status_i_spamfilter_users'] = 'Kreiraj spam filter postavke'; +$wb['datalog_status_u_spamfilter_users'] = 'Podesi spam filter postavke'; +$wb['datalog_status_d_spamfilter_users'] = 'ObriÅ¡i spam filter postavke'; +$wb['login_as_txt'] = 'Logiraj se kao'; +$wb['no_domain_perm'] = 'Nemate dozvolu za ovu domenu.'; +$wb['no_destination_perm'] = 'Nemate dozvolu za ovu destinaciju.'; +$wb['client_you_are_locked'] = 'Nemate dozvolu za promjenu postavki.'; +$wb['gender_m_txt'] = 'g.'; +$wb['gender_f_txt'] = 'gÄ‘a.'; +$wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'Ovaj klijent ima zapise u modulu za naplatu, stoga ne može biti obrisan.'; +$wb['yes_txt'] = 'Da'; +$wb['no_txt'] = 'Ne'; +$wb['None'] = 'NiÅ¡ta'; +$wb['strength_1'] = 'Slabo'; +$wb['strength_2'] = 'Dobro'; +$wb['strength_3'] = 'Bolje'; +$wb['strength_4'] = 'Jako'; +$wb['strength_5'] = 'OdliÄno'; +$wb['weak_password_txt'] = 'UneÅ¡ena Å¡ifra nije dobra. Mora biti dugaÄka barem {chars} znakova i jaÄine \\"{strength}\\".'; +$wb['weak_password_length_txt'] = 'UneÅ¡ena Å¡ifra nije dobra. Mora biti dugaÄka barem {chars} znakova.'; +$wb['security_check1_txt'] = 'Provjerite sigurnosne dozvole:'; +$wb['security_check2_txt'] = 'greÅ¡ka.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr.lng b/interface/web/admin/lib/lang/hr.lng index d7d22d47fa..919b172def 100644 --- a/interface/web/admin/lib/lang/hr.lng +++ b/interface/web/admin/lib/lang/hr.lng @@ -46,5 +46,7 @@ $wb['Import'] = 'Importiraj'; $wb['Remote Actions'] = 'Udaljene akcije'; $wb['Do OS-Update'] = 'Nadogradnja sistema'; $wb['Do ISPConfig-Update'] = 'Nadogradnja control panela'; -$wb['Directive Snippets'] = 'Directive Snippets'; +$wb['Directive Snippets'] = 'Direktive'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_directive_snippets.lng b/interface/web/admin/lib/lang/hr_directive_snippets.lng index 0f09c12ee0..2c626b63e3 100644 --- a/interface/web/admin/lib/lang/hr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/hr_directive_snippets.lng @@ -1,10 +1,12 @@ <?php -$wb['Directive Snippets'] = 'Directive Snippets'; -$wb['name_txt'] = 'Name of Snippet'; -$wb['type_txt'] = 'Type'; -$wb['snippet_txt'] = 'Snippet'; -$wb['active_txt'] = 'Active'; -$wb['directive_snippets_name_empty'] = 'Please specify a name for the snippet.'; -$wb['directive_snippets_name_error_unique'] = 'There is already a directive snippet with this name.'; -$wb['variables_txt'] = 'Variables'; +$wb['Directive Snippets'] = 'Direktive'; +$wb['name_txt'] = 'Naziv direktive'; +$wb['type_txt'] = 'Vrsta'; +$wb['snippet_txt'] = 'direktiva'; +$wb['active_txt'] = 'Aktivno'; +$wb['directive_snippets_name_empty'] = 'Molimo vas specificirajte naziv direktive.'; +$wb['directive_snippets_name_error_unique'] = 'Već postoji direktiva sa tim imenom.'; +$wb['variables_txt'] = 'Varijable'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_directive_snippets_list.lng b/interface/web/admin/lib/lang/hr_directive_snippets_list.lng index 4124ea3464..15cbc57c36 100644 --- a/interface/web/admin/lib/lang/hr_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/hr_directive_snippets_list.lng @@ -1,7 +1,9 @@ <?php -$wb['list_head_txt'] = 'Directive Snippets'; -$wb['active_txt'] = 'Active'; -$wb['name_txt'] = 'Name of Snippet'; -$wb['type_txt'] = 'Type'; -$wb['add_new_record_txt'] = 'Add Directive Snippet'; +$wb['list_head_txt'] = 'Direktive'; +$wb['active_txt'] = 'Aktivno'; +$wb['name_txt'] = 'Naziv predloÅ¡ka'; +$wb['type_txt'] = 'Vrsta'; +$wb['add_new_record_txt'] = 'Dodaj direktivu'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_firewall.lng b/interface/web/admin/lib/lang/hr_firewall.lng index 7e28a3aaf1..ae643c334b 100644 --- a/interface/web/admin/lib/lang/hr_firewall.lng +++ b/interface/web/admin/lib/lang/hr_firewall.lng @@ -9,3 +9,5 @@ $wb['firewall_error_unique'] = 'Već postoji firewall zapis za ovaj server.'; $wb['tcp_ports_error_regex'] = 'Nedozvoljeni znak pri definiciji TCP porta. Dozvoljeni znakovi su znamenke, : i ,.'; $wb['udp_ports_error_regex'] = 'Nedozvoljeni znak pri definiciji UDP porta. Dozvoljeni znakovi su znamenke, : i ,.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_firewall_list.lng b/interface/web/admin/lib/lang/hr_firewall_list.lng index 568d915a71..2bdb9d5857 100644 --- a/interface/web/admin/lib/lang/hr_firewall_list.lng +++ b/interface/web/admin/lib/lang/hr_firewall_list.lng @@ -6,3 +6,5 @@ $wb['tcp_port_txt'] = 'Otvoreni TCP portovi'; $wb['udp_port_txt'] = 'Otvoreni UDP portovi'; $wb['add_new_record_txt'] = 'Dodaj Firewall zapis'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_groups.lng b/interface/web/admin/lib/lang/hr_groups.lng index 33c1e70df9..df0d679bb6 100644 --- a/interface/web/admin/lib/lang/hr_groups.lng +++ b/interface/web/admin/lib/lang/hr_groups.lng @@ -3,3 +3,5 @@ $wb['description_txt'] = 'Opis'; $wb['name_txt'] = 'Grupa'; $wb['name_err'] = 'Grupa mora biti barem jedan do maksimalno 30 znakova.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_groups_list.lng b/interface/web/admin/lib/lang/hr_groups_list.lng index e88fae2e7e..def87cc8a8 100644 --- a/interface/web/admin/lib/lang/hr_groups_list.lng +++ b/interface/web/admin/lib/lang/hr_groups_list.lng @@ -5,3 +5,5 @@ $wb['name_txt'] = 'Grupa'; $wb['add_new_record_txt'] = 'Dodaj grupu'; $wb['warning_txt'] = '<b>UPOZORENJE:</b> Ne mijenjajte postavke klijenta ovdje. Koristite '; ?> + + diff --git a/interface/web/admin/lib/lang/hr_iptables.lng b/interface/web/admin/lib/lang/hr_iptables.lng index e7eaaff828..112d75a20d 100644 --- a/interface/web/admin/lib/lang/hr_iptables.lng +++ b/interface/web/admin/lib/lang/hr_iptables.lng @@ -9,5 +9,7 @@ $wb['state_txt'] = 'Stanje'; $wb['destination_ip_txt'] = 'Adresa destinacije'; $wb['source_ip_txt'] = 'Adresa izvora'; $wb['active_txt'] = 'Aktivno'; -$wb['iptables_error_unique'] = 'Već postoji firewall zapis za ovaj server.'; +$wb['iptables_error_unique'] = 'Već postoji zapis u vatrozidu za ovaj server.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_iptables_list.lng b/interface/web/admin/lib/lang/hr_iptables_list.lng index 869bd17761..f90d7eeced 100644 --- a/interface/web/admin/lib/lang/hr_iptables_list.lng +++ b/interface/web/admin/lib/lang/hr_iptables_list.lng @@ -13,3 +13,5 @@ $wb['source_ip_txt'] = 'Adresa izvora'; $wb['active_txt'] = 'Aktivno'; $wb['iptables_error_unique'] = 'Već postoji firewall zapis za ovaj server.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_language_add.lng b/interface/web/admin/lib/lang/hr_language_add.lng index d4a3e1bd85..3536ac306f 100644 --- a/interface/web/admin/lib/lang/hr_language_add.lng +++ b/interface/web/admin/lib/lang/hr_language_add.lng @@ -6,3 +6,5 @@ $wb['language_new_hint_txt'] = '2 znaka ISO 639-1 jeziÄnog-koda (Pogledaj http: $wb['btn_save_txt'] = 'Kreiraj novu jeziÄnu datoteku'; $wb['btn_cancel_txt'] = 'Natrag'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_language_complete.lng b/interface/web/admin/lib/lang/hr_language_complete.lng index e9ce1e5909..1f7cb8ea18 100644 --- a/interface/web/admin/lib/lang/hr_language_complete.lng +++ b/interface/web/admin/lib/lang/hr_language_complete.lng @@ -5,3 +5,5 @@ $wb['language_select_txt'] = 'Izaberi jezik'; $wb['btn_save_txt'] = 'Spoji jezike'; $wb['btn_cancel_txt'] = 'Natrag'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_language_edit.lng b/interface/web/admin/lib/lang/hr_language_edit.lng index b223069ba0..18c2e7a20a 100644 --- a/interface/web/admin/lib/lang/hr_language_edit.lng +++ b/interface/web/admin/lib/lang/hr_language_edit.lng @@ -6,3 +6,5 @@ $wb['lang_file_txt'] = 'JeziÄna datoteka'; $wb['btn_save_txt'] = 'Spremi'; $wb['btn_cancel_txt'] = 'Natrag'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_language_export.lng b/interface/web/admin/lib/lang/hr_language_export.lng index 4799ddf85c..74330bb989 100644 --- a/interface/web/admin/lib/lang/hr_language_export.lng +++ b/interface/web/admin/lib/lang/hr_language_export.lng @@ -4,3 +4,5 @@ $wb['language_select_txt'] = 'Izaberi jezik'; $wb['btn_save_txt'] = 'Eksportiraj izabranu jeziÄnu datoteku'; $wb['btn_cancel_txt'] = 'Natrag'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_language_import.lng b/interface/web/admin/lib/lang/hr_language_import.lng index 3f20305349..6944bcb2ca 100644 --- a/interface/web/admin/lib/lang/hr_language_import.lng +++ b/interface/web/admin/lib/lang/hr_language_import.lng @@ -1,9 +1,11 @@ <?php $wb['list_head_txt'] = 'Importiraj jeziÄnu datoteku'; $wb['language_import_txt'] = 'Izaberi jeziÄnu datoteku'; -$wb['btn_save_txt'] = 'Importiraj selektiranu jeziÄnu datoteku'; +$wb['btn_save_txt'] = 'Importiraj datoteku'; $wb['language_overwrite_txt'] = 'PrebriÅ¡i datoteku, ukoliko već postoji.'; $wb['btn_cancel_txt'] = 'Natrag'; $wb['ignore_version_txt'] = 'PreskoÄi provjeru ISPConfig verzije'; -$wb['list_desc_txt'] = 'WARNING: Do not import language files from untrustworthy sources.'; +$wb['list_desc_txt'] = 'PAŽNJA: Nemojte importirati jeziÄne datoteke preuzete sa nepoznatih web lokacija.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_language_list.lng b/interface/web/admin/lib/lang/hr_language_list.lng index 68f9cca26a..2595cc82aa 100644 --- a/interface/web/admin/lib/lang/hr_language_list.lng +++ b/interface/web/admin/lib/lang/hr_language_list.lng @@ -5,3 +5,5 @@ $wb['module_txt'] = 'Modul'; $wb['lang_file_txt'] = 'JeziÄna datoteka'; $wb['lang_file_date_txt'] = 'Zadnja promjena'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_login_as.lng b/interface/web/admin/lib/lang/hr_login_as.lng new file mode 100644 index 0000000000..d2fc3704bb --- /dev/null +++ b/interface/web/admin/lib/lang/hr_login_as.lng @@ -0,0 +1,13 @@ +<?php +$wb['login_1_txt'] = 'Do you want to login as user'; +$wb['login_2_txt'] = 'If you do so, you can \\"go back\\" by clicking at logout.'; +$wb['btn_yes_txt'] = 'Yes, login as Client'; +$wb['btn_back_txt'] = 'No, back to list'; +$wb['udp_port_help_txt'] = 'Separated by comma'; +$wb['active_txt'] = 'Active'; +$wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; +?> + + diff --git a/interface/web/admin/lib/lang/hr_package_install.lng b/interface/web/admin/lib/lang/hr_package_install.lng index 181c797ab1..c690075c15 100644 --- a/interface/web/admin/lib/lang/hr_package_install.lng +++ b/interface/web/admin/lib/lang/hr_package_install.lng @@ -5,3 +5,5 @@ $wb['repo_username_txt'] = 'KorisniÄko ime (opcionalno)'; $wb['repo_password_txt'] = 'Å ifra (opcionalno)'; $wb['active_txt'] = 'Aktivno'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_remote_action.lng b/interface/web/admin/lib/lang/hr_remote_action.lng index fd1444fbdd..221c3b40e4 100644 --- a/interface/web/admin/lib/lang/hr_remote_action.lng +++ b/interface/web/admin/lib/lang/hr_remote_action.lng @@ -10,3 +10,5 @@ $wb['select_all_server'] = 'Svi serveri'; $wb['ispconfig_update_title'] = 'Upute za ISPConfig nadogradnju'; $wb['ispconfig_update_text'] = 'Logiraj se kao root korisnik na server (SSH) i pokreni:<br /><br /><strong>ispconfig_update.sh</strong><br /><br /><a href=\'http://www.faqforge.com/linux/controlpanels/ispconfig3/how-to-update-ispconfig-3/\' target=\'_blank\'>Pogledaj detaljne upute ovdje</a>'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_remote_user.lng b/interface/web/admin/lib/lang/hr_remote_user.lng index fff993b7b5..827b317b91 100644 --- a/interface/web/admin/lib/lang/hr_remote_user.lng +++ b/interface/web/admin/lib/lang/hr_remote_user.lng @@ -40,8 +40,10 @@ $wb['DNS rp functions'] = 'DNS rp funkcije'; $wb['DNS srv functions'] = 'DNS srv funkcije'; $wb['DNS txt functions'] = 'DNS txt funkcije'; $wb['Mail mailing list functions'] = 'Funkcije mailing lista'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_remote_user_list.lng b/interface/web/admin/lib/lang/hr_remote_user_list.lng index 13afd0bde1..629e01d7bd 100644 --- a/interface/web/admin/lib/lang/hr_remote_user_list.lng +++ b/interface/web/admin/lib/lang/hr_remote_user_list.lng @@ -5,3 +5,5 @@ $wb['add_new_record_txt'] = 'Dodaj udaljenog klijenta'; $wb['parent_remote_userid_txt'] = 'ID'; $wb['username_txt'] = 'KorisniÄko ime'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server.lng b/interface/web/admin/lib/lang/hr_server.lng index 39b7f361c6..bd9f6a8d5a 100644 --- a/interface/web/admin/lib/lang/hr_server.lng +++ b/interface/web/admin/lib/lang/hr_server.lng @@ -11,5 +11,7 @@ $wb['active_txt'] = 'Aktivan'; $wb['mirror_server_id_txt'] = 'je kopija servera'; $wb['- None -'] = '- izaberi server -'; $wb['proxy_server_txt'] = 'Proxy server'; -$wb['firewall_server_txt'] = 'Firewall server'; +$wb['firewall_server_txt'] = 'Vatrozid server'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 1b71f0b74c..12c695c4ef 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -41,7 +41,7 @@ $wb['hostname_error_empty'] = 'Hostname polje je prazno.'; $wb['nameservers_error_empty'] = 'Nameserver polje je prazno.'; $wb['config_dir_txt'] = 'Konfiguracijski direktorij'; $wb['init_script_txt'] = 'Inicijalizacijski naziv cron skripte'; -$wb['crontab_dir_txt'] = 'Putanja do individualnih crontabs-a'; +$wb['crontab_dir_txt'] = 'Putanja do individualnih crontab-ova'; $wb['wget_txt'] = 'Putanja do wget programa'; $wb['web_user_txt'] = 'Apache korisnik'; $wb['web_group_txt'] = 'Apache grupa'; @@ -159,13 +159,13 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; -$wb['ssl_settings_txt'] = 'SSL Settings'; -$wb['permissions_txt'] = 'Permissions'; -$wb['php_settings_txt'] = 'PHP Settings'; -$wb['apps_vhost_settings_txt'] = 'Apps Vhost Settings'; -$wb['awstats_settings_txt'] = 'AWStats Settings'; +$wb['ssl_settings_txt'] = 'SSL postavke'; +$wb['permissions_txt'] = 'Dozvole'; +$wb['php_settings_txt'] = 'PHP postavke'; +$wb['apps_vhost_settings_txt'] = 'Apps Vhost postavke'; +$wb['awstats_settings_txt'] = 'AWStats postavke'; $wb['firewall_txt'] = 'Firewall'; -$wb['mailbox_quota_stats_txt'] = 'Mailbox quota statistics'; +$wb['mailbox_quota_stats_txt'] = 'Statistika limita sanduÄića'; $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)'; $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)'; $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; @@ -177,68 +177,70 @@ $wb['overquota_notify_onok_txt'] = 'Send quota ok message to client'; $wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; $wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; $wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; -$wb['no_notifications_txt'] = 'No Notifications'; +$wb['no_notifications_txt'] = 'Nema notifikacija'; $wb['monit_url_txt'] = 'Monit URL'; -$wb['monit_user_txt'] = 'Monit User'; -$wb['monit_password_txt'] = 'Monit Password'; -$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_user_txt'] = 'Monit korisniÄko ime'; +$wb['monit_password_txt'] = 'Monit Å¡ifra'; +$wb['monit_url_error_regex'] = 'Neispravan Monit URL'; $wb['monit_url_note_txt'] = 'Placeholder:'; $wb['munin_url_txt'] = 'Munin URL'; -$wb['munin_user_txt'] = 'Munin User'; -$wb['munin_password_txt'] = 'Munin Password'; -$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_user_txt'] = 'Munin korisniÄko ime'; +$wb['munin_password_txt'] = 'Munin Å¡ifra'; +$wb['munin_url_error_regex'] = 'Neispravan Munin URL'; $wb['munin_url_note_txt'] = 'Placeholder:'; -$wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['monitor_system_updates_txt'] = 'Check for Linux updates'; -$wb['hostname_error_regex'] = 'Invalid Hostname.'; -$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; -$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; -$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; -$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; -$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; -$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; -$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['backup_dir_is_mount_txt'] = 'Backup direktorij je mount-an?'; +$wb['monitor_system_updates_txt'] = 'Provjeri za Linux nadogradnje'; +$wb['hostname_error_regex'] = 'Neispravan Hostname.'; +$wb['invalid_apache_user_txt'] = 'Neispravan apache korisnik.'; +$wb['invalid_apache_group_txt'] = 'Neispravna apache grupa.'; +$wb['backup_dir_error_regex'] = 'Neispravan backup direktorij.'; +$wb['maildir_path_error_regex'] = 'Neispravna maildir putanja.'; +$wb['homedir_path_error_regex'] = 'Neispravna homedir putanja.'; +$wb['mailuser_name_error_regex'] = 'Neispravan mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Neispravan mailuser group name.'; $wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; $wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; -$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; -$wb['website_basedir_error_regex'] = 'Invalid website basedir.'; -$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; -$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; -$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; -$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; -$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; -$wb['ca_path_error_regex'] = 'Invalid CA path.'; -$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; -$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; -$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; -$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; -$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; -$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; -$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; -$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; -$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; -$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; -$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; -$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; -$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; -$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; -$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; -$wb['invalid_bind_user_txt'] = 'Invalid BIND user.'; -$wb['invalid_bind_group_txt'] = 'Invalid BIND group.'; -$wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.'; -$wb['named_conf_path_error_regex'] = 'Invalid named.conf path.'; -$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; -$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; -$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; -$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; -$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; -$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; -$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; -$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; -$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; -$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; -$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; -$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; -$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; -$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['getmail_config_dir_error_regex'] = 'Neispravan getmail config direktorij.'; +$wb['website_basedir_error_regex'] = 'Neispravan website basedir.'; +$wb['website_symlinks_error_regex'] = 'Neispravan website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Neispravan vhost config direktorij.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Neispravan vhost conf enabled direktorij.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Neispravan nginx config direktorij.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Neispravan nginx conf enabled direktorij.'; +$wb['ca_path_error_regex'] = 'Neispravna CA putanja.'; +$wb['invalid_nginx_user_txt'] = 'Neispravan nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Neispravan nginx grupa.'; +$wb['php_ini_path_apache_error_regex'] = 'Neispravna apache php.ini putanja.'; +$wb['php_ini_path_cgi_error_regex'] = 'Neispravna cgi php.ini putanja.'; +$wb['php_fpm_init_script_error_regex'] = 'Neispravna php-fpm init skripta.'; +$wb['php_fpm_ini_path_error_regex'] = 'Neispravna php-fpm ini putanja.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Neispravan php-fpm pool direktorij.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Neispravan php-fpm socket direktorij.'; +$wb['php_open_basedir_error_regex'] = 'Neispravan php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data direktorij is empty'; +$wb['awstats_data_dir_error_regex'] = 'Neispravan awstats podatkovni direktorij.'; +$wb['awstats_pl_empty'] = 'awstats.pl opcija je prazna.'; +$wb['awstats_pl_error_regex'] = 'Neispravna awstats.pl putanja.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl je prazno'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Neispravna awstats_buildstaticpages.pl putanja.'; +$wb['invalid_bind_user_txt'] = 'Neispravan BIND korisnik.'; +$wb['invalid_bind_group_txt'] = 'Neispravan BIND grupa.'; +$wb['bind_zonefiles_dir_error_regex'] = 'Neispravan BIND zonefiles direktorij.'; +$wb['named_conf_path_error_regex'] = 'Neispravna named.conf putanja.'; +$wb['named_conf_local_path_error_regex'] = 'Neispravna named.conf.local putanja.'; +$wb['fastcgi_starter_path_error_regex'] = 'Neispravna fastcgi starter putanja.'; +$wb['fastcgi_starter_script_error_regex'] = 'Neispravan fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Neispravan fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Neispravna fastcgi putanja.'; +$wb['fastcgi_bin_error_regex'] = 'Neispravan fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Neispravan jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Neispravan jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Neispravan jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Neispravan jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Neispravan vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Neispravan cron init script.'; +$wb['crontab_dir_error_regex'] = 'Neispravan crontab direktorij.'; +$wb['cron_wget_error_regex'] = 'Neispravna cron wget putanja.'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server_config_list.lng b/interface/web/admin/lib/lang/hr_server_config_list.lng index 4b814eb1df..f6b836e376 100644 --- a/interface/web/admin/lib/lang/hr_server_config_list.lng +++ b/interface/web/admin/lib/lang/hr_server_config_list.lng @@ -2,3 +2,5 @@ $wb['list_head_txt'] = 'Konfiguracija servera'; $wb['server_name_txt'] = 'Server'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server_ip.lng b/interface/web/admin/lib/lang/hr_server_ip.lng index 0ddf8be14c..61a9891732 100644 --- a/interface/web/admin/lib/lang/hr_server_ip.lng +++ b/interface/web/admin/lib/lang/hr_server_ip.lng @@ -9,3 +9,5 @@ $wb['ip_type_txt'] = 'Vrsta'; $wb['virtualhost_port_txt'] = 'HTTP portovi'; $wb['error_port_syntax'] = 'Nedozvoljeni znakovi u port polju, unesite samo znamenke odvojene zarezom. Primjer: 80,443'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server_ip_list.lng b/interface/web/admin/lib/lang/hr_server_ip_list.lng index d4210d3a80..0a6673dc5d 100644 --- a/interface/web/admin/lib/lang/hr_server_ip_list.lng +++ b/interface/web/admin/lib/lang/hr_server_ip_list.lng @@ -8,3 +8,5 @@ $wb['virtualhost_txt'] = 'HTTP Vhost'; $wb['virtualhost_port_txt'] = 'HTTP portovi'; $wb['ip_type_txt'] = 'Vrsta'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server_list.lng b/interface/web/admin/lib/lang/hr_server_list.lng index f14477058f..1896375114 100644 --- a/interface/web/admin/lib/lang/hr_server_list.lng +++ b/interface/web/admin/lib/lang/hr_server_list.lng @@ -9,5 +9,7 @@ $wb['db_server_txt'] = 'Baza'; $wb['vserver_server_txt'] = 'VServer'; $wb['add_new_record_txt'] = 'Dodaj novi server'; $wb['proxy_server_txt'] = 'Proxy'; -$wb['firewall_server_txt'] = 'Firewall'; +$wb['firewall_server_txt'] = 'Vatrozid'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server_php.lng b/interface/web/admin/lib/lang/hr_server_php.lng index addbfa4935..febb3bae23 100644 --- a/interface/web/admin/lib/lang/hr_server_php.lng +++ b/interface/web/admin/lib/lang/hr_server_php.lng @@ -1,16 +1,18 @@ <?php $wb['server_id_txt'] = 'Server'; -$wb['client_id_txt'] = 'Client'; +$wb['client_id_txt'] = 'Klijent'; $wb['name_txt'] = 'PHP Name'; $wb['Name'] = 'Name'; -$wb['FastCGI Settings'] = 'FastCGI Settings'; -$wb['PHP-FPM Settings'] = 'PHP-FPM Settings'; -$wb['Additional PHP Versions'] = 'Additional PHP Versions'; -$wb['Form to edit additional PHP versions'] = 'Form to edit additional PHP versions'; +$wb['FastCGI Settings'] = 'FastCGI postavke'; +$wb['PHP-FPM Settings'] = 'PHP-FPM postavke'; +$wb['Additional PHP Versions'] = 'Dodatne PHP verzije'; +$wb['Form to edit additional PHP versions'] = 'Forma za dodatne PHP verzije'; $wb['server_php_name_error_empty'] = 'The Name field must not be empty.'; -$wb['php_fastcgi_binary_txt'] = 'Path to the PHP FastCGI binary'; -$wb['php_fastcgi_ini_dir_txt'] = 'Path to the php.ini directory'; -$wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script'; -$wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory'; -$wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory'; +$wb['php_fastcgi_binary_txt'] = 'Putanja do PHP FastCGI datoteke'; +$wb['php_fastcgi_ini_dir_txt'] = 'Putanja do php.ini direktorija'; +$wb['php_fpm_init_script_txt'] = 'Putanja do PHP-FPM init skripte'; +$wb['php_fpm_ini_dir_txt'] = 'Putanja do php.ini direktorija'; +$wb['php_fpm_pool_dir_txt'] = 'Putanja do PHP-FPM pool direktorija'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_server_php_list.lng b/interface/web/admin/lib/lang/hr_server_php_list.lng index b402fd1ed1..b763dcc1c7 100644 --- a/interface/web/admin/lib/lang/hr_server_php_list.lng +++ b/interface/web/admin/lib/lang/hr_server_php_list.lng @@ -2,6 +2,8 @@ $wb['list_head_txt'] = 'Additional PHP Versions'; $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; -$wb['client_id_txt'] = 'Client'; +$wb['client_id_txt'] = 'Klijent'; $wb['name_txt'] = 'PHP Name'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_software_package.lng b/interface/web/admin/lib/lang/hr_software_package.lng index faffe38217..4fda4e6c0e 100644 --- a/interface/web/admin/lib/lang/hr_software_package.lng +++ b/interface/web/admin/lib/lang/hr_software_package.lng @@ -4,3 +4,5 @@ $wb['package_key_txt'] = 'Package Key'; $wb['Software Package'] = 'Software Package'; $wb['Modify software package details'] = 'Modify software package details'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_software_package_install.lng b/interface/web/admin/lib/lang/hr_software_package_install.lng index 22d7e0ce7a..df68e358cb 100644 --- a/interface/web/admin/lib/lang/hr_software_package_install.lng +++ b/interface/web/admin/lib/lang/hr_software_package_install.lng @@ -4,3 +4,5 @@ $wb['install_key_txt'] = 'Unesi instalacijski kljuÄ'; $wb['btn_save_txt'] = 'Pokreni instalaciju'; $wb['btn_cancel_txt'] = 'Odustani'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_software_package_list.lng b/interface/web/admin/lib/lang/hr_software_package_list.lng index 8381110fea..dc427fffa8 100644 --- a/interface/web/admin/lib/lang/hr_software_package_list.lng +++ b/interface/web/admin/lib/lang/hr_software_package_list.lng @@ -5,9 +5,11 @@ $wb['package_title_txt'] = 'Paketi'; $wb['package_description_txt'] = 'Opis'; $wb['action_txt'] = 'Akcija'; $wb['toolsarea_head_txt'] = 'Paketi'; -$wb['repoupdate_txt'] = 'Obnovi listu paketa'; +$wb['repoupdate_txt'] = 'Osvježi listu paketa'; $wb['package_id_txt'] = 'lokalni App-ID'; $wb['no_packages_txt'] = 'No packages available'; $wb['edit_txt'] = 'Edit'; $wb['delete_txt'] = 'Delete'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_software_repo.lng b/interface/web/admin/lib/lang/hr_software_repo.lng index bbfb2e2db2..16f210f374 100644 --- a/interface/web/admin/lib/lang/hr_software_repo.lng +++ b/interface/web/admin/lib/lang/hr_software_repo.lng @@ -6,3 +6,5 @@ $wb['repo_password_txt'] = 'Å ifra (opcionalno)'; $wb['active_txt'] = 'Aktivno'; $wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_software_repo_list.lng b/interface/web/admin/lib/lang/hr_software_repo_list.lng index b79045bd76..ab81d1c6d2 100644 --- a/interface/web/admin/lib/lang/hr_software_repo_list.lng +++ b/interface/web/admin/lib/lang/hr_software_repo_list.lng @@ -4,3 +4,5 @@ $wb['active_txt'] = 'Aktivno'; $wb['repo_name_txt'] = 'Repozitorij'; $wb['repo_url_txt'] = 'URL'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_software_update_list.lng b/interface/web/admin/lib/lang/hr_software_update_list.lng index ed28fafbab..0990b311e4 100644 --- a/interface/web/admin/lib/lang/hr_software_update_list.lng +++ b/interface/web/admin/lib/lang/hr_software_update_list.lng @@ -5,5 +5,7 @@ $wb['installed_txt'] = 'Akcija'; $wb['update_title_txt'] = 'Nadogradi'; $wb['version_txt'] = 'Verzija'; $wb['action_txt'] = 'Akcija'; -$wb['no_updates_txt'] = 'No updates available'; +$wb['no_updates_txt'] = 'Nema nadogradnji'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index 0b9fe89d48..6ab665ed42 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -69,3 +69,5 @@ $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_tpl_default_admin.lng b/interface/web/admin/lib/lang/hr_tpl_default_admin.lng index eee3af5fe4..a28c5172b0 100644 --- a/interface/web/admin/lib/lang/hr_tpl_default_admin.lng +++ b/interface/web/admin/lib/lang/hr_tpl_default_admin.lng @@ -1,18 +1,20 @@ <?php -$wb['tpl_default_admin_head_txt'] = 'Global Default-Theme Settings'; +$wb['tpl_default_admin_head_txt'] = 'Globalne standardne postavke teme'; $wb['tpl_default_admin_desc_txt'] = ''; $wb['server_id_txt'] = 'Server'; -$wb['client_id_txt'] = 'Client'; -$wb['name_txt'] = 'PHP Name'; -$wb['Name'] = 'Name'; -$wb['FastCGI Settings'] = 'FastCGI Settings'; -$wb['PHP-FPM Settings'] = 'PHP-FPM Settings'; -$wb['Additional PHP Versions'] = 'Additional PHP Versions'; -$wb['Form to edit additional PHP versions'] = 'Form to edit additional PHP versions'; -$wb['server_php_name_error_empty'] = 'The Name field must not be empty.'; -$wb['php_fastcgi_binary_txt'] = 'Path to the PHP FastCGI binary'; -$wb['php_fastcgi_ini_dir_txt'] = 'Path to the php.ini directory'; -$wb['php_fpm_init_script_txt'] = 'Path to the PHP-FPM init script'; -$wb['php_fpm_ini_dir_txt'] = 'Path to the php.ini directory'; -$wb['php_fpm_pool_dir_txt'] = 'Path to the PHP-FPM pool directory'; +$wb['client_id_txt'] = 'Klijent'; +$wb['name_txt'] = 'PHP naziv'; +$wb['Name'] = 'Naziv'; +$wb['FastCGI Settings'] = 'FastCGI postavke'; +$wb['PHP-FPM Settings'] = 'PHP-FPM postavke'; +$wb['Additional PHP Versions'] = 'Dodatne PHP verzije'; +$wb['Form to edit additional PHP versions'] = 'Forma za editiranje dodatnih PHP verzija'; +$wb['server_php_name_error_empty'] = 'Nazive ne može biti prazan.'; +$wb['php_fastcgi_binary_txt'] = 'Putanja do PHP FastCGI izvrÅ¡ne datoteke'; +$wb['php_fastcgi_ini_dir_txt'] = 'Putanja do php.ini direktorija'; +$wb['php_fpm_init_script_txt'] = 'Putanja do PHP-FPM init skripte'; +$wb['php_fpm_ini_dir_txt'] = 'Putanja do php.ini direktorija'; +$wb['php_fpm_pool_dir_txt'] = 'Putanja do PHP-FPM pool direktorija'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_users.lng b/interface/web/admin/lib/lang/hr_users.lng index 037c86fe44..0a9ad64dcd 100644 --- a/interface/web/admin/lib/lang/hr_users.lng +++ b/interface/web/admin/lib/lang/hr_users.lng @@ -7,7 +7,7 @@ $wb['passwort_txt'] = 'Å ifra'; $wb['password_strength_txt'] = 'JaÄina Å¡ifre'; $wb['modules_txt'] = 'Modul'; $wb['startmodule_txt'] = 'PoÄetni modul'; -$wb['app_theme_txt'] = 'Izgled'; +$wb['app_theme_txt'] = 'Tema'; $wb['typ_txt'] = 'Vrsta'; $wb['active_txt'] = 'Aktivno'; $wb['language_txt'] = 'Jezik'; @@ -25,10 +25,12 @@ $wb['fax_txt'] = 'Faks'; $wb['groups_txt'] = 'Grupe'; $wb['default_group_txt'] = 'Standardna grupa'; $wb['startmodule_err'] = 'PoÄetni modul nije u izabranim modulima.'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; -$wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['username_error_collision'] = 'KorisniÄko ime ne može biti web ili web sa brojem.\\"'; +$wb['client_not_admin_err'] = 'Korisnik koji je u grupi klijenti ne može biti admin'; ?> + + diff --git a/interface/web/admin/lib/lang/hr_users_list.lng b/interface/web/admin/lib/lang/hr_users_list.lng index c102e5f7f5..e0014c996d 100644 --- a/interface/web/admin/lib/lang/hr_users_list.lng +++ b/interface/web/admin/lib/lang/hr_users_list.lng @@ -7,3 +7,5 @@ $wb['add_new_record_txt'] = 'Dodaj klijenta'; $wb['warning_txt'] = '<b>UPOZORENJE:</b> Ovdje nemojte mijenjati podatke klijenta. Koristite \\"Klijent\\" i \\"PreprodavaÄ\\" postavke u Klijent modulu. Mijenjanjem postavki klijenata ili grupa može doći do gubitka podataka!'; $wb['groups_txt'] = 'Groups'; ?> + + diff --git a/interface/web/client/lib/lang/hr.lng b/interface/web/client/lib/lang/hr.lng index 137f9bb1f1..fed227eafc 100644 --- a/interface/web/client/lib/lang/hr.lng +++ b/interface/web/client/lib/lang/hr.lng @@ -1,26 +1,28 @@ <?php -$wb['Client'] = 'Klijenti'; +$wb['Klijent'] = 'Klijenti'; $wb['Address'] = 'Adresa'; $wb['Limits'] = 'Limiti'; $wb['Add Client'] = 'Dodaj klijenta'; $wb['Edit Client'] = 'Editiraj klijenta'; $wb['Clients'] = 'Klijenti'; -$wb['Templates'] = 'Templates'; -$wb['Limit-Templates'] = 'Limit-Templates'; +$wb['Templates'] = 'PredloÅ¡ci'; +$wb['Limit-Templates'] = 'Limiti-PredloÅ¡ci'; $wb['Add Reseller'] = 'Dodaj preprodavaÄa'; $wb['Edit Reseller'] = 'Editiraj preprodavaÄa'; $wb['Resellers'] = 'PreprodavaÄi'; $wb['error_has_clients'] = 'Ovaj preprodavaÄ ima klijente. Prvo morate obrisati klijente preprodavaÄa.'; $wb['add_additional_template_txt'] = 'Dodaj dodatni predložak'; $wb['delete_additional_template_txt'] = 'ObriÅ¡i dodatni predložak'; -$wb['Messaging'] = 'Messaging'; -$wb['Send email'] = 'Send Email'; -$wb['Edit Client Circle'] = 'Edit Client Circle'; -$wb['Domains'] = 'Domains'; -$wb['domain_txt'] = 'Domain'; -$wb['client_txt'] = 'Client'; -$wb['error_domain_in mailuse'] = 'This domain cannot be deleted, because it is in use as mail-domain'; -$wb['error_domain_in webuse'] = 'This domain cannot be deleted, because it is in use as web-domain'; -$wb['error_client_can_not_add_domain'] = 'You cannot add a new domain'; -$wb['error_client_group_id_empty'] = 'You have to select a customer<br>'; +$wb['Messaging'] = 'Slanje poruka'; +$wb['Send email'] = 'PoÅ¡alji email'; +$wb['Edit Client Circle'] = 'Promijeni krug klijenata'; +$wb['Domains'] = 'Domene'; +$wb['domain_txt'] = 'Domena'; +$wb['client_txt'] = 'Klijent'; +$wb['error_domain_in mailuse'] = 'Ova domena ne može biti obrisana jer se koristi kao mail domena'; +$wb['error_domain_in webuse'] = 'Ova domena ne može biti obrisana jer se koristi kao web domena'; +$wb['error_client_can_not_add_domain'] = 'Ne možete dodati novu domenu'; +$wb['error_client_group_id_empty'] = 'Morate izabrati klijenta<br>'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client.lng b/interface/web/client/lib/lang/hr_client.lng index e1bbc10260..2c97be9500 100644 --- a/interface/web/client/lib/lang/hr_client.lng +++ b/interface/web/client/lib/lang/hr_client.lng @@ -129,13 +129,13 @@ $wb['database_limits_txt'] = 'Database Limits'; $wb['cron_job_limits_txt'] = 'Cron Job Limits'; $wb['dns_limits_txt'] = 'DNS Limits'; $wb['virtualization_limits_txt'] = 'Virtualization Limits'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['generate_password_txt'] = 'GenerirajÅ¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; $wb['active_template_additional_txt'] = 'Active Addons'; $wb['bank_account_owner_txt'] = 'Bank account owner'; -$wb['email_error_isemail'] = 'Please enter a valid email address.'; +$wb['email_error_isemail'] = 'Unesi ispravnu email adresu.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; @@ -154,3 +154,5 @@ $wb['added_date_txt'] = 'Added date'; $wb['parent_client_id_txt'] = 'Client of reseller'; $wb['none_txt'] = 'none'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_circle.lng b/interface/web/client/lib/lang/hr_client_circle.lng index f98a1447fc..bff3a9fd51 100644 --- a/interface/web/client/lib/lang/hr_client_circle.lng +++ b/interface/web/client/lib/lang/hr_client_circle.lng @@ -1,9 +1,11 @@ <?php -$wb['Client Circle'] = 'Client Circle'; -$wb['Circle'] = 'Circle'; -$wb['circle_txt'] = 'Circle'; -$wb['circle_name_txt'] = 'Circle Name'; -$wb['client_ids_txt'] = 'Clients/Resellers'; -$wb['description_txt'] = 'Description'; -$wb['active_txt'] = 'Active'; +$wb['Client Circle'] = 'Krug klijenata'; +$wb['Circle'] = 'Krug'; +$wb['circle_txt'] = 'Krug'; +$wb['circle_name_txt'] = 'Naziv kruga'; +$wb['client_ids_txt'] = 'Klijenti/PreprodavaÄi'; +$wb['description_txt'] = 'Opis'; +$wb['active_txt'] = 'Aktivno'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_circle_list.lng b/interface/web/client/lib/lang/hr_client_circle_list.lng index 00fd0b3998..c4648b1f7a 100644 --- a/interface/web/client/lib/lang/hr_client_circle_list.lng +++ b/interface/web/client/lib/lang/hr_client_circle_list.lng @@ -1,10 +1,12 @@ <?php -$wb['list_head_txt'] = 'Client Circles'; -$wb['circle_id_txt'] = 'Circle ID'; -$wb['circle_name_txt'] = 'Circle Name'; -$wb['description_txt'] = 'Description'; -$wb['add_new_record_txt'] = 'Add new circle'; +$wb['list_head_txt'] = 'Krug klijenata'; +$wb['circle_id_txt'] = 'ID kruga'; +$wb['circle_name_txt'] = 'Naziv kruga'; +$wb['description_txt'] = 'Opis'; +$wb['add_new_record_txt'] = 'Dodaj novi krug'; $wb['filter_txt'] = 'Filter'; -$wb['delete_txt'] = 'Delete'; -$wb['active_txt'] = 'Active'; +$wb['delete_txt'] = 'ObriÅ¡i'; +$wb['active_txt'] = 'Aktivno'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_del.lng b/interface/web/client/lib/lang/hr_client_del.lng index 939cc59fb6..1db0476c84 100644 --- a/interface/web/client/lib/lang/hr_client_del.lng +++ b/interface/web/client/lib/lang/hr_client_del.lng @@ -5,3 +5,5 @@ $wb['btn_save_txt'] = 'ObriÅ¡i klijenta'; $wb['btn_cancel_txt'] = 'Prekini i ne briÅ¡i klijenta'; $wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_message.lng b/interface/web/client/lib/lang/hr_client_message.lng index 6b2a872f10..9f273affbb 100644 --- a/interface/web/client/lib/lang/hr_client_message.lng +++ b/interface/web/client/lib/lang/hr_client_message.lng @@ -1,20 +1,22 @@ <?php -$wb['btn_send_txt'] = 'Send email'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['sender_txt'] = 'Sender email address'; -$wb['subject_txt'] = 'Subject'; -$wb['message_txt'] = 'Message'; -$wb['form_legend_client_txt'] = 'Send email message to all clients.'; -$wb['form_legend_admin_txt'] = 'Send email message to all clients and resellers.'; -$wb['sender_invalid_error'] = 'Sender email invalid.'; -$wb['subject_invalid_error'] = 'Subject is empty.'; -$wb['message_invalid_error'] = 'Message is empty.'; -$wb['email_sent_to_txt'] = 'Email sent to:'; -$wb['page_head_txt'] = 'Send customer information'; -$wb['recipient_txt'] = 'Recipient'; -$wb['all_clients_resellers_txt'] = 'All clients and resellers'; -$wb['all_clients_txt'] = 'All clients'; -$wb['variables_txt'] = 'Variables:'; -$wb['gender_m_txt'] = 'Mr.'; -$wb['gender_f_txt'] = 'Ms.'; +$wb['btn_send_txt'] = 'PoÅ¡alji email'; +$wb['btn_cancel_txt'] = 'Odustani'; +$wb['sender_txt'] = 'Adresa poÅ¡iljatelja'; +$wb['subject_txt'] = 'Naslov'; +$wb['message_txt'] = 'Poruka'; +$wb['form_legend_client_txt'] = 'PoÅ¡alji email svim klijentima.'; +$wb['form_legend_admin_txt'] = 'PoÅ¡alji email svim klijentima i preprodavaÄima.'; +$wb['sender_invalid_error'] = 'Neispravan email poÅ¡iljatelja.'; +$wb['subject_invalid_error'] = 'Naslov emaila je prazan.'; +$wb['message_invalid_error'] = 'Niste napisali poruku.'; +$wb['email_sent_to_txt'] = 'Email poslan:'; +$wb['page_head_txt'] = 'PoÅ¡alji klijentske informacije'; +$wb['recipient_txt'] = 'Primatelj'; +$wb['all_clients_resellers_txt'] = 'Svi klijenti i preprodavaÄi'; +$wb['all_clients_txt'] = 'Svi klijenti'; +$wb['variables_txt'] = 'Varijable:'; +$wb['gender_m_txt'] = 'g.'; +$wb['gender_f_txt'] = 'gÄ‘a.'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_message_template.lng b/interface/web/client/lib/lang/hr_client_message_template.lng index 65e5fbfba3..14d308b465 100644 --- a/interface/web/client/lib/lang/hr_client_message_template.lng +++ b/interface/web/client/lib/lang/hr_client_message_template.lng @@ -9,3 +9,5 @@ $wb['variables_txt'] = 'Variables'; $wb['variables_description_txt'] = '(The username and password variables are only available in welcome emails.)'; $wb['duplicate_welcome_error'] = 'There can be only one default welcome email template. Please edit the existing template instead of adding a new one.'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_message_template_list.lng b/interface/web/client/lib/lang/hr_client_message_template_list.lng index d9c307ed52..3c858650b1 100644 --- a/interface/web/client/lib/lang/hr_client_message_template_list.lng +++ b/interface/web/client/lib/lang/hr_client_message_template_list.lng @@ -1,5 +1,7 @@ <?php -$wb['list_head_txt'] = 'Email templates'; -$wb['template_type_txt'] = 'Message for'; -$wb['template_name_txt'] = 'Template name'; +$wb['list_head_txt'] = 'Email predloÅ¡ci'; +$wb['template_type_txt'] = 'Poruka za'; +$wb['template_name_txt'] = 'Naziv predloÅ¡ka'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_template.lng b/interface/web/client/lib/lang/hr_client_template.lng index b631e518de..9cd9d084d0 100644 --- a/interface/web/client/lib/lang/hr_client_template.lng +++ b/interface/web/client/lib/lang/hr_client_template.lng @@ -90,3 +90,5 @@ $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; ?> + + diff --git a/interface/web/client/lib/lang/hr_client_template_list.lng b/interface/web/client/lib/lang/hr_client_template_list.lng index cdc2f0006a..53bbd164b2 100644 --- a/interface/web/client/lib/lang/hr_client_template_list.lng +++ b/interface/web/client/lib/lang/hr_client_template_list.lng @@ -4,3 +4,5 @@ $wb['template_type_txt'] = 'Vrsta'; $wb['template_name_txt'] = 'Naziv predloÅ¡ka'; $wb['template_id_txt'] = 'Template ID'; ?> + + diff --git a/interface/web/client/lib/lang/hr_clients_list.lng b/interface/web/client/lib/lang/hr_clients_list.lng index a733692285..f4dd799d59 100644 --- a/interface/web/client/lib/lang/hr_clients_list.lng +++ b/interface/web/client/lib/lang/hr_clients_list.lng @@ -9,3 +9,5 @@ $wb['add_new_record_txt'] = 'Dodaj klijenta'; $wb['username_txt'] = 'KorisniÄko ime'; $wb['customer_no_txt'] = 'Customer No.'; ?> + + diff --git a/interface/web/client/lib/lang/hr_domain.lng b/interface/web/client/lib/lang/hr_domain.lng index 30f3ca054f..772b88aa2a 100644 --- a/interface/web/client/lib/lang/hr_domain.lng +++ b/interface/web/client/lib/lang/hr_domain.lng @@ -2,5 +2,7 @@ $wb['domain_error_empty'] = 'Ime domene je prazno'; $wb['domain_error_unique'] = 'Domena već postoji'; $wb['domain_error_regex'] = 'Ovo ime domene ne možete upotrijebiti'; -$wb['Domain'] = 'Domena'; +$wb['Domena'] = 'Domena'; ?> + + diff --git a/interface/web/client/lib/lang/hr_domain_list.lng b/interface/web/client/lib/lang/hr_domain_list.lng index d3bdd4bc44..daaf8161ac 100644 --- a/interface/web/client/lib/lang/hr_domain_list.lng +++ b/interface/web/client/lib/lang/hr_domain_list.lng @@ -2,5 +2,7 @@ $wb['list_head_txt'] = 'Domene'; $wb['add_new_record_txt'] = 'Dodaj domenu'; $wb['domain_txt'] = 'Domena'; -$wb['user_txt'] = 'Client'; +$wb['user_txt'] = 'Klijent'; ?> + + diff --git a/interface/web/client/lib/lang/hr_reseller.lng b/interface/web/client/lib/lang/hr_reseller.lng index 319c2a5387..af1a999573 100644 --- a/interface/web/client/lib/lang/hr_reseller.lng +++ b/interface/web/client/lib/lang/hr_reseller.lng @@ -124,11 +124,11 @@ $wb['database_limits_txt'] = 'Database Limits'; $wb['cron_job_limits_txt'] = 'Cron Job Limits'; $wb['dns_limits_txt'] = 'DNS Limits'; $wb['virtualization_limits_txt'] = 'Virtualization Limits'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['email_error_isemail'] = 'Please enter a valid email address.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['email_error_isemail'] = 'Unesi ispravnu email adresu.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; @@ -143,19 +143,21 @@ $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; -$wb['locked_txt'] = 'Locked'; +$wb['locked_txt'] = 'ZakljuÄano'; $wb['canceled_txt'] = 'Canceled'; -$wb['gender_m_txt'] = 'Mr.'; -$wb['gender_f_txt'] = 'Ms.'; -$wb['gender_txt'] = 'Title'; +$wb['gender_m_txt'] = 'g.'; +$wb['gender_f_txt'] = 'gÄ‘a.'; +$wb['gender_txt'] = 'Titula'; $wb['customer_no_template_txt'] = 'Customer No. template'; $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contains invalid characters'; $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; -$wb['added_by_txt'] = 'Added by'; -$wb['added_date_txt'] = 'Added date'; +$wb['added_by_txt'] = 'Dodao'; +$wb['added_date_txt'] = 'Datum dodavanja'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; -$wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; -$wb['client_limits_txt'] = 'Client Limits'; +$wb['limit_domainmodule_txt'] = 'Domain module Limit'; +$wb['client_limits_txt'] = 'Limiti klijenata'; $wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; ?> + + diff --git a/interface/web/client/lib/lang/hr_resellers_list.lng b/interface/web/client/lib/lang/hr_resellers_list.lng index bd26b348ac..194d6ff87d 100644 --- a/interface/web/client/lib/lang/hr_resellers_list.lng +++ b/interface/web/client/lib/lang/hr_resellers_list.lng @@ -6,6 +6,8 @@ $wb['contact_name_txt'] = 'Kontakt osoba'; $wb['city_txt'] = 'Grad'; $wb['country_txt'] = 'Država'; $wb['add_new_record_txt'] = 'Dodaj novog preprodavaÄa'; -$wb['customer_no_txt'] = 'Customer No.'; -$wb['username_txt'] = 'Username'; +$wb['customer_no_txt'] = 'Klijent br.'; +$wb['username_txt'] = 'KorisniÄko ime'; ?> + + diff --git a/interface/web/dashboard/lib/lang/hr.lng b/interface/web/dashboard/lib/lang/hr.lng index 769b77ae54..4fd68c5918 100644 --- a/interface/web/dashboard/lib/lang/hr.lng +++ b/interface/web/dashboard/lib/lang/hr.lng @@ -2,3 +2,5 @@ $wb['welcome_user_txt'] = 'DobrodoÅ¡ao %s'; $wb['available_modules_txt'] = 'Dostupni moduli'; ?> + + diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng b/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng index 095afc4080..fb27cfe152 100644 --- a/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/hr_dashlet_limits.lng @@ -28,3 +28,5 @@ $wb['limit_client_txt'] = 'Klijenti'; $wb['limit_database_txt'] = 'Broj baza'; $wb['limit_mailmailinglist_txt'] = 'Broj mail lista'; ?> + + diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng index 1ab1e66658..8b3b20fc79 100644 --- a/interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng @@ -1,8 +1,10 @@ <?php $wb['mailquota_txt'] = 'Mailbox Quota'; $wb['email_txt'] = 'Email Address'; -$wb['name_txt'] = 'Name'; +$wb['name_txt'] = 'Naziv'; $wb['used_txt'] = 'Used Space'; -$wb['quota_txt'] = 'Quota'; +$wb['quota_txt'] = 'Kvota'; $wb['no_email_accounts_txt'] = 'No email accounts found.'; ?> + + diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_modules.lng b/interface/web/dashboard/lib/lang/hr_dashlet_modules.lng index 76f2a1f7c5..2ff293afbf 100644 --- a/interface/web/dashboard/lib/lang/hr_dashlet_modules.lng +++ b/interface/web/dashboard/lib/lang/hr_dashlet_modules.lng @@ -1,3 +1,5 @@ <?php $wb['available_modules_txt'] = 'Dostupni moduli'; ?> + + diff --git a/interface/web/dashboard/lib/lang/hr_dashlet_quota.lng b/interface/web/dashboard/lib/lang/hr_dashlet_quota.lng index de7b5a8936..46dd781276 100644 --- a/interface/web/dashboard/lib/lang/hr_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/hr_dashlet_quota.lng @@ -6,3 +6,5 @@ $wb['hard_txt'] = 'Hard limit'; $wb['soft_txt'] = 'Soft limit'; $wb['no_sites_txt'] = 'No web sites found.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr.lng b/interface/web/dns/lib/lang/hr.lng index 1495b3e6d3..1fba79c89f 100644 --- a/interface/web/dns/lib/lang/hr.lng +++ b/interface/web/dns/lib/lang/hr.lng @@ -20,3 +20,5 @@ $wb['Templates'] = 'PredloÅ¡ci'; $wb['Secondary Zones'] = 'Sekundarne zone'; $wb['Import Zone File'] = 'Importiraj zonsku datoteku'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_a.lng b/interface/web/dns/lib/lang/hr_dns_a.lng index 4113907255..322010d17b 100644 --- a/interface/web/dns/lib/lang/hr_dns_a.lng +++ b/interface/web/dns/lib/lang/hr_dns_a.lng @@ -13,5 +13,7 @@ $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje IP adresa je prazno'; $wb['data_error_regex'] = 'Neispravan format A zapisa'; $wb['data_error_duplicate'] = 'Već postoji ovaj A ili CNAME zapis'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_a_list.lng b/interface/web/dns/lib/lang/hr_dns_a_list.lng index 8fff6885de..0a1099ef03 100644 --- a/interface/web/dns/lib/lang/hr_dns_a_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_a_list.lng @@ -13,3 +13,5 @@ $wb['page_txt'] = 'Stranica'; $wb['page_of_txt'] = 'od'; $wb['delete_confirmation'] = 'Sigurno želite obrisati ovaj zapis?'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_aaaa.lng b/interface/web/dns/lib/lang/hr_dns_aaaa.lng index 1f35d51023..ba0212776e 100644 --- a/interface/web/dns/lib/lang/hr_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/hr_dns_aaaa.lng @@ -12,5 +12,7 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje IPv6 adresa je prazno'; $wb['data_error_regex'] = 'Neispravan format IPv6 adrese'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_alias.lng b/interface/web/dns/lib/lang/hr_dns_alias.lng index 97f15b1651..088ce4a994 100644 --- a/interface/web/dns/lib/lang/hr_dns_alias.lng +++ b/interface/web/dns/lib/lang/hr_dns_alias.lng @@ -12,5 +12,7 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje odrediÅ¡ni host je prazno'; $wb['data_error_regex'] = 'Neispravan format odrediÅ¡nog hosta'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_cname.lng b/interface/web/dns/lib/lang/hr_dns_cname.lng index e3eddd6852..6c281d6c60 100644 --- a/interface/web/dns/lib/lang/hr_dns_cname.lng +++ b/interface/web/dns/lib/lang/hr_dns_cname.lng @@ -13,5 +13,7 @@ $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje odrediÅ¡ni host je prazno'; $wb['data_error_regex'] = 'Neispravan format odrediÅ¡nog host zapisa'; $wb['data_error_duplicate'] = 'Duplicirani A zapis ili CNAME zapis'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_hinfo.lng b/interface/web/dns/lib/lang/hr_dns_hinfo.lng index 9c8c057077..6c212b1683 100644 --- a/interface/web/dns/lib/lang/hr_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/hr_dns_hinfo.lng @@ -12,5 +12,7 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Nedostaju informacije o hostu'; $wb['data_error_regex'] = 'Informacije o hostu su u neispravanom formatu'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_import.lng b/interface/web/dns/lib/lang/hr_dns_import.lng index 2d1fe083ea..711132cbc8 100644 --- a/interface/web/dns/lib/lang/hr_dns_import.lng +++ b/interface/web/dns/lib/lang/hr_dns_import.lng @@ -1,14 +1,16 @@ <?php $wb['server_id_txt'] = 'Server'; -$wb['client_txt'] = 'Client'; -$wb['btn_save_txt'] = 'Import Zonefile'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['domain_txt'] = 'Domain'; +$wb['client_txt'] = 'Klijent'; +$wb['btn_save_txt'] = 'Importiraj zonsku datoteku'; +$wb['btn_cancel_txt'] = 'Odustani'; +$wb['domain_txt'] = 'Domena'; $wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!'; $wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!'; -$wb['zonefile_to_import_txt'] = 'Zone File'; +$wb['zonefile_to_import_txt'] = 'Zonska datoteka'; $wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.'; -$wb['title'] = 'Import Zone Files'; -$wb['no_file_uploaded_error'] = 'No zonefile uploaded'; -$wb['zone_file_import_txt'] = 'Zone File Import'; +$wb['title'] = 'Importiraj zonske datoteka'; +$wb['no_file_uploaded_error'] = 'Nije preneÅ¡ena zonska datoteka'; +$wb['zone_file_import_txt'] = 'Importiraj zonsku datoteku'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_mx.lng b/interface/web/dns/lib/lang/hr_dns_mx.lng index 22baa5d13c..b2f800e1f3 100644 --- a/interface/web/dns/lib/lang/hr_dns_mx.lng +++ b/interface/web/dns/lib/lang/hr_dns_mx.lng @@ -13,6 +13,8 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Naziv mail hosta polje je prazno'; $wb['data_error_regex'] = 'Neispravan format naziva mail host zapisa'; -$wb['duplicate_mx_record_txt'] = 'Duplicate MX record.'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['duplicate_mx_record_txt'] = 'Duplicirani MX zapis.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_ns.lng b/interface/web/dns/lib/lang/hr_dns_ns.lng index 3f1764509e..c04d1a0c96 100644 --- a/interface/web/dns/lib/lang/hr_dns_ns.lng +++ b/interface/web/dns/lib/lang/hr_dns_ns.lng @@ -12,5 +12,7 @@ $wb['name_error_empty'] = 'Naziv zone nije upisan.'; $wb['name_error_regex'] = 'Naziv zone je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Nameserver nije upisan'; $wb['data_error_regex'] = 'Nameserver je u pogreÅ¡nom formatu'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_ptr.lng b/interface/web/dns/lib/lang/hr_dns_ptr.lng index ef78315fef..c6451e7f74 100644 --- a/interface/web/dns/lib/lang/hr_dns_ptr.lng +++ b/interface/web/dns/lib/lang/hr_dns_ptr.lng @@ -12,5 +12,7 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje Canonical naziv hosta je prazno'; $wb['data_error_regex'] = 'Neispravan format Canonical host zapisa'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_rp.lng b/interface/web/dns/lib/lang/hr_dns_rp.lng index 7da0639b1a..54ab872b8c 100644 --- a/interface/web/dns/lib/lang/hr_dns_rp.lng +++ b/interface/web/dns/lib/lang/hr_dns_rp.lng @@ -12,5 +12,7 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje za odgovornu osobu je prazno'; $wb['data_error_regex'] = 'Polje za odgovornu osobu je neispravno'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_slave.lng b/interface/web/dns/lib/lang/hr_dns_slave.lng index 9014f51da3..471cbf1c5f 100644 --- a/interface/web/dns/lib/lang/hr_dns_slave.lng +++ b/interface/web/dns/lib/lang/hr_dns_slave.lng @@ -1,11 +1,11 @@ <?php $wb['server_id_txt'] = 'Server'; -$wb['origin_txt'] = 'DNS Zona'; +$wb['origin_txt'] = 'DNS zona'; $wb['ns_txt'] = 'NS'; $wb['active_txt'] = 'Aktivno'; $wb['limit_dns_slave_zone_txt'] = 'IskoriÅ¡ten je maksimalan broj sekundarnih DNS zona za vaÅ¡ raÄun.'; $wb['client_txt'] = 'Klijent'; -$wb['xfer_txt'] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb['xfer_txt'] = 'Dozvoli transfer zona<br />slijedećim IP-evima (odvojiti zarezom)'; $wb['server_id_error_empty'] = 'Nije izabran server.'; $wb['origin_error_empty'] = 'Zona je prazna.'; $wb['origin_error_unique'] = 'Već postoji zapis za ovu zonu.'; @@ -13,5 +13,7 @@ $wb['origin_error_regex'] = 'Zona je u pogreÅ¡nom formatu.'; $wb['ns_error_regex'] = 'NS je u pogreÅ¡nom formatu.'; $wb['eg_domain_tld'] = 'npr. domena.tld.'; $wb['ipv4_form_txt'] = 'IPv4 forma - npr. 1.2.3.4'; -$wb['secondary_zone_txt'] = 'Secondary DNS Zone'; +$wb['secondary_zone_txt'] = 'Sekundarne DNS zone'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng index 59d84877c6..219b9ede2c 100644 --- a/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_slave_admin_list.lng @@ -1,10 +1,12 @@ <?php -$wb['list_head_txt'] = 'Secondary DNS-Zones'; -$wb['active_txt'] = 'Active'; +$wb['list_head_txt'] = 'Sekundarne DNS zone'; +$wb['active_txt'] = 'Aktivno'; $wb['server_id_txt'] = 'Server'; -$wb['origin_txt'] = 'Zone'; +$wb['origin_txt'] = 'Zona'; $wb['ns_txt'] = 'NS'; -$wb['add_new_record_txt'] = 'Add new Secondary DNS-Zone'; -$wb['eg_domain_tld'] = 'e.g. domain.tld.'; -$wb['sys_groupid_txt'] = 'Client'; +$wb['add_new_record_txt'] = 'Dodaj sekundarnu DNS zonu'; +$wb['eg_domain_tld'] = 'npr. domena.tld.'; +$wb['sys_groupid_txt'] = 'Klijent'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_slave_list.lng b/interface/web/dns/lib/lang/hr_dns_slave_list.lng index 02fafc529d..ced26358a9 100644 --- a/interface/web/dns/lib/lang/hr_dns_slave_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_slave_list.lng @@ -7,3 +7,5 @@ $wb['ns_txt'] = 'NS'; $wb['add_new_record_txt'] = 'Dodaj sekundarnu DNS zonu'; $wb['eg_domain_tld'] = 'npr. domena.tld.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_soa.lng b/interface/web/dns/lib/lang/hr_dns_soa.lng index ef72c7c633..4d9afde0a7 100644 --- a/interface/web/dns/lib/lang/hr_dns_soa.lng +++ b/interface/web/dns/lib/lang/hr_dns_soa.lng @@ -9,7 +9,7 @@ $wb['retry_txt'] = 'Retry'; $wb['expire_txt'] = 'Expire'; $wb['minimum_txt'] = 'Minimalno'; $wb['ttl_txt'] = 'TTL'; -$wb['xfer_txt'] = 'Dozvoli transfer zona <br />ovim IP-ovima (odvojeni zarezom)'; +$wb['xfer_txt'] = 'Dozvoli transfer zona<br />slijedećim IP-evima (odvojiti zarezom)'; $wb['active_txt'] = 'Aktivno'; $wb['limit_dns_zone_txt'] = 'IskoriÅ¡ten je maksimalan broj DNS zapisa za vaÅ¡ raÄun.'; $wb['client_txt'] = 'Klijent'; @@ -29,10 +29,12 @@ $wb['eg_domain_tld'] = 'npr. domena.tld'; $wb['eg_ns1_domain_tld'] = 'npr. ns1.domena.tld'; $wb['eg_webmaster_domain_tld'] = 'npr. webmaster@domena.tld'; $wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'Ova domena ne može biti promijenjena. PoÅ¡aljite zahtjev administratoru ako želite promijeniti naziv domene.'; -$wb['refresh_range_error'] = 'Min. Refresh time is 60 seconds.'; -$wb['retry_range_error'] = 'Min. Retry time is 60 seconds.'; -$wb['expire_range_error'] = 'Min. Expire time is 60 seconds.'; -$wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; -$wb['xfer_error_regex'] = 'Also notify: Please use an IP address.'; +$wb['refresh_range_error'] = 'Minimalno vrijeme osvježavanja je 60 sekundi.'; +$wb['retry_range_error'] = 'Minimalno Retry vrijeme je 60 sekundi.'; +$wb['expire_range_error'] = 'Minimalno vrijeme isteka je 60 sekundi.'; +$wb['minimum_range_error'] = 'Minimalno vrijeme minimuma je 60 sekundi.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; +$wb['xfer_error_regex'] = 'TakoÄ‘er obavijesti: Koristite IP adresu.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng index 183d1a8349..9b24cafbe4 100644 --- a/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_soa_admin_list.lng @@ -1,11 +1,13 @@ <?php -$wb['list_head_txt'] = 'DNS-Zones'; -$wb['active_txt'] = 'Active'; +$wb['list_head_txt'] = 'DNS zone'; +$wb['active_txt'] = 'Aktivno'; $wb['server_id_txt'] = 'Server'; -$wb['origin_txt'] = 'Zone'; +$wb['origin_txt'] = 'Zona'; $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; -$wb['add_new_record_wizard_txt'] = 'Add new DNS Zone with Wizard'; -$wb['add_new_record_txt'] = 'Add new DNS Zone manually'; -$wb['sys_groupid_txt'] = 'Client'; +$wb['add_new_record_wizard_txt'] = 'Dodaj novu DNS zonu sa Äarobnjakom'; +$wb['add_new_record_txt'] = 'Dodaj novu DNS zonu ruÄno'; +$wb['sys_groupid_txt'] = 'Klijent'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_soa_list.lng b/interface/web/dns/lib/lang/hr_dns_soa_list.lng index cb9cbe07cd..25539b8295 100644 --- a/interface/web/dns/lib/lang/hr_dns_soa_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_soa_list.lng @@ -1,10 +1,12 @@ <?php -$wb['list_head_txt'] = 'DNS zone'; +$wb['list_head_txt'] = 'DNS zona'; $wb['active_txt'] = 'Aktivno'; $wb['server_id_txt'] = 'Server'; -$wb['origin_txt'] = 'Zone'; +$wb['origin_txt'] = 'Zona'; $wb['ns_txt'] = 'NS'; $wb['mbox_txt'] = 'Email'; $wb['add_new_record_wizard_txt'] = 'Dodaj novu DNS zonu sa Äarobnjakom'; $wb['add_new_record_txt'] = 'Dodaj novu DNS zonu ruÄno'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_srv.lng b/interface/web/dns/lib/lang/hr_dns_srv.lng index aea5768692..b6213d7f67 100644 --- a/interface/web/dns/lib/lang/hr_dns_srv.lng +++ b/interface/web/dns/lib/lang/hr_dns_srv.lng @@ -9,12 +9,14 @@ $wb['port_txt'] = 'Port'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktivno'; $wb['aux_txt'] = 'Prioritet'; -$wb['limit_dns_record_txt'] = 'IskoriÅ¡ten je maksimalan broj DNS zapisa za vaÅ¡ ra�un.'; +$wb['limit_dns_record_txt'] = 'IskoriÅ¡ten je maksimalan broj DNS zapisa za vaÅ¡ raÄun.'; $wb['no_zone_perm'] = 'Nemate dozvolu za dodavanja zapisa ovoj domeni.'; $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; -$wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; +$wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'Polje serverski zapis je prazno'; $wb['data_error_regex'] = 'Neispravan format serverskog zapisa'; -$wb['srv_error_regex'] = 'Neispravan format serverskog zapisa. Mora sadržavati barem 3 tekstualne rije�i odvojene razmakom.'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['srv_error_regex'] = 'Neispravan format serverskog zapisa. Mora sadržavati barem 3 tekstualne rijeÄi odvojene razmakom.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_template.lng b/interface/web/dns/lib/lang/hr_dns_template.lng index 100c5c8239..aa880f670e 100644 --- a/interface/web/dns/lib/lang/hr_dns_template.lng +++ b/interface/web/dns/lib/lang/hr_dns_template.lng @@ -4,3 +4,5 @@ $wb['fields_txt'] = 'Polja'; $wb['template_txt'] = 'Predložak'; $wb['visible_txt'] = 'Vidljivo'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_template_list.lng b/interface/web/dns/lib/lang/hr_dns_template_list.lng index 22d83c62e0..2585238ed5 100644 --- a/interface/web/dns/lib/lang/hr_dns_template_list.lng +++ b/interface/web/dns/lib/lang/hr_dns_template_list.lng @@ -1,6 +1,8 @@ <?php -$wb['list_head_txt'] = 'DNS Äarobnjak predložaka'; +$wb['list_head_txt'] = 'ÄŒarobnjak za DNS predloÅ¡ke'; $wb['visible_txt'] = 'Vidljivo'; $wb['name_txt'] = 'Naziv'; $wb['add_new_record_txt'] = 'Dodaj novi'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_txt.lng b/interface/web/dns/lib/lang/hr_dns_txt.lng index 1339086d48..88bb5e15e7 100644 --- a/interface/web/dns/lib/lang/hr_dns_txt.lng +++ b/interface/web/dns/lib/lang/hr_dns_txt.lng @@ -12,5 +12,7 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.'; $wb['name_error_regex'] = 'Naziv hosta je u pogreÅ¡nom formatu.'; $wb['data_error_empty'] = 'TXT polje je prazno'; $wb['data_error_regex'] = 'Neispravan format TXT zapisa'; -$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; +$wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.'; ?> + + diff --git a/interface/web/dns/lib/lang/hr_dns_wizard.lng b/interface/web/dns/lib/lang/hr_dns_wizard.lng index c949ed7baa..df6c341555 100644 --- a/interface/web/dns/lib/lang/hr_dns_wizard.lng +++ b/interface/web/dns/lib/lang/hr_dns_wizard.lng @@ -26,13 +26,15 @@ $wb['error_domain_regex'] = 'Domena sadrži nedozvoljene znakove.'; $wb['error_ns1_regex'] = 'NS1 sadrži nedozvoljene znakove.'; $wb['error_ns2_regex'] = 'NS2 sadrži nedozvoljene znakove.'; $wb['error_email_regex'] = 'Email adresa nije ispravna.'; -$wb['dns_zone_txt'] = 'DNS Zone'; -$wb['globalsearch_resultslimit_of_txt'] = 'of'; -$wb['globalsearch_resultslimit_results_txt'] = 'results'; -$wb['globalsearch_noresults_text_txt'] = 'No results.'; -$wb['globalsearch_noresults_limit_txt'] = '0 results'; -$wb['globalsearch_searchfield_watermark_txt'] = 'Search'; -$wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; -$wb['list_head_txt'] = 'DNS Zone Wizard'; -$wb['list_desc_txt'] = 'Create a DNS Zone via a wizard'; +$wb['dns_zone_txt'] = 'DNS zona'; +$wb['globalsearch_resultslimit_of_txt'] = 'od'; +$wb['globalsearch_resultslimit_results_txt'] = 'rezultata'; +$wb['globalsearch_noresults_text_txt'] = 'Nema rezultata.'; +$wb['globalsearch_noresults_limit_txt'] = '0 rezultata'; +$wb['globalsearch_searchfield_watermark_txt'] = 'Traži'; +$wb['globalsearch_suggestions_text_txt'] = 'Sugestija'; +$wb['list_head_txt'] = 'DNS Äarobnjak'; +$wb['list_desc_txt'] = 'Kreiraj DNS zonu sa Äarobnjakom'; ?> + + diff --git a/interface/web/help/lib/lang/hr.lng b/interface/web/help/lib/lang/hr.lng index fd9153f239..71f5920d07 100644 --- a/interface/web/help/lib/lang/hr.lng +++ b/interface/web/help/lib/lang/hr.lng @@ -12,3 +12,5 @@ $wb['Manage Sections'] = 'Upravljaj rubrikama'; $wb['Add a Question & Answer Pair'] = 'Dodaj pitanje i odgovor'; $wb['Manage Questions'] = 'Upravljaj pitanjima'; ?> + + diff --git a/interface/web/help/lib/lang/hr_faq_form.lng b/interface/web/help/lib/lang/hr_faq_form.lng index ca798d79e0..156f32717d 100644 --- a/interface/web/help/lib/lang/hr_faq_form.lng +++ b/interface/web/help/lib/lang/hr_faq_form.lng @@ -4,3 +4,5 @@ $wb['faq_question_txt'] = 'Pitanje'; $wb['faq_answer_txt'] = 'Odgovor'; $wb['faq_section_txt'] = 'Rubrika'; ?> + + diff --git a/interface/web/help/lib/lang/hr_faq_manage_questions_list.lng b/interface/web/help/lib/lang/hr_faq_manage_questions_list.lng index 54f46e270e..8c03762338 100644 --- a/interface/web/help/lib/lang/hr_faq_manage_questions_list.lng +++ b/interface/web/help/lib/lang/hr_faq_manage_questions_list.lng @@ -7,3 +7,5 @@ $wb['faq_sections_txt'] = 'Rubrika'; $wb['faq_faq_questions_txt'] = 'ÄŒesto postavljana pitanja (FAQ)'; $wb['faq_new_question_txt'] = 'Dodaj novo pitanje i odgovor'; ?> + + diff --git a/interface/web/help/lib/lang/hr_faq_sections_form.lng b/interface/web/help/lib/lang/hr_faq_sections_form.lng index 5eba900af4..1ada45e644 100644 --- a/interface/web/help/lib/lang/hr_faq_sections_form.lng +++ b/interface/web/help/lib/lang/hr_faq_sections_form.lng @@ -1,3 +1,5 @@ <?php $wb['faq_section_name_txt'] = 'Naziv rubrike'; ?> + + diff --git a/interface/web/help/lib/lang/hr_help_faq_list.lng b/interface/web/help/lib/lang/hr_help_faq_list.lng index 9d910dc0d3..83de65ed73 100644 --- a/interface/web/help/lib/lang/hr_help_faq_list.lng +++ b/interface/web/help/lib/lang/hr_help_faq_list.lng @@ -1,3 +1,5 @@ <?php $wb['edit_txt'] = 'Izmjeni'; ?> + + diff --git a/interface/web/help/lib/lang/hr_help_faq_sections_list.lng b/interface/web/help/lib/lang/hr_help_faq_sections_list.lng index 91c78e4485..21026b0a7e 100644 --- a/interface/web/help/lib/lang/hr_help_faq_sections_list.lng +++ b/interface/web/help/lib/lang/hr_help_faq_sections_list.lng @@ -6,3 +6,5 @@ $wb['faq_sections_txt'] = 'Rubrike'; $wb['faq_faq_sections_txt'] = 'FAQ rubrike'; $wb['faq_new_section_txt'] = 'Dodaj novu rubriku'; ?> + + diff --git a/interface/web/help/lib/lang/hr_support_message.lng b/interface/web/help/lib/lang/hr_support_message.lng index fca139b995..eeed993e74 100644 --- a/interface/web/help/lib/lang/hr_support_message.lng +++ b/interface/web/help/lib/lang/hr_support_message.lng @@ -13,3 +13,5 @@ $wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request h $wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.'; ?> + + diff --git a/interface/web/help/lib/lang/hr_support_message_list.lng b/interface/web/help/lib/lang/hr_support_message_list.lng index e7aea1ab72..eb37bac4f0 100644 --- a/interface/web/help/lib/lang/hr_support_message_list.lng +++ b/interface/web/help/lib/lang/hr_support_message_list.lng @@ -5,3 +5,5 @@ $wb['subject_txt'] = 'Naslov poruke'; $wb['add_new_record_txt'] = 'PoÅ¡alji novu poruku'; $wb['date_txt'] = 'Date'; ?> + + diff --git a/interface/web/login/lib/lang/hr.lng b/interface/web/login/lib/lang/hr.lng index 670affed30..6550f5b34e 100644 --- a/interface/web/login/lib/lang/hr.lng +++ b/interface/web/login/lib/lang/hr.lng @@ -14,14 +14,16 @@ $wb['pw_error_length'] = 'Duljina Å¡ifre je > 64 znakova.'; $wb['username_txt'] = 'KorisniÄko ime'; $wb['password_txt'] = 'Å ifra'; $wb['login_button_txt'] = 'Prijava'; -$wb['pw_lost_txt'] = 'Password lost'; +$wb['pw_lost_txt'] = 'Izgubljena Å¡ifra'; $wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.'; -$wb['login_txt'] = 'Login'; -$wb['pw_reset_txt'] = 'Password reset'; -$wb['pw_button_txt'] = 'Resend password'; +$wb['login_txt'] = 'Prijava'; +$wb['pw_reset_txt'] = 'Resetiraj Å¡ifru'; +$wb['pw_button_txt'] = 'PoÅ¡alji Å¡ifru'; $wb['email_txt'] = 'Email'; $wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.'; -$wb['back_txt'] = 'Back'; +$wb['back_txt'] = 'Natrag'; $wb['email_error'] = 'Email contains unallowed characters or has a invalid format.'; $wb['stay_logged_in_txt'] = 'Keep me logged in'; ?> + + diff --git a/interface/web/login/lib/lang/hr_login_as.lng b/interface/web/login/lib/lang/hr_login_as.lng index c660ff1a4b..bbb66c6310 100644 --- a/interface/web/login/lib/lang/hr_login_as.lng +++ b/interface/web/login/lib/lang/hr_login_as.lng @@ -3,9 +3,11 @@ $wb['login_1_txt'] = 'Do you want to login as user'; $wb['login_2_txt'] = 'If you do so, you can \\"go back\\" by clicking at logout.'; $wb['btn_yes_txt'] = 'Yes, login as Client'; $wb['btn_back_txt'] = 'No, back to list'; -$wb['udp_port_help_txt'] = 'Separated by comma'; -$wb['active_txt'] = 'Active'; +$wb['udp_port_help_txt'] = 'Odvojeno zarezom'; +$wb['active_txt'] = 'Aktivno'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; ?> + + diff --git a/interface/web/mail/lib/lang/hr.lng b/interface/web/mail/lib/lang/hr.lng index 313a90c4dc..96cb6e472d 100644 --- a/interface/web/mail/lib/lang/hr.lng +++ b/interface/web/mail/lib/lang/hr.lng @@ -5,7 +5,7 @@ $wb['Blacklist'] = 'Blacklista'; $wb['Mail Content Filter'] = 'Sadržaj mail filtera'; $wb['Filter'] = 'Filter'; $wb['Mail Domain'] = 'Mail domena'; -$wb['Domain'] = 'Domena'; +$wb['Domena'] = 'Domena'; $wb['Email Catchall'] = 'Email catchall'; $wb['Email Forward'] = 'Email proslijeÄ‘ivanje'; $wb['Get Email'] = 'Primi poÅ¡tu'; @@ -46,3 +46,5 @@ $wb['Domain Alias'] = 'Alias domena'; $wb['Relay Recipients'] = 'Relay primatelji'; $wb['Mailbox quota'] = 'Mailbox quota'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_alias.lng b/interface/web/mail/lib/lang/hr_mail_alias.lng index afd66333c8..85cfcbd2bd 100644 --- a/interface/web/mail/lib/lang/hr_mail_alias.lng +++ b/interface/web/mail/lib/lang/hr_mail_alias.lng @@ -12,3 +12,5 @@ $wb['domain_txt'] = 'Domena'; $wb['duplicate_email_alias_txt'] = 'This email alias does already exist.'; $wb['source_txt'] = 'Alias'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_alias_list.lng b/interface/web/mail/lib/lang/hr_mail_alias_list.lng index 2790cb345d..ba1bd7bb9b 100644 --- a/interface/web/mail/lib/lang/hr_mail_alias_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_alias_list.lng @@ -6,3 +6,5 @@ $wb['destination_txt'] = 'OdrediÅ¡te'; $wb['email_txt'] = 'Email'; $wb['add_new_record_txt'] = 'Dodaj email alias'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_aliasdomain.lng b/interface/web/mail/lib/lang/hr_mail_aliasdomain.lng index fc77f6c739..9797edbf4e 100644 --- a/interface/web/mail/lib/lang/hr_mail_aliasdomain.lng +++ b/interface/web/mail/lib/lang/hr_mail_aliasdomain.lng @@ -9,3 +9,5 @@ $wb['source_error_empty'] = 'Izvorna domena je prazna.'; $wb['source_error_unique'] = 'Duplicirana izvorna domena.'; $wb['source_error_regex'] = 'Neispravan naziv izvorne domene.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/hr_mail_aliasdomain_list.lng index 3aa5514916..b9551d2f79 100644 --- a/interface/web/mail/lib/lang/hr_mail_aliasdomain_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_aliasdomain_list.lng @@ -5,3 +5,5 @@ $wb['source_txt'] = 'Izvor'; $wb['destination_txt'] = 'Destinacija'; $wb['add_new_record_txt'] = 'Add new Domain alias'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_blacklist.lng b/interface/web/mail/lib/lang/hr_mail_blacklist.lng index dbce8de10d..722f56b9bf 100644 --- a/interface/web/mail/lib/lang/hr_mail_blacklist.lng +++ b/interface/web/mail/lib/lang/hr_mail_blacklist.lng @@ -7,3 +7,5 @@ $wb['source_error_notempty'] = 'Adresa je prazna'; $wb['type_txt'] = 'Vrsta'; $wb['limit_mailfilter_txt'] = 'The max. number of email filters for your account is reached.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_blacklist_list.lng b/interface/web/mail/lib/lang/hr_mail_blacklist_list.lng index 8cbb63a3bd..f600904bf1 100644 --- a/interface/web/mail/lib/lang/hr_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_blacklist_list.lng @@ -8,3 +8,5 @@ $wb['recipient_txt'] = 'Primatelj'; $wb['add_new_record_txt'] = 'Dodaj novi zapis na blacklistu'; $wb['access_txt'] = 'pristup'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_content_filter.lng b/interface/web/mail/lib/lang/hr_mail_content_filter.lng index f012957a76..75e0e1f0a3 100644 --- a/interface/web/mail/lib/lang/hr_mail_content_filter.lng +++ b/interface/web/mail/lib/lang/hr_mail_content_filter.lng @@ -7,3 +7,5 @@ $wb['action_txt'] = 'Akcija'; $wb['active_txt'] = 'Aktivno'; $wb['pattern_error_empty'] = 'Postupak je prazan.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_content_filter_list.lng b/interface/web/mail/lib/lang/hr_mail_content_filter_list.lng index 2657227009..d712e753f3 100644 --- a/interface/web/mail/lib/lang/hr_mail_content_filter_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_content_filter_list.lng @@ -6,3 +6,5 @@ $wb['pattern_txt'] = 'Pattern'; $wb['action_txt'] = 'Akcija'; $wb['add_new_record_txt'] = 'Add new Content Filter'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_domain.lng b/interface/web/mail/lib/lang/hr_mail_domain.lng index 6dae122b59..39fc41414e 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain.lng @@ -11,3 +11,5 @@ $wb['limit_maildomain_txt'] = 'IskoriÅ¡ten je maksimalan broj email domena.'; $wb['policy_txt'] = 'Spamfilter'; $wb['no_policy'] = '- nema pravila -'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/hr_mail_domain_admin_list.lng index 4d13ef314f..c8dc1bf798 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain_admin_list.lng @@ -6,3 +6,5 @@ $wb['add_new_record_txt'] = 'Dodaj domenu'; $wb['active_txt'] = 'Aktivno'; $wb['sys_groupid_txt'] = 'Klijent'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng index 2c8d23e218..cf6624c840 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng @@ -9,3 +9,5 @@ $wb['limit_mailcatchall_txt'] = 'IskoriÅ¡ten ja maksimalan broj email catchall r $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/hr_mail_domain_catchall_list.lng index 81108fa9e0..a11e2a3648 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain_catchall_list.lng @@ -7,3 +7,5 @@ $wb['server_id_txt'] = 'Server'; $wb['domain_txt'] = 'Domena'; $wb['add_new_record_txt'] = 'Dodaj catchall'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_domain_list.lng b/interface/web/mail/lib/lang/hr_mail_domain_list.lng index e078c283cb..8102d1a61c 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain_list.lng @@ -5,3 +5,5 @@ $wb['domain_txt'] = 'Domena'; $wb['add_new_record_txt'] = 'Dodaj domenu'; $wb['active_txt'] = 'Aktivno'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_forward.lng b/interface/web/mail/lib/lang/hr_mail_forward.lng index 3cad2bfcd8..b43a3071a7 100644 --- a/interface/web/mail/lib/lang/hr_mail_forward.lng +++ b/interface/web/mail/lib/lang/hr_mail_forward.lng @@ -5,5 +5,7 @@ $wb['active_txt'] = 'Aktivno'; $wb['limit_mailforward_txt'] = 'IskoriÅ¡ten je maksimalan broj email forwardera.'; $wb['duplicate_mailbox_txt'] = 'Već postoji mailbox sa tom email adresom'; $wb['domain_txt'] = 'Domena'; -$wb['source_txt'] = 'Source Email'; +$wb['source_txt'] = 'Izvorni email'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_forward_list.lng b/interface/web/mail/lib/lang/hr_mail_forward_list.lng index 895fafb6db..ad29df2e6d 100644 --- a/interface/web/mail/lib/lang/hr_mail_forward_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_forward_list.lng @@ -6,3 +6,5 @@ $wb['destination_txt'] = 'Destinacija'; $wb['email_txt'] = 'Email'; $wb['add_new_record_txt'] = 'Add new Email forward'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_get.lng b/interface/web/mail/lib/lang/hr_mail_get.lng index 18c53a4d53..4d5cb02213 100644 --- a/interface/web/mail/lib/lang/hr_mail_get.lng +++ b/interface/web/mail/lib/lang/hr_mail_get.lng @@ -17,3 +17,5 @@ $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; $wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_get_list.lng b/interface/web/mail/lib/lang/hr_mail_get_list.lng index 9cd92dd970..bdd21ab6ae 100644 --- a/interface/web/mail/lib/lang/hr_mail_get_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_get_list.lng @@ -7,3 +7,5 @@ $wb['source_username_txt'] = 'KorisniÄko ime'; $wb['destination_txt'] = 'Destinacija'; $wb['add_new_record_txt'] = 'Dodaj novi raÄun'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_mailinglist.lng b/interface/web/mail/lib/lang/hr_mail_mailinglist.lng index 361af68e39..f800382b13 100644 --- a/interface/web/mail/lib/lang/hr_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/hr_mail_mailinglist.lng @@ -12,11 +12,13 @@ $wb['listname_txt'] = 'Naziv liste'; $wb['client_txt'] = 'Klijent'; $wb['email_txt'] = 'Email'; $wb['password_txt'] = 'Å ifra'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; $wb['listname_error_unique'] = 'There is already a mailinlist with name on the server. Please choose a different listname.'; -$wb['email_error_isemail'] = 'Email address is invalid.'; -$wb['mailinglist_txt'] = 'Mailing list'; +$wb['email_error_isemail'] = 'Email adresa je neispravna.'; +$wb['mailinglist_txt'] = 'Email lista'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/hr_mail_mailinglist_list.lng index 48b8c8b323..8550dedef4 100644 --- a/interface/web/mail/lib/lang/hr_mail_mailinglist_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_mailinglist_list.lng @@ -3,3 +3,5 @@ $wb['list_head_txt'] = 'Mailing lista'; $wb['domain_txt'] = 'Domena'; $wb['listname_txt'] = 'Naziv liste'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_relay_recipient.lng b/interface/web/mail/lib/lang/hr_mail_relay_recipient.lng index 3555ed250c..73f4d78c54 100644 --- a/interface/web/mail/lib/lang/hr_mail_relay_recipient.lng +++ b/interface/web/mail/lib/lang/hr_mail_relay_recipient.lng @@ -7,3 +7,5 @@ $wb['source_error_notempty'] = 'Adresa je prazna'; $wb['type_txt'] = 'Vrsta'; $wb['limit_mailfilter_txt'] = 'The max. number of email filters for your account is reached.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/hr_mail_relay_recipient_list.lng index ad15e008b1..f6ed8e0c2e 100644 --- a/interface/web/mail/lib/lang/hr_mail_relay_recipient_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_relay_recipient_list.lng @@ -7,3 +7,5 @@ $wb['recipient_txt'] = 'Pimatelj'; $wb['add_new_record_txt'] = 'Add new relay recipient'; $wb['access_txt'] = 'pristup'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_spamfilter.lng b/interface/web/mail/lib/lang/hr_mail_spamfilter.lng index 90321d0d86..8024069091 100644 --- a/interface/web/mail/lib/lang/hr_mail_spamfilter.lng +++ b/interface/web/mail/lib/lang/hr_mail_spamfilter.lng @@ -15,3 +15,5 @@ $wb['email_error_unique'] = 'There is already an spamfilter record for this emai $wb['spam_redirect_maildir_purge_txt'] = 'Purge Maildir after'; $wb['days_txt'] = 'Days.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/hr_mail_spamfilter_list.lng index 654bc339e2..988fbf4bc1 100644 --- a/interface/web/mail/lib/lang/hr_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_spamfilter_list.lng @@ -6,3 +6,5 @@ $wb['server_name_txt'] = 'server_name'; $wb['email_txt'] = 'Email'; $wb['add_new_record_txt'] = 'Add new Spamfilter record'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_transport.lng b/interface/web/mail/lib/lang/hr_mail_transport.lng index c27687f956..93c2f01a00 100644 --- a/interface/web/mail/lib/lang/hr_mail_transport.lng +++ b/interface/web/mail/lib/lang/hr_mail_transport.lng @@ -9,3 +9,5 @@ $wb['active_txt'] = 'Aktivno'; $wb['limit_mailrouting_txt'] = 'IskoriÅ¡ten je maksimalan broj ruta.'; $wb['transport_txt'] = 'Transport'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_transport_list.lng b/interface/web/mail/lib/lang/hr_mail_transport_list.lng index d86d9e5516..012786468a 100644 --- a/interface/web/mail/lib/lang/hr_mail_transport_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_transport_list.lng @@ -7,3 +7,5 @@ $wb['transport_txt'] = 'Transport'; $wb['sort_order_txt'] = 'Sort by'; $wb['add_new_record_txt'] = 'Add new transport'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_user.lng b/interface/web/mail/lib/lang/hr_mail_user.lng index d91dd2be09..67d7746a69 100644 --- a/interface/web/mail/lib/lang/hr_mail_user.lng +++ b/interface/web/mail/lib/lang/hr_mail_user.lng @@ -43,11 +43,13 @@ $wb['error_login_email_txt'] = 'This login is not allowed. Please enter a differ $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_subject_txt'] = 'Email Subject'; $wb['autoresponder_subject'] = 'Out of office reply'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; $wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_user_filter.lng b/interface/web/mail/lib/lang/hr_mail_user_filter.lng index dc90099436..acc99b2565 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_filter.lng @@ -1,20 +1,22 @@ <?php -$wb['rulename_txt'] = 'Name'; +$wb['rulename_txt'] = 'Naziv'; $wb['action_txt'] = 'Akcija'; $wb['target_txt'] = 'Folder'; $wb['active_txt'] = 'Aktivno'; -$wb['rulename_error_empty'] = 'Name is empty.'; -$wb['searchterm_is_empty'] = 'Search term is empty.'; +$wb['rulename_error_empty'] = 'Naziv je prazan.'; +$wb['searchterm_is_empty'] = 'Traženi pojam je prazan.'; $wb['source_txt'] = 'Izvor'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; -$wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; +$wb['target_error_regex'] = 'Folder može sadržavati samo ove znakove: a-z, 0-9, -, ., _, i {space}'; +$wb['limit_mailfilter_txt'] = 'IskoriÅ¡ten je maksimalni broj mail filtera.'; $wb['subject_txt'] = 'Naslov'; $wb['from_txt'] = 'PoÅ¡iljatelj'; $wb['to_txt'] = 'Primatelj'; $wb['contains_txt'] = 'Sadrži'; $wb['is_txt'] = 'Is'; -$wb['begins_with_txt'] = 'Begins with'; -$wb['ends_with_txt'] = 'Ends with'; -$wb['move_to_txt'] = 'Move to'; +$wb['begins_with_txt'] = 'PoÄinje sa'; +$wb['ends_with_txt'] = 'ZavrÅ¡ava sa'; +$wb['move_to_txt'] = 'Prebaci u'; $wb['delete_txt'] = 'ObriÅ¡i'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_user_filter_list.lng b/interface/web/mail/lib/lang/hr_mail_user_filter_list.lng index d101a72177..1cad4871e3 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_filter_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_filter_list.lng @@ -1,7 +1,9 @@ <?php -$wb['rulename_txt'] = 'Name'; -$wb['add_new_record_txt'] = 'Add new Filter'; +$wb['rulename_txt'] = 'Naziv'; +$wb['add_new_record_txt'] = 'Dodaj novi filter'; $wb['page_txt'] = 'Stranica'; $wb['page_of_txt'] = 'od'; -$wb['delete_confirmation'] = 'Do you really want to Delete the mailfilter?'; +$wb['delete_confirmation'] = 'Da li stvarno želite obrisati email filter?'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_user_list.lng b/interface/web/mail/lib/lang/hr_mail_user_list.lng index 762aea1d42..b56aa47172 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_list.lng @@ -1,8 +1,10 @@ <?php -$wb['list_head_txt'] = 'Mailbox'; +$wb['list_head_txt'] = 'Email sanduÄić'; $wb['email_txt'] = 'Email'; $wb['autoresponder_txt'] = 'Automatski odgovor'; -$wb['add_new_record_txt'] = 'Dodaj mailbox'; +$wb['add_new_record_txt'] = 'Dodaj email sanduÄić'; $wb['name_txt'] = 'Ime'; $wb['login_txt'] = 'Prijava'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_user_stats_list.lng b/interface/web/mail/lib/lang/hr_mail_user_stats_list.lng index edde65bd7a..df269d69aa 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_stats_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_stats_list.lng @@ -6,3 +6,5 @@ $wb['last_month_txt'] = 'Last month'; $wb['this_year_txt'] = 'This year'; $wb['last_year_txt'] = 'Last year'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_mail_whitelist.lng b/interface/web/mail/lib/lang/hr_mail_whitelist.lng index a43e8eef46..bd01a3c86a 100644 --- a/interface/web/mail/lib/lang/hr_mail_whitelist.lng +++ b/interface/web/mail/lib/lang/hr_mail_whitelist.lng @@ -7,3 +7,5 @@ $wb['source_error_notempty'] = 'Adresa je prazna'; $wb['type_txt'] = 'Vrsta'; $wb['limit_mailfilter_txt'] = 'The max. number of email filters for your account is reached.'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/hr_spamfilter_blacklist.lng index d1562e6ce5..94f7c92742 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_blacklist.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_blacklist.lng @@ -10,3 +10,5 @@ $wb['10 - highest'] = '10 - highest'; $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lowest'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/hr_spamfilter_blacklist_list.lng index 8a21dd6689..c704b2a578 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_blacklist_list.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_blacklist_list.lng @@ -7,3 +7,5 @@ $wb['rid_txt'] = 'User'; $wb['email_txt'] = 'Blacklisted Email'; $wb['add_new_record_txt'] = 'Add Blacklist record'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_config.lng b/interface/web/mail/lib/lang/hr_spamfilter_config.lng index 2843133ca3..d531cc14e8 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_config.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_config.lng @@ -18,3 +18,5 @@ $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_config_list.lng b/interface/web/mail/lib/lang/hr_spamfilter_config_list.lng index ac925e4ee9..f18951240b 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_config_list.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_config_list.lng @@ -3,3 +3,5 @@ $wb['list_head_txt'] = 'Konfiguracija servera'; $wb['server_name_txt'] = 'Server'; $wb['server_id_txt'] = 'server_id'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_policy.lng b/interface/web/mail/lib/lang/hr_spamfilter_policy.lng index e876330a68..877c431b17 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_policy.lng @@ -36,3 +36,5 @@ $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/hr_spamfilter_policy_list.lng index 84381b241e..c984e4190b 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_policy_list.lng @@ -7,3 +7,5 @@ $wb['banned_files_lover_txt'] = 'Zabranjene datoteke'; $wb['bad_header_lover_txt'] = 'Neispravan header'; $wb['add_new_record_txt'] = 'Dodaj pravilo'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_users.lng b/interface/web/mail/lib/lang/hr_spamfilter_users.lng index 9969ef421d..24d7c783c2 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_users.lng @@ -11,3 +11,5 @@ $wb['10 - highest'] = '10 - highest'; $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lowest'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_users_list.lng b/interface/web/mail/lib/lang/hr_spamfilter_users_list.lng index 99e4636f66..d56e1c68db 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_users_list.lng @@ -8,3 +8,5 @@ $wb['fullname_txt'] = 'Name'; $wb['email_txt'] = 'Email'; $wb['add_new_record_txt'] = 'Add Spamfilter User'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/hr_spamfilter_whitelist.lng index d1562e6ce5..94f7c92742 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_whitelist.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_whitelist.lng @@ -10,3 +10,5 @@ $wb['10 - highest'] = '10 - highest'; $wb['5 - medium'] = '5 - medium'; $wb['1 - lowest'] = '1 - lowest'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/hr_spamfilter_whitelist_list.lng index 7dd21f10a6..9c8dd1ac29 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_whitelist_list.lng @@ -7,3 +7,5 @@ $wb['rid_txt'] = 'Korisnik'; $wb['email_txt'] = 'Whitelistani email'; $wb['add_new_record_txt'] = 'Dodaj whitelistu'; ?> + + diff --git a/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng b/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng index a41b1a94c6..45139608f9 100644 --- a/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/hr_user_quota_stats_list.lng @@ -1,8 +1,10 @@ <?php -$wb['list_head_txt'] = 'Mailbox quota'; -$wb['quota_txt'] = 'Kvota'; -$wb['name_txt'] = 'Name'; -$wb['email_txt'] = 'Email Address'; -$wb['used_txt'] = 'Used space'; -$wb['percentage_txt'] = 'Used %'; +$wb['list_head_txt'] = 'Limiti sanduÄića'; +$wb['quota_txt'] = 'Limit'; +$wb['name_txt'] = 'Ime'; +$wb['email_txt'] = 'Email adresa'; +$wb['used_txt'] = 'Prostor'; +$wb['percentage_txt'] = 'Koristi %'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr.lng b/interface/web/mailuser/lib/lang/hr.lng index 114dec9b91..2113122875 100644 --- a/interface/web/mailuser/lib/lang/hr.lng +++ b/interface/web/mailuser/lib/lang/hr.lng @@ -1,9 +1,11 @@ <?php -$wb['Email Account'] = 'Email Account'; -$wb['Overview'] = 'Overview'; -$wb['Password'] = 'Password'; +$wb['Email Account'] = 'Email raÄun'; +$wb['Overview'] = 'Pregled'; +$wb['Password'] = 'Å ifra'; $wb['Autoresponder'] = 'Autoresponder'; -$wb['Send copy'] = 'Send copy'; +$wb['Send copy'] = 'PoÅ¡alji kopiju'; $wb['Spamfilter'] = 'Spamfilter'; -$wb['Email Filters'] = 'Email Filters'; +$wb['Email Filters'] = 'Email filteri'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr_index.lng b/interface/web/mailuser/lib/lang/hr_index.lng index 29fe9ea4f3..5daeff1eef 100644 --- a/interface/web/mailuser/lib/lang/hr_index.lng +++ b/interface/web/mailuser/lib/lang/hr_index.lng @@ -1,12 +1,14 @@ <?php -$wb['page_head_txt'] = 'Mailbox settings'; +$wb['page_head_txt'] = 'Postavke sanduÄića'; $wb['page_desc_txt'] = 'Here you can edit the settings for the email account.'; -$wb['email_txt'] = 'Email address'; -$wb['login_txt'] = 'Login'; -$wb['server_address_txt'] = 'Mailserver address'; -$wb['cc_txt'] = 'Send copy to (CC)'; -$wb['quota_txt'] = 'Mailbox size'; -$wb['unlimited_txt'] = 'Unlimited'; +$wb['email_txt'] = 'Email adresa'; +$wb['login_txt'] = 'Prijava'; +$wb['server_address_txt'] = 'Adresa mail servera'; +$wb['cc_txt'] = 'PoÅ¡alji kopiju na (CC)'; +$wb['quota_txt'] = 'VeliÄina sanduÄića'; +$wb['unlimited_txt'] = 'NeograniÄeno'; $wb['mb_txt'] = 'MB'; -$wb['none_txt'] = 'None'; +$wb['none_txt'] = 'NiÅ¡ta'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng index 79f386a7dc..6cf47669f0 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng @@ -1,13 +1,15 @@ <?php $wb['mailbox_autoresponder_txt'] = 'Autoresponder'; $wb['autoresponder_subject'] = 'Out of office reply'; -$wb['autoresponder_text_txt'] = 'Text'; +$wb['autoresponder_text_txt'] = 'Tekst'; $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; $wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; -$wb['now_txt'] = 'Now'; +$wb['now_txt'] = 'Sada'; $wb['autoresponder_subject_txt'] = 'Betreff'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_cc.lng b/interface/web/mailuser/lib/lang/hr_mail_user_cc.lng index 81877884cc..4c54745302 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_cc.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_cc.lng @@ -7,3 +7,5 @@ $wb['email_is_cc_error'] = 'Email address and send copy to address can not be th $wb['name_optional_txt'] = '(Optional)'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng b/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng index 2e74ffd4f7..33679318d7 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng @@ -1,20 +1,22 @@ <?php -$wb['rulename_txt'] = 'Name'; -$wb['action_txt'] = 'Action'; -$wb['target_txt'] = 'Folder'; -$wb['active_txt'] = 'Active'; -$wb['rulename_error_empty'] = 'Name is empty.'; -$wb['searchterm_is_empty'] = 'Search term is empty.'; -$wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; -$wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; -$wb['subject_txt'] = 'Subject'; -$wb['from_txt'] = 'From'; -$wb['to_txt'] = 'To'; -$wb['contains_txt'] = 'Contains'; -$wb['is_txt'] = 'Is'; -$wb['begins_with_txt'] = 'Begins with'; -$wb['ends_with_txt'] = 'Ends with'; -$wb['move_to_txt'] = 'Move to'; -$wb['delete_txt'] = 'Delete'; +$wb['rulename_txt'] = 'Naziv'; +$wb['action_txt'] = 'Akcija'; +$wb['target_txt'] = 'Direktorij'; +$wb['active_txt'] = 'Aktivno'; +$wb['rulename_error_empty'] = 'Naziv je prazan.'; +$wb['searchterm_is_empty'] = 'Traženi pojam je prazan.'; +$wb['source_txt'] = 'Izvor'; +$wb['target_error_regex'] = 'OdrediÅ¡te može sadržavati samo ove znakove: a-z, 0-9, -, ., _, i {space}'; +$wb['limit_mailfilter_txt'] = 'Iskoristili ste maksimalan broj mail filtera.'; +$wb['subject_txt'] = 'Naslov'; +$wb['from_txt'] = 'Od'; +$wb['to_txt'] = 'Za'; +$wb['contains_txt'] = 'Sadrži'; +$wb['is_txt'] = 'je'; +$wb['begins_with_txt'] = 'PoÄinje sa'; +$wb['ends_with_txt'] = 'ZavrÅ¡ava sa'; +$wb['move_to_txt'] = 'Prebaci u '; +$wb['delete_txt'] = 'ObriÅ¡i'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/hr_mail_user_filter_list.lng index fb6b9dfa5d..640365998b 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_filter_list.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_filter_list.lng @@ -1,8 +1,10 @@ <?php -$wb['list_head_txt'] = 'Email filter rules'; -$wb['rulename_txt'] = 'Name'; -$wb['add_new_record_txt'] = 'Add new Filter'; -$wb['page_txt'] = 'Page'; -$wb['page_of_txt'] = 'of'; -$wb['delete_confirmation'] = 'Do you really want to delete the mailfilter?'; +$wb['list_head_txt'] = 'Prvila za email filtere'; +$wb['rulename_txt'] = 'Naziv'; +$wb['add_new_record_txt'] = 'Dodaj novi filter'; +$wb['page_txt'] = 'Stranica'; +$wb['page_of_txt'] = 'od'; +$wb['delete_confirmation'] = 'Da li stvarno želite obrisati ovaj mail filter?'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_password.lng b/interface/web/mailuser/lib/lang/hr_mail_user_password.lng index cdf9674e70..73d6c7dfb0 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_password.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_password.lng @@ -1,10 +1,12 @@ <?php -$wb['mailbox_password_txt'] = 'Mailbox password'; -$wb['password_txt'] = 'Password'; -$wb['password_strength_txt'] = 'Password strength'; +$wb['mailbox_password_txt'] = 'Mailbox Å¡ifra'; +$wb['password_txt'] = 'Å ifra'; +$wb['password_strength_txt'] = 'JaÄina Å¡ifre'; $wb['email_txt'] = 'Email'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; ?> + + diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng index be4bad9050..0f82f0aa94 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng @@ -1,7 +1,9 @@ <?php -$wb['mailbox_spamfilter_txt'] = 'Spamfilter'; -$wb['spamfilter_txt'] = 'Spamfilter'; +$wb['mailbox_spamfilter_txt'] = 'Spam filter'; +$wb['spamfilter_txt'] = 'Spam filter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; -$wb['policy_txt'] = 'Policy'; +$wb['no_policy'] = '- iskljuÄeno -'; +$wb['policy_txt'] = 'Pravila'; ?> + + diff --git a/interface/web/monitor/lib/lang/hr.lng b/interface/web/monitor/lib/lang/hr.lng index da1a09dc6b..7924392541 100644 --- a/interface/web/monitor/lib/lang/hr.lng +++ b/interface/web/monitor/lib/lang/hr.lng @@ -73,7 +73,7 @@ $wb['monitor_serverstate_critical_txt'] = 'kritiÄnih'; $wb['monitor_serverstate_error_txt'] = 'greÅ¡aka/i'; $wb['monitor_serverstate_moreinfo_txt'] = 'ViÅ¡e informacija...'; $wb['monitor_serverstate_more_txt'] = 'ViÅ¡e...'; -$wb['monitor_serverstate_fclamok_txt'] = 'Antivirusna zaÅ¡tita je ok'; +$wb['monitor_serverstate_fclamok_txt'] = 'Antivirusna zaÅ¡tita je OK'; $wb['monitor_serverstate_fclamoutdated_txt'] = 'VaÅ¡a antivirusna zaÅ¡tita je stara!'; $wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!'; $wb['monitor_serverstate_hdok_txt'] = 'Stanje vaÅ¡eg tvrdog diska je ok'; @@ -88,19 +88,19 @@ $wb['monitor_serverstate_listwarning_txt'] = 'upozorenje'; $wb['monitor_serverstate_listcritical_txt'] = 'kritiÄno'; $wb['monitor_serverstate_listerror_txt'] = 'greÅ¡ka'; $wb['monitor_serverstate_listunknown_txt'] = 'nepoznato'; -$wb['monitor_serverstate_loadok_txt'] = 'Opterećenje servera je ok'; +$wb['monitor_serverstate_loadok_txt'] = 'Opterećenje servera je OK'; $wb['monitor_serverstate_loadheavy_txt'] = 'Server je pod opterećenjem'; $wb['monitor_serverstate_loadhigh_txt'] = 'Server je pod velikim opterećenjem'; $wb['monitor_serverstate_loaghigher_txt'] = 'Server je pod vrlo velikim opterećenjem'; $wb['monitor_serverstate_loadhighest_txt'] = 'Server je maksimalno opterećen'; $wb['monitor_serverstate_loadunknown_txt'] = 'Opterećenje servera: ???'; -$wb['monitor_serverstate_mailqok_txt'] = 'Mail redoslijed opterećenje je ok'; +$wb['monitor_serverstate_mailqok_txt'] = 'Mail redoslijed opterećenje je OK'; $wb['monitor_serverstate_mailqheavy_txt'] = 'Mail redoslijed je pod opterećenjem'; $wb['monitor_serverstate_mailqhigh_txt'] = 'Mail redoslijed je pod velikim opterećenjem'; $wb['monitor_serverstate_mailqhigher_txt'] = 'Mail redoslijed je pod vrlo velikim opterećenjem'; $wb['monitor_serverstate_mailqhighest_txt'] = 'Mail redoslijed je maksimalno opterećen'; $wb['monitor_serverstate_mailqunknown_txt'] = 'Mail redoslijed: ???'; -$wb['monitor_serverstate_raidok_txt'] = 'RAID je ok'; +$wb['monitor_serverstate_raidok_txt'] = 'RAID je OK'; $wb['monitor_serverstate_raidresync_txt'] = 'RAID je u RESYNC modu'; $wb['monitor_serverstate_raidfault_txt'] = 'Jedan RAID disk je neispravan. Zamjenite disk Å¡to prije'; $wb['monitor_serverstate_raiderror_txt'] = 'RAID viÅ¡e ne radi'; @@ -115,7 +115,7 @@ $wb['monitor_serverstate_syslogunknown_txt'] = 'Sistemski log: ???'; $wb['monitor_serverstate_updatesok_txt'] = 'Nema nadogradnji za sistem.'; $wb['monitor_serverstate_updatesneeded_txt'] = 'Postoji nadogradnja za jednu ili viÅ¡e komponenti '; $wb['monitor_serverstate_updatesunknown_txt'] = 'Nadogradnja sistema: ???'; -$wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter je ok'; +$wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter je OK'; $wb['monitor_serverstate_beancounterinfo_txt'] = 'Postoje greÅ¡ke u beancounter-u'; $wb['monitor_serverstate_beancounterwarning_txt'] = 'Postoji par greÅ¡ki u beancounter-u'; $wb['monitor_serverstate_beancountercritical_txt'] = 'Postoji puno greÅ¡aka u beancounter-u'; @@ -146,10 +146,12 @@ $wb['monitor_title_iptables_txt'] = 'IPTables zaÅ¡tita'; $wb['Show fail2ban-Log'] = 'Prikaži Fail2Ban log'; $wb['Show IPTables'] = 'Prikaži IPTables'; $wb['Show OpenVz VE BeanCounter'] = 'Prikaži OpenVz VE BeanCounter'; -$wb['Show Monit'] = 'Show Monit'; -$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.'; -$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.'; -$wb['Show Munin'] = 'Show Munin'; +$wb['Show Monit'] = 'Prikaži Monit'; +$wb['no_monit_url_defined_txt'] = 'Monit URL nije definiran.'; +$wb['no_permissions_to_view_monit_txt'] = 'Nemate dozvolu za pristup Monit-u.'; +$wb['Show Munin'] = 'Prikaži Munin'; $wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; -$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; +$wb['no_permissions_to_view_munin_txt'] = 'Nemate dozvolu za pristup Munin-u.'; ?> + + diff --git a/interface/web/monitor/lib/lang/hr_datalog_list.lng b/interface/web/monitor/lib/lang/hr_datalog_list.lng index e6e8f86529..46b0c64a0f 100644 --- a/interface/web/monitor/lib/lang/hr_datalog_list.lng +++ b/interface/web/monitor/lib/lang/hr_datalog_list.lng @@ -6,3 +6,5 @@ $wb['dbtable_txt'] = 'Tablica u bazi'; $wb['action_txt'] = 'Akcija'; $wb['status_txt'] = 'Status'; ?> + + diff --git a/interface/web/monitor/lib/lang/hr_syslog_list.lng b/interface/web/monitor/lib/lang/hr_syslog_list.lng index 83c5fcdf49..2193d38c36 100644 --- a/interface/web/monitor/lib/lang/hr_syslog_list.lng +++ b/interface/web/monitor/lib/lang/hr_syslog_list.lng @@ -5,3 +5,5 @@ $wb['server_id_txt'] = 'Server'; $wb['loglevel_txt'] = 'Logovi'; $wb['message_txt'] = 'Poruka'; ?> + + diff --git a/interface/web/sites/lib/lang/hr.lng b/interface/web/sites/lib/lang/hr.lng index 8a18c47639..4105a59f01 100644 --- a/interface/web/sites/lib/lang/hr.lng +++ b/interface/web/sites/lib/lang/hr.lng @@ -1,15 +1,15 @@ <?php $wb['Websites'] = 'Web stranice'; $wb['Website'] = 'Web stranice'; -$wb['Subdomain'] = 'Poddomena'; +$wb['Subdomain'] = 'Poddomene'; $wb['Aliasdomain'] = 'Alias za web stranicu'; $wb['Database'] = 'Baza'; -$wb['Web Access'] = 'Web Access'; -$wb['FTP-User'] = 'FTP korisnik'; +$wb['Web Access'] = 'Web pristup'; +$wb['FTP-User'] = 'FTP korisnici'; $wb['Webdav-User'] = 'Webdav korisnik'; -$wb['Folder'] = 'Protected Folders'; -$wb['Folder users'] = 'Protected Folder Users'; -$wb['Command Line'] = 'Command Line'; +$wb['Folder'] = 'ZaÅ¡tićeni direktoriji'; +$wb['Folder users'] = 'Korisnici zaÅ¡tićenih direktorija'; +$wb['Command Line'] = 'Komandna linija'; $wb['Shell-User'] = 'Shell korisnik'; $wb['Cron Jobs'] = 'Cron zadaci'; $wb['Statistics'] = 'Statistike'; @@ -21,15 +21,17 @@ $wb['Shell'] = 'Shell'; $wb['Webdav'] = 'WebDAV'; $wb['FTP'] = 'FTP'; $wb['Options'] = 'Opcije'; -$wb['Domain'] = 'Domena'; +$wb['Domena'] = 'Domena'; $wb['Redirect'] = 'Preusmjeravanje'; $wb['SSL'] = 'SSL'; -$wb['Sites'] = 'Sites'; -$wb['Database User'] = 'Database Users'; -$wb['APS Installer'] = 'APS Installer'; -$wb['Available packages'] = 'Available packages'; -$wb['Installed packages'] = 'Installed packages'; -$wb['Update Packagelist'] = 'Update Packagelist'; -$wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['Sites'] = 'Stranice'; +$wb['Database User'] = 'Korisnici baze'; +$wb['APS Installer'] = 'APS instalacija'; +$wb['Available packages'] = 'Dostupni paketi'; +$wb['Installed packages'] = 'Instalirani paketi'; +$wb['Update Packagelist'] = 'Osvježi listu paketa'; +$wb['Subdomain (Vhost)'] = 'Poddomena (Vhost)'; +$wb['error_proxy_requires_url'] = '\\"proxy\\" redirekcija zahtijeva URL za redirekcijsku putanju.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_aps.lng b/interface/web/sites/lib/lang/hr_aps.lng index 29fb7b6a40..799e3370f8 100644 --- a/interface/web/sites/lib/lang/hr_aps.lng +++ b/interface/web/sites/lib/lang/hr_aps.lng @@ -1,37 +1,37 @@ <?php -$wb['overview_txt'] = 'Overview'; -$wb['administration_txt'] = 'Administration'; -$wb['available_packages_txt'] = 'Available packages'; -$wb['installed_packages_txt'] = 'Installed packages'; -$wb['yes_txt'] = 'Yes'; -$wb['no_txt'] = 'No'; -$wb['invalid_id_txt'] = 'No valid ID has been provided.'; -$wb['details_txt'] = 'Details'; -$wb['version_txt'] = 'Version'; -$wb['category_txt'] = 'Category'; -$wb['homepage_txt'] = 'Homepage'; +$wb['overview_txt'] = 'Pregled'; +$wb['administration_txt'] = 'Administracija'; +$wb['available_packages_txt'] = 'Dostupni paketi'; +$wb['installed_packages_txt'] = 'Instalirani paketi'; +$wb['yes_txt'] = 'Da'; +$wb['no_txt'] = 'Ne'; +$wb['invalid_id_txt'] = 'ID nije ispravan.'; +$wb['details_txt'] = 'Detalji'; +$wb['version_txt'] = 'Verzija'; +$wb['category_txt'] = 'Kategorija'; +$wb['homepage_txt'] = 'Web stranica'; $wb['supported_languages_txt'] = 'Supported languages'; -$wb['description_txt'] = 'Description'; +$wb['description_txt'] = 'Opis'; $wb['config_script_txt'] = 'Configuration script'; $wb['installed_size_txt'] = 'Size after installation'; -$wb['license_txt'] = 'License'; -$wb['screenshots_txt'] = 'Screenshots'; -$wb['changelog_txt'] = 'Changelog'; -$wb['server_requirements_txt'] = 'Server requirements'; -$wb['php_extensions_txt'] = 'PHP extensions'; -$wb['php_settings_txt'] = 'PHP settings'; -$wb['supported_php_versions_txt'] = 'Supported PHP versions'; -$wb['database_txt'] = 'Database'; -$wb['settings_txt'] = 'Settings'; -$wb['install_package_txt'] = 'Install this package'; -$wb['installation_txt'] = 'Installation'; -$wb['install_location_txt'] = 'Install location'; -$wb['acceptance_txt'] = 'Acceptance'; -$wb['acceptance_text_txt'] = 'Yes, i\'ve read the license and agree.'; -$wb['install_language_txt'] = 'Interface language'; -$wb['new_database_password_txt'] = 'New database password'; -$wb['basic_settings_txt'] = 'Basic settings'; -$wb['package_settings_txt'] = 'Package settings'; +$wb['license_txt'] = 'Licenca'; +$wb['screenshots_txt'] = 'Slike'; +$wb['changelog_txt'] = 'Izmjene'; +$wb['server_requirements_txt'] = 'Server zahtjevi'; +$wb['php_extensions_txt'] = 'PHP ekstenzije'; +$wb['php_settings_txt'] = 'PHP postavke'; +$wb['supported_php_versions_txt'] = 'Podržane PHP verzije'; +$wb['database_txt'] = 'Baza'; +$wb['settings_txt'] = 'Postavke'; +$wb['install_package_txt'] = 'Instaliraj ovaj paket'; +$wb['installation_txt'] = 'Instalacija'; +$wb['install_location_txt'] = 'Lokacija instalacije'; +$wb['acceptance_txt'] = 'Potvrda'; +$wb['acceptance_text_txt'] = 'Da, proÄitao sam licencu i prihvaćam.'; +$wb['install_language_txt'] = 'Jezik suÄelja'; +$wb['new_database_password_txt'] = 'Nova Å¡ifra za bazu'; +$wb['basic_settings_txt'] = 'Standardne postavke'; +$wb['package_settings_txt'] = 'Opcije paketa'; $wb['error_main_domain'] = 'The domain of the installation path is invalid.'; $wb['error_no_main_location'] = 'You have provided no valid installation path.'; $wb['error_inv_main_location'] = 'The given install location folder is invalid.'; @@ -47,12 +47,14 @@ $wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field $wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; $wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; -$wb['installation_task_txt'] = 'Install planned'; -$wb['installation_error_txt'] = 'Install error'; -$wb['installation_success_txt'] = 'Installed'; -$wb['installation_remove_txt'] = 'Removal planned'; -$wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; -$wb['btn_install_txt'] = 'Install'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['installation_task_txt'] = 'Instalacija u postupku'; +$wb['installation_error_txt'] = 'Instalacijska greÅ¡ka'; +$wb['installation_success_txt'] = 'Instalirano'; +$wb['installation_remove_txt'] = 'Brisanje u postupku'; +$wb['packagelist_update_finished_txt'] = 'Nadogradnja APS liste paketa je zavrÅ¡ena.'; +$wb['btn_install_txt'] = 'Instaliraj'; +$wb['btn_cancel_txt'] = 'Odustani'; +$wb['limit_aps_txt'] = 'Iskoristili ste maksimalan broj APS instanci za vaÅ¡ raÄun.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_aps_instances_list.lng b/interface/web/sites/lib/lang/hr_aps_instances_list.lng index 052d834a71..2d737a6f7a 100644 --- a/interface/web/sites/lib/lang/hr_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/hr_aps_instances_list.lng @@ -1,13 +1,15 @@ <?php -$wb['list_head_txt'] = 'Installed packages'; -$wb['name_txt'] = 'Name'; -$wb['version_txt'] = 'Version'; -$wb['customer_txt'] = 'Client'; +$wb['list_head_txt'] = 'Instalirani paketi'; +$wb['name_txt'] = 'Naziv'; +$wb['version_txt'] = 'Verzija'; +$wb['customer_txt'] = 'Klijent'; $wb['status_txt'] = 'Status'; -$wb['install_location_txt'] = 'Install location'; -$wb['pkg_delete_confirmation'] = 'Do you really want to delete this installation?'; -$wb['pkg_reinstall_confirmation'] = 'Do you really want to reinstall this package with the same settings?'; -$wb['filter_txt'] = 'Search'; -$wb['delete_txt'] = 'Delete'; -$wb['reinstall_txt'] = 'Reinstall'; +$wb['install_location_txt'] = 'Lokacija instalacije'; +$wb['pkg_delete_confirmation'] = 'Da li stvarno želite obrisati ovu instalaciju?'; +$wb['pkg_reinstall_confirmation'] = 'Da li stvarno želite reinstalirati ovaj paket sa istim postavkama?'; +$wb['filter_txt'] = 'Traži'; +$wb['delete_txt'] = 'ObriÅ¡i'; +$wb['reinstall_txt'] = 'Reinstaliraj'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_aps_packages_list.lng b/interface/web/sites/lib/lang/hr_aps_packages_list.lng index 68c378085f..7e7b6b30df 100644 --- a/interface/web/sites/lib/lang/hr_aps_packages_list.lng +++ b/interface/web/sites/lib/lang/hr_aps_packages_list.lng @@ -6,3 +6,5 @@ $wb['category_txt'] = 'Category'; $wb['status_txt'] = 'Unlocked'; $wb['filter_txt'] = 'Search'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_aps_update_packagelist.lng b/interface/web/sites/lib/lang/hr_aps_update_packagelist.lng index ce9fcf68fb..591c49ccf7 100644 --- a/interface/web/sites/lib/lang/hr_aps_update_packagelist.lng +++ b/interface/web/sites/lib/lang/hr_aps_update_packagelist.lng @@ -1,7 +1,9 @@ <?php -$wb['head_txt'] = 'Update Packagelist'; +$wb['head_txt'] = 'Osvježi listu paketa'; $wb['list_desc_txt'] = ''; -$wb['btn_start_txt'] = 'Update Packagelist'; -$wb['btn_cancel_txt'] = 'Cancel'; +$wb['btn_start_txt'] = 'Osvježi listu paketa'; +$wb['btn_cancel_txt'] = 'Odustani'; $wb['legend_txt'] = 'Here you can update the list of available packages. Please note that this can take up to five minutes. You can leave this page if you like; the process will continue in the background.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_cron.lng b/interface/web/sites/lib/lang/hr_cron.lng index de37668bde..2bc8fb7d3f 100644 --- a/interface/web/sites/lib/lang/hr_cron.lng +++ b/interface/web/sites/lib/lang/hr_cron.lng @@ -18,7 +18,9 @@ $wb['run_month_error_format'] = 'PogreÅ¡an format za mjesece.'; $wb['run_wday_error_format'] = 'PogreÅ¡an format za dane u tjednu.'; $wb['command_error_format'] = 'PogreÅ¡an format komande. U sluÄaju pozivanja URL-a koristite samo http/https.'; $wb['unknown_fieldtype_error'] = 'Koristi se nepoznata vrsta polja.'; -$wb['server_id_error_empty'] = 'The server ID is empty.'; -$wb['limit_cron_url_txt'] = 'URL cron only. Please enter a URL starting with http:// as cron command.'; -$wb['command_error_empty'] = 'Command is empty.'; +$wb['server_id_error_empty'] = 'ID servera je preazan.'; +$wb['limit_cron_url_txt'] = 'Samo za URL cron. Unesite URL koji poÄinje sa http:// kao cron naredba.'; +$wb['command_error_empty'] = 'Naredba je prazna.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_cron_list.lng b/interface/web/sites/lib/lang/hr_cron_list.lng index c0107df637..bf448ec0df 100644 --- a/interface/web/sites/lib/lang/hr_cron_list.lng +++ b/interface/web/sites/lib/lang/hr_cron_list.lng @@ -11,3 +11,5 @@ $wb['command_txt'] = 'Komanda'; $wb['add_new_cron_txt'] = 'Dodaj novi cron zadatak'; $wb['parent_domain_id_txt'] = 'Web stranica'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_database.lng b/interface/web/sites/lib/lang/hr_database.lng index 381e77a3b6..06e0d919d6 100644 --- a/interface/web/sites/lib/lang/hr_database.lng +++ b/interface/web/sites/lib/lang/hr_database.lng @@ -26,11 +26,11 @@ $wb['parent_domain_id_txt'] = 'Site'; $wb['database_site_error_empty'] = 'Select the site to which the database belongs.'; $wb['select_site_txt'] = '- Select Site -'; $wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['btn_cancel_txt'] = 'Odustani'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; $wb['globalsearch_resultslimit_of_txt'] = 'of'; $wb['globalsearch_resultslimit_results_txt'] = 'results'; $wb['globalsearch_noresults_text_txt'] = 'No results.'; @@ -44,3 +44,5 @@ $wb['no_dbuser_txt'] = 'None'; $wb['database_client_differs_txt'] = 'The client of the parent web and the database do not match.'; $wb['database_user_missing_txt'] = 'Please select a database user for this database.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_database_admin_list.lng b/interface/web/sites/lib/lang/hr_database_admin_list.lng index 19c99568b5..e0bbab5d33 100644 --- a/interface/web/sites/lib/lang/hr_database_admin_list.lng +++ b/interface/web/sites/lib/lang/hr_database_admin_list.lng @@ -7,5 +7,7 @@ $wb['database_user_txt'] = 'Korisnik baze'; $wb['database_name_txt'] = 'Naziv baze'; $wb['add_new_record_txt'] = 'Dodaj bazu'; $wb['sys_groupid_txt'] = 'Klijent'; -$wb['parent_domain_id_txt'] = 'Website'; +$wb['parent_domain_id_txt'] = 'Web stranica'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_database_list.lng b/interface/web/sites/lib/lang/hr_database_list.lng index baec9d4cd0..b98d44c28d 100644 --- a/interface/web/sites/lib/lang/hr_database_list.lng +++ b/interface/web/sites/lib/lang/hr_database_list.lng @@ -6,5 +6,7 @@ $wb['server_id_txt'] = 'Server'; $wb['database_user_txt'] = 'Korisnik baze'; $wb['database_name_txt'] = 'Naziv baze'; $wb['add_new_record_txt'] = 'Dodaj bazu'; -$wb['parent_domain_id_txt'] = 'Website'; +$wb['parent_domain_id_txt'] = 'Web stranica'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_database_user.lng b/interface/web/sites/lib/lang/hr_database_user.lng index 66a0718349..5499c13a24 100644 --- a/interface/web/sites/lib/lang/hr_database_user.lng +++ b/interface/web/sites/lib/lang/hr_database_user.lng @@ -1,23 +1,25 @@ <?php -$wb['database_user_txt'] = 'Database user'; -$wb['database_password_txt'] = 'Database password'; -$wb['password_strength_txt'] = 'Password strength'; -$wb['client_txt'] = 'Client'; -$wb['active_txt'] = 'Active'; +$wb['database_user_txt'] = 'Korisnik baze'; +$wb['database_password_txt'] = 'Å ifra za bazu'; +$wb['password_strength_txt'] = 'JaÄina Å¡ifre'; +$wb['client_txt'] = 'Klijent'; +$wb['active_txt'] = 'Aktivno'; $wb['database_user_error_empty'] = 'Database user is empty.'; -$wb['database_user_error_unique'] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.'; +$wb['database_user_error_unique'] = 'There is already a database user with this name on the server. To get a unique name, npr. prepend your domain name to the username.'; $wb['database_user_error_regex'] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; $wb['database_user_error_len'] = 'Database username - {user} - too long. The max. database username length incl. prefix is 16 chars.'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['globalsearch_resultslimit_of_txt'] = 'of'; -$wb['globalsearch_resultslimit_results_txt'] = 'results'; -$wb['globalsearch_noresults_text_txt'] = 'No results.'; -$wb['globalsearch_noresults_limit_txt'] = '0 results'; -$wb['globalsearch_searchfield_watermark_txt'] = 'Search'; -$wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; +$wb['btn_save_txt'] = 'Spremi'; +$wb['btn_cancel_txt'] = 'Odustani'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['globalsearch_resultslimit_of_txt'] = 'od'; +$wb['globalsearch_resultslimit_results_txt'] = 'rezultata'; +$wb['globalsearch_noresults_text_txt'] = 'Nema rezultata.'; +$wb['globalsearch_noresults_limit_txt'] = '0 rezultata'; +$wb['globalsearch_searchfield_watermark_txt'] = 'Traži'; +$wb['globalsearch_suggestions_text_txt'] = 'Sugestija'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_database_user_admin_list.lng b/interface/web/sites/lib/lang/hr_database_user_admin_list.lng index d7f88c4c36..d9c9b72e79 100644 --- a/interface/web/sites/lib/lang/hr_database_user_admin_list.lng +++ b/interface/web/sites/lib/lang/hr_database_user_admin_list.lng @@ -1,6 +1,8 @@ <?php -$wb['list_head_txt'] = 'Database User'; -$wb['database_user_txt'] = 'Database user'; -$wb['add_new_record_txt'] = 'Add new User'; -$wb['sys_groupid_txt'] = 'Client'; +$wb['list_head_txt'] = 'Korisnik baze'; +$wb['database_user_txt'] = 'Korisnik'; +$wb['add_new_record_txt'] = 'Dodaj'; +$wb['sys_groupid_txt'] = 'Klijent'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_database_user_list.lng b/interface/web/sites/lib/lang/hr_database_user_list.lng index 8c226496a6..04af3c5878 100644 --- a/interface/web/sites/lib/lang/hr_database_user_list.lng +++ b/interface/web/sites/lib/lang/hr_database_user_list.lng @@ -1,5 +1,7 @@ <?php -$wb['list_head_txt'] = 'Database user'; -$wb['database_user_txt'] = 'Database user'; -$wb['add_new_record_txt'] = 'Add new user'; +$wb['list_head_txt'] = 'Korisnik baze'; +$wb['database_user_txt'] = 'Korisnik baze'; +$wb['add_new_record_txt'] = 'Dodaj novog korisnika'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_ftp_user.lng b/interface/web/sites/lib/lang/hr_ftp_user.lng index dbefe0bbf5..dcd910e37b 100644 --- a/interface/web/sites/lib/lang/hr_ftp_user.lng +++ b/interface/web/sites/lib/lang/hr_ftp_user.lng @@ -25,12 +25,14 @@ $wb['directory_error_empty'] = 'Prazan direktorij.'; $wb['directory_error_notinweb'] = 'Direktorij nije unutar poÄetne web stranice.'; $wb['parent_domain_id_error_empty'] = 'Nije izabrana web stranica.'; $wb['quota_size_error_regex'] = 'Kvota: unesi -1 za neograniÄeno ili broj > 0'; -$wb['dir_dot_error'] = 'No .. in path allowed.'; -$wb['dir_slashdot_error'] = 'No ./ in path allowed.'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; -$wb['directory_error_regex'] = 'Invalid directory'; +$wb['dir_dot_error'] = '.. nije dozvoljen u putanji.'; +$wb['dir_slashdot_error'] = './ nije dozvoljen u putanji.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['invalid_system_user_or_group_txt'] = 'Nepostojeći sistemski korisnik ili grupa'; +$wb['directory_error_regex'] = 'Neispravan direktorij'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_ftp_user_list.lng b/interface/web/sites/lib/lang/hr_ftp_user_list.lng index 9ed8e645a4..6cd88ad63d 100644 --- a/interface/web/sites/lib/lang/hr_ftp_user_list.lng +++ b/interface/web/sites/lib/lang/hr_ftp_user_list.lng @@ -6,3 +6,5 @@ $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['username_txt'] = 'KorisniÄko ime'; $wb['add_new_record_txt'] = 'Dodaj FTP raÄun'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_shell_user.lng b/interface/web/sites/lib/lang/hr_shell_user.lng index 93a6455083..e40c224c75 100644 --- a/interface/web/sites/lib/lang/hr_shell_user.lng +++ b/interface/web/sites/lib/lang/hr_shell_user.lng @@ -20,17 +20,19 @@ $wb['directory_error_empty'] = 'Direktorij je prazan.'; $wb['limit_shell_user_txt'] = 'IskoriÅ¡ten je maksimalan broj shell korisnika.'; $wb['parent_domain_id_error_empty'] = 'Nije izabrana web stranica.'; $wb['ssh_rsa_txt'] = 'SSH-RSA javni kljuÄ (za logiranje kljuÄevima)'; -$wb['dir_dot_error'] = 'No .. in path allowed.'; -$wb['dir_slashdot_error'] = 'No ./ in path allowed.'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.'; -$wb['username_not_allowed_txt'] = 'The username is not allowed.'; -$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; -$wb['directory_error_regex'] = 'Invalid directory'; -$wb['shell_error_regex'] = 'Invalid shell'; -$wb['invalid_username_txt'] = 'Invalid Username'; -$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; +$wb['dir_dot_error'] = 'Nije dozvoljeno koristiti .. u putanji.'; +$wb['dir_slashdot_error'] = 'Nije dozvoljeno koristiti ./ u putanji.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['username_must_not_exceed_32_chars_txt'] = 'KorisniÄko ime ne može biti duže od 32 znaka.'; +$wb['username_not_allowed_txt'] = 'Izabrano korisniÄko ime nije dozvoljeno.'; +$wb['invalid_system_user_or_group_txt'] = 'Neispravan sistemski korisnik ili grupa'; +$wb['directory_error_regex'] = 'Neispravan direktorij'; +$wb['shell_error_regex'] = 'Neispravan shell'; +$wb['invalid_username_txt'] = 'Neispravno korisniÄko ime'; +$wb['directory_error_notinweb'] = 'Direktorij treba biti unutar web poÄetne putanje (root).'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_shell_user_list.lng b/interface/web/sites/lib/lang/hr_shell_user_list.lng index 16fc32cfd9..0116b4ee54 100644 --- a/interface/web/sites/lib/lang/hr_shell_user_list.lng +++ b/interface/web/sites/lib/lang/hr_shell_user_list.lng @@ -1,8 +1,10 @@ <?php -$wb['list_head_txt'] = 'Shell korisnik'; +$wb['list_head_txt'] = 'Shell korisnici'; $wb['active_txt'] = 'Aktivno'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['username_txt'] = 'KorisniÄko ime'; $wb['add_new_record_txt'] = 'Dodaj novog Shell korisnika'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_user_quota_stats_list.lng b/interface/web/sites/lib/lang/hr_user_quota_stats_list.lng index 087ccabf85..2da19bbfcd 100644 --- a/interface/web/sites/lib/lang/hr_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/hr_user_quota_stats_list.lng @@ -5,5 +5,7 @@ $wb['system_user_txt'] = 'Linux korisnik'; $wb['used_txt'] = 'Prostor'; $wb['hard_txt'] = 'Hard limit'; $wb['soft_txt'] = 'Soft limit'; -$wb['files_txt'] = 'Single files'; +$wb['files_txt'] = 'Broj datoteka'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng index 4149c71149..6bf0315a78 100644 --- a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng @@ -1,87 +1,87 @@ <?php -$wb['domain_txt'] = 'Aliasdomain'; -$wb['backup_interval_txt'] = 'Backup interval'; -$wb['backup_copies_txt'] = 'Number of backup copies'; -$wb['ssl_state_txt'] = 'State'; -$wb['ssl_locality_txt'] = 'Locality'; -$wb['ssl_organisation_txt'] = 'Organisation'; -$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; -$wb['ssl_country_txt'] = 'Country'; -$wb['ssl_key_txt'] = 'SSL Key'; -$wb['ssl_request_txt'] = 'SSL Request'; -$wb['ssl_cert_txt'] = 'SSL Certificate'; -$wb['ssl_bundle_txt'] = 'SSL Bundle'; -$wb['ssl_action_txt'] = 'SSL Action'; -$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['domain_txt'] = 'Alias domena'; +$wb['backup_interval_txt'] = 'Interval pohrana'; +$wb['backup_copies_txt'] = 'Broj kopija pohrana'; +$wb['ssl_state_txt'] = 'Županija'; +$wb['ssl_locality_txt'] = 'Lokacija'; +$wb['ssl_organisation_txt'] = 'Organizacija'; +$wb['ssl_organisation_unit_txt'] = 'Organizacijska jedinica'; +$wb['ssl_country_txt'] = 'Država'; +$wb['ssl_key_txt'] = 'SSL kljuÄ'; +$wb['ssl_request_txt'] = 'SSL zahtjev'; +$wb['ssl_cert_txt'] = 'SSL certifikat'; +$wb['ssl_bundle_txt'] = 'SSL paket'; +$wb['ssl_action_txt'] = 'SSL akcija'; +$wb['ssl_domain_txt'] = 'SSL domena'; $wb['server_id_txt'] = 'Server'; -$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; -$wb['type_txt'] = 'Type'; -$wb['parent_domain_id_txt'] = 'Parent Website'; -$wb['redirect_type_txt'] = 'Redirect Type'; -$wb['redirect_path_txt'] = 'Redirect Path'; -$wb['active_txt'] = 'Active'; +$wb['web_folder_error_regex'] = 'Neispravan direktorij. Nemojte koristiti slash.'; +$wb['type_txt'] = 'Vrsta'; +$wb['parent_domain_id_txt'] = 'Glavna web stranica'; +$wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['redirect_path_txt'] = 'Putanja redirekcije'; +$wb['active_txt'] = 'Aktivno'; $wb['document_root_txt'] = 'Documentroot'; -$wb['system_user_txt'] = 'Linux User'; -$wb['system_group_txt'] = 'Linux Group'; -$wb['ip_address_txt'] = 'IPv4-Address'; -$wb['ipv6_address_txt'] = 'IPv6-Address'; -$wb['vhost_type_txt'] = 'VHost Type'; -$wb['hd_quota_txt'] = 'Harddisk Quota'; -$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['system_user_txt'] = 'Linux korisnik'; +$wb['system_group_txt'] = 'Linux grupa'; +$wb['ip_address_txt'] = 'IPv4 adresa'; +$wb['ipv6_address_txt'] = 'IPv6 adresa'; +$wb['vhost_type_txt'] = 'Vrsta VHost-a'; +$wb['hd_quota_txt'] = 'Kvota diska'; +$wb['traffic_quota_txt'] = 'Kvota prometa'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; -$wb['errordocs_txt'] = 'Own Error-Documents'; -$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['errordocs_txt'] = 'Vlastite stranice za greÅ¡ke'; +$wb['subdomain_txt'] = 'Automatska poddomena'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; -$wb['client_txt'] = 'Client'; -$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; -$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; -$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; -$wb['apache_directives_txt'] = 'Apache Directives'; -$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['client_txt'] = 'Klijent'; +$wb['limit_web_domain_txt'] = 'Iskoristili ste maksimalan broj web domena za vaÅ¡ raÄun.'; +$wb['limit_web_aliasdomain_txt'] = 'Iskoristili ste maksimalan broj alias doena za vaÅ¡ raÄun.'; +$wb['limit_web_subdomain_txt'] = 'Iskoristili ste maksimalan broj poddomena za vaÅ¡ raÄun.'; +$wb['apache_directives_txt'] = 'Apache direktive'; +$wb['domain_error_empty'] = 'Domena je prazna.'; $wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; -$wb['domain_error_regex'] = 'Domain name invalid.'; -$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.'; -$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; -$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; -$wb['error_ssl_state_empty'] = 'SSL State is empty.'; -$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; -$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; -$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; -$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; -$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; -$wb['client_group_id_txt'] = 'Client'; -$wb['stats_password_txt'] = 'Set Webstatistics password'; +$wb['domain_error_regex'] = 'Naziv domene je neispravan.'; +$wb['domain_error_autosub'] = 'Već postoji poddomena sa ovim postavkama.'; +$wb['hd_quota_error_empty'] = 'Kvota diska je 0 ili prazna.'; +$wb['traffic_quota_error_empty'] = 'Kota prometa je prazna.'; +$wb['error_ssl_state_empty'] = 'SSL županija je prazna.'; +$wb['error_ssl_locality_empty'] = 'SSL lokacija je prazna.'; +$wb['error_ssl_organisation_empty'] = 'SSL organizacija je prazna.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL organizacijska jedinica je prazna.'; +$wb['error_ssl_country_empty'] = 'SSL država je prazna.'; +$wb['error_ssl_cert_empty'] = 'Polje za SSL certifikat je prazno'; +$wb['client_group_id_txt'] = 'Klijent'; +$wb['stats_password_txt'] = 'Podesi Å¡ifru za web statistiku'; $wb['allow_override_txt'] = 'Apache AllowOverride'; -$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; -$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; -$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; -$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['limit_web_quota_free_txt'] = 'Maksimalno moguća kvota diska'; +$wb['ssl_state_error_regex'] = 'Neispravno polje SSL županija. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_locality_error_regex'] = 'Neispravno polje SSL lokacija. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_organisation_error_regex'] = 'Neispravno polje SSL organizacija. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Neispravno polje SSL organizacijska jedinica. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_country_error_regex'] = 'Neispravno polje SSL država. Dozvoljeni znakovi su: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Maksimalno moguća kvota prometa'; +$wb['redirect_error_regex'] = 'Neispravna redirekcijska putanja. Primjeri dozvoljene redirekcije: /test/ ili http://www.domena.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; -$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['traffic_quota_exceeded_txt'] = 'Kvota prometa je premaÅ¡ena'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Webstatistics username'; -$wb['stats_type_txt'] = 'Webstatistics program'; -$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; -$wb['none_txt'] = 'None'; -$wb['disabled_txt'] = 'Disabled'; -$wb['no_redirect_txt'] = 'No redirect'; -$wb['no_flag_txt'] = 'No flag'; -$wb['save_certificate_txt'] = 'Save certificate'; -$wb['create_certificate_txt'] = 'Create certificate'; -$wb['delete_certificate_txt'] = 'Delete certificate'; -$wb['nginx_directives_txt'] = 'nginx Directives'; -$wb['seo_redirect_txt'] = 'SEO Redirect'; -$wb['non_www_to_www_txt'] = 'Non-www -> www'; -$wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; -$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['stats_user_txt'] = 'KorisniÄko ime za web statistiku'; +$wb['stats_type_txt'] = 'Program za web statistiku'; +$wb['custom_php_ini_txt'] = 'Vlastite php.ini postavke'; +$wb['none_txt'] = 'NiÅ¡ta'; +$wb['disabled_txt'] = 'Onemogućeno'; +$wb['no_redirect_txt'] = 'Bez redirekcije'; +$wb['no_flag_txt'] = 'Bez flag-a'; +$wb['save_certificate_txt'] = 'Spremi certifikat'; +$wb['create_certificate_txt'] = 'Kreiraj certifikat'; +$wb['delete_certificate_txt'] = 'ObriÅ¡i certifikat'; +$wb['nginx_directives_txt'] = 'nginx direktive'; +$wb['seo_redirect_txt'] = 'SEO redirekcija'; +$wb['non_www_to_www_txt'] = 'bez www -> www'; +$wb['www_to_non_www_txt'] = 'www -> bez www'; +$wb['php_fpm_use_socket_txt'] = 'Koristi socket za PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI za SSL nije aktiviran na ovom serveru. Možete ukljuÄiti samo jedan SSL certifikat na svakoj IP adresi.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; @@ -95,21 +95,23 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['fastcgi_php_version_txt'] = 'PHP verzija'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; -$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; -$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['available_php_directive_snippets_txt'] = 'Dostupne PHP direktive:'; +$wb['available_apache_directive_snippets_txt'] = 'Dostupne Apache direktive:'; +$wb['available_nginx_directive_snippets_txt'] = 'Dostupne nginx direktive:'; $wb['proxy_directives_txt'] = 'Proxy Directives'; -$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['Domain'] = 'Aliasdomain'; +$wb['available_proxy_directive_snippets_txt'] = 'Dostupne proxy direktive:'; +$wb['Domena'] = 'Alias domena'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/hr_web_aliasdomain_list.lng index 0b45aff791..ae2bc727ba 100644 --- a/interface/web/sites/lib/lang/hr_web_aliasdomain_list.lng +++ b/interface/web/sites/lib/lang/hr_web_aliasdomain_list.lng @@ -12,3 +12,5 @@ $wb['no_redirect_txt'] = 'Bez redirekcije'; $wb['no_flag_txt'] = 'Bez oznaÄavanja'; $wb['none_txt'] = 'NiÅ¡ta'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_backup_list.lng b/interface/web/sites/lib/lang/hr_web_backup_list.lng index 9a10ca6d07..a57b467e07 100644 --- a/interface/web/sites/lib/lang/hr_web_backup_list.lng +++ b/interface/web/sites/lib/lang/hr_web_backup_list.lng @@ -13,3 +13,5 @@ $wb['restore_pending_txt'] = 'There is already a pending backup restore job.'; $wb['backup_type_mysql'] = 'MySQL Database'; $wb['backup_type_web'] = 'Website files'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_domain.lng b/interface/web/sites/lib/lang/hr_web_domain.lng index a7927a354b..ddcbdbc319 100644 --- a/interface/web/sites/lib/lang/hr_web_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_domain.lng @@ -1,10 +1,10 @@ <?php $wb['backup_interval_txt'] = 'Interval backupa'; $wb['backup_copies_txt'] = 'Broj backup kopija'; -$wb['ssl_state_txt'] = 'Stanje'; -$wb['ssl_locality_txt'] = 'Lokacija'; +$wb['ssl_state_txt'] = 'Županija'; +$wb['ssl_locality_txt'] = 'Grad'; $wb['ssl_organisation_txt'] = 'Organizacija'; -$wb['ssl_organisation_unit_txt'] = 'Organizacijski dio'; +$wb['ssl_organisation_unit_txt'] = 'Organizacijski sektor'; $wb['ssl_country_txt'] = 'Država'; $wb['ssl_request_txt'] = 'SSL zahtjev'; $wb['ssl_cert_txt'] = 'SSL certifikat'; @@ -42,21 +42,21 @@ $wb['domain_error_unique'] = 'Već postoji web stranica ili poddomena / alias sa $wb['domain_error_regex'] = 'Naziv domene nije ispravan.'; $wb['hd_quota_error_empty'] = 'Limit kvote (prostor) je 0 ili je prazno.'; $wb['traffic_quota_error_empty'] = 'Limit prometa je prazan.'; -$wb['error_ssl_state_empty'] = 'SSL županija je prazno.'; -$wb['error_ssl_locality_empty'] = 'SSL lokacija je prazna.'; -$wb['error_ssl_organisation_empty'] = 'SSL organizacija je prazna.'; -$wb['error_ssl_organisation_unit_empty'] = 'SSL organizacijski dio je prazan.'; -$wb['error_ssl_country_empty'] = 'SSL država je prazna.'; +$wb['error_ssl_state_empty'] = 'Niste unijeli županiju.'; +$wb['error_ssl_locality_empty'] = 'Niste unijeli grad.'; +$wb['error_ssl_organisation_empty'] = 'Niste unijeli organizaciju.'; +$wb['error_ssl_organisation_unit_empty'] = 'Niste unijeli organizacjski sektor.'; +$wb['error_ssl_country_empty'] = 'Niste unijeli državu.'; $wb['error_ssl_cert_empty'] = 'Polje SSL certifikata je prazno'; $wb['client_group_id_txt'] = 'Klijent'; $wb['stats_password_txt'] = 'Å ifra za statistiku'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Maksimalan limit kvote (prostor)'; -$wb['ssl_state_error_regex'] = 'Neispravan unos SSL županije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; -$wb['ssl_locality_error_regex'] = 'Neispravan unos SSL lokacije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; -$wb['ssl_organisation_error_regex'] = 'Neispravan unos SSL organizacije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'Neispravan unos SSL organizacijskog dijela. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; -$wb['ssl_country_error_regex'] = 'Neispravan unos SSL države. Dozvoljeni znakovi: A-Z'; +$wb['ssl_state_error_regex'] = 'Neispravan unos županije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; +$wb['ssl_locality_error_regex'] = 'Neispravan unos grada. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; +$wb['ssl_organisation_error_regex'] = 'Neispravan unos organizacije. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Neispravan unos organizacijskog sektora. Dozvoljeni znakovi: a-z, 0-9 i .,-_'; +$wb['ssl_country_error_regex'] = 'Neispravan unos države. Dozvoljeni znakovi: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Maksimalan limit prometa web stranice'; $wb['redirect_error_regex'] = 'Neispravna putanja redirekcije. Ispravne redirekcije su npr.: /test/ ili http://www.domena.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; @@ -100,33 +100,34 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; -$wb['domain_error_autosub'] = 'There is already a subdomain with these settings.'; -$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; -$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; -$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; -$wb['proxy_directives_txt'] = 'Proxy Directives'; -$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['no_server_error'] = 'No server selected.'; -$wb['no_backup_txt'] = 'No backup'; -$wb['daily_backup_txt'] = 'Daily'; -$wb['weekly_backup_txt'] = 'Weekly'; -$wb['monthly_backup_txt'] = 'Monthly'; -$wb['rewrite_rules_txt'] = 'Rewrite Rules'; -$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; -$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; -$wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; -$wb['variables_txt'] = 'Variables'; -$wb['added_by_txt'] = 'Added by'; -$wb['added_date_txt'] = 'Added date'; -$wb['backup_excludes_txt'] = 'Excluded Directories'; +$wb['domain_error_autosub'] = 'Već postoji poddomena sa ovim postavkama.'; +$wb['available_php_directive_snippets_txt'] = 'Dostupne PHP direktive:'; +$wb['available_apache_directive_snippets_txt'] = 'Dostupne Apache direktive:'; +$wb['available_nginx_directive_snippets_txt'] = 'Dostupne nginx direktive:'; +$wb['proxy_directives_txt'] = 'Proxy direktive'; +$wb['available_proxy_directive_snippets_txt'] = 'Dostupne Proxy direktive:'; +$wb['no_server_error'] = 'Nije izabran server.'; +$wb['no_backup_txt'] = 'Bez backup-a'; +$wb['daily_backup_txt'] = 'Dnevni backup'; +$wb['weekly_backup_txt'] = 'Tjedni backup'; +$wb['monthly_backup_txt'] = 'MjeseÄni backup'; +$wb['rewrite_rules_txt'] = 'Rewrite pravila'; +$wb['invalid_rewrite_rules_txt'] = 'Neispravna Rewrite pravila'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Dozvoljene direktive:'; +$wb['configuration_error_txt'] = 'KONFIGURACIJSKA GREÅ KA'; +$wb['variables_txt'] = 'Varijable'; +$wb['added_by_txt'] = 'Dodao'; +$wb['added_date_txt'] = 'Dodano'; +$wb['backup_excludes_txt'] = 'IzbaÄeni direktoriji'; $wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; -$wb['invalid_custom_php_ini_settings_txt'] = 'Invalid php.ini settings'; +$wb['backup_excludes_error_regex'] = 'IzbaÄeni direktorij sadrži nedozvoljene znakove.'; +$wb['invalid_custom_php_ini_settings_txt'] = 'Neispravne php.ini postavke'; $wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; -$wb['apache_directive_blocked_error'] = 'Apache directive blocked by security settings:'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_domain_admin_list.lng b/interface/web/sites/lib/lang/hr_web_domain_admin_list.lng index b5e5d2b467..9e1880ec34 100644 --- a/interface/web/sites/lib/lang/hr_web_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/hr_web_domain_admin_list.lng @@ -7,3 +7,5 @@ $wb['server_id_txt'] = 'Server'; $wb['domain_txt'] = 'Domena'; $wb['add_new_record_txt'] = 'Dodaj novu web stranicu'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_domain_list.lng b/interface/web/sites/lib/lang/hr_web_domain_list.lng index 2f85d7cd45..9cd040846d 100644 --- a/interface/web/sites/lib/lang/hr_web_domain_list.lng +++ b/interface/web/sites/lib/lang/hr_web_domain_list.lng @@ -6,3 +6,5 @@ $wb['server_id_txt'] = 'Server'; $wb['domain_txt'] = 'Domena'; $wb['add_new_record_txt'] = 'Dodaj novu web stranicu'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_folder.lng b/interface/web/sites/lib/lang/hr_web_folder.lng index f1c9b28cb7..e21fe053a4 100644 --- a/interface/web/sites/lib/lang/hr_web_folder.lng +++ b/interface/web/sites/lib/lang/hr_web_folder.lng @@ -4,5 +4,7 @@ $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['path_txt'] = 'Putanja'; $wb['active_txt'] = 'Aktivno'; $wb['path_error_regex'] = 'Neispravna putanja direktorija.'; -$wb['error_folder_already_protected_txt'] = 'There is already a record for this folder.'; +$wb['error_folder_already_protected_txt'] = 'Već postoji zapis za ovaj direktorij.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_folder_list.lng b/interface/web/sites/lib/lang/hr_web_folder_list.lng index 0a900fb2c4..a777e83b1d 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_list.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_list.lng @@ -4,5 +4,7 @@ $wb['active_txt'] = 'Aktivno'; $wb['server_id_txt'] = 'Server'; $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['path_txt'] = 'Putanja'; -$wb['add_new_record_txt'] = 'Add new Folder'; +$wb['add_new_record_txt'] = 'Dodaj novi direktorij'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_folder_user.lng b/interface/web/sites/lib/lang/hr_web_folder_user.lng index d4f7ca2943..c6787654d7 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_user.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_user.lng @@ -4,11 +4,13 @@ $wb['username_txt'] = 'KorisniÄko ime'; $wb['password_txt'] = 'Å ifra'; $wb['active_txt'] = 'Aktivno'; $wb['folder_error_empty'] = 'Nije izabran web direktorij.'; -$wb['password_strength_txt'] = 'Password strength'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['no_folder_perm'] = 'You have no permission for this folder.'; -$wb['error_user_exists_already_txt'] = 'There is already a record for this user.'; +$wb['password_strength_txt'] = 'JaÄina Å¡ifre'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['no_folder_perm'] = 'Nemate potrebne dozvole za ovaj direktorij.'; +$wb['error_user_exists_already_txt'] = 'Već postoji zapis za ovog korisnika.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_folder_user_list.lng b/interface/web/sites/lib/lang/hr_web_folder_user_list.lng index 3beae9f477..5153b9fc4f 100644 --- a/interface/web/sites/lib/lang/hr_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/hr_web_folder_user_list.lng @@ -3,5 +3,7 @@ $wb['list_head_txt'] = 'Web direktorij korisnik'; $wb['active_txt'] = 'Aktivno'; $wb['web_folder_id_txt'] = 'Web direkotrij'; $wb['username_txt'] = 'KorisniÄko ime'; -$wb['add_new_record_txt'] = 'Add new Folder User'; +$wb['add_new_record_txt'] = 'Dodaj novog korisnika web direktorija'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_sites_stats_list.lng b/interface/web/sites/lib/lang/hr_web_sites_stats_list.lng index 5cec1bbcb5..3d374a006f 100644 --- a/interface/web/sites/lib/lang/hr_web_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/hr_web_sites_stats_list.lng @@ -5,5 +5,7 @@ $wb['this_month_txt'] = 'Ovaj mjesec'; $wb['last_month_txt'] = 'ProÅ¡li mjesec'; $wb['this_year_txt'] = 'Ovu godinu'; $wb['last_year_txt'] = 'ProÅ¡lu godinu'; -$wb['sum_txt'] = 'Sum'; +$wb['sum_txt'] = 'Ukupno'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_subdomain.lng b/interface/web/sites/lib/lang/hr_web_subdomain.lng index 5ea6fff25b..edf3b63ee7 100644 --- a/interface/web/sites/lib/lang/hr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_subdomain.lng @@ -39,8 +39,10 @@ $wb['host_txt'] = 'Host'; $wb['redirect_error_regex'] = 'Neispravna putanja redirekcije. Ispravne redirekcije su npr.: /test/ ili http://www.domena.tld/test/'; $wb['no_redirect_txt'] = 'Bez redirekcije'; $wb['no_flag_txt'] = 'Bez markiranja'; -$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; -$wb['proxy_directives_txt'] = 'Proxy Directives'; -$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['domain_error_wildcard'] = 'Wildcard poddomene nisu dozvoljene.'; +$wb['proxy_directives_txt'] = 'Proxy direktive'; +$wb['available_proxy_directive_snippets_txt'] = 'Dostupne proxy direktive:'; +$wb['error_proxy_requires_url'] = 'Vrsta redirekcije \\"proxy\\" zahtjeva URL kao redirekcijsku putanju.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_subdomain_list.lng b/interface/web/sites/lib/lang/hr_web_subdomain_list.lng index 942454e117..bea42392c1 100644 --- a/interface/web/sites/lib/lang/hr_web_subdomain_list.lng +++ b/interface/web/sites/lib/lang/hr_web_subdomain_list.lng @@ -6,3 +6,5 @@ $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['domain_txt'] = 'Poddomena'; $wb['add_new_record_txt'] = 'Dodaj novu poddomenu'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng index c0ca93b570..39b425082d 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng @@ -1,127 +1,129 @@ <?php -$wb['parent_domain_id_txt'] = 'Parent Website'; -$wb['web_folder_txt'] = 'Web folder'; -$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; -$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; -$wb['backup_interval_txt'] = 'Backup interval'; -$wb['backup_copies_txt'] = 'Number of backup copies'; -$wb['ssl_state_txt'] = 'State'; -$wb['ssl_locality_txt'] = 'Locality'; -$wb['ssl_organisation_txt'] = 'Organisation'; -$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; -$wb['ssl_country_txt'] = 'Country'; -$wb['ssl_key_txt'] = 'SSL Key'; -$wb['ssl_request_txt'] = 'SSL Request'; -$wb['ssl_cert_txt'] = 'SSL Certificate'; -$wb['ssl_bundle_txt'] = 'SSL Bundle'; -$wb['ssl_action_txt'] = 'SSL Action'; -$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['parent_domain_id_txt'] = 'Glavna web stranica'; +$wb['web_folder_txt'] = 'Web direktorij'; +$wb['web_folder_invalid_txt'] = 'Web direktorij je neispravan, izaberite neki drugi.'; +$wb['web_folder_unique_txt'] = 'Web direktorij se već koristi, izaberite neki drugi.'; +$wb['backup_interval_txt'] = 'Interval pohranjivanja'; +$wb['backup_copies_txt'] = 'Broj kopija za pohranu'; +$wb['ssl_state_txt'] = 'Županija'; +$wb['ssl_locality_txt'] = 'Lokacija'; +$wb['ssl_organisation_txt'] = 'Organizacija'; +$wb['ssl_organisation_unit_txt'] = 'Organizacijska jedinica'; +$wb['ssl_country_txt'] = 'Država'; +$wb['ssl_key_txt'] = 'SSL kljuÄ'; +$wb['ssl_request_txt'] = 'SSL zahtjev'; +$wb['ssl_cert_txt'] = 'SSL certifikat'; +$wb['ssl_bundle_txt'] = 'SSL paket'; +$wb['ssl_action_txt'] = 'SSL akcija'; +$wb['ssl_domain_txt'] = 'SSL domena'; $wb['server_id_txt'] = 'Server'; -$wb['domain_txt'] = 'Domain'; +$wb['domain_txt'] = 'Domena'; $wb['host_txt'] = 'Hostname'; -$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; -$wb['type_txt'] = 'Type'; -$wb['redirect_type_txt'] = 'Redirect Type'; -$wb['redirect_path_txt'] = 'Redirect Path'; -$wb['active_txt'] = 'Active'; -$wb['document_root_txt'] = 'Documentroot'; -$wb['system_user_txt'] = 'Linux User'; -$wb['system_group_txt'] = 'Linux Group'; -$wb['ip_address_txt'] = 'IPv4-Address'; -$wb['ipv6_address_txt'] = 'IPv6-Address'; -$wb['vhost_type_txt'] = 'VHost Type'; -$wb['hd_quota_txt'] = 'Harddisk Quota'; -$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['web_folder_error_regex'] = 'Neispravan direktorij. Nemojte koristiti slash.'; +$wb['type_txt'] = 'Vrsta'; +$wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['redirect_path_txt'] = 'Redirekcijska putanja'; +$wb['active_txt'] = 'Aktivno'; +$wb['document_root_txt'] = 'PoÄetna putanja (documentroot)'; +$wb['system_user_txt'] = 'Linux korisnik'; +$wb['system_group_txt'] = 'Linux groupa'; +$wb['ip_address_txt'] = 'IPv4 adresa'; +$wb['ipv6_address_txt'] = 'IPv6 adresa'; +$wb['vhost_type_txt'] = 'Vrsta VHost-a'; +$wb['hd_quota_txt'] = 'Kvota tvrdog diska'; +$wb['traffic_quota_txt'] = 'Kvota prometa'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; -$wb['errordocs_txt'] = 'Own Error-Documents'; -$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['errordocs_txt'] = 'Vlastite stranice za greÅ¡ke'; +$wb['subdomain_txt'] = 'Automatska poddomena'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; -$wb['client_txt'] = 'Client'; -$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; -$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; -$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; -$wb['apache_directives_txt'] = 'Apache Directives'; -$wb['domain_error_empty'] = 'Domain is empty.'; -$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; -$wb['domain_error_regex'] = 'Domain name invalid.'; -$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; -$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; -$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; -$wb['error_ssl_state_empty'] = 'SSL State is empty.'; -$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; -$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; -$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; -$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; -$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; -$wb['client_group_id_txt'] = 'Client'; -$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['client_txt'] = 'Klijent'; +$wb['limit_web_domain_txt'] = 'IskoriÅ¡ten je maksimalan broj web domena za vaÅ¡ raÄun.'; +$wb['limit_web_aliasdomain_txt'] = 'IskoriÅ¡ten je maksimalan broj alias domena za vaÅ¡ raÄun.'; +$wb['limit_web_subdomain_txt'] = 'IskoriÅ¡ten je maksimalan broj poddomena za vaÅ¡ raÄun.'; +$wb['apache_directives_txt'] = 'Apache direktive'; +$wb['domain_error_empty'] = 'Domena je prazna.'; +$wb['domain_error_unique'] = 'Već postoji stranica ili poddodmena tj. alias domena sa ovim nazivom.'; +$wb['domain_error_regex'] = 'Naziv domene je neispravan.'; +$wb['domain_error_wildcard'] = 'Wildcard poddomene nisu dozvoljene.'; +$wb['hd_quota_error_empty'] = 'Kvota tvrdog diska je 0 ili prazna.'; +$wb['traffic_quota_error_empty'] = 'Kvota prometa je prazna.'; +$wb['error_ssl_state_empty'] = 'SSL županija je prazna.'; +$wb['error_ssl_locality_empty'] = 'SSL lokacija je prazna.'; +$wb['error_ssl_organisation_empty'] = 'SSL organizacija je prazna.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL organizacijska jedinica je prazna.'; +$wb['error_ssl_country_empty'] = 'SSL država je prazna.'; +$wb['error_ssl_cert_empty'] = 'SSL certifikat je prazan.'; +$wb['client_group_id_txt'] = 'Klijent'; +$wb['stats_password_txt'] = 'Å ifra web statistike'; $wb['allow_override_txt'] = 'Apache AllowOverride'; -$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; -$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; -$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_web_quota_free_txt'] = 'Maksimalno moguća kvota diska'; +$wb['ssl_state_error_regex'] = 'Neispravno polje SSL županija. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_locality_error_regex'] = 'Neispravno polje SSL lokacija. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_organisation_error_regex'] = 'Neispravno polje SSL organizacija. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Neispravno polje SSL organizacijska jedinica. Dozvoljeni znakovi su: a-z, 0-9 i .,-_'; +$wb['ssl_country_error_regex'] = 'Neispravno polje SSL država. Dozvoljeni znakovi su: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; -$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['redirect_error_regex'] = 'Neispravna redirekcijska putanja. Primjeri dozvoljene redirekcije: /test/ ili http://www.domena.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; -$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['traffic_quota_exceeded_txt'] = 'Kvota prometa je premaÅ¡ena'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Webstatistics username'; -$wb['stats_type_txt'] = 'Webstatistics program'; -$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; -$wb['none_txt'] = 'None'; -$wb['disabled_txt'] = 'Disabled'; -$wb['no_redirect_txt'] = 'No redirect'; -$wb['no_flag_txt'] = 'No flag'; -$wb['save_certificate_txt'] = 'Save certificate'; -$wb['create_certificate_txt'] = 'Create certificate'; -$wb['delete_certificate_txt'] = 'Delete certificate'; -$wb['nginx_directives_txt'] = 'nginx Directives'; -$wb['seo_redirect_txt'] = 'SEO Redirect'; -$wb['non_www_to_www_txt'] = 'Non-www -> www'; -$wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; -$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['stats_user_txt'] = 'KorisniÄko ime za web statistiku'; +$wb['stats_type_txt'] = 'Program za web statistiku'; +$wb['custom_php_ini_txt'] = 'Vlastite php.ini postavke'; +$wb['none_txt'] = 'NiÅ¡ta'; +$wb['disabled_txt'] = 'Onemogućeno'; +$wb['no_redirect_txt'] = 'Bez redirekcije'; +$wb['no_flag_txt'] = 'Bez flag-a'; +$wb['save_certificate_txt'] = 'Spremi certifikat'; +$wb['create_certificate_txt'] = 'Kreiraj certifikat'; +$wb['delete_certificate_txt'] = 'ObriÅ¡i certifikat'; +$wb['nginx_directives_txt'] = 'nginx direktive'; +$wb['seo_redirect_txt'] = 'SEO redirekcija'; +$wb['non_www_to_www_txt'] = 'bez www -> www'; +$wb['www_to_non_www_txt'] = 'www -> bez www'; +$wb['php_fpm_use_socket_txt'] = 'Koristi socket za PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI za SSL nije aktiviran na ovom serveru. Možete ukljuÄiti samo jedan SSL certifikat na svakoj IP adresi.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; $wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; $wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; $wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['error_php_fpm_pm_settings_txt'] = 'Vrijednosti za PHP-FPM pm postavke moraju biti slijedeće: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; $wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; $wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['fastcgi_php_version_txt'] = 'PHP verzija'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; $wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; -$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; -$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; -$wb['proxy_directives_txt'] = 'Proxy Directives'; -$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['rewrite_rules_txt'] = 'Rewrite Rules'; -$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; -$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; -$wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; -$wb['variables_txt'] = 'Variables'; -$wb['backup_excludes_txt'] = 'Excluded Directories'; -$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['available_php_directive_snippets_txt'] = 'PHP direktive:'; +$wb['available_apache_directive_snippets_txt'] = 'Apache direktive:'; +$wb['available_nginx_directive_snippets_txt'] = 'nginx direktive:'; +$wb['proxy_directives_txt'] = 'Proxy direktive'; +$wb['available_proxy_directive_snippets_txt'] = 'Proxy direktive:'; +$wb['rewrite_rules_txt'] = 'Rewrite pravila'; +$wb['invalid_rewrite_rules_txt'] = 'Neispravna Rewrite pravila'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Dozvoljene direktive:'; +$wb['configuration_error_txt'] = 'KONFIGURACIJSKA GREÅ KA'; +$wb['variables_txt'] = 'Varijable'; +$wb['backup_excludes_txt'] = 'IskljuÄeni direktoriji'; +$wb['backup_excludes_note_txt'] = '(Odvojite viÅ¡e direktorija sa zarezom. Primjer: web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = 'IskljuÄeni direktoriji sadrže nedozvoljene znakove.'; $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/hr_web_vhost_subdomain_list.lng index 1c16bcda28..1c00bd9b8d 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_subdomain_list.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_subdomain_list.lng @@ -6,3 +6,5 @@ $wb['parent_domain_id_txt'] = 'Website'; $wb['domain_txt'] = 'Subdomain'; $wb['add_new_record_txt'] = 'Add new subdomain'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_webdav_user.lng b/interface/web/sites/lib/lang/hr_webdav_user.lng index 3b3407500e..2bf9f475d0 100644 --- a/interface/web/sites/lib/lang/hr_webdav_user.lng +++ b/interface/web/sites/lib/lang/hr_webdav_user.lng @@ -12,10 +12,12 @@ $wb['username_error_unique'] = 'Izabrano korisniÄko ime već postoji.'; $wb['username_error_regex'] = 'KorisniÄko ime sadrži znakove koji nisu dopuÅ¡teni.'; $wb['directory_error_empty'] = 'Direktorij je prazan.'; $wb['parent_domain_id_error_empty'] = 'Nije izabrana web stranica.'; -$wb['dir_dot_error'] = 'No .. in path allowed.'; -$wb['dir_slashdot_error'] = 'No ./ in path allowed.'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['dir_dot_error'] = '.. nije dozvoljenu u putanji.'; +$wb['dir_slashdot_error'] = './ nije dozvoljeno u putanji.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; ?> + + diff --git a/interface/web/sites/lib/lang/hr_webdav_user_list.lng b/interface/web/sites/lib/lang/hr_webdav_user_list.lng index f19b8dafbc..a3d3c351d9 100644 --- a/interface/web/sites/lib/lang/hr_webdav_user_list.lng +++ b/interface/web/sites/lib/lang/hr_webdav_user_list.lng @@ -6,3 +6,5 @@ $wb['parent_domain_id_txt'] = 'Web stranica'; $wb['username_txt'] = 'KorisniÄko ime'; $wb['add_new_record_txt'] = 'Dodaj Webdav korisnika'; ?> + + diff --git a/interface/web/strengthmeter/lib/lang/hr_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/hr_strengthmeter.lng index 621898865e..4960d5564c 100644 --- a/interface/web/strengthmeter/lib/lang/hr_strengthmeter.lng +++ b/interface/web/strengthmeter/lib/lang/hr_strengthmeter.lng @@ -6,3 +6,5 @@ $wb['password_strength_3_txt'] = 'OdliÄna'; $wb['password_strength_4_txt'] = 'Jaka'; $wb['password_strength_5_txt'] = 'Vrlo jaka'; ?> + + diff --git a/interface/web/tools/lib/lang/hr.lng b/interface/web/tools/lib/lang/hr.lng index 7a8320b62b..d8744ec06d 100644 --- a/interface/web/tools/lib/lang/hr.lng +++ b/interface/web/tools/lib/lang/hr.lng @@ -4,10 +4,12 @@ $wb['Settings'] = 'Postavke'; $wb['ISPConfig Tools'] = 'Control panel alati'; $wb['Password and Language'] = 'Å ifra i jezik'; $wb['ispconfig_tools_note'] = 'Ovaj modul omogućava promjenu Å¡ifre i jezika te možete pokrenuti sinkronizaciju DNS zapisa.'; -$wb['Resync'] = 'Sinkroniziraj DNS zapise'; +$wb['Resync'] = 'Sinkroniziraj zapise'; $wb['Sync Tools'] = 'Sync Tools'; $wb['Import'] = 'Import'; $wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail'; $wb['PDNS Tupa'] = 'PowerDNS Tupa'; $wb['Interface'] = 'Interface'; ?> + + diff --git a/interface/web/tools/lib/lang/hr_import_ispconfig.lng b/interface/web/tools/lib/lang/hr_import_ispconfig.lng index ce47c4da4d..afbcfd4075 100644 --- a/interface/web/tools/lib/lang/hr_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/hr_import_ispconfig.lng @@ -1,23 +1,25 @@ <?php -$wb['head_txt'] = 'Import email configuration from ISPConfig 3'; -$wb['legend_txt'] = 'Remote server connection details'; -$wb['legend2_txt'] = 'Import email domain'; -$wb['resync_sites_txt'] = 'Resync Websites'; -$wb['resync_ftp_txt'] = 'Resync FTP users'; -$wb['resync_shell_txt'] = 'Resync shell users'; -$wb['resync_cron_txt'] = 'Resync cronjobs'; -$wb['resync_db_txt'] = 'Resync clientdb config'; -$wb['resync_mailbox_txt'] = 'Resync Mailboxes'; -$wb['resync_dns_txt'] = 'Resync DNS records'; -$wb['btn_start_txt'] = 'Start Import'; -$wb['btn_connect_txt'] = 'Connect to remote server'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['client_group_id_txt'] = 'Local client'; -$wb['mail_domain_txt'] = 'Remote email domain'; -$wb['import_mailbox_txt'] = 'Import mailbox'; -$wb['import_aliasdomain_txt'] = 'Import alias domain'; -$wb['import_alias_txt'] = 'Import email alias'; -$wb['import_forward_txt'] = 'Import forward'; -$wb['import_user_filter_txt'] = 'Import user filter'; -$wb['import_spamfilter_txt'] = 'Import spamfilter'; +$wb['head_txt'] = 'Importiraj email konfiguraciju iz ISPConfig 3'; +$wb['legend_txt'] = 'Podaci za spajanje na udaljeni server'; +$wb['legend2_txt'] = 'Importiraj email domenu'; +$wb['resync_sites_txt'] = 'Sinkroniziraj web stranice'; +$wb['resync_ftp_txt'] = 'Sinkroniziraj FTP korisnike'; +$wb['resync_shell_txt'] = 'Sinkroniziraj shell korisnike'; +$wb['resync_cron_txt'] = 'Sinkroniziraj cron zadatke'; +$wb['resync_db_txt'] = 'Sinkroniziraj clientdb konfiguraciju'; +$wb['resync_mailbox_txt'] = 'Sinkroniziraj email sanduÄiće'; +$wb['resync_dns_txt'] = 'Sinkroniziraj DNS zapise'; +$wb['btn_start_txt'] = 'Importiraj'; +$wb['btn_connect_txt'] = 'Spoji na udaljeni server'; +$wb['btn_cancel_txt'] = 'Odustani'; +$wb['client_group_id_txt'] = 'Localni klijent'; +$wb['mail_domain_txt'] = 'Udaljena email domena'; +$wb['import_mailbox_txt'] = 'Importiraj sanduÄiće'; +$wb['import_aliasdomain_txt'] = 'Importiraj alias domene'; +$wb['import_alias_txt'] = 'Importiraj email alias-e'; +$wb['import_forward_txt'] = 'Importiraj forward-ere'; +$wb['import_user_filter_txt'] = 'Importiraj korisniÄke filtere'; +$wb['import_spamfilter_txt'] = 'Importiraj spamfilter'; ?> + + diff --git a/interface/web/tools/lib/lang/hr_index.lng b/interface/web/tools/lib/lang/hr_index.lng index a3ef38f219..661a152f65 100644 --- a/interface/web/tools/lib/lang/hr_index.lng +++ b/interface/web/tools/lib/lang/hr_index.lng @@ -2,3 +2,5 @@ $wb['page_head_txt'] = 'ISPConfig Tools'; $wb['page_desc_txt'] = 'Change user settings'; ?> + + diff --git a/interface/web/tools/lib/lang/hr_interface.lng b/interface/web/tools/lib/lang/hr_interface.lng index aab4fc89ff..5ed3ccb01b 100644 --- a/interface/web/tools/lib/lang/hr_interface.lng +++ b/interface/web/tools/lib/lang/hr_interface.lng @@ -1,7 +1,9 @@ <?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; +$wb['interface_head_txt'] = 'Postavke teme'; +$wb['interface_desc_txt'] = 'Podesi temu'; +$wb['language_txt'] = 'Jezik'; +$wb['startmodule_txt'] = 'PoÄetna stranica'; +$wb['app_theme_txt'] = 'Tema'; ?> + + diff --git a/interface/web/tools/lib/lang/hr_resync.lng b/interface/web/tools/lib/lang/hr_resync.lng index dd8a216c76..8a97ae481c 100644 --- a/interface/web/tools/lib/lang/hr_resync.lng +++ b/interface/web/tools/lib/lang/hr_resync.lng @@ -1,14 +1,16 @@ <?php -$wb['head_txt'] = 'Resync Tool'; -$wb['legend_txt'] = 'Resync'; -$wb['resync_sites_txt'] = 'Resync Websites'; -$wb['resync_ftp_txt'] = 'Resync FTP users'; -$wb['resync_shell_txt'] = 'Resync shell users'; -$wb['resync_cron_txt'] = 'Resync cronjobs'; -$wb['resync_db_txt'] = 'Resync clientdb config'; -$wb['resync_mailbox_txt'] = 'Resync Mailboxes'; -$wb['resync_dns_txt'] = 'Resync DNS records'; -$wb['btn_start_txt'] = 'Start'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['resync_client_txt'] = 'Resync Client records'; +$wb['head_txt'] = 'Sinkronizacija'; +$wb['legend_txt'] = 'Sinkroniziraj'; +$wb['resync_sites_txt'] = 'Sinkroniziraj web stranice'; +$wb['resync_ftp_txt'] = 'Sinkroniziraj FTP korisnike'; +$wb['resync_shell_txt'] = 'Sinkroniziraj shell korisnike'; +$wb['resync_cron_txt'] = 'Sinkroniziraj cron zadatke'; +$wb['resync_db_txt'] = 'Sinkroniziraj clientdb konfiguraciju'; +$wb['resync_mailbox_txt'] = 'Sinkroniziraj email sanduÄiće'; +$wb['resync_dns_txt'] = 'Sinkroniziraj DNS zapise'; +$wb['btn_start_txt'] = 'Pokreni'; +$wb['btn_cancel_txt'] = 'Odustani'; +$wb['resync_client_txt'] = 'Sinkroniziraj klijente'; ?> + + diff --git a/interface/web/tools/lib/lang/hr_tpl_default.lng b/interface/web/tools/lib/lang/hr_tpl_default.lng index c06246304d..963ee0bfc9 100644 --- a/interface/web/tools/lib/lang/hr_tpl_default.lng +++ b/interface/web/tools/lib/lang/hr_tpl_default.lng @@ -1,7 +1,9 @@ <?php -$wb['list_head_txt'] = 'Default Theme settings'; -$wb['list_desc_txt'] = 'Modify default-theme specific options'; -$wb['no_settings_txt'] = 'There are no settings for the default theme.'; -$wb['btn_start_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Back'; +$wb['list_head_txt'] = 'Standardne postavke teme'; +$wb['list_desc_txt'] = 'Podesi opcije standardne teme'; +$wb['no_settings_txt'] = 'Nema opcija za standardnu temu.'; +$wb['btn_start_txt'] = 'Spremi'; +$wb['btn_cancel_txt'] = 'Natrag'; ?> + + diff --git a/interface/web/tools/lib/lang/hr_usersettings.lng b/interface/web/tools/lib/lang/hr_usersettings.lng index ae25bb258e..2fcf6faba7 100644 --- a/interface/web/tools/lib/lang/hr_usersettings.lng +++ b/interface/web/tools/lib/lang/hr_usersettings.lng @@ -5,8 +5,10 @@ $wb['language_txt'] = 'Jezik'; $wb['password_mismatch'] = 'Å ifra u drugom polju ne odgovara Å¡ifri iz prvog polja.'; $wb['Form to edit the user password and language.'] = 'Formular za izmjenu Å¡ifre i jezika.'; $wb['Settings'] = 'Postavke'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; +$wb['generate_password_txt'] = 'Generiraj Å¡ifru'; +$wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; +$wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; +$wb['password_match_txt'] = 'Å ifre su identiÄne.'; ?> + + diff --git a/interface/web/vm/lib/lang/hr.lng b/interface/web/vm/lib/lang/hr.lng index 4f5dbe9e60..5b9bd6acbe 100644 --- a/interface/web/vm/lib/lang/hr.lng +++ b/interface/web/vm/lib/lang/hr.lng @@ -5,3 +5,5 @@ $wb['VM Templates'] = 'VM predloÅ¡ci'; $wb['IP addresses'] = 'IP adrese'; $wb['OpenVZ'] = 'OpenVZ'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_action.lng b/interface/web/vm/lib/lang/hr_openvz_action.lng index 712685f050..4fddcff9df 100644 --- a/interface/web/vm/lib/lang/hr_openvz_action.lng +++ b/interface/web/vm/lib/lang/hr_openvz_action.lng @@ -4,7 +4,7 @@ $wb['start_txt'] = 'Pokreni virualni server'; $wb['stop_txt'] = 'Zaustavi virtualni server'; $wb['restart_txt'] = 'Restartaj virtualni server'; $wb['ostemplate_txt'] = 'Kreiraj predložak operativnog sistema'; -$wb['ostemplate_desc_txt'] = '(primjer: debian-6.0-i386-custom)'; +$wb['ostemplate_desc_txt'] = '(primjer: debian-7.0-i386-custom)'; $wb['btn_save_txt'] = 'Pokreni selektiranu akciju'; $wb['btn_cancel_txt'] = 'Prekini'; $wb['start_exec_txt'] = 'Komanda za pokretanje je poslana VM host serveru. Treba priÄekati minutu, dvije dok se VM ne pokrene.'; @@ -14,3 +14,5 @@ $wb['ostemplate_name_error'] = 'OS predložak sadrži nedozvoljene znakove.'; $wb['ostemplate_name_unique_error'] = 'Već postoji OS predložak sa tim nazivom.'; $wb['ostemplate_exec_txt'] = 'Komanda za kreiranje OS predloÅ¡ka je poslana host serveru. Treba priÄekati minutu, dvije dok se OS predložak ne kreira'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_ip.lng b/interface/web/vm/lib/lang/hr_openvz_ip.lng index debb04b96f..f51f864888 100644 --- a/interface/web/vm/lib/lang/hr_openvz_ip.lng +++ b/interface/web/vm/lib/lang/hr_openvz_ip.lng @@ -7,3 +7,5 @@ $wb['ip_error_wrong'] = 'Unesite ispravnu IPv4 adresu.'; $wb['ip_error_unique'] = 'Ova IP adresa već postoji.'; $wb['IP address'] = 'IP adresa'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_ip_list.lng b/interface/web/vm/lib/lang/hr_openvz_ip_list.lng index c578fc9976..025a2e4488 100644 --- a/interface/web/vm/lib/lang/hr_openvz_ip_list.lng +++ b/interface/web/vm/lib/lang/hr_openvz_ip_list.lng @@ -5,3 +5,5 @@ $wb['ip_address_txt'] = 'IP adresa'; $wb['reserved_txt'] = 'Rezervirano'; $wb['vm_id_txt'] = 'VM'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_ostemplate.lng b/interface/web/vm/lib/lang/hr_openvz_ostemplate.lng index df88ca9f7b..5b9162e349 100644 --- a/interface/web/vm/lib/lang/hr_openvz_ostemplate.lng +++ b/interface/web/vm/lib/lang/hr_openvz_ostemplate.lng @@ -9,3 +9,5 @@ $wb['template_name_error_empty'] = 'Nije upisan naziv predloÅ¡ka.'; $wb['template_file_error_empty'] = 'Nije upisan naziv datoteke predloÅ¡ka.'; $wb['Template'] = 'Predložak'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/hr_openvz_ostemplate_list.lng index 430d36b929..e0226937c8 100644 --- a/interface/web/vm/lib/lang/hr_openvz_ostemplate_list.lng +++ b/interface/web/vm/lib/lang/hr_openvz_ostemplate_list.lng @@ -6,3 +6,5 @@ $wb['server_id_txt'] = 'Server'; $wb['allservers_txt'] = 'Postoji na svim serverima'; $wb['ostemplate_id_txt'] = 'ID'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_template.lng b/interface/web/vm/lib/lang/hr_openvz_template.lng index eb7a49a729..cd2ad194c6 100644 --- a/interface/web/vm/lib/lang/hr_openvz_template.lng +++ b/interface/web/vm/lib/lang/hr_openvz_template.lng @@ -35,9 +35,9 @@ $wb['cpu_limit_txt'] = 'CPU limit %'; $wb['io_priority_txt'] = 'I/O priority'; $wb['active_txt'] = 'Aktivno'; $wb['description_txt'] = 'Opis'; -$wb['numproc_desc_txt'] = 'Number of processes and threads.'; -$wb['numtcpsock_desc_txt'] = 'Number of TCP sockets.'; -$wb['numothersock_desc_txt'] = 'Number of sockets other than TCP.'; +$wb['numproc_desc_txt'] = 'Broj procesa i thread-ova.'; +$wb['numtcpsock_desc_txt'] = 'Broj TCP socket-a.'; +$wb['numothersock_desc_txt'] = 'Broj socket-a drugaÄijih od TCP.'; $wb['vmguarpages_desc_txt'] = 'Memory allocation guarantee, in pages.'; $wb['kmemsize_desc_txt'] = 'Size of unswappable kernel memory, allocated for processes in this container.'; $wb['tcpsndbuf_desc_txt'] = 'Total size of TCP send buffers.'; @@ -47,18 +47,18 @@ $wb['dgramrcvbuf_desc_txt'] = 'Receive buffers of UDP and other datagram protoco $wb['oomguarpages_desc_txt'] = 'The guaranteed amount of memory for the case the memory is over-booked (out-of-memory kill guarantee), in pages.'; $wb['privvmpages_desc_txt'] = 'Memory allocation limit, in pages.'; $wb['lockedpages_desc_txt'] = 'Process pages not allowed to be swapped out (pages locked by mlock(2)).'; -$wb['shmpages_desc_txt'] = 'Total size of shared memory (IPC, shared anonymous mappings and tmpfs objects), in pages.'; -$wb['physpages_desc_txt'] = 'Total number of RAM pages used by processes.'; -$wb['numfile_desc_txt'] = 'Number of open files.'; -$wb['numflock_desc_txt'] = 'Number of file locks.'; +$wb['shmpages_desc_txt'] = 'Ukupna veliÄina dijeljene memorije (IPC, shared anonymous mappings and tmpfs objects), in pages.'; +$wb['physpages_desc_txt'] = 'Ukupna veliÄina RAM-a koriÅ¡tena od procesa.'; +$wb['numfile_desc_txt'] = 'Broj otvorenih datoteka.'; +$wb['numflock_desc_txt'] = 'Broj zakljuÄanih datoteka.'; $wb['numpty_desc_txt'] = 'Number of pseudo-terminals.'; $wb['numsiginfo_desc_txt'] = 'Number of siginfo structures.'; $wb['dcachesize_desc_txt'] = 'Total size of dentry and inode structures locked in memory.'; $wb['numiptent_desc_txt'] = 'Number of NETFILTER (IP packet filtering) entries.'; $wb['swappages_desc_txt'] = 'Amount of swap space to show in container.'; -$wb['create_dns_txt'] = 'Create DNS for hostname'; -$wb['template_name_error_empty'] = 'Template name is empty.'; -$wb['diskspace_error_empty'] = 'Diskspace is empty.'; +$wb['create_dns_txt'] = 'Kreiraj DNS za hostname'; +$wb['template_name_error_empty'] = 'Naziv predloÅ¡ka je prazan.'; +$wb['diskspace_error_empty'] = 'Diskovni prostor je prazan.'; $wb['ram_error_empty'] = 'RAM (guaranteed) is empty.'; $wb['ram_burst_error_empty'] = 'RAM (burst) is empty.'; $wb['cpu_units_error_empty'] = 'CPU units is empty.'; @@ -91,3 +91,5 @@ $wb['swappages_error_empty'] = 'Swappages polje je prazno.'; $wb['Template'] = 'Predložak'; $wb['Advanced'] = 'Napredno'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_template_list.lng b/interface/web/vm/lib/lang/hr_openvz_template_list.lng index f9c8642f1d..2c5233905d 100644 --- a/interface/web/vm/lib/lang/hr_openvz_template_list.lng +++ b/interface/web/vm/lib/lang/hr_openvz_template_list.lng @@ -3,3 +3,5 @@ $wb['list_head_txt'] = 'OpenVZ VM predložak'; $wb['active_txt'] = 'Aktivan'; $wb['template_name_txt'] = 'Ime predloÅ¡ka'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_vm.lng b/interface/web/vm/lib/lang/hr_openvz_vm.lng index 206fe3a712..bebfd297c5 100644 --- a/interface/web/vm/lib/lang/hr_openvz_vm.lng +++ b/interface/web/vm/lib/lang/hr_openvz_vm.lng @@ -34,7 +34,9 @@ $wb['cpu_units_error_empty'] = 'CPU units polje je prazno.'; $wb['cpu_num_error_empty'] = 'CPU number polje je prazno.'; $wb['cpu_limit_error_empty'] = 'CPU limit polje je prazno.'; $wb['io_priority_error_empty'] = 'I/O priority polje je prazno.'; -$wb['template_nameserver_error_empty'] = 'Nameserver(s) polje je prazno.'; +$wb['template_nameserver_error_empty'] = 'Nameserver(i) polje je prazno.'; $wb['Virtual server'] = 'Virtualni server'; $wb['Advanced'] = 'Napredno'; ?> + + diff --git a/interface/web/vm/lib/lang/hr_openvz_vm_list.lng b/interface/web/vm/lib/lang/hr_openvz_vm_list.lng index ab3ef52529..5fa97806a5 100644 --- a/interface/web/vm/lib/lang/hr_openvz_vm_list.lng +++ b/interface/web/vm/lib/lang/hr_openvz_vm_list.lng @@ -8,3 +8,5 @@ $wb['hostname_txt'] = 'Ime hosta'; $wb['ip_address_txt'] = 'IP adresa'; $wb['veid_txt'] = 'VEID'; ?> + + -- GitLab From 4c4739d42534c91230c3ee0c47ed0aee5241b28a Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sat, 13 Sep 2014 11:47:52 +0200 Subject: [PATCH 137/158] Disabled IDS by default. --- security/security_settings.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/security_settings.ini b/security/security_settings.ini index 4b4327aafc..d3b8d9c743 100644 --- a/security/security_settings.ini +++ b/security/security_settings.ini @@ -18,7 +18,7 @@ remote_api_allowed=yes password_reset_allowed=yes [ids] -ids_enabled=yes +ids_enabled=no ids_log_level=1 ids_warn_level=5 ids_block_level=100 -- GitLab From d812165fbb0e9ff4079771e4b265039383a4e0f2 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 16 Sep 2014 08:42:32 +0200 Subject: [PATCH 138/158] Changed SSL cert generation mode to SHA256. --- server/plugins-available/apache2_plugin.inc.php | 2 +- server/plugins-available/nginx_plugin.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index bdf6a05bd7..e302fa20e4 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -188,7 +188,7 @@ class apache2_plugin { if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file 2048"); - exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); + exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file -out $openssl_cmd_key_file2"); if(file_exists($web_config['CA_path'].'/openssl.cnf')) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index e56abe8422..c95a84fbbb 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -187,7 +187,7 @@ class nginx_plugin { if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file 2048"); - exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); + exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file -out $openssl_cmd_key_file2"); if(file_exists($web_config['CA_path'].'/openssl.cnf')) -- GitLab From 6068b7afc0371506be54e0596ecabf10e43ddbb4 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 16 Sep 2014 08:42:32 +0200 Subject: [PATCH 139/158] Changed SSL cert generation mode to SHA256. --- server/plugins-available/apache2_plugin.inc.php | 3 ++- server/plugins-available/nginx_plugin.inc.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index bdf6a05bd7..142a916d00 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -148,6 +148,7 @@ class apache2_plugin { [ req ] default_bits = 2048 + default_md = sha256 default_keyfile = keyfile.pem distinguished_name = req_distinguished_name attributes = req_attributes @@ -188,7 +189,7 @@ class apache2_plugin { if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file 2048"); - exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); + exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file -out $openssl_cmd_key_file2"); if(file_exists($web_config['CA_path'].'/openssl.cnf')) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index e56abe8422..0e77205cc5 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -147,6 +147,7 @@ class nginx_plugin { [ req ] default_bits = 2048 + default_md = sha256 default_keyfile = keyfile.pem distinguished_name = req_distinguished_name attributes = req_attributes @@ -187,7 +188,7 @@ class nginx_plugin { if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file 2048"); - exec("openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); + exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file -out $openssl_cmd_key_file2"); if(file_exists($web_config['CA_path'].'/openssl.cnf')) -- GitLab From f02be96750e48859cc63f1f2b64a86a9202178b4 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 22 Sep 2014 13:25:20 +0200 Subject: [PATCH 140/158] Fixed a error in OS detection code for CentOS. --- server/lib/classes/monitor_tools.inc.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index ae1fbd3228..19f69bb963 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -215,13 +215,11 @@ class monitor_tools { $distver = 'Unknown'; $distid = 'centos53'; $distbaseid = 'fedora'; - swriteln("Operating System: CentOS 6 or compatible\n"); } elseif(stristr($content, 'CentOS Linux release 7')) { $distname = 'CentOS'; $distver = 'Unknown'; $distid = 'centos53'; $distbaseid = 'fedora'; - swriteln("Operating System: CentOS 7 or compatible\n"); } else { $distname = 'Redhat'; $distver = 'Unknown'; -- GitLab From 5686edb520c31701b866708a7a64047fb01efd6d Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Mon, 22 Sep 2014 13:26:14 +0200 Subject: [PATCH 141/158] Apache binary is not recognized correctly on CentOS 7 in http restart method. --- server/mods-available/web_module.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/mods-available/web_module.inc.php b/server/mods-available/web_module.inc.php index 666e8451cd..f84d87f0f8 100644 --- a/server/mods-available/web_module.inc.php +++ b/server/mods-available/web_module.inc.php @@ -203,7 +203,7 @@ class web_module { $daemon = $web_config['server_type']; break; default: - if(is_file($conf['init_scripts'] . '/' . 'httpd')) { + if(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) { $daemon = 'httpd'; } else { $daemon = 'apache2'; -- GitLab From c43c293b1935ab84be4b748cebfeb34ca698998a Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 24 Sep 2014 15:43:24 +0200 Subject: [PATCH 142/158] SSL cert for postfix does not get generated properly on Centos. --- install/dist/lib/fedora.lib.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 7dd7d9b04a..e5eefa3258 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -231,10 +231,11 @@ class installer_dist extends installer_base { //* Create the SSL certificate if(AUTOINSTALL){ $command = 'cd '.$config_dir.'; ' - ."openssl req -new -subj '/C=".$autoinstall['ssl_cert_country']."/ST=".$autoinstall['ssl_cert_state']."/L=".$autoinstall['ssl_cert_locality']."/O=".$autoinstall['ssl_cert_organisation']."/OU=".$autoinstall['ssl_cert_organisation_unit']."/CN=".$autoinstall['ssl_cert_common_name']."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; } else { $command = 'cd '.$config_dir.'; ' - ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } } exec($command); -- GitLab From 6061d5f84726eb7f93eceff24de63bb471c9d029 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 24 Sep 2014 15:44:46 +0200 Subject: [PATCH 143/158] Services were not restarted correctly after install on CentOS 7. --- install/lib/installer_base.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index a30a7ec02a..5958d9d6ad 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2302,7 +2302,7 @@ class installer_base { public function getinitcommand($servicename, $action, $init_script_directory = ''){ global $conf; // systemd - if(is_executable('/bin/systemd')){ + if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ return 'systemctl '.$action.' '.$servicename.'.service'; } // upstart -- GitLab From 9b021b2e4b3ee783ceae6f1cf04e1b06ed431637 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 24 Sep 2014 15:46:48 +0200 Subject: [PATCH 144/158] Added support for php-fpm with mod_proxy_fcgi (required for apache 2.4). Note: The mod_proxy_fcgi that ships with CentOS and Ubuntu does not support sockets yet, so all php-fpm connections are done by IP. --- server/conf/vhost.conf.master | 3 +++ server/plugins-available/apache2_plugin.inc.php | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 96b3443384..16e0d12160 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -334,6 +334,9 @@ FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -socket <tmpl_var name='fpm_socket'> -pass-header Authorization </tmpl_if> </IfModule> + <IfModule mod_proxy_fcgi.c> + ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ fcgi://127.0.0.1:<tmpl_var name='fpm_port'><tmpl_var name='web_document_root'>/$1 + </IfModule> </tmpl_if> <tmpl_if name="rewrite_enabled"> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 142a916d00..3c4ba3e77f 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1262,8 +1262,9 @@ class apache2_plugin { $pool_name = 'web'.$data['new']['domain_id']; $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; - - if($data['new']['php_fpm_use_socket'] == 'y'){ + + // User sockets, but not with apache 2.4 as socket support is buggy in that version + if($data['new']['php_fpm_use_socket'] == 'y' && $app->system->getapacheversion() < 2.4){ $use_tcp = 0; $use_socket = 1; } else { -- GitLab From 6d6643de2b6fc47b15e27c46266f22866c1cd1a8 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 24 Sep 2014 15:47:20 +0200 Subject: [PATCH 145/158] Fixed service restart problems on CentOS 7. --- server/lib/classes/system.inc.php | 2 +- server/mods-available/web_module.inc.php | 24 +++++++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index af42e5ec31..d227792771 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1722,7 +1722,7 @@ class system{ function getinitcommand($servicename, $action, $init_script_directory = ''){ global $conf; // systemd - if(is_executable('/bin/systemd')){ + if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ return 'systemctl '.$action.' '.$servicename.'.service'; } // upstart diff --git a/server/mods-available/web_module.inc.php b/server/mods-available/web_module.inc.php index f84d87f0f8..42eaab6745 100644 --- a/server/mods-available/web_module.inc.php +++ b/server/mods-available/web_module.inc.php @@ -212,11 +212,12 @@ class web_module { $retval = array('output' => '', 'retval' => 0); if($action == 'restart') { - exec($app->system->getinitcommand($daemon, 'restart').' 2>&1', $retval['output'], $retval['retval']); - + $cmd = $app->system->getinitcommand($daemon, 'restart'); } else { - exec($app->system->getinitcommand($daemon, 'reload').' 2>&1', $retval['output'], $retval['retval']); + $cmd = $app->system->getinitcommand($daemon, 'reload'); } + exec($cmd.' 2>&1', $retval['output'], $retval['retval']); + $app->log("Restarting httpd: $cmd", LOGLEVEL_DEBUG); // nginx: do a syntax check because on some distributions, the init script always returns 0 - even if the syntax is not ok (how stupid is that?) if($web_config['server_type'] == 'nginx' && $retval['retval'] == 0){ @@ -249,6 +250,22 @@ class web_module { if(preg_match('/^ID=ubuntu/m', $tmp) && preg_match('/^VERSION_ID="14\.04"/m', $tmp)) { $initcommand = '/sbin/start-stop-daemon --stop --signal USR2 --quiet --pidfile /var/run/php5-fpm.pid --name php5-fpm'; } + // And the next workaround, php-fpm reloads in centos 7 downt work as well. + if(preg_match('/^ID=centos/m', $tmp) && preg_match('/^VERSION_ID="7"/m', $tmp)) { + $initcommand = 'systemctl restart php-fpm.service'; + } + unset($tmp); + } + } + + if($action == 'reload') { + // And the next workaround, php-fpm reloads in centos 7 downt work as well. + if(file_exists('/etc/os-release')) { + $tmp = file_get_contents('/etc/os-release'); + // And the next workaround, php-fpm reloads in centos 7 downt work as well. + if(preg_match('/^ID="centos"/m', $tmp) && preg_match('/^VERSION_ID="7"/m', $tmp)) { + $initcommand = 'systemctl restart php-fpm.service'; + } unset($tmp); } } @@ -256,6 +273,7 @@ class web_module { $retval = array('output' => '', 'retval' => 0); exec($initcommand.' 2>&1', $retval['output'], $retval['retval']); + $app->log("Restarting php-fpm: $initcommand", LOGLEVEL_DEBUG); return $retval; } -- GitLab From 132081c0e69f0313ccb0d23637499e940d29f470 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 26 Sep 2014 17:57:38 +0200 Subject: [PATCH 146/158] - added check for mysql error to avoid flood of error messages/mails --- server/cron_daily.php | 2 ++ server/lib/app.inc.php | 18 ++++++++++++++++++ server/lib/classes/db_mysql.inc.php | 13 +++++++++++++ server/server.php | 2 ++ 4 files changed, 35 insertions(+) diff --git a/server/cron_daily.php b/server/cron_daily.php index ee54a46207..10f168812c 100644 --- a/server/cron_daily.php +++ b/server/cron_daily.php @@ -32,6 +32,8 @@ define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"])); require SCRIPT_PATH."/lib/config.inc.php"; require SCRIPT_PATH."/lib/app.inc.php"; +$app->setCaller('cron_daily'); + set_time_limit(0); ini_set('error_reporting', E_ALL & ~E_NOTICE); diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index a1e75af16a..a9d47a5578 100755 --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -35,6 +35,7 @@ class app { var $loaded_modules = array(); var $loaded_plugins = array(); + var $_calling_script = ''; function __construct() { @@ -60,6 +61,23 @@ class app { } + function setCaller($caller) { + $this->_calling_script = $caller; + } + + function getCaller() { + return $this->_calling_script; + } + + function forceErrorExit($errmsg = 'undefined') { + global $conf; + + if($this->_calling_script == 'server') { + @unlink($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock'); + } + die('Exiting because of error: ' . $errmsg); + } + function uses($classes) { global $conf; diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index d8bfbea495..6d428475e8 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -130,6 +130,8 @@ class db extends mysqli } public function query($queryString) { + global $app; + if($this->isConnected == false) return false; $try = 0; do { @@ -138,6 +140,17 @@ class db extends mysqli if(!$ok) { if(!$this->real_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName)) { $this->updateError('DB::query -> reconnect'); + if($this->errorNumber == '111') { + // server is not available + if($try > 9) { + if(isset($app) && isset($app->forceErrorExit)) { + $app->forceErrorExit('Database connection failure!'); + } + // if we reach this, the app object is missing or has no exit method, so we continue as normal + } + sleep(30); // additional seconds, please! + } + if($try > 9) { return false; } else { diff --git a/server/server.php b/server/server.php index ab25404424..1d2c6d21d7 100644 --- a/server/server.php +++ b/server/server.php @@ -31,6 +31,8 @@ define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"])); require SCRIPT_PATH."/lib/config.inc.php"; require SCRIPT_PATH."/lib/app.inc.php"; +$app->setCaller('server'); + set_time_limit(0); ini_set('error_reporting', E_ALL & ~E_NOTICE); -- GitLab From 49b3f5ec2a3c105652d451469eeb09a5ed75eba0 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 30 Sep 2014 12:27:51 +0200 Subject: [PATCH 147/158] Fixed: FS#3683 - New gtld - regex issue while defining alias emaildomains --- interface/web/mail/form/mail_aliasdomain.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/mail/form/mail_aliasdomain.tform.php b/interface/web/mail/form/mail_aliasdomain.tform.php index fb935003bb..64c5992483 100644 --- a/interface/web/mail/form/mail_aliasdomain.tform.php +++ b/interface/web/mail/form/mail_aliasdomain.tform.php @@ -86,7 +86,7 @@ $form["tabs"]['alias'] = array ( 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'source_error_unique'), 2 => array ( 'type' => 'REGEX', - 'regex' => '/^\@[\w\.\-]{2,64}\.[a-zA-Z0-9\-]{2,10}$/', + 'regex' => '/^\@[\w\.\-]{2,64}\.[a-zA-Z0-9\-]{2,20}$/', 'errmsg'=> 'source_error_regex'), ), 'default' => '', -- GitLab From 58fb006c466ac90edd1d2f90a9559b5048e64fd7 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 10 Oct 2014 13:14:20 +0200 Subject: [PATCH 148/158] - Fixed: FS#3691 - Admin re-login after change admin password fails --- interface/web/tools/user_settings.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/interface/web/tools/user_settings.php b/interface/web/tools/user_settings.php index 7065888dd7..02fc4f73d2 100644 --- a/interface/web/tools/user_settings.php +++ b/interface/web/tools/user_settings.php @@ -97,6 +97,16 @@ class page_action extends tform_actions { $app->error('Invalid language.'); } } + + function onAfterUpdate() { + global $app; + + if($_POST['passwort'] != '') { + $tmp_user = $app->db->queryOneRecord("SELECT passwort FROM sys_user WHERE userid = '".$app->functions->intval($_SESSION['s']['user']['userid'])."'"); + $_SESSION['s']['user']['passwort'] = $tmp_user['passwort']; + unset($tmp_user); + } + } } -- GitLab From 2f7e607a9d5331c5d5f56dec8bc167907a08ddad Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 10 Oct 2014 13:24:53 +0200 Subject: [PATCH 149/158] - Fixes: FS#3693 - sites_database_add doesn't set the sys_groupid parameter --- .../lib/classes/sites_database_plugin.inc.php | 137 ++---------------- interface/web/sites/database_edit.php | 30 +--- 2 files changed, 14 insertions(+), 153 deletions(-) diff --git a/interface/lib/classes/sites_database_plugin.inc.php b/interface/lib/classes/sites_database_plugin.inc.php index d255fdca85..bf53c61fad 100644 --- a/interface/lib/classes/sites_database_plugin.inc.php +++ b/interface/lib/classes/sites_database_plugin.inc.php @@ -33,145 +33,28 @@ class sites_database_plugin { public function processDatabaseInsert($form_page) { global $app; - /*if($form_page->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - } else { - $sys_groupid = $form_page->dataRecord['sys_groupid']; - } - - - if($form_page->dataRecord['database_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "')"); - - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - } - - if($form_page->dataRecord['database_ro_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "')"); - - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - }*/ + $this->processDatabaseUpdate($form_page); } public function processDatabaseUpdate($form_page) { global $app; - /*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($form_page->id)); - - if($form_page->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - } else { - $sys_groupid = $form_page->dataRecord['sys_groupid']; - } - - // check if database user has changed - if($old_record['database_user_id'] && $old_record['database_user_id'] != $form_page->dataRecord['database_user_id'] && $old_record['database_user_id'] != $form_page->dataRecord['database_ro_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "') AND `database_id` != '" . $app->functions->intval($form_page->id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - } - // check if readonly database user has changed - if($old_record['database_ro_user_id'] && $old_record['database_ro_user_id'] != $form_page->dataRecord['database_ro_user_id'] && $old_record['database_ro_user_id'] != $form_page->dataRecord['database_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "') AND `database_id` != '" . $app->functions->intval($form_page->id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - }*/ - - /*if($form_page->dataRecord['database_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "')"); - - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - } - - if($form_page->dataRecord['database_ro_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "')"); + if($form_page->dataRecord["parent_domain_id"] > 0) { + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - }*/ + //* The Database user shall be owned by the same group then the website + $sys_groupid = $app->functions->intval($web['sys_groupid']); + $backup_interval = $app->db->quote($web['backup_interval']); + $backup_copies = $app->functions->intval($web['backup_copies']); + $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$form_page->id; + $app->db->query($sql); + } } public function processDatabaseDelete($primary_id) { global $app; - /*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($primary_id)); - if($old_record['database_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($old_record['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "') AND `database_id` != '" . $app->functions->intval($primary_id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $old_record['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - } - if($old_record['database_ro_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($old_record['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "') AND `database_id` != '" . $app->functions->intval($primary_id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $old_record['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - }*/ - } } diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 0f2f5f227d..48540e888e 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -405,9 +405,6 @@ class page_action extends tform_actions { global $app; if(!empty($sql) && !$app->tform->isReadonlyTab($app->tform->getCurrentTab(), $this->id)) { - $app->uses('sites_database_plugin'); - //$app->sites_database_plugin->processDatabaseUpdate($this); - $app->db->query($sql); if($app->db->errorMessage != '') die($app->db->errorMessage); } @@ -416,34 +413,15 @@ class page_action extends tform_actions { function onAfterInsert() { global $app, $conf; - if($this->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $app->functions->intval($web['sys_groupid']); - $backup_interval = $app->db->quote($web['backup_interval']); - $backup_copies = $app->functions->intval($web['backup_copies']); - - $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id; - $app->db->query($sql); - } + $app->uses('sites_database_plugin'); + $app->sites_database_plugin->processDatabaseInsert($this); } function onAfterUpdate() { global $app, $conf; - if($this->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $app->functions->intval($web['sys_groupid']); - $backup_interval = $app->db->quote($web['backup_interval']); - $backup_copies = $app->functions->intval($web['backup_copies']); - - $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id; - $app->db->query($sql); - } - + $app->uses('sites_database_plugin'); + $app->sites_database_plugin->processDatabaseUpdate($this); } } -- GitLab From d7927ad2b4f0c891e1ecb3f3b9bb7b46e2dc2c67 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 10 Oct 2014 13:26:22 +0200 Subject: [PATCH 150/158] - removed obsolete code --- interface/web/sites/database_edit.php | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 48540e888e..ffc6844526 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -251,14 +251,6 @@ class page_action extends tform_actions { // we need remote access rights for this server, so get it's ip address $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); if($server_config['ip_address']!='') { - /* - if($this->dataRecord['remote_access'] != 'y') $this->dataRecord['remote_ips'] = ''; - $this->dataRecord['remote_access'] = 'y'; - if(preg_match('/(^|,)' . preg_quote($server_config['ip_address'], '/') . '(,|$)/', $this->dataRecord['remote_ips']) == false) { - $this->dataRecord['remote_ips'] .= ($this->dataRecord['remote_ips'] != '' ? ',' : '') . $server_config['ip_address']; - } - */ - if($this->dataRecord['remote_access'] != 'y'){ $this->dataRecord['remote_ips'] = $server_config['ip_address']; $this->dataRecord['remote_access'] = 'y'; @@ -338,14 +330,6 @@ class page_action extends tform_actions { // we need remote access rights for this server, so get it's ip address $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); if($server_config['ip_address']!='') { - /* - if($this->dataRecord['remote_access'] != 'y') $this->dataRecord['remote_ips'] = ''; - $this->dataRecord['remote_access'] = 'y'; - if(preg_match('/(^|,)' . preg_quote($server_config['ip_address'], '/') . '(,|$)/', $this->dataRecord['remote_ips']) == false) { - $this->dataRecord['remote_ips'] .= ($this->dataRecord['remote_ips'] != '' ? ',' : '') . $server_config['ip_address']; - } - */ - if($this->dataRecord['remote_access'] != 'y'){ $this->dataRecord['remote_ips'] = $server_config['ip_address']; $this->dataRecord['remote_access'] = 'y'; @@ -390,10 +374,6 @@ class page_action extends tform_actions { function onInsertSave($sql) { global $app, $conf; - $app->uses('sites_database_plugin'); - - //$app->sites_database_plugin->processDatabaseInsert($this); - $app->db->query($sql); if($app->db->errorMessage != '') die($app->db->errorMessage); $new_id = $app->db->insertID(); -- GitLab From 5049080b7ef50b47bf50bf2cdf3f4c22b1f9394d Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 16 Oct 2014 12:03:52 +0200 Subject: [PATCH 151/158] Implemented: FS#3707 - apps_instance_setting database storing details in plain text --- .../mods-available/monitor_core_module.inc.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php index d6d28ca635..fc5dd79fdf 100644 --- a/server/mods-available/monitor_core_module.inc.php +++ b/server/mods-available/monitor_core_module.inc.php @@ -121,6 +121,7 @@ class monitor_core_module { $this->_monitorFail2ban(); $this->_monitorIPTables(); $this->_monitorSysLog(); + $this->_cleanupAPS(); } private function _monitorEmailQuota() { @@ -844,6 +845,22 @@ class monitor_core_module { ' server_id = ' . $serverId; $app->dbmaster->query($sql); } + + private function _cleanupAPS() { + global $app, $conf; + + // run this only on the master + if($conf['server_id'] == 1) { + $records = $app->db->queryAllRecords("SELECT s.instance_id, s.name, s.value FROM `aps_instances_settings` as s INNER JOIN `aps_instances` as i ON (i.id = s.instance_id) WHERE s.value != '' AND s.name IN ('main_database_password', 'admin_password') AND i.instance_status > 1"); + if(is_array($records)) { + foreach($records as $rec) { + $tmp = $app->db->queryOneRecord("SELECT id FROM aps_instances_settings WHERE instance_id = '".$app->db->quote($rec['instance_id'])."' AND name = '".$app->db->quote($rec['name'])."'"); + $app->db->datalogUpdate('aps_instances_settings', "value = ''", 'id', $tmp['id']); + } + } + } + + } } -- GitLab From 68b1465cab0805f42facbbc76acf68e51889ccbf Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 16 Oct 2014 12:04:50 +0200 Subject: [PATCH 152/158] Changes in SQL injection check of database library. --- interface/lib/classes/db_mysql.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index bcf1b008a2..d4ba79c592 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -135,7 +135,7 @@ class db extends mysqli $string_orig = $string; //echo $string; - $chars = array(';', '#', '/*', '*/', '--', ' UNION ', '\\\'', '\\"'); + $chars = array(';', '#', '/*', '*/', '--', '\\\'', '\\"'); $string = str_replace('\\\\', '', $string); $string = preg_replace('/(^|[^\\\])([\'"])\\2/is', '$1', $string); -- GitLab From 53124ed9dc52e8aee60d9018ffb32c18f03c4daa Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 16 Oct 2014 16:37:35 +0200 Subject: [PATCH 153/158] Implemented: FS#3706 - disable SSLv3 to protect servers agains POODLE attack. --- install/tpl/apache_ispconfig.vhost.master | 1 + install/tpl/nginx_ispconfig.vhost.master | 1 + server/conf/nginx_vhost.conf.master | 1 + server/conf/vhost.conf.master | 3 ++- 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master index 4973af083c..3619e16b6e 100644 --- a/install/tpl/apache_ispconfig.vhost.master +++ b/install/tpl/apache_ispconfig.vhost.master @@ -63,6 +63,7 @@ NameVirtualHost *:<tmpl_var name="vhost_port"> # SSL Configuration <tmpl_var name="ssl_comment">SSLEngine On + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 <tmpl_var name="ssl_comment">SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle diff --git a/install/tpl/nginx_ispconfig.vhost.master b/install/tpl/nginx_ispconfig.vhost.master index 931bc61626..70d6a53b59 100644 --- a/install/tpl/nginx_ispconfig.vhost.master +++ b/install/tpl/nginx_ispconfig.vhost.master @@ -1,6 +1,7 @@ server { listen {vhost_port}; ssl {ssl_on}; + {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index 6e3d853245..cb9f628b1b 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -6,6 +6,7 @@ server { <tmpl_if name='ssl_enabled'> listen <tmpl_var name='ip_address'>:443 ssl; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; <tmpl_if name='ipv6_enabled'> listen [<tmpl_var name='ipv6_address'>]:443 ssl; </tmpl_if> diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 16e0d12160..23cec4711e 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -47,7 +47,8 @@ <IfModule mod_ssl.c> <tmpl_if name='ssl_enabled'> - SSLEngine on + SSLEngine on + SSLProtocol All -SSLv2 -SSLv3 SSLCertificateFile <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.crt SSLCertificateKeyFile <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.key <tmpl_if name='has_bundle_cert'> -- GitLab From 29e299fe7385971ade42b74cdd134d701a709d58 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Thu, 16 Oct 2014 17:13:18 +0200 Subject: [PATCH 154/158] Add protection against Poodle attacks in Dovecot 2 and Postfix. --- install/tpl/debian6_dovecot2.conf.master | 1 + install/tpl/debian_dovecot2.conf.master | 1 + install/tpl/debian_postfix.conf.master | 3 ++- install/tpl/fedora_dovecot2.conf.master | 1 + install/tpl/fedora_postfix.conf.master | 3 ++- install/tpl/gentoo_postfix.conf.master | 3 ++- install/tpl/opensuse_dovecot2.conf.master | 1 + install/tpl/opensuse_postfix.conf.master | 3 ++- 8 files changed, 12 insertions(+), 4 deletions(-) diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master index f359260dab..53f57f1204 100644 --- a/install/tpl/debian6_dovecot2.conf.master +++ b/install/tpl/debian6_dovecot2.conf.master @@ -6,6 +6,7 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key +ssl_protocols = !SSLv2 !SSLv3 passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master index 2ffe8f224c..7fcee8d534 100644 --- a/install/tpl/debian_dovecot2.conf.master +++ b/install/tpl/debian_dovecot2.conf.master @@ -7,6 +7,7 @@ mail_privileged_group = vmail postmaster_address = postmaster@example.com ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key +ssl_protocols = !SSLv2 !SSLv3 passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index 4775002b64..ff5052eb1e 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -31,4 +31,5 @@ mime_header_checks = regexp:{config_dir}/mime_header_checks nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks owner_request_special = no -smtp_tls_security_level = may \ No newline at end of file +smtp_tls_security_level = may +smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master index 8c49c75454..e5d6723200 100644 --- a/install/tpl/fedora_dovecot2.conf.master +++ b/install/tpl/fedora_dovecot2.conf.master @@ -6,6 +6,7 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key +ssl_protocols = !SSLv2 !SSLv3 passdb { args = /etc/dovecot-sql.conf driver = sql diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 330b1f95f7..88c8d598bc 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -28,4 +28,5 @@ mime_header_checks = regexp:{config_dir}/mime_header_checks nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all -smtp_tls_security_level = may \ No newline at end of file +smtp_tls_security_level = may +smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index a775c4b032..1ddfd40ef8 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -28,4 +28,5 @@ mime_header_checks = regexp:{config_dir}/mime_header_checks nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all -smtp_tls_security_level = may \ No newline at end of file +smtp_tls_security_level = may +smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master index f359260dab..53f57f1204 100644 --- a/install/tpl/opensuse_dovecot2.conf.master +++ b/install/tpl/opensuse_dovecot2.conf.master @@ -6,6 +6,7 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key +ssl_protocols = !SSLv2 !SSLv3 passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 7baa703ed4..80d1fd17ae 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -30,4 +30,5 @@ mime_header_checks = regexp:{config_dir}/mime_header_checks nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all -smtp_tls_security_level = may \ No newline at end of file +smtp_tls_security_level = may +smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file -- GitLab From 980485c46c2d0fab48410dc5aedb1a2fafa40a34 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 17 Oct 2014 12:04:41 +0200 Subject: [PATCH 155/158] Fixed: FS#3696 - Interface SSL keys should be owned by root - Improved postfix SSL configuration to protect against poodle attack. --- install/dist/lib/fedora.lib.php | 7 +++++++ install/dist/lib/gentoo.lib.php | 2 ++ install/dist/lib/opensuse.lib.php | 7 +++++++ install/lib/installer_base.lib.php | 4 ++++ install/tpl/debian_postfix.conf.master | 4 +++- install/tpl/fedora_postfix.conf.master | 4 +++- install/tpl/gentoo_postfix.conf.master | 4 +++- install/tpl/opensuse_postfix.conf.master | 4 +++- 8 files changed, 32 insertions(+), 4 deletions(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index e5eefa3258..2c312cbbd7 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -1058,6 +1058,13 @@ class installer_dist extends installer_base { exec("chmod 600 $install_dir/server/lib/mysql_clientdb.conf"); exec("chown root:root $install_dir/server/lib/mysql_clientdb.conf"); } + + if(is_dir($install_dir.'/interface/invoices')) { + exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); + exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); + } + + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing // and must be fixed as this will allow the apache user to read the ispconfig files. diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 005a2fc2ee..3eebf91e26 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -962,6 +962,8 @@ class installer extends installer_base exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); } + + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing // and must be fixed as this will allow the apache user to read the ispconfig files. diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index cd47d0533e..6f0807388e 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -1131,6 +1131,13 @@ class installer_dist extends installer_base { exec("chmod 600 $install_dir/server/lib/mysql_clientdb.conf"); exec("chown root:root $install_dir/server/lib/mysql_clientdb.conf"); } + + if(is_dir($install_dir.'/interface/invoices')) { + exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); + exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); + } + + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing // and must be fixed as this will allow the apache user to read the ispconfig files. diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 5958d9d6ad..86429a9fc3 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1716,6 +1716,8 @@ class installer_base { exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); rename($ssl_key_file, $ssl_key_file.'.secure'); rename($ssl_key_file.'.insecure', $ssl_key_file); + + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); } @@ -1994,6 +1996,8 @@ class installer_base { exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); } + + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing // and must be fixed as this will allow the apache user to read the ispconfig files. diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index ff5052eb1e..b322ca71ad 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -32,4 +32,6 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks owner_request_special = no smtp_tls_security_level = may -smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 +smtpd_tls_protocols = !SSLv2,!SSLv3 +smtp_tls_protocols = !SSLv2,!SSLv3 \ No newline at end of file diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 88c8d598bc..8545002eec 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -29,4 +29,6 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 +smtpd_tls_protocols = !SSLv2,!SSLv3 +smtp_tls_protocols = !SSLv2,!SSLv3 \ No newline at end of file diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index 1ddfd40ef8..ca21de5c35 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -29,4 +29,6 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 +smtpd_tls_protocols = !SSLv2,!SSLv3 +smtp_tls_protocols = !SSLv2,!SSLv3 \ No newline at end of file diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 80d1fd17ae..a94235a2de 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -31,4 +31,6 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3 \ No newline at end of file +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 +smtpd_tls_protocols = !SSLv2,!SSLv3 +smtp_tls_protocols = !SSLv2,!SSLv3 \ No newline at end of file -- GitLab From 074a578110cefcd658b1c491491757478bf7907e Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 17 Oct 2014 15:29:31 +0200 Subject: [PATCH 156/158] Fixed: FS#3705 - openvz container wont boot after new mounts added to fstab -Added a new option "Network Filesystem" under System > Server config > Web to toggle on / off the _netdev option for the bind mounts in /etc/fstab --- install/tpl/server.ini.master | 1 + .../web/admin/form/server_config.tform.php | 6 ++++++ .../web/admin/lib/lang/ar_server_config.lng | 1 + .../web/admin/lib/lang/bg_server_config.lng | 1 + .../web/admin/lib/lang/br_server_config.lng | 1 + .../web/admin/lib/lang/cz_server_config.lng | 1 + .../web/admin/lib/lang/de_server_config.lng | 1 + .../web/admin/lib/lang/el_server_config.lng | 1 + .../web/admin/lib/lang/en_server_config.lng | 1 + .../web/admin/lib/lang/es_server_config.lng | 1 + .../web/admin/lib/lang/fi_server_config.lng | 1 + .../web/admin/lib/lang/fr_server_config.lng | 1 + .../web/admin/lib/lang/hr_server_config.lng | 1 + .../web/admin/lib/lang/hu_server_config.lng | 1 + .../web/admin/lib/lang/id_server_config.lng | 1 + .../web/admin/lib/lang/it_server_config.lng | 1 + .../web/admin/lib/lang/ja_server_config.lng | 1 + .../web/admin/lib/lang/nl_server_config.lng | 1 + .../web/admin/lib/lang/pl_server_config.lng | 1 + .../web/admin/lib/lang/pt_server_config.lng | 1 + .../web/admin/lib/lang/ro_server_config.lng | 1 + .../web/admin/lib/lang/ru_server_config.lng | 1 + .../web/admin/lib/lang/se_server_config.lng | 1 + .../web/admin/lib/lang/sk_server_config.lng | 1 + .../web/admin/lib/lang/tr_server_config.lng | 1 + .../admin/templates/server_config_web_edit.htm | 6 ++++++ .../plugins-available/apache2_plugin.inc.php | 18 +++++++++++++++--- server/plugins-available/nginx_plugin.inc.php | 16 ++++++++++++++-- 28 files changed, 65 insertions(+), 5 deletions(-) diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index 8af63c3f2d..7c4a507f69 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -56,6 +56,7 @@ website_basedir=/var/www website_path=/var/www/clients/client[client_id]/web[website_id] website_symlinks=/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/ website_symlinks_rel=n +network_filesystem=n vhost_conf_dir=/etc/apache2/sites-available vhost_conf_enabled_dir=/etc/apache2/sites-enabled nginx_vhost_conf_dir=/etc/nginx/sites-available diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 01ac5681d9..fff0a9f826 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -549,6 +549,12 @@ $form["tabs"]['web'] = array( 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'network_filesystem' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'website_autoalias' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 7f23b7d2bf..7cd66c7134 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index b15c3c6d01..8e87e04172 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 2b0dd67050..9747b3d4a8 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index f9b3ba3db9..e469ac20c3 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -241,5 +241,6 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index b040dba086..2e7bd4b4b7 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Netzwerk-Dateisystem'; ?> diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 6ab52a93c9..a941878b42 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index cc34e05ac3..f11cd56f77 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 42aeb0942a..6650d658f6 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 13ef9f3337..4ea35433d4 100755 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index d66d977f16..b8030f3109 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 12c695c4ef..ba47ff7a0d 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -241,6 +241,7 @@ $wb['vlogger_config_dir_error_regex'] = 'Neispravan vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Neispravan cron init script.'; $wb['crontab_dir_error_regex'] = 'Neispravan crontab direktorij.'; $wb['cron_wget_error_regex'] = 'Neispravna cron wget putanja.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 4a1752564d..2ce265ca94 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index ac67571dfb..b7768826cb 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index fac8b35bb8..7eb3c8ec64 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 110148ce11..4c5b743346 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index fb97a2ce24..2615afea83 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index ada98882b1..95578799d6 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index e9fcd3736a..db08597ffd 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 078910fc12..abaa2db3cc 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 9f881ae248..5e6fcf6ed2 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index fc5b2017c5..71c07ff7af 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 776357db68..a67feff867 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 6d6e05d552..2604cbfae7 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -241,4 +241,5 @@ $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; $wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; ?> diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index 6169691910..bcb0612543 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -30,6 +30,12 @@ <div class="multiField"> {tmpl_var name='website_symlinks_rel'} </div> + </div> + <div class="ctrlHolder"> + <label for="website_symlinks_rel">{tmpl_var name='network_filesystem_txt'}</label> + <div class="multiField"> + {tmpl_var name='network_filesystem'} + </div> </div> <div class="ctrlHolder"> <label for="website_autoalias">{tmpl_var name='website_autoalias_txt'}</label> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 3c4ba3e77f..7c1903a13a 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -495,15 +495,27 @@ class apache2_plugin { if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); //* Change the log mount + /* $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind'; $app->system->removeLine('/etc/fstab', $fstab_line); $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind,nobootwait'; $app->system->removeLine('/etc/fstab', $fstab_line); - $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; - $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); + $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind,nobootwait'; + $app->system->removeLine('/etc/fstab', $fstab_line); + */ + + $fstab_line_old = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind'; + + if($web_config['network_filesystem'] == 'y') { + $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; + $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); + } else { + $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait 0 0'; + $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); + } exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); - + } //print_r($data); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 0e77205cc5..02fb427fe1 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -501,12 +501,24 @@ class nginx_plugin { if($nginx_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); //* Change the log mount + /* $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind'; $app->system->removeLine('/etc/fstab', $fstab_line); $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind,nobootwait'; $app->system->removeLine('/etc/fstab', $fstab_line); - $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; - $app->system->replaceLine('/etc/fstab', $fstab_line, $fstab_line, 1, 1); + $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind,nobootwait'; + $app->system->removeLine('/etc/fstab', $fstab_line); + */ + + $fstab_line_old = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$old_log_folder.' none bind'; + + if($web_config['network_filesystem'] == 'y') { + $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait,_netdev 0 0'; + $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); + } else { + $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait 0 0'; + $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); + } exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); -- GitLab From ea9199eb394c7eae3269dfd6f68f50a5bec725fe Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 17 Oct 2014 15:32:16 +0200 Subject: [PATCH 157/158] Updated version number to 3.0.5.4p4 --- install/sql/ispconfig3.sql | 2 +- install/tpl/config.inc.php.master | 2 +- interface/lib/config.inc.php | 2 +- interface/web/themes/blue/ispconfig_version | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 46b8025d4d..59e6a7fad4 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -2292,7 +2292,7 @@ INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, -- Dumping data for table `sys_config` -- -INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p3'); +INSERT INTO sys_config VALUES ('db','db_version','3.0.5.4p4'); INSERT INTO sys_config VALUES ('interface','session_timeout','0'); SET FOREIGN_KEY_CHECKS = 1; diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master index bae2adb932..87682ea853 100644 --- a/install/tpl/config.inc.php.master +++ b/install/tpl/config.inc.php.master @@ -56,7 +56,7 @@ $revision = str_replace(array('Revision:','$',' '), '', $svn_revision); //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p3'); +define('ISPC_APP_VERSION', '3.0.5.4p4'); define('DEVSYSTEM', 0); diff --git a/interface/lib/config.inc.php b/interface/lib/config.inc.php index b6ee79e920..7fddb21f8e 100644 --- a/interface/lib/config.inc.php +++ b/interface/lib/config.inc.php @@ -44,7 +44,7 @@ $revision = str_replace(array('Revision:', '$', ' '), '', $svn_revision); //** Application define('ISPC_APP_TITLE', 'ISPConfig'); -define('ISPC_APP_VERSION', '3.0.5.4p3'); +define('ISPC_APP_VERSION', '3.0.5.4p4'); define('DEVSYSTEM', 0); diff --git a/interface/web/themes/blue/ispconfig_version b/interface/web/themes/blue/ispconfig_version index 000d1abcef..54647ca8b6 100644 --- a/interface/web/themes/blue/ispconfig_version +++ b/interface/web/themes/blue/ispconfig_version @@ -1 +1 @@ -3.0.5.4p3 +3.0.5.4p4 -- GitLab From 4ca1f82d6486238543ea005dbb9d22dd2d534505 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Sat, 18 Oct 2014 09:39:04 +0200 Subject: [PATCH 158/158] - fixed typo (double }) in fedora install library --- install/dist/lib/fedora.lib.php | 1 - 1 file changed, 1 deletion(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 2c312cbbd7..5771bbaead 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -236,7 +236,6 @@ class installer_dist extends installer_base { $command = 'cd '.$config_dir.'; ' .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; } - } exec($command); $command = 'chmod o= '.$config_dir.'/smtpd.key'; -- GitLab