CS Sunucuları için eklentiler(güvenlik vs,vs) - Google Fan Webmaster Forum
Google Fan Webmaster Forum  
herşeyi sana yazdım

Geri git   Google Fan Webmaster Forum > Hi Tech & Teknoloji Güncel > Oyun Dünyası
KEY
Kayıt ol Articles Sosyal Gruplar Forumları Okundu Kabul Et

Oyun Dünyası Oyunlar hakkında yazılar, yorumlar, Yeni çıkan oyunlar & Yeni çıkacak oyunlar

Like Tree4Beğeniler

Cevapla
 
LinkBack Seçenekler
  1  
Alt 16-07-2010, 17:47:29
 
Standart CS Sunucuları için eklentiler(güvenlik vs,vs)[Güncelleme : 22.07.2010]

Çoğu serverda sxe olduğu için engellemeleri o yapsada + güvenlik ve sxe olmayan serverlar için aşağıdaki eklentileri kullanabilirsiniz.
Açıkcası çoğu eski kodlardır kimisi benim kendi yazımım olup kimisi düzenlemelerle yapılmıştır. Kimi de alliedmodsda bulduğum ve kendi sunucularımızın bazılarında kullandığımız eklentilerdir.

1) WWCL Emulator Config Düzenlemesi.
Bazı serverlarda denk gelmişsinizdir. Özelliklede 1.5 serverlarında.
Oyuna girdikden bir süre sonra konsolda bazı komutları düzelterek oyun içinde
[xxxsunucu.com] Konfig taraması başarılı şeklinde mesaj veren eklentidir.Kısacası config dosyası içinde varolan komutları kullanıcının cliente yollayarak default değerine çevirir. Bu işlemi oyuna girişte 1 kere yapmaktadır.
enforcecfg fonksiyonu tarafımca düzenlenmiştir(ufak bir düzenleme).
Aliaslar kaldırılmıştır
PHP- Kodu:
    #include <amxmodx>
    #define MAXCVARS 64
    
new g_checkCvar[MAXCVARS][24]
    new 
g_checkValue[MAXCVARS][8]
    new 
g_checkNum

    
#define MAXMSG 24

    
new g_consoleMsg[MAXMSG][64]
    new 
g_consoleNum

    
new g_ackCode[33]
    new 
g_clientPos[33]

    
/* Initialization point */
    
public plugin_init()
    {
    
register_plugin("WWCL Emulator","0.1","default")

    
register_cvar"wwclconfig_version","unknown" ,FCVAR_SERVER|FCVAR_UNLOGGED|FCVAR_SPONLY)

    
register_cvar("wwclconfig","1")
    
register_cvar("wwclconfig_delay","10")

    
register_cvar("wwclconfig_break","7200")

    
register_cvar("wwclconfig_frequency","0.25")

    
register_cvar("wwclconfig_loadcfg","1")
    
register_cvar("wwclconfig_logfile","wwclconfig.log")

    
register_cvar("wwclconfig_action","disconnect")
    
register_cvar("wwclconfig_success","say ^"[CsTurkey] : Konfig Taramasi Basarili^"")

    
register_srvcmd("wwclconfig_check","cmdCheck")
    
register_srvcmd("wwclconfig_msg","cmdMsg")

    
register_clcmd("wwclack","cmdAck")

    if ( 
get_cvar_num"wwclconfig_loadcfg" ) )
    
server_cmd("exec wwclconfig.cfg"//düzeltme dosyamiz
    
}

    public 
cmdCheck( )
    {
    if ( 
g_checkNum >= MAXCVARS ){
    
console_print"WWCL: Cvars enforce limit reached!" )
    return 
PLUGIN_HANDLED
    
}
    if ( 
read_argvg_checkCvar[g_checkNum], 23 )
    && 
read_argv2g_checkValue[g_checkNum] , ) )
    ++
g_checkNum
    
else
    
console_print"Usage:  wwclconfig_check <cvar> <value>" )
    return 
PLUGIN_HANDLED
    
}

    public 
cmdMsg( )
    {
    if ( 
g_consoleNum >= MAXMSG ){
    
console_print"WWCL: Console message limit reached!" )
    return 
PLUGIN_HANDLED
    
}
    if ( 
read_argvg_consoleMsg[g_consoleNum], 127 )  )
    ++
g_consoleNum
    
else
    
console_print"Usage:  wwclconfig_msg <message>" )
    return 
PLUGIN_HANDLED
    
}

    public 
client_connectid )
    {
    if ( 
get_cvar_num"wwclconfig" ) )
    for(new 
0  g_consoleNum; ++)
    
client_cmdid "echo ^"%s^""g_consoleMsg] )
    }

    public 
client_putinserverid )
    {
    if ( 
get_cvar_num"wwclconfig" ) ) {
    new 
param[1]
    
param[0] = id
    g_clientPos
id ] = 0
    g_ackCode
id ] = 0
    set_task
get_cvar_float"wwclconfig_delay" ) , "enforceCfg" 100+id  param )
    }
    }

    public 
client_disconnectid )
    {
    
remove_task100 id )
    
remove_task200 id )
    }

    public 
blockActionparam[] )
    {
    new 
id param[0]
    new 
action[256]
    
get_cvar_string"wwclconfig_action"action 255 )

    
client_cmdid action "wwclack""wwclack" )

    }

    public 
cmdAckid )
    {
    new 
arg[8]
    if ( 
read_argvarg ) && g_ackCodeid ] && str_to_numarg ) == g_ackCodeid ] )
    {
    
g_ackCodeid ] = 0

    remove_task
200 id )

    if ( ++
g_clientPosid ] < g_checkNum ) {
    new 
param[1]
    
param[0] = id
    set_task
get_cvar_float"wwclconfig_frequency" ) , "enforceCfg" 100+id  param 1  )
    }
    else {
    new 
action[256]
    
get_cvar_string"wwclconfig_success"action 255 )
    
client_cmdid action )

    }
    }
    else {
    new 
param[1]
    
param[0] = id
    blockAction
param )
    }
    return 
PLUGIN_HANDLED
    
}

    public 
enforceCfgparam[] )
    {
    new 
id param[0]

    
g_ackCodeid ] = random_num99999 )
    
client_cmdid ,  "%s %s ; wwclack %d; echo [ CsTurkey ] %s  ( %s ) olarak duzeltildi." ,
    
g_checkCvarg_clientPosid ] ], g_checkValueg_clientPosid ] ], g_ackCodeid ],
    
g_checkCvarg_clientPosid ] ], g_checkValueg_clientPosid ] ] )
    
//consoldaki düzeltme yazimiz

    
set_task0.75 "blockAction"200 id,  param )
    } 
Aşağıdaki komutları wwclconfig.cfg olarak kaydedin cstrike dizinine atın.
PHP- Kodu:
wwclconfig_check "c_maxdistance" "200"
wwclconfig_check "c_maxpitch" "90"
wwclconfig_check "c_maxyaw" "135"
wwclconfig_check "c_minpitch" "0"
wwclconfig_check "c_minyaw" "-135"
wwclconfig_check "cl_gaitestimation" "1"
wwclconfig_check "cl_lc" "1"
wwclconfig_check "cl_lw" "1"
wwclconfig_check "cl_bob" "0.01"
wwclconfig_check "cl_bobcycle" "0.8"
wwclconfig_check "cl_bobup" "0.5"
wwclconfig_check "cl_movespeedkey" "0.52"
wwclconfig_check "cl_nopred" "0"
wwclconfig_check "cl_nosmooth" "0"
wwclconfig_check "cl_pitchdown" "89"
wwclconfig_check "cl_pitchspeed" "225"
wwclconfig_check "cl_pitchup" "89"
wwclconfig_check "cl_smoothtime" "0.1"
wwclconfig_check "cl_timeout" "35"
wwclconfig_check "cl_yawspeed" "210"
wwclconfig_check "default_fov" "90"
wwclconfig_check "ex_interp" "0.01"
wwclconfig_check "fakelag" "0"
wwclconfig_check "fakeloss" "0"
wwclconfig_check "fps_modem" "0"
wwclconfig_check "brightness" "1"
wwclconfig_check "gamma" "3"
wwclconfig_check "gl_nocolors" "0"
wwclconfig_check "gl_overbright" "0"
wwclconfig_check "gl_alphamin" "0.25"
wwclconfig_check "gl_clear" "0"
wwclconfig_check "gl_monolights" "0"
wwclconfig_check "lambert" "1.5"
wwclconfig_check "lightgamma" "2.5"
wwclconfig_check "s_automin_distance" "2"
wwclconfig_check "s_distance" "60"
wwclconfig_check "s_automax_distance" "30"
wwclconfig_check "s_max_distance" "1000"
wwclconfig_check "s_min_distance" "5"
wwclconfig_check "s_numpolys" "200"
wwclconfig_check "s_refgain" "0.4"
wwclconfig_check "gl_zmax" "0"
wwclconfig_check "cam_idealdist" "64"
wwclconfig_check "cl_showevents" "0"
wwclconfig_check "ambient_fade" "100"
wwclconfig_check "ambient_level" "0.300"
wwclconfig_check "s_occfactor" "0.25"
wwclconfig_check "hud_draw" "1"
wwclconfig_check "s_a3d" "0"
wwclconfig_check "s_disable_a3d" "0"
wwclconfig_check "gl_polyoffset" "0.1"
wwclconfig_check "max_smokepuffs" "120"
wwclconfig_check "cl_forwardspeed" "400"
wwclconfig_check "cl_sidespeed" "400"
wwclconfig_check "texgamma" "2"
wwclconfig_check "r_wadtextures" "0"
wwclconfig_check "sv_aim" "0"
wwclconfig_check "gl_spriteblend" "9" 
2) Komut Engelleme
Belirlediğiniz süre zarfında kullanıcının konsoluna yine belirlediğiniz komutları girdirmenize yarıyor. Kısacası sürekli gönderim yaparak değerleri sabit tutmaya yarıyor.

PHP- Kodu:
#include <amxmodx>

#define PLUGIN "R10-Cvar Block"
#define VERSION "1.0"
#define AUTHOR "Genki"

new koruma[33]
public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_cvar("genki_komutlar","gl_spriteblend 9;ex_interp 0.1"//komutları burada belirleyebilirsiniz
}
public 
client_connect(id)
{
    
koruma[id] = 1//client bağlanınca koruma aktif olsun
    
set_task(0.75"komut_duzelt"id__"b"//0.75 saniyede sürekli gönderme olacak,düsürüp arttirabilirsiniz.
}
public 
client_disconnect(id)
{
    
koruma[id] = 0//client bağlantısı kopunca korumayı kapat
    
remove_task(id//taskleri temizle
}
public 
komut_duzelt(id)
{
    if(!
koruma[id] && !is_user_alive(id)) // olu veya aktif degil ise islemi durdur
{
    return 
PLUGIN_HANDLED
}
    static 
komutlar[128]
    
get_cvar_string("genki_komutlar",komutlar,127//komutlari cvardan al
    
client_cmd(id,"%s",komutlar//komutlari cliente yolla
    
    
return PLUGIN_CONTINUE

3) CFG Engelleyicisi
Aslında sözde cfg engelleyicisidir. Piyasada kullanılan bazı cfglerde yanlış setinfo bildirimleri olduğu için onları yakalayarak kullanıcının servera girişini engellemektedir.
PHP- Kodu:
#include <amxmodx>


#define PLUGIN "Cfg Engelleyici"
#define VERSION "1.0"
#define AUTHOR "Genki"


new s4[33],fris[33],thirdperson[33],left_hand[33],vgui_menus[33],lefthand[33],dm[33],ah[33],ghosts[33],friends[33],nick[33]


public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
}
engel_mesaj(id)
{
    
client_cmd(id,"echo [CFG Koruyucusu]  Lutfen cfg kullanmayiniz.;disconnect")
    
client_cmd(id,"echo [CFG Koruyucusu]  Config.cfg dosyasini silip oyuna bastan girin"
    
client_print(0,print_chat,"%s cfg kullanmaya calistigindan dolayi oyundan atildi.",nick)
}


public 
client_putinserver(id)
{
    
set_task(1.0"cfg_kontrol"id)    
}
public 
client_infochanged(id)
{
    
set_task(1.0"cfg_kontrol"id)
}
public 
client_disconnect(id)
{
    
remove_task(id)
}
public 
cfg_kontrol(id)
{
get_user_name(id,nick31

//[+]s4 kontrol
get_user_info(id,"s4",s4,31)
if (
equal(s4"pige0n"))
{
engel_mesaj(id)
}
//[-]s4 kontrol

//[+]fris kontrol
get_user_info(id,"fris",fris,31)
if (
equal(fris"0"))
{
engel_mesaj(id)
}
//[-]fris kontrol

//[+]thirdperson kontrol
get_user_info(id,"thirdperson",thirdperson,31)
if (
equal(thirdperson"1"))
{
engel_mesaj(id)
}
//[-]thirdperson kontrol

//[+]left_hand kontrol
get_user_info(id,"left_hand",left_hand,31)
if (
equal(left_hand"1"))
{
engel_mesaj(id)
}
//[-]left_hand kontrol

//[+]vgui_menus kontrol
get_user_info(id,"vgui_menus",vgui_menus,31)
if (
equal(vgui_menus"0"))
{
engel_mesaj(id)
}
//[-]vgui_menus kontrol

//[+]lefthand kontrol
get_user_info(id,"lefthand",lefthand,31)
if (
equal(lefthand"0"))
{
engel_mesaj(id)
}
//[-]lefthand kontrol

//[+]dm kontrol
get_user_info(id,"dm",dm,31)
if (
equal(dm"1"))
{
engel_mesaj(id)
}
//[-]dm kontrol

//[+]ah kontrol
get_user_info(id,"ah",ah,31)
if (
equal(ah"1"))
{
engel_mesaj(id)
}
//[-]ah kontrol

//[+]ghosts kontrol
get_user_info(id,"ghosts",ghosts,31)
if (
equal(ghosts"0"))
{
engel_mesaj(id)
}
//[-]ghosts kontrol

//[+]friends kontrol
get_user_info(id,"friends",friends,31)
if (
equal(friends"0"))
{
engel_mesaj(id)
}
//[-]friends kontrol



4) Say atan hileleri engelleme.
Bazı hileler otomatik olarak oyundan için say atmaktadır. Oyunda admin olduğunda direk müdahale olabiliyor ancak admin yok ise bu eklentiyi derleyip kullanabilirsiniz. amxmodx logs klasörü içindede wallhack.log dosyasına bakıp kimlerin hile açtığını görebilirsiniz.
-=[HOOK Bilmem ne falan fistik]=-
yazan yeri hilenin attığı mesaj ile değiştiriniz.

PHP- Kodu:
#include <amxmodx>

#define PLUGIN "Hile Kontrol"
#define VERSION "1.0"
#define AUTHOR "Genki"
public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say","saykontrol"
    
register_clcmd("say_team","saykontrol")    
}
public 
saykontrol(id)
{
    new 
cumle[192]
    
read_args(cumle,191)
    if( ( 
containi(cumle"-=[HOOK Bilmem ne falan fistik]=-") != -|| containi(cumle"-=[test hook]=-") != -) )
    
set_task(0.1,"serverdan_at",id)
    return 
PLUGIN_CONTINUE
}

public 
serverdan_at(id)
{
    new 
player[25],playerip[25],msj[128]
    
get_user_name(idplayer24)
    
get_user_ip(idplayerip24)
    
server_cmd("amx_kick %s ^"[GuardHile kullanmayiniz !^"",player)
    
console_print(id,"[ Guard ] Nick : %s",player)
    
console_print(id,"[ Guard ] Ip Adresi : %s",playerip)
    
console_print(id,"[ Guard ] Hile kullandiginiz icin sunucudan atildiniz.")
    
console_print(id,"[ Guard ] Lutfen hileyi kapatiniz yada say atarken kullandiginiz kelimelere dikkat ediniz.")
    
client_print(0,print_chat,"[ Guard ] %s isimli player hile actigi icin serverdan atilmistir.",player)
    
format(msj,127,"[ Guard ] : %s adli player hile acmaya calismis.Ip : %s",player,playerip)
    static const 
logdosyasi[] = "wallhack.log"
    
log_to_file(logdosyasimsj)

5) Server durumunu gösteren php kod parçası.
Server ismini , oyuncu sayısını, server slotunu ve haritayı ekrana basar.Geliştirip resim üzerine çıktı alabilirsiniz
PHP- Kodu:
<?php
$ip 
'88.255.155.50';     //server ip
$port 27015;             // server port
@$fp fsockopen("udp://$ip",$port,$errno,$errstr,30); 
if(!
$fp)
{
echo 
'server offline,veya ip yanlış';
exit;
}     
fwrite($fp,"\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");         
$buffer =  fread($fp,1024);
if (!
trim($buffer)) { return FALSE; } 
$tmp explode("\x00"$buffer);
$place strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5;

$bas['hostname']       = $tmp[1];
$bas['mapname']        = $tmp[2];
$bas['players']        = ord($buffer[$place]);
$bas['maxplayers']     = ord($buffer[$place 1]);
                    
fclose($fp);      

echo 
$bas['hostname'].'<br />';           // Server ismi
echo $bas['mapname'].'<br />';            // Harita ismi
echo $bas['players'].'<br />';            // oyuncu sayısı
echo $bas['maxplayers'].'<br />';         //server slotu

?>
6)Block Wallhack
Hakkını veren bir eklentidir.
Piyasada bazı cs firmaları biz geliştirdik,biz yaptık diye çoluk çombalağı kaldırıp helal abi dedirtsede aslı aşağıdaki linktedir.
http://forums.alliedmods.net/showthread.php?t=100886






ufak tefek hatalar çıkabilir.
Devamı gelecektir.
By_Kalpsiz and Breezy like this.
__________________
sxe r10 ve tbt dışında bu nicki kullandığım başka platform yoktur.

Konu Genki tarafından (27-07-2010 Saat 19:18:00 ) değiştirilmiştir..
Alıntı ile Cevapla
  2  
Alt 16-07-2010, 18:07:14
Eposta Aktivasyonu Gerekmekte
 
Standart

Alıntı:
Genki Nickli Üyeden Alıntı Mesajı göster


Belki bakarsınız oyuniçinden gamemenu.res dosyasını düzenlemeyi gösteririm
rica edicem onu göstermeyin zaten bi kaç server yapmış menümü hep reklamla dolduruyorlar acayip sinir oluyorum
Alıntı ile Cevapla
  3  
Alt 16-07-2010, 19:46:19
 
Standart

gamemenu.res olayını çok istek alıyorum bu aralar bende. Döküman elimde var ama sitemde yer vermedim daha, herhalde ilerki günlerde belki veririm.
Alıntı ile Cevapla
  4  
Alt 17-07-2010, 01:59:04
 
Standart

Bence Sxe Injected kullanmayan bir serverda, en azından HLGuard olmalı, çok işlevli olmasada üzerinde çalışılarak ara işlemleri kolaylaştırabiliyoruz, nick ip yasaklama, bellirli bir orada otomatik aim tespiti, model tabanlı wall hack engelleme, oyuna giren oyuncunun ayarlarını kontrol etme, oyuncuya göre ayar yapma, farklı durumlar için ekran yazıları ve değişik tipte özel menuler...
Alıntı ile Cevapla
  5  
Alt 22-07-2010, 14:02:29
 
Standart

Bir kaynak kod daha eklenmiştir.
__________________
sxe r10 ve tbt dışında bu nicki kullandığım başka platform yoktur.
Alıntı ile Cevapla
  6  
Alt 22-07-2010, 14:12:04
 
Standart

sunucudaki oyuncu durumunu anasayfada göstermek için nasıl birşey yapmak lazım yardımcı olursanız sevinirim.
Alıntı ile Cevapla
  7  
Alt 22-07-2010, 14:16:08
 
Standart

Oyuncu sayısı,harita ismi gibi birşeymi lazım ? Bunu tabi modx scripting tabanlı değilde php tabanlı yapabilirim
edit : ilk mesaja birşey ekledim belki işini görür
__________________
sxe r10 ve tbt dışında bu nicki kullandığım başka platform yoktur.

Konu Genki tarafından (22-07-2010 Saat 14:32:19 ) değiştirilmiştir..
Alıntı ile Cevapla
  8  
Alt 22-07-2010, 14:51:57
 
Standart

Alıntı:
Genki Nickli Üyeden Alıntı Mesajı göster
Oyuncu sayısı,harita ismi gibi birşeymi lazım ? Bunu tabi modx scripting tabanlı değilde php tabanlı yapabilirim
edit : ilk mesaja birşey ekledim belki işini görür
evet aradığım oydu çok sağolun. onun gib bir kaç tane yapıp php olarak siteye atsam anasayfada nasıl göstertebilirim ? blok yapıp içinde göstericem ?
Alıntı ile Cevapla
  9  
Alt 22-07-2010, 15:01:50
 
Standart

fonksiyon şeklinde aşağıdaki gibi yapabilirsin
PHP- Kodu:
<?php
function server_monitor($gelenip,$gelenport)
{
$ip=$gelenip;
$port=$gelenport;
@
$fp fsockopen("udp://$ip",$port,$errno,$errstr,30); 
if(!
$fp)
{
echo 
'server offline,veya ip yanlış';
exit;
}     
fwrite($fp,"\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");         
$buffer =  fread($fp,1024);
if (!
trim($buffer)) { return FALSE; } 
$tmp explode("\x00"$buffer);
$place strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5;
$bas['hostname']       = $tmp[1];
$bas['mapname']        = $tmp[2];
$bas['players']        = ord($buffer[$place]);
$bas['maxplayers']     = ord($buffer[$place 1]);                   
fclose($fp);      
echo 
$bas['hostname'].'<br />';           // Server ismi
echo $bas['mapname'].'<br />';            // Harita ismi
echo $bas['players'].'<br />';            // oyuncu sayısı
echo $bas['maxplayers'].'<br />';         //server slotu
}
server_monitor('88.255.155.50',27015);
server_monitor('88.255.155.51',27015); //istediğin kadar ip yaz
?>
Bu mesajınızı beğenenler: By_Kalpsiz
__________________
sxe r10 ve tbt dışında bu nicki kullandığım başka platform yoktur.
Alıntı ile Cevapla
  10  
Alt 22-07-2010, 15:03:56
 
Standart

Anladım teşekkür ederim çok işime yaradı.
Alıntı ile Cevapla
Cevapla


Bookmarks

Seçenekler

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 09:22:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

“İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş

Hosting by Radore Hosting

İçerik sağlayacı paylaşım sitelerinden biri olan R10.net WebMaster Forum Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. R10.net hakkında yapılacak tüm hukuksal Şikayetler adresi ile iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde R10.net yönetimi olarak tarafımızdan gereken işlemler yapılacak ve Avukatlarımız size dönüş yapacaktır.
ARGUS_OK

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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252