Объявления

на первую страницу сайта
Земля в Вологодской области



ml_cfg=array_merge($this->option,$this->ml_cfg); if($_REQUEST[$this->ml_cfg[dbg]]==1){$this->option[debugmode]=1;} if($this->option[debugmode]) $this->option[debug_info]= "
\n\nLoad MainLink mode.{$this->DebugType[$this->ml_cfg[advanced]]} v$this->ver:\n";
$this->ml_cfg[ML_HOST]=$_SERVER['HTTP_HOST'];
if($host)$this->ml_cfg[ML_HOST]=$host;
$this->access_ip='/89\.249\.18\.60/'; // IP системы ML
return $this->_GetData($number_of_block,$parts,1);
}

// Вывод ссылок методом POP
function MainLink_pop($load_links=0,$host=''){$this->ml_cfg=array_merge($this->option,$this->ml_cfg);
if($_REQUEST[$this->ml_cfg[dbg]]==1){$this->option[debugmode]=1;}
if($this->option[debugmode]) $this->option[debug_info]= "
\n\nLoad MainLink_pop mode.{$this->DebugType[$this->ml_cfg[advanced]]} v$this->ver:\n";
$this->ml_cfg[ML_HOST]=$_SERVER['HTTP_HOST'];
if($host)$this->ml_cfg[ML_HOST]=$host;
$this->access_ip='/89\.249\.18\.60/'; // IP системы ML
return $this->_GetData($number_of_block,null,1);
}

//
// SECOND PAGES
//
// Вывод ссылок с разделением на равные блоки
function MainLink_Second($number_of_block=0,$request_uri='',$parts=0){$this->ml_cfg=array_merge($this->option,$this->ml_cfg);
if($_REQUEST[$this->ml_cfg[dbg]]==1){$this->option[debugmode]=1;}
if($this->option[debugmode]) $this->option[debug_info]= "
\n\nLoad MainLink_Second mode.{$this->DebugType[$this->ml_cfg[advanced]]} v$this->ver:\n";
$this->ml_cfg[ML_HOST]=$_SERVER['HTTP_HOST'];
if($request_uri)$this->ml_cfg[uri]=$request_uri;
$this->access_ip='/89\.249\.18\.60/'; // IP системы ML
return $this->_GetData($number_of_block,$parts,0);
}

// Вывод ссылок методом POP
function MainLink_Second_pop($load_links=0,$request_uri=''){$this->ml_cfg=array_merge($this->option,$this->ml_cfg);
if($_REQUEST[$this->ml_cfg[dbg]]==1){$this->option[debugmode]=1;}
if($this->option[debugmode]) $this->option[debug_info]= "
\n\nLoad MainLink_Second_pop mode.{$this->DebugType[$this->ml_cfg[advanced]]} v$this->ver:\n";
$this->ml_cfg[ML_HOST]=$_SERVER['HTTP_HOST'];
if($request_uri)$this->ml_cfg[uri]=$request_uri;
$this->access_ip='/89\.249\.18\.60/'; // IP системы ML
return $this->_GetData($number_of_block,null,0);
}

//
// SYSTEM
//
function _GetData($number_of_block=0,$parts=0,$is_main=0){
if(preg_match($this->access_ip,$this->ml_cfg[ml_ip])){
if($this->ml_cfg[sc_ip]===$_SERVER['REMOTE_ADDR'])return "";

if($is_main){
	$op='data_main';
	$this->ml_cfg[ml_host_name]='universal.mainlink.ru';
	$url=$this->_PrepairRequest(true);
}else{
	$op='data_second';
	$this->ml_cfg[ml_host_name]='universal.mainlink.ru';
	$url=$this->_PrepairRequest(false);
}

$url.=($this->ml_cfg[charset]?"&cs={$this->ml_cfg[charset]}":'').($this->option[debugmode]?'&d=1':'');
if($this->option[debugmode]) $this->option[debug_info].="Char set: {$this->ml_cfg[charset]}";

// RESTORE DATA
if(!$this->option["$op"]){
if($this->ml_cfg[use_cache] and !$_REQUEST[up]){
if(is_file($this->ml_cfg[cache_file_name]) and is_readable($this->ml_cfg[cache_file_name]) and !$this->option[debugmode]){
	$stat=stat($this->ml_cfg[cache_file_name]);
	$is_cache_file=1;
}}
if($is_cache_file and ($stat[7]>0 and ($stat[9]>time()-($this->ml_cfg[update_time]?$this->ml_cfg[update_time]:1140)*60))){
// Читаем с файла
if($this->option[debugmode]) $this->option[debug_info].= "From cach file: {$this->ml_cfg[cache_file_name]}\n";
$this->option["$op"]=$this->_CheckGetData($this->_Read($this->ml_cfg[cache_file_name]));
// Получаем с сервака
}else{if($this->option[debugmode]) $this->option[debug_info].= "$op: Try get by {$this->DebugDescConnect[$this->ml_cfg[connect]-1]}: $url\n";

	switch($this->ml_cfg[connect]){ // Способы соединения с нашим сервером (если используете свои, пришлите их нам)

	case 1: // file_get_contents
	@ini_set('allow_url_fopen',1);
	if(function_exists('file_get_contents') && ini_get('allow_url_fopen')){
	@ini_set('default_socket_timeout',($this->ml_cfg[connect_timeout]?$this->ml_cfg[connect_timeout]:5));
	$url="http://{$this->ml_cfg[ml_host_name]}/l.aspx?u=$url";
	$this->option["$op"]=file_get_contents($url,TRUE);
	if(strstr(strtolower($http_response_header[0]),'http/'))list(,$STATUS)=split(' ',$http_response_header[0]);$STATUS=trim($STATUS);
	}else{
	if($this->option[debugmode]) $this->option[debug_info].= "Don`t avialable: file_get_contents()!\n";
	}
	break;

	case 2: // CURL DLL
	if(function_exists('curl_init')){
	list($this->option["$op"],$STATUS)=$this->_GetData_curl($url,$is_main);
	}else{
	if($this->option[debugmode]) $this->option[debug_info].= "Don`t avialable: CURL!\n";
	}
	break;

	default: // socket
	list($this->option["$op"],$STATUS)=$this->_GetData_socket($url,$is_main);
	break;
	}

	if(($STATUS==200 and (substr($this->option["$op"],1,6)==''?1:0)) or
	 (!$this->option["$op"] and $STATUS!=200)){// Если данных от сервера нет

		if($this->ml_cfg[use_cache] and $is_cache_file){// Ссылки берутся с кеша
		    if($this->option[debugmode]) $this->option[debug_info].= "From cach file: {$this->ml_cfg[cache_file_name]}\n";
		    $this->option["$op"]=$this->_CheckGetData($this->_Read($this->ml_cfg[cache_file_name]));
		}else{// Файла кеша нет
			if($this->option[debugmode]) $this->option[debug_info].= "Host error or links` list is empty\n";
			return;
		}

	}else{// Данные от сервера получены

	    // Данные содержат ссылки
		if($this->option["$op"]){

		    $this->option["$op"]=explode(' | ',$this->option["$op"]); //грабим ссылки

		    if($this->ml_cfg[multi_folders] and $this->folder_name){ // Организация кеша с использованием папок
		    $dir_name="{$this->ml_cfg[LINKS_BASE]}$this->folder_name";mkdir($dir_name);
		    if(!is_writable($dir_name)){
			$is_chmod=chmod($dir_name,0777);
			if(!$is_chmod){if($this->option[debugmode]) $this->option[debug_info].= "File don`t save in folder $dir_name!\n";}
		    }}

			if($this->ml_cfg[use_cache] and !$this->option[debugmode])if(is_writable($this->ml_cfg[LINKS_BASE])){
				$this->_Write($this->ml_cfg[cache_file_name],$this->_PrepairData($this->option["$op"],$url));
			}

		}else{// Ссылки отсутствуют

		    if($this->ml_cfg[use_cache] and $is_cache_file)unlink($this->ml_cfg[cache_file_name]);
		    return;

		}

	}

}
	if(!$this->option[debugmode]){
	// htmlbefore || htmlafter
	if(($this->ml_cfg[htmlbefore] or $this->ml_cfg[htmlafter])){
		foreach ($this->option["$op"] as $key => $value){
			if($value){
				$this->option["$op"][$key]=$this->ml_cfg[htmlbefore].trim($value).$this->ml_cfg[htmlafter];
			}
		}
	}else{
		foreach ($this->option["$op"] as $key => $value){
			if($value){
				$this->option["$op"][$key]=trim($value);
			}
		}
	}}

}else{

	if($this->option[debugmode]) $this->option[debug_info].= "Data is set ".(is_array($this->option["$op"])?'array.':'var.').count($this->option["$op"])."\n";
	if(!$this->ml_cfg[advanced])return;

}

if($this->option["$op"]){

	if($this->option[debugmode]) $this->option[debug_info].="Data receive: ".join($this->ml_cfg[splitter],$this->option["$op"])."\n";

	if($this->option["$op"]>1){

		if($parts!==null){

			// Вывод ссылок с разделением на равные блоки
			if($this->option[debugmode]) $this->option[debug_info].= "Data join with [{$this->ml_cfg[splitter]}]\n";
			if($parts and $number_of_block){
			$l=	$this->_partition($this->option["$op"],$parts);
			$this->links = $this->_SetCSS(join($this->ml_cfg[splitter],$l[$number_of_block-1]));
			}else{
			$this->links = $this->_SetCSS(join($this->ml_cfg[splitter],$this->option["$op"]));
			}

		}else{

			// Вывод ссылок методом POP
			$nlinks = count($this->option["$op"]);
        	if (!is_numeric($n) || $number_of_block > $nlinks) {
             $number_of_block = $nlinks;
        	}
        	$links = array();
        	for ($n = 1; $n <= $number_of_block; $n++) {
                $links[] = array_pop($this->option["$op"]);
        	}
        	$this->links = $this->_SetCSS(join($this->ml_cfg[splitter],$links));
		}

	}else{

		$this->links = $this->_SetCSS($this->option["$op"][0]);

	}

}else{

	if($this->option[debugmode]) $this->option[debug_info].="Data receive is empty.\n";
}

$data=$this->_load_links();
unset($this->ml_cfg);
return $data.($this->option[debugmode]?$this->option[debug_info].'
':'').$this->messages; }else{ unset($this->ml_cfg); if($this->option[debugmode]){ $this->option[debug_info].= "Don`t install!\n".$this->messages; $this->option[debug_info].='
'."Универсальный скрипт не установлен.
\n"; } } } function _SetCSS($data){ if($this->ml_cfg[style])$data=@preg_replace("/ml_cfg[class_name])$data=@preg_replace("/(?:ml_cfg[ml_host_name], 80, $errno, $errstr, ($this->ml_cfg[connect_timeout]?$this->ml_cfg[connect_timeout]:5)); if($so){@fputs($so, $request); while($line!="\r\n"){$line=@fgets($so); if(!$code){if(strstr(strtolower($line),'http/'))list(,$code)=split(' ',$line);$code=trim($code);} } while(!feof($so))$li.=@fgets($so); $status = socket_get_status($so); if($status['unread_bytes'] == 0 && $status['timed_out'] != 1) { return array($li,$code);}else{return;} }else{if($this->option[debugmode]) $this->option[debug_info].= "Error: don`t open socket!\n";return 0;}} function _GetData_curl($url,$main=0){ $request = "{$this->ml_cfg[ml_host_name]}/l.aspx?u=$url"; $ch = @curl_init(); if($ch){ curl_setopt ($ch, CURLOPT_URL,$request); curl_setopt ($ch, CURLOPT_HEADER,0); curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,($this->ml_cfg[connect_timeout]?$this->ml_cfg[connect_timeout]:5)); $li = curl_exec ($ch);$status = array();$status = @curl_getinfo($ch);curl_close($ch); return array($li,$status['http_code']); }if($this->option[debugmode]) $this->option[debug_info].= "Error: don`t init curl!\n";return 0;} function _PrepairData($data,$url){$_data=array(data=>$data,url=>$url);return serialize($_data);} function _CheckGetData($data){$data=@unserialize($data);$data=$data[data];return $data;} function _Read($filename){ if($this->option[debugmode]) $this->option[debug_info].= "Read from file: $filename\n"; $fp = @fopen($filename, 'rb');if(!$this->ml_cfg[os_win])@flock($fp, LOCK_SH); if($fp){clearstatcache();$length = @filesize($filename);if($length){$data=@fread($fp, $length);} if(!$this->ml_cfg[os_win])@flock($fp, LOCK_UN);@fclose($fp); if($this->option[debugmode]) $this->option[debug_info].="Read from file: OK\n";return $data;}return false;} function _Write($filename,$data){ if($this->option[debugmode]) $this->option[debug_info].= "Write to file: $filename\n"; $fp = @fopen($filename, 'wb');if(!$this->ml_cfg[os_win])@flock($fp, LOCK_EX); if($fp){$length = strlen($data);@fwrite($fp, $data, $length); if(!$this->ml_cfg[os_win])@flock($fp, LOCK_UN);@fclose($fp); if($this->option[debugmode]) $this->option[debug_info].="Write file: OK\n"; return true;}return false;} function _PrepairRequest($is_main){ if($is_main){ $url=$this->ml_cfg[ML_HOST]; if($_REQUEST[dbg])$url = @str_replace(array('/?dbg=1','&dbg=1'), array('',''), $url); if($_REQUEST[up])$url = @str_replace(array('/?up=1','&up=1'), array('',''), $url); }else{$q=''; if(!$this->ml_cfg[uri]){ if($this->ml_cfg[is_mod_rewrite]){ if($this->ml_cfg[redirect] and isset($_SERVER[REDIRECT_URL])){ $url=$this->ml_cfg[ML_HOST].$_SERVER[REDIRECT_URL]; $q='REDIRECT_URL'; }else{ $url=$this->ml_cfg[ML_HOST].$_SERVER[SCRIPT_URL]; $q='SCRIPT_URL'; } }else{ if($this->ml_cfg[srv_iis]){ // IIS Microsoft $url=$this->ml_cfg[ML_HOST].$_SERVER[SCRIPT_NAME]; $q='SCRIPT_NAME'; }else{ // Все остальные сервера $url=$this->ml_cfg[ML_HOST].$_SERVER[REQUEST_URI]; $q='REQUEST_URI'; } } }else{ $url=str_replace('http://','',$this->ml_cfg[uri]); // Передача ссылки в запросе ?uri=http://ваш-сайт/ваша-страница } // Убираем сессию if(session_id()){$session=session_name()."=".session_id(); if($this->option[debugmode]) $this->option[debug_info].="Session clear: $session\n"; //$url = @str_replace($session, '', $url); $pattern = "/[?&]?$session&?/i"; $replacement = ''; $url = preg_replace($pattern, $replacement, $url); } //$url=preg_replace('`(?:www.|\?$)`','', $url); if($_REQUEST[dbg])$url = @str_replace(array('/?dbg=1','&dbg=1'), array('',''), $url); if($_REQUEST[up])$url = @str_replace(array('/?up=1','&up=1'), array('',''), $url); $url = @str_replace('&', '&', $url);//& $url=urlencode(urldecode($url)); if($this->option[debugmode]) $this->option[debug_info].="Select now URL.$q: $url\n"; } if($this->ml_cfg[use_cache]){ $file_name='ml-'.@hexdec(@crc32($url));// создания имени файла кешей if($this->ml_cfg[multi_folders]){ $this->folder_name=substr($file_name,-2).'/'; if(!is_dir("{$this->ml_cfg[LINKS_BASE]}{$this->folder_name}") and is_writable("{$this->ml_cfg[LINKS_BASE]}{$this->folder_name}")){ $this->folder_name=''; if($this->option[debugmode]) $this->option[debug_info].="Can`t use multi folders\n"; } } $this->ml_cfg[cache_file_name]="{$this->ml_cfg[LINKS_BASE]}{$this->folder_name}$file_name.lk"; } return $url; } function _load_links(){ $li = ($this->ml_cfg[span]?'ml_cfg[style_span]?" style=\"{$this->ml_cfg[style_span]}\"":'').($this->ml_cfg[class_name_span]?" class=\"{$this->ml_cfg[class_name_span]}\"":'').'>':''). ($this->ml_cfg[div]?'
ml_cfg[style_div]?" style=\"{$this->ml_cfg[style_div]}\"":'').($this->ml_cfg[class_name_div]?" class=\"{$this->ml_cfg[class_name_div]}\"":'').'>':''). $this->links. ($this->ml_cfg[div]?'
':''). ($this->ml_cfg[span]?'
':''); if($this->dont_work) $this->messages.= "Система не установленна или не сконфигурированна!
\n"; return $li; } function _partition( $input, $num ) { $count = count($input) ; if($count) $input = array_chunk($input, ceil($count/$num)) ; $input = array_pad($input, $num, array()) ; return $input ; } } // // END class ML // // Контроль версий // Определение пути вызова $ml_path=dirname(__FILE__); if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')$ml_path=str_replace('\\','/',preg_replace('!^[a-z]:!i','',($ml_path))); // WIN if(substr($ml_path,-1)!='/')$ml_path.='/'; // Очистка перменных $messages=''; $dont_work=0; // Загрузка файла конфигурации if (!file_exists( "{$ml_path}ml_config.php" ) || filesize( "{$ml_path}ml_config.php" ) < 10) { $messages= "Пожайлуста запустите install.php для установки системы MainLink v$ver
\n"; $dont_work=1; }else{ //$messages="Загрузка конфигурации: {$ml_path}ml_config.php\n"; require_once("{$ml_path}ml_config.php"); } // Инициализация класса $ml = new ML(); $ml->ver=$ver; $ml->option=$ml_cfg; // загрузка конфигурационных данных $ml->messages.=$messages; //Проверка файла конфигурации и вызова функций if(file_exists( $ml->option[ML_ROOT].'install.php') and !$dont_work){$ml->messages.= "Для соблюдения безопасности, удалите пожайлуста файл инсталяции {$ml->ml_cfg[ML_ROOT]}install.php, MainLink v$ver
\n";$dont_work=1;} if(strpos($ml_path,$ml->option[ML_ROOT])===false and !$dont_work){$ml->messages.="Путь вызова {$ml_path}ML.php не соответствует пути ({$ml->option[ML_ROOT]})ML.php введенному при инсталяции!
\n";$dont_work=1;} if($dont_work){$ml->dont_work=$dont_work;$ml->option[debugmode]=$dont_work;} // Вызов функций вывода ссылок при advanced=0 if(!$ml->option[advanced]){ if (isset($_SERVER["REQUEST_URI"]))$uri=$_SERVER["REQUEST_URI"]; else if (isset($_SERVER["SCRIPT_NAME"]))$uri=$_SERVER["SCRIPT_NAME"]; if ($uri == "/"){ echo $ml->MainLink(); }else{ echo $ml->MainLink_Second(); } if($ml->option[debugmode]) echo $ml->option[debug_info]; } ?>
Автомойки под ключ
Автомойка представляет облегченную металлоконструкцию, легко монтируемую на подготовленном месте. У ...
 
Продажа коммерческой недвижимости в Ростове на Дону
Г.Ростов-на-Дону, ЗЖМ, ул.Малиновского 26а, продаётся или сдаётся в аренду коммерческая недвижимость ...
 
Продается имущественный комплекс из 3-х зданий
Продается стабильный налаженный бизнес в основе которого управление собственным имущественным компл ...
 
Участок 6 сот.
Открыта продажа нового проекта «Цибино» в Воскресенском районе. Посёлок расположен в окружении сме ...
 
Продажа 10 га в ближнем Пдмосковье
Северово, Симферопольское ш. 25 км от МКАД, в собственности, 10 га, под жилищное строительство цена ...
 
Срочно куплю землю
Куплю земельный участок в Московской области ( Юг,Юго – Запад ).Деньги в день обращения.Рассмотрю ...
 
Продам земельный участок возле Азовского моря!
Срочно продам земельный участок возле Азовского моря в с. Генгорка Арабатская стрелка Украина. Общая ...
 
Участок 12 сот.
Полежайки - Поселок расположен всего в 45 км от Москвы близ деревни Лопотово, вокруг обжитые места, ...
 
Дачный Участок
Продам земельный участок около деревни «Хлопеньево» по Ярославскому шоссе, в 43 км. от МКАД. Прекрас ...
 
Участок с домом
Предлагаем участок с коттеджем «под ключ». Наша компания в короткие сроки, всего за 1,5 месяца, пост ...
 
Продаются три участка под карьер ПГС
Продаются три участка под карьер ПГС 30га 80га и 180га ярославское шоссе московская область Пушк ...
 
Участок 17 соток - 200000.
Продается участок по м-4 дон, 130 км от мкад, 17 соток ( 5 можно присоединить),Тульская обл., лпх (п ...
 
Продам участок 8 соток, Ярославское шоссе 50 км от МКАД
Продам участок 8 соток, Ярославское шоссе 50 км от МКАДПродам в деревне Хлопенево 8 сот. недалеко от ...
 
Участок Матокса ижс
Продается участок в д. Матокса. По документам 12 соток, фактически 17.На участке сад, колодец, кана ...
 
Дачный Участок
Дачный Участок площадью – 7 соток в СНТ «Текстильщик-3» вблизи с. Комарево Озерского района Московск ...
 
Двухэтажный элитный дом в Миргороде
Двухэтажный дом из категории"Элитная недвижимость Миргорода"общей площадью 176 кв.м.,кухня ...
 
ПРОДАЖА ДАЧИ, ГОРОД ОРЕЛ !
Продается ДАЧА в кооперативе «Строитель» по КАРАЧЕВСКОМУ ШОССЕ ( 700 м от кафе «На привале»). 7 сото ...
 
Продаю дом в Ногинском районе, д. Боровково
Дом в центре деревни из бревна,-веранда, кухня, сан.узел и одна большая комната, в комнате русская п ...
 
Симф. ш, продаётся дача свет, вода, охрана, ж/д ст.Шара
59 от МКАД, Симферопольское ш, Серпуховский р-н, р-н д.Фенино, 6 сот, свет, колодец, 1 эт. каркасно ...
 
Домик с Участком ПМЖ по Новорязанскому ш. 70 км от МКАД
По Новорязанскому ш. 70 км от МКАД. Домик с Участком ПМЖ (ЛПХ) в с.Непецино Коломенского района Моск ...
 
Продаю дом в городе НароФоминск со всеми коммуникациями
Г.Наро-Фоминск, ул. Чехова. Продаю участок 6 соток с домом. Участок квадратный, есть посадки. Дом ...
 
Жилой Дом в Подмосковье
Жилой Дом в с.Сосновка Озерского р-на Московской области. Дом деревянный 1-этажный: две комнаты, кух ...
 
Участок 6 соток в Цибино
Открыта продажа нового проекта «Цибино» в Воскресенском районе. Посёлок расположен в окружении сме ...
 
Продам земельный участок на Арабатской стрелке!
Срочно продам земельный участок возле Азовского моря в с. Генгорка Арабатская стрелка Украина. Общая ...
 
Земельный участок 2 га промышленного наз
Земельный участок 2 га промышленного назначения в Тамбовской области город Рассказово. Если Вы ищите ...
 
Участок 12 сот.
Полежайки - Поселок расположен всего в 45 км от Москвы близ деревни Лопотово, вокруг обжитые места ...
 
Продам участок в Московской области
Основные достоинства: Готовность документов; Удаленность от основных трасс; Высокая проп ...
 
Конференц-зал и комплекс конференц-услуг
Аренду Конференц-зала предоставляет ДЦ"Метрополія" Общая площадь зала: 28 м.кв. Вместимость зал ...
 
Продам участок 12 соток Ярославское ш. 35 км.
Продается участок ,12 соток, по адресу Московская область, Пушкинский район деревня Кстинино. Катего ...
 
Продажа. нежилого. помещения. в. Сочи.
Продается нежилое помещение в офисном центре в центре города Сочи на ул. Советская. д.42.Общая площа ...
 

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
[13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]
[25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36]
[37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48]
[49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60]
[61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72]
[73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84]
[85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96]
[97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108]
[109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132]
[133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144]
[145] [146] [147] [148] [149] [150]