Внимание! Исходя из последних событий по блокировке ресурсов в сети. Хочу предупредить всех наших пользователей!
Публикация любых плейлистов содержащих телеканал «Наш Футбол» (эфирное название «Матч!Премьер» и «Матч! Футбол») ЗАПРЕЩЕНА!
К пользователям которые нарушат правила могут быть применены штрафные санкции!

Голосование

Нужна ли подобная инструкция?

Да.
841 (98.1%)
Нет.
16 (1.9%)

Проголосовало пользователей: 856

Автор Тема: Wicardd.conf c нуля – это легко  (Прочитано 223686 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vasiliks

  • Супермодератор
  • Фельдфебель
  • *****
  • Спасибо
  • -> Вы поблагодарили: 1802
  • -> Вас поблагодарили: 7150
  • Сообщений: 1844
  • Репутация: 7185
  • Пол: Мужской
  • награды За весомый программный вклад За верность клубу ! Активист Giclub.TV Продвинутый пользователь
    • Награды
  • Модель ресивера: GI ET-7000mini, ET-11000, GI-8120
Wicardd.conf c нуля – это легко
« : 19 Сентябрь 2016, 20:41:39 »
Урок 1. Начало.

Решил написать небольшую инструкцию по написанию конфигурационного файла (в дальнейшем  конфига) эмулятора Wicardd c нуля. Надеюсь многим это облегчит понимание чего, куда и как прописывать
В примерах будут указываться только минимально необходимый набор строк для полноценной работы в том или ином случае.

Начнем с минимального конфига. Он будет иметь всего пять строк:

[dvb]
type = AUTO

[reader]
type = newcamd525
account = user:password@server:port

при этом получаем полностью работоспособный эмулятор. Или вариант немного длиннее, но с мультипортом:

[dvb]
type = AUTO

[reader]
type = newcamd525
account = user:password@server
multiport = 1111,2222,3333,4444,5555 и т.д.

Этот вариант дальше будем рассматривать как основной.

Внизу прикреплен файл описания основных параметров от автора эмулятора.
Эти пользователи сказали Вам СПАСИБО:
joni333, FRAP, Юрий11, android(doktor270350), romang, Olexander, serpp, ruha34, ooolexa, pavlik1000, Витовт, romansat, gawana, vlad123, avbut, Алексей77, soveni, Leonstar, vaha555, Glimmer Man, танаис, UltraSM, tokarev7777nik, mixailo, kolosav69, Yakov, alex62, saha1973, estrich, VASILICH250555, savoi57, Serjoga, Slava7500, demidov, mantarraya, -WadimArt-, Alex.li24il, iliko, Sasha62, krava0874, MAKAP, 13daddy, vasilich07, vovkavik, FoX_002, Myca, Kjcrenjd, lvm1974, 1usb1, barosa, sergey_fccc, allexxx65, Petr1972, Юрий75, lpn964, igor_70, vavladimir2010, jt2016, valstar7_3, luc0009, sheluhinm, babahN, rt116, Safron, baronet, Serge, egor7404, Adomenikan, joiman, Ednaz, теофан, skal51, mir21, vitalgoal, vovowan, Ded_bab, proximus99, enei2004, phill23, Seram, Macabob, tolya53, Liquid Metal, leha87, user1988, xvily, BaBuBuDu, njkzyjdbx, Enemy, Roman1968, Неуч, V1taly, oolegs, 420, UP33, zeman79, Nefront, zhuck, vodila, Punisher, Yurimart, grynyk, Каменный, zelik_77, -Burger-, , roman_t, lonssis, mixasl, arlekino861, pilotyaga, John_the_Ripper, cloney, romio7288, aura, sevenskys, Admiral10, ded5713, midian, zmicky, G.E.A., iak_37, malinn, vityok, us4ls, trimmer1979, h2o, sandrick, alsettek, yrchik, billi1987, gmn_nev, FCSD, dmdm9, nariman59, Bambarbia, Vytenis P., olha1408, ValEE, 98radafa, iuvm, mockingbird, woki, lis91, bosik, zheka74, Donetsk57, Palamar, PAUL-A8, ja40, mr_kost, gladiator1972, larary, BAHMAN, grig0ri, deep, redex, Vladi-S, max48, Tarb72, Толик даг, mikola-mail, Basik1951, VasilichSV, Oleg_satelit, Michael_11, konstant, grux, голландец, arion75, mic71, gosha121, kubatol, igorrrrr, Tokarev963, KARAT13, juri210, ruo, quasargames, habib1, stdemos, Montesuma, yurzim, sankr, sidsat, airat, RASIM1919, salovvit, sga_sga

Оффлайн Vasiliks

  • Супермодератор
  • Фельдфебель
  • *****
  • Спасибо
  • -> Вы поблагодарили: 1802
  • -> Вас поблагодарили: 7150
  • Сообщений: 1844
  • Репутация: 7185
  • Пол: Мужской
  • награды За весомый программный вклад За верность клубу ! Активист Giclub.TV Продвинутый пользователь
    • Награды
  • Модель ресивера: GI ET-7000mini, ET-11000, GI-8120
Wicardd.conf c нуля – это легко
« Ответ #1 : 19 Сентябрь 2016, 20:42:28 »
Урок 2. Смотрим лог работы эмулятора.

В выше приведенных конфигах всю работу эмулятора мы можем наблюдать, если запустим его через телнет.

Но так смотреть очень не удобно, для этого придумали следующие варианты
  a)   выводить на консоль;
  b)   выводить в файл, который потом можно открыть текстовым редактором;
  c)   смотреть в online-режиме с помощью специальных программ (Wilog, TraySyslog и др.) или телнет;
  d)   через вэб-интерфейс.

Рассмотрим по очереди все варианты. Сначала добавляем в начало конфига секцию под названием [global], а затем дописываем в секции, работу которых хотим наблюдать, параметр debug.

Параметр debug может принимать следующие значения:
0 – выключено;
1 – включено с минимальным уровнем логирования (достаточно в 99% случаев);
3 – детальный лог(ставим только тогда, когда предыдущий вариант не дает      достаточно информации).

Для первого варианта вывода лога наш конфиг примет вид
[global]
debug = 1

[dvb]
type = AUTO
debug = 1

[reader]
type = newcamd525
account = user:password@server
debug = 1
multiport = 1111,2222,3333,4444,5555

Для второго варианта добавим еще одну строку:
log = /tmp/wicardd.log
где /tmp/wicardd.log – имя лог-файла и полный путь к нему.

Теперь весь  конфиг примет вид:

[global]
debug = 1
log = /tmp/wicardd.log

[dvb]
type = AUTO
debug = 1

[reader]
type = newcamd525
account = user:password@server
multiport = 1111,2222,3333,4444,5555
debug = 1

Для третьего варианта добавим другую строку:
log_udp = hostname:port
где hostname  - сетевой адрес, а  port – порт на который выводить лог. При отсутствии параметра port, используется порт по умолчанию 514.

Новый вид нашего конфига:
[global]
debug = 1
log_udp = 192.168.1.5 или log_udp = 192.168.1.5:514

[dvb]
type = AUTO
debug = 1

[reader]
type = newcamd525
account = user:password@server
multiport = 1111,2222,3333,4444,5555
debug = 1
Для использования просмотра через вэб-интерфейс необходимо добавить еще одну секцию в конфиг:

[webif]
port = 8888
debug = 1
где port - порт HTTP сервера
а debug - уровень логирования (рассмотрено выше)

а в секцию [global] строку
log_rb_size = 20 #размер кольцевого буфера в стоках, задается для хранения лога с последующим отображением в WEB интрефейсе
Теперь конфиг примет вид
[global]
debug = 1
log_rb_size = 20

[webif]
port = 8888
debug = 1

[dvb]
type = AUTO
debug = 1

[reader]
type = newcamd525
account = user:password@server
multiport = 1111,2222,3333,4444,5555
debug = 1
Все варианты просмотра лога можно совмещать вместе. Я предпочитаю смотреть его по сети, поэтому в дальнейших примерах будет упоминаться только этот вариант.

Для управления секциями (активна или выключена в данный момент) существует парамер active со значениями 0 и 1, где
0 – секция отлючена
1 – секция активна (значение по умолчанию)

Оффлайн Vasiliks

  • Супермодератор
  • Фельдфебель
  • *****
  • Спасибо
  • -> Вы поблагодарили: 1802
  • -> Вас поблагодарили: 7150
  • Сообщений: 1844
  • Репутация: 7185
  • Пол: Мужской
  • награды За весомый программный вклад За верность клубу ! Активист Giclub.TV Продвинутый пользователь
    • Награды
  • Модель ресивера: GI ET-7000mini, ET-11000, GI-8120
Wicardd.conf c нуля – это легко
« Ответ #2 : 19 Сентябрь 2016, 20:47:41 »
Урок 3 Добавляем фильтрацию.

Фильтрация по параметрам caid,  ident, chid, sid ускорит процесс открывания каналов, а во многих случаях, при наличии нескольких caid и ident на одном канале, позволит избежать ложных запросов.
Для этого добавляем секцию с именем [filter], а в секции [dvb] делаем ссылку на этот фильтр.

Допустим у нас есть пакеты каналов со следующими параметрами:
caid    : ident
0AAA:000000   
0BBB: 111111
0CCC:222222
0DDD:333333

и сервер (server1), который открывает их по портам 1111,2222,3333,4444 соответственно.
 
Новый вид нашего конфига:
[global]
debug = 1
log_udp = 192.168.1.5

[dvb]
type = AUTO
debug = 1
filter = dvb

[filter]
name = dvb
rule = caid=0AAA;ident=0;accept
rule = caid=0BBB;ident=111111;accept
rule = caid=0CCC;ident=222222;accept
rule = caid=0DDD;ident=333333;accept
rule = reject


[reader]
type = newcamd525
account = user1:password1@server1
multiport = 1111,2222,3333,4444
debug = 1
где параметр accept разрешает обработку каналов с перечисленными параметрами, а правило rule = reject запрещает все остальные.

Я предпочитаю более сложный вариант, где указывается конкретно какой канал, с какими параметрами и каким ридером обрабатывать. Для этого в секции [filter] указывается прямая ссылка на необходимый ридер, а самому ридеру необходимо дать произвольное имя с помощью параметра name.

Новый вид нашего конфига:
[global]
debug = 1
log_udp = 192.168.1.5

[dvb]
type = AUTO
debug = 1
filter = dvb

[filter]
name = dvb
rule = caid=0AAA;ident=0;accept=Shara1111
rule = caid=0BBB;ident=111111;accept=Shara2222
rule = caid=0CCC;ident=222222;accept=Shara3333
rule = caid=0DDD;ident=333333;accept=Shara4444
rule = reject


[reader]
name = Shara
type = newcamd525
account = user1:password1@server1
multiport = 1111,2222,3333,4444
debug = 1
Как видим адрес ссылки образуется слиянием двух параметров: имени сервера и номера необходимого порта. Пробелов быть не должно.
Этот вариант конфига является самым оптимальным для работы.


Оффлайн Vasiliks

  • Супермодератор
  • Фельдфебель
  • *****
  • Спасибо
  • -> Вы поблагодарили: 1802
  • -> Вас поблагодарили: 7150
  • Сообщений: 1844
  • Репутация: 7185
  • Пол: Мужской
  • награды За весомый программный вклад За верность клубу ! Активист Giclub.TV Продвинутый пользователь
    • Награды
  • Модель ресивера: GI ET-7000mini, ET-11000, GI-8120
Wicardd.conf c нуля – это легко
« Ответ #3 : 20 Сентябрь 2016, 21:59:59 »
Урок 4 Добавляем обработку каналов со статичесткими ключами.

Для обработки каналов со статичесткими ключами добавляем еще один ридер
[reader]
type = emu
name = EMU
file = /usr/keys/SoftCam.Key

где /usr/keys/SoftCam.Key имя файла с ключами и полный путь к нему.
В секции [filter] добавляем строку, разрешающую обработку этих каналов.

rule = caid=0D00,2600;accept=EMU
Наш конфиг после очередного пополнения примет вид
[global]
debug = 1
log_udp = 192.168.1.5

[dvb]
type = AUTO
debug = 1
filter = dvb

[filter]
name = dvb
rule = caid=0D00,2600;accept=EMU
rule = caid=0AAA;ident=0;accept=Shara1111
rule = caid=0BBB;ident=111111;accept=Shara2222
rule = caid=0CCC;ident=222222;accept=Shara3333
rule = caid=0DDD;ident=333333;accept=Shara4444
rule = reject

[reader]
name = Shara
type = newcamd525
account = user1:password1@server1
multiport = 1111,2222,3333,4444
debug = 1

[reader]
type = emu
name = EMU
file = /usr/keys/SoftCam.Key


Урок 5. Работа с официальной картой.

И тут вам сделали сюрприз, подарили официальную карту одного из операторов. Что делать? Ничего сложного, главное чтобы карта не была привязана к рекомендованному оборудованию. Пускай параметры карты будут следующие:
caid  : ident
0FFF:123456


Добавляем ридер для работы с картой
[reader]
active = 1
name = sci0
type = tuxbox
device = /dev/sci0
debug = 1

а в фильтре разрешаем обработку каналов, которые будут открываться картой
rule = caid=0FFF;ident=123456;accept= sci0
итоговый конфиг примет вид
[global]
debug = 1
log_udp = 192.168.1.5

[dvb]
type = AUTO
debug = 1
filter = dvb

[filter]
name = dvb
rule = caid=0D00,2600;accept=EMU
rule = caid=0AAA;ident=0;accept=Shara1111
rule = caid=0BBB;ident=111111;accept=Shara2222
rule = caid=0CCC;ident=222222;accept=Shara3333
rule = caid=0DDD;ident=333333;accept=Shara4444
rule = caid=0FFF;ident=123456;accept= sci0
rule = reject

[reader]
name = Shara
type = newcamd525
account = user1:password1@server1
multiport = 1111,2222,3333,4444
debug = 1

[reader]
type = emu
name = EMU
file = /usr/keys/SoftCam.Key

[reader]
active = 1
name = sci0
type = tuxbox
device = /dev/sci0
debug = 1
P.S. В данном примере параметры картоприемника указаны для спаркобразных аппаратов. Для остальных все это можно найти в официальном ФАКе по викарду.

Оффлайн Vasiliks

  • Супермодератор
  • Фельдфебель
  • *****
  • Спасибо
  • -> Вы поблагодарили: 1802
  • -> Вас поблагодарили: 7150
  • Сообщений: 1844
  • Репутация: 7185
  • Пол: Мужской
  • награды За весомый программный вклад За верность клубу ! Активист Giclub.TV Продвинутый пользователь
    • Награды
  • Модель ресивера: GI ET-7000mini, ET-11000, GI-8120
Wicardd.conf c нуля – это легко
« Ответ #4 : 20 Сентябрь 2016, 22:07:11 »
Урок 6. Добавляем обработку с помощью резервного сервера.

Для случая когда основной сервер перестает отвечать, а смотреть охота, задействуем подключение к резервному серверу.
Для этого нужно добавить столько балансировщиков, сколько хотим подключить к резервному серверу.
Допустим у нас есть резервный сервер, обрабатывающий только пакеты каналов с параметрами 0BBB: 111111 и 0DDD:333333 по портам 7222 и 7444 соответственно. Добавляем сначала ридер резервного сервера
[reader]
name = Rezerv
type = newcamd525
account = user1:password1@server1
multiport = 7222,7444
debug = 1

затем добавляем два балансировщика, которые будут ссылаться на нужные нам ридеры,
[balancer]
name = Paket1
chain = Shara1111; Rezerv7222
mode = 2
debug = 3
active = 1

[balancer]
name = Paket2
chain = Shara4444; Rezerv7444
mode = 2
debug = 3
active = 0

а в фильтрах изменим адреса для нужных нам пакетов
rule = caid=0BBB;ident=111111;accept=Paket1
rule = caid=0DDD;ident=333333;accept=Paket2

Теперь у нас будет уже такой конфиг

[global]
debug = 1
log_udp = 192.168.1.5

[dvb]
type = AUTO
debug = 1
filter = dvb

[filter]
name = dvb
rule = caid=0D00,2600;accept=EMU
rule = caid=0AAA;ident=0;accept=Shara1111
rule = caid=0BBB;ident=111111;accept=Paket1
rule = caid=0CCC;ident=222222;accept=Shara3333
rule = caid=0DDD;ident=333333;accept=Paket2
rule = caid=0FFF;ident=123456;accept=sci0
rule = reject

[balancer]
name = Paket1
chain = Shara1111;Rezerv7222
mode = 2
debug = 3
active = 1

[balancer]
name = Paket2
chain = Shara4444;Rezerv7444
mode = 2
debug = 3
active = 1


[reader]
name = Shara
type = newcamd525
account = user1:password1@server1
multiport = 1111,2222,3333,4444
debug = 1

[reader]
name = Rezerv
type = newcamd525
account = user2:password2@server2
multiport = 7222,7444
debug = 1

[reader]
type = emu
name = EMU
file = /usr/keys/SoftCam.Key

[reader]
active = 1
name = sci0
type = tuxbox
device = /dev/sci0
debug = 1
В балансировщиках рекомендую использовать параметр debug со значеним 3. О параметре mode отлично написано в официальном ФАКе по викарду.


Добавлено: 27 Октябрь 2016, 22:30:09
:)

Оффлайн Vasiliks

  • Супермодератор
  • Фельдфебель
  • *****
  • Спасибо
  • -> Вы поблагодарили: 1802
  • -> Вас поблагодарили: 7150
  • Сообщений: 1844
  • Репутация: 7185
  • Пол: Мужской
  • награды За весомый программный вклад За верность клубу ! Активист Giclub.TV Продвинутый пользователь
    • Награды
  • Модель ресивера: GI ET-7000mini, ET-11000, GI-8120
Wicardd.conf c нуля – это легко
« Ответ #5 : 20 Сентябрь 2016, 22:09:17 »
Тема открыта, вопросы только по построению той или иной конфигурации конфиг-файла для эмулятора викард. >:(

Оффлайн avbut

  • Старший фейерверкер
  • ****
  • Спасибо
  • -> Вы поблагодарили: 227
  • -> Вас поблагодарили: 248
  • Сообщений: 263
  • Репутация: 249
  • Пол: Мужской
    • Награды
  • Модель ресивера: GI8120, Azbox HD Premium+,Ustym 4K Pro
Wicardd.conf c нуля – это легко
« Ответ #6 : 21 Сентябрь 2016, 06:48:06 »
Ув. Vasiliks спасибо огромное за уроки, думаю они будут полезны большому количеству форумчан.
Пользуюсь услугами прова шары который разрешает подключение к нескольким серверам одновременно.

Мой конфиг:
Извините, вам запрещён просмотр содержимого спойлеров.

Лог:
Извините, вам запрещён просмотр содержимого спойлеров.

 
Всвязи с этим вопрос: что изменить в конфиге или добавить, что бы в логе отображался сервер с которым сейчас коннектится рессивер (по аналогии с Mgcamd).
Для снятия лога использую Wicardd_loger или Kiwi_syslog.
Эти пользователи сказали Вам СПАСИБО:

Оффлайн zmej74

  • Старший фейерверкер
  • ****
  • Спасибо
  • -> Вы поблагодарили: 127
  • -> Вас поблагодарили: 509
  • Сообщений: 295
  • Репутация: 508
  • Пол: Мужской
    • Награды
  • Модель ресивера: Vu+ Zero (Open Pli 4)
Wicardd.conf c нуля – это легко
« Ответ #7 : 21 Сентябрь 2016, 11:27:25 »
Немного теории к уроку 3 (если позволит автор)
Фильтрация – для чего это нужно:
Извините, вам запрещён просмотр содержимого спойлеров.

Оффлайн Vasiliks

  • Супермодератор
  • Фельдфебель
  • *****
  • Спасибо
  • -> Вы поблагодарили: 1802
  • -> Вас поблагодарили: 7150
  • Сообщений: 1844
  • Репутация: 7185
  • Пол: Мужской
  • награды За весомый программный вклад За верность клубу ! Активист Giclub.TV Продвинутый пользователь
    • Награды
  • Модель ресивера: GI ET-7000mini, ET-11000, GI-8120
Wicardd.conf c нуля – это легко
« Ответ #8 : 21 Сентябрь 2016, 22:48:10 »
если позволит автор
позволяю:):) Присоединяйся.


Добавлено: 21 Сентябрь 2016, 22:55:12
что изменить в конфиге или добавить, что бы в логе отображался сервер с которым сейчас коннектится рессивер
Не подскажу, так как не использовал такую конфигурацию. Я тоже не все ведь знаю.
Эти пользователи сказали Вам СПАСИБО:

Оффлайн zmej74

  • Старший фейерверкер
  • ****
  • Спасибо
  • -> Вы поблагодарили: 127
  • -> Вас поблагодарили: 509
  • Сообщений: 295
  • Репутация: 508
  • Пол: Мужской
    • Награды
  • Модель ресивера: Vu+ Zero (Open Pli 4)
Wicardd.conf c нуля – это легко
« Ответ #9 : 22 Сентябрь 2016, 16:50:12 »
Продолжаем фильтрацию...
Где можно фильтровать.
Извините, вам запрещён просмотр содержимого спойлеров.



Оффлайн vitalgoal

  • Младший фейерверкер
  • ***
  • Спасибо
  • -> Вы поблагодарили: 93
  • -> Вас поблагодарили: 53
  • Сообщений: 111
  • Репутация: 53
  • Пол: Мужской
    • Награды
  • Модель ресивера: spark2,gi-8120 lite, gi-9196 lite
Wicardd.conf c нуля – это легко
« Ответ #10 : 25 Сентябрь 2016, 12:49:21 »
Здравствуйте.
Вот начитался,переделал свой конфиг.
Извините, вам запрещён просмотр содержимого спойлеров.

Правильно я связал ридер и фильтр?
Не будет банить из-за того что порт 4000 несколько раз в фильтре прописан?
Трико правильно прописал для быстрого открывания?
Или так правильнее -   rule = caid=4ae0;ident=0,15;ident:=0;accept=Shara4014 #tricolor36
Вроде работает хорошо.
Эти пользователи сказали Вам СПАСИБО:

Оффлайн baronet

  • Бомбардир
  • **
  • Спасибо
  • -> Вы поблагодарили: 315
  • -> Вас поблагодарили: 94
  • Сообщений: 69
  • Репутация: 83
  • Пол: Мужской
    • Награды
  • Модель ресивера: AMIKO 8900
Wicardd.conf c нуля – это легко
« Ответ #11 : 25 Сентябрь 2016, 13:07:00 »
Извините, вам запрещён просмотр содержимого спойлеров.


пропишите в ридере НТВ иденты через запятую в одну строку:
rule = caid=0500;ident=040620,060A00,060С00;accept=Shara4000 #NTV+HD
Эти пользователи сказали Вам СПАСИБО:
AMIKO 8900, E2, mgcamd 1.38a, wicardd 1.19, oscam-ymodv18-t56

Оффлайн aleks_tar

  • Бомбардир
  • **
  • Спасибо
  • -> Вы поблагодарили: 13
  • -> Вас поблагодарили: 23
  • Сообщений: 64
  • Репутация: 22
  • Пол: Мужской
    • Награды
  • Модель ресивера: Amiko Alien 8900
Wicardd.conf c нуля – это легко
« Ответ #12 : 26 Сентябрь 2016, 20:06:19 »
Извините, вам запрещён просмотр содержимого спойлеров.

полагаю, что должно быть прописано одинаково, или я не прав?
Эти пользователи сказали Вам СПАСИБО:

Оффлайн vv..

  • Старший фейерверкер
  • ****
  • Спасибо
  • -> Вы поблагодарили: 192
  • -> Вас поблагодарили: 108
  • Сообщений: 306
  • Репутация: 107
  • Пол: Мужской
    • Награды
  • Модель ресивера: E3HD / Zero / Formuler3 / 8120  4.0°W-50.0°E
Wicardd.conf c нуля – это легко
« Ответ #13 : 27 Сентябрь 2016, 06:52:32 »
Извините, вам запрещён просмотр содержимого спойлеров.

полагаю, что должно быть прописано одинаково, или я не прав?
В фильтре 4000 это порт, а в ридере он прописан в строке мультипорт.
Эти пользователи сказали Вам СПАСИБО:

Оффлайн igor_70

  • Младший фейерверкер
  • ***
  • Спасибо
  • -> Вы поблагодарили: 152
  • -> Вас поблагодарили: 68
  • Сообщений: 162
  • Репутация: 65
  • Пол: Мужской
    • Награды
  • Модель ресивера: GI 8120
Wicardd.conf c нуля – это легко
« Ответ #14 : 27 Сентябрь 2016, 10:00:34 »
У меня конфиг с балансировщиком такой
Извините, вам запрещён просмотр содержимого спойлеров.
Вроде все нормально работает, посмотрите знающие люди и поправьте что не так.
Эти пользователи сказали Вам СПАСИБО:

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal