Куча мелких фиксов, уборка мусора.

This commit is contained in:
lopar 2020-09-30 01:39:06 +03:00
parent 640e85cf18
commit 5ac30becb7
149 changed files with 4221 additions and 11012 deletions

8
.gitignore vendored
View File

@ -1 +1,7 @@
.idea/
.idea/
.unused/
logs/battle*/*.txt
tmp/*.btl
tmp/*.txt
README.md
Thumbs.db

View File

@ -1,10 +0,0 @@
# README #
Проект БК1\БК2 времён до появления приёмов.
Версионности не будет, пока проект не станет стабильным на PHP5.6.
### What is this repository for? ###
* Quick summary
* Version
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)

View File

@ -1,284 +0,0 @@
function H(isOutBox){
this.document = document;
this.isOutBox = isOutBox;
this.iframe = this.isOutBox ? $('#mainbox') : $('body');
// DOM-элемент, который перехватывает клик по логину
//this.grabLogin = null;
// DOM-элемент, который перехватывает клик по названию шмотки
//this.grabItem = null;
this.grabLogin = new Grabber({inputClass: 'grabLogin'});
this.grabItem = new Grabber({inputClass: 'grabLogin'});
// storage
this.data = {};
}
H.prototype.toString = function(){
return 'This is H-object';
}
H.prototype.getMainBox = function(){
return this.isOutBox ? this.iframe.contents().find('body') : $('body');
}
H.prototype.loadMainBox = function(location){
location = location || '/main.php';
this.iframe.attr('src',location);
}
H.prototype.loadDocument = function(location){
this.document.location = location;
}
// ======== storage
H.prototype.set = function(key, value){
this.data[key] = value;
}
H.prototype.get = function(key, defaultValue){
return undefined == this.data[key] ? defaultValue : this.data[key];
}
H.prototype.setHP = function(id, curHP, maxHP){
curHP = curHP || 0;
maxHP = maxHP || 0;
const hp = this.getMainBox().find('#hpKey_' + id);
if(hp.length < 1){
return false;
}
const hpA = $('img:eq(1)', hp);
const hpB = $('img:eq(2)', hp);
const redHP = 0.33; // меньше 30% красный цвет
const yellowHP = 0.66; // меньше 60% желтый цвет, иначе зеленый
if(curHP > maxHP){
curHP = maxHP;
}
const text = curHP + '/' + maxHP;
const lengthHP = 170 - (text.length - 1) * 8;
const sizeFirst = Math.round((lengthHP / maxHP) * curHP);
const sizeSecond = lengthHP - sizeFirst;
hpA.attr('width', sizeFirst);
hpB.attr('width', sizeSecond);
if(curHP / maxHP < redHP){
hpA.attr('src', '/i/1red.gif');
}else{
if(curHP / maxHP < yellowHP){
hpA.attr('src', '/i/1yellow.gif');
}else{
hpA.attr('src', '/i/1green.gif');
}
}
hp.html(hp.html().substring(0, hp.html().lastIndexOf(':') + 1) + Math.round(curHP) + "/" + maxHP);
}
/* ------------------ перехват клика по логину юзера -------------------------------------------- * /
H.prototype.setGrabLogin = function(input){
var obj = this;
this.clearGrabLogin();
var tmp = $(input);
if(tmp.length > 0){
this.grabLogin = tmp.get(0);
$(this.grabLogin)
.addClass('grabLogin')
.dblclick(function(){obj.toggleGrabLogin(this)})
.select();
return true;
}
return false;
}
H.prototype.clearGrabLogin = function(){
$(this.grabLogin).removeClass('grabLogin');
this.grabLogin = null;
},
H.prototype.toggleGrabLogin = function(input){
if($(input).hasClass('grabLogin')){
this.clearGrabLogin();
}else{
this.setGrabLogin($(input));
}
}
/* -------------------------------- простые диалоги --------------------------------------------- */
H.prototype.sdOptionsDefault = {
formMethod: 'POST',
formAction: '',
formClass: '',
title: 'заголовок не указан',
width: 250,
data: {},
content: '<span>контент не указан</span>',
onSubmit: function(){return true;},
onClose: function(){this.remove()}
}
H.prototype._sd = function(options){
options = $.extend({}, this.sdOptionsDefault, options);
const m = $('<div class="sd-container"></div>').css('width', options.width);
const t = $('<div class="sd-title">').text(options.title);
const c = $('<img class="sd-closer" src="/i/clear.gif" title="Закрыть окно" alt="X">')
.click(function () {
return options.onClose.call($(this).closest('div.sd-container'))
});
const f = $('<form class="sd-form"></form>')
.attr('method', options.formMethod)
.attr('action', options.formAction)
.submit(function () {
return options.onSubmit.call($(this).closest('div.sd-container'))
});
for(let i in options.data){
$('<input type=hidden>').attr('name',i).val(options.data[i]).appendTo(f);
}
if(options.formClass){
f.addClass(options.formClass);
}
$('div.sd-container', this.getMainBox()).remove();
return m.append(t.prepend(c)).append(f.append(options.content));
}
H.prototype.sd = function(options){
const tmp = this._sd(options);
return this.getMainBox().append(tmp);
}
H.prototype.sdOneInput = function(options){
let onSubmit2 = options.onSubmit;
options = $.extend({},this.sdOptionsDefault, {inputName: 'target', inputValue: '', grabber: null}, options);
const i = $('<input type="text" class="text">')
.css({'width': options.width - 45})
.attr('name', options.inputName)
.val(options.inputValue);
if(options.grabber && this[options.grabber] instanceof Grabber){
this[options.grabber].set(i);
}else{
i.select();
}
options.content.append($('<div></div>')
.append(i)
.append('<input type="submit" class="button" style="width:33px;" value=" »» ">'));
options.onSubmit = function(){
const v = i.val($.trim(i.val())).val();
if(v.length <= 0){
alert('Не заполнено обязательное поле');
return false
}
if(typeof onSubmit2 == 'function'){
return onSubmit2.call(this);
}
return true;
}
return this.sd(options);
}
H.prototype.sdLogin = function(options){
options.content = $('<div>Укажите логин персонажа:<br><small>(можно кликнуть по логину в чате)</small></div>');
options.grabber = 'grabLogin';
return this.sdOneInput(options);
}
H.prototype.sdItem = function(options){
options.content = $('<div>Укажите название или s/n предмета:<br><small>(можно кликнуть по названию в рюкзаке)</small></div>');
options.grabber = 'grabItem';
options.width = 270;
return this.sdOneInput(options);
}
/**
* Функция для обратной совместимости
* Не надо её использовать в новом коде!
*/
H.prototype.sdFindLogin = function(title, formAction, inputName, inputValue){
return this.sdLogin({
title: title,
formAction: formAction,
inputName: inputName,
inputValue: inputValue});
}
/**
* Функция для обратной совместимости
* Не надо её использовать в новом коде!
*/
H.prototype.sdFindItem = function(title, formAction, inputName, inputValue){
return this.sdItem({
title: title,
formAction: formAction,
inputName: inputName,
inputValue: inputValue});
}
/* ----------------------- вывод системных сообщений -------------------------------------------- */
H.prototype._popupConfig = {
'd':[10000, 'Отладочное сообщение'],
'i':[3000 , 'Сообщение'],
'w':[5000 , 'Предупреждение'],
'e':[0 , 'Ошибка']
}
H.prototype.msgPopup = function(type, text){
if(this._popupConfig[type] == undefined){
type = 'w';
}
const conf = this._popupConfig[type];
$.jGrowl(text,{
header: '<img src="/i/jgrowl_moover.png" alt="<>" class="jgrowl-moover" title="Передвинуть"> ' + conf[1],
glue: 'before',
life: conf[0],
sticky: conf[0] <= 0,
theme: 'msg_' + type
});
}
/* ================== перехват клика на логине/шмотке и т.п. ==================================== */
function Grabber(options){
this.options = $.extend({}, this.optionsDef, options);
this.input = null;
}
Grabber.prototype.toString = function(){
return 'This is Grabber-object';
}
Grabber.prototype.optionsDef = {
inputClass: 'grab'
}
Grabber.prototype.get = function(){
return this.input;
}
Grabber.prototype.isActive = function(){
return $(this.input).is(':visible');
}
Grabber.prototype.set = function(input){
const obj = this;
this.clear();
const tmp = $(input);
if(tmp.length > 0){
this.input = tmp.get(0);
$(this.input)
.addClass(this.options.inputClass)
.dblclick(function(){obj.toggle(this)})
.select();
return true;
}
return false;
}
Grabber.prototype.clear = function(){
$(this.input).removeClass(this.options.inputClass);
this.input = null;
},
Grabber.prototype.toggle = function(input){
if($(input).hasClass(this.options.inputClass)){
this.clear();
}else{
this.set($(input));
}
}

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -1 +0,0 @@
<script>top.location.href='/index.php';</script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,241 +0,0 @@
GIF89a`р
Т а l0 „ч]RГьБB (pИ
ШЂци#R;ЎKЅ /Р0(АCЬ
М
SPя@
4°CБ† Д1K,А#
ЬД#0°
ЊL“AєHаB9чЬАE5zи`E%E<pЃЊд0й
A7Ь!Е=ОР’Бµ
р
<0З
¶„ў
,Ы\АMшArX
¶ШДИЃ
 н№pД)4АXLb† 2аЂT,ЃС`D=ЊАЂY\a@@КАИ^f%"@@<`o€BS˜Eк`FPб   €А$! 7ЂЃґа!Аа
hЂ X@
DaСђѓ
Ђ
e`$0…<  @†и°
&$
™6CX…,ђpF`Ђ
 
КВКИr@…^pc.Ё‚€aЂЖИЄbkт‡L$AЊ(B,,@„=˜AёЕ
0 4a
c`” ;!
0@М8@0ѓl
"ш­|M2‰?  
3,@Њ`АP…7n` иl!„И Ђ ®0ЯD А pЌ*HбqЁГ: ЉS8.€БцAEАб`˜А!Ф#[h@
жШЃ а а‡9 ГYNґE@
h(рђЎ20‡ўw-$°‚˜А p
ST"°xФC‰с[PѓVЂXр8Аq€А0<@0
Y
4Ѓ—ЏzA
°Bњ`gPњ3Bp3<АB ЅX† Цp‰@°Ў|°Ђ
ђ €(иВUШ‡~0ЃњpЃ
†`Ђ=Ша„ё„ФпIА aЯИz,±n$Г?pѓ
АаЂѕ°”c@ВаҐ>ѓ
ґ#"ИЂ$шa€ м  (& l xЃя
ЉРсЩњƘАРЂ,шв
ЮЂ @
" ј0ыа Д
1`
0иqL
р
;PO@
mа р < гаЌЂ “SА6хїpkрк°„нvѓPЏр
…P—P M
˜Ђ!А‡м6
г
<а V г№@hЬрј°‡®ёkЙА J`
И`u0'АH
а_рк
6
џяp ® E
-
GаЎА РО
@@™he04 30ьPЈ%LњБ
o`
Ача
LР°М`“PWрЇ@1¦Ріc с
°
 Л@
uяЂЩ”`К0@@јj@-0Q
Ђ
ЛР0pЉ ћ@/ Ђ¦
jР Q€Б00P К@wг@p
S  саP@Lj&рCа `%P
5P
*0ђ
bP“яp’рҐтЕ«ѓ
і°
ц
.
Ћ
« «pћ``а@0дц @7Ђf°
сp6
пєX
Yа
F0 p_@Pі' ЫPAА
с
F
Q°©Я
·"р4рU% 
зЂ p 
Lp3p гP ґбЖ
¬
Эрц
р

л
ё@ЯKR ` 304@HР
,O™°Qаи
A П ї
7 ¶0 Ў@°
°
@
°А р-`JР
"ЊА™АPЬKў`  %H
"рё ; `ъјHSАСц (рp¶А
“Аc`
 Z0rа‚°° 0Аp,L
@ХWTЄ
&p РV?„=B@Ђ “p ј T`б \0«*  Mа
4я@"4ЫуS X
Є0C +t:
fP
S@ +
џа
Ю@ У`4р4@b`™°
ЭЂ<а У0ґЂ'
€Аа €Р”р Ѓ~ґp
 ѓmА @ Ч`иmо;uP…Љ/р UА
УР
Ю0°йЌНэЕiPvJЂЂ
r@аn
Р ј@dА" ёЂ ч° т q`
ЌаҐ@аr ЕP ё`T п\“°Ђ   яђЂ
ШђШР Ч7иЂ
ЃЂЫ РЩ
»Ђ
%Р‰Р2 
>PMЉ` /`
Х0БA0" »аЬ0
 ђ
С‰ы
7 
Ћ< "eЃ
%
FuВуПгGђ!EЋ$YТдI”)U®dЩТеK˜1eО¤щ±]p-ui"W+!љ!ЙV€I4Оз†4°«ѓжЃ0 agК
Ш (Е%]ЪфiФ©KѓЈ2„ 8ит*я8ЊE€Б€‡ЖI$
ђаI6адЉ.#
 b t`x@8bИД‚ё
,'‚щ 2Ћ8ЋшДЊ?к8 њx$s¦[б!•uVZ»„3ШD
f¬`c>6Ў  *P&ў CУ,<h ЏU0€†•#X@
4ЪP…вЙў\`ёбґШѓoVQd!\( DВ±'Џ$м@f{pЙdюE]Ћ;ц8%jґ
,thЈ :¤1 h@
АЄЃ [bўXАрAh8' 8pbV ! 5˜ЕpЬsW2‰#DЙ!оёжI:ИBЃОiА‰KМС Ѓe”Ђ!"Ю°@b0]”
Jс
0˜ ѓ A$P†ЊSўЇtВ
АЂ­HD АB/˜Ў  ЃI  
р
`CтE 5ААo«Б<°‰RШа
ВАЉY(I(h,d C
@ <ёаШ‚Ѓ
Ё‘Пt0n8ЋАЎг€¦#5@Ає^@ЂХЎґ
Ю0€Oґb¦±Зh
ЊгPрG9<
xрA(€!oP
0BЁ°``

"дЃ
с ё
ДЃT@b4Д§iЉp…*њ  DPѓ
T€ЂHШBEDH[а
Ђ-°Ђ,ИЂL   
@B
Xqx:аѓ_hѓIшЂ)ЁњJ“
ё„°ЂZXГ¬MЏHLFЂ…8
ИЃaРЂOИN 
 „:
иD8ѓ(`Ђ)Ё…X… ˜
˜Ђ(ЂЂpp„Ih‡`h
3@Ђ„кд…Ђ‚€‚˜ЃeРЂ/
XX„&˜7.@…яАѓ_° P„&@Ѓ# ЂBёЂ
а˜„+˜¬F€ѓ`шѓU€ѓз€f6@
F˜X`‡'ЂЂђА
8ѓjИЃ?„4 "шЂhшё°`8ZЂёЃ@Ђq`ЃшЂ4X…L †7ИлбЂ-Р
˜Ѓ\а5 °^
Ш†{ YP*Ќ«9
 °v
°ЂBXz
ЂЂ+ s?XD@I ЂЂ:(8 WxЂ&hЃp
˜
ђ
Ђ†‚! P
K&¤›Д+A т}5j №Wя6rмис#Иђ"G,iт$К”*WІlйт%̘'Ђp@LЃџ%PnрРcќИ±°"ЈfLђ˜pЉ‚ ,ћ!qzєЅБG*˜¦ШђИ,kц,ЪґjЧІmrМ¦q:КL+РџиDЬшЇP
ЌТy2 
ґЅ€%«Ґѓ­!т©`уА‰ &«к-RѓWFЊPБџЁQG гХў‰1„4аJ8!…@С
Р$`@
ў/ s|СВ&њЂG*4<б 9Р±FkЬІ$kTрД7%h0ЖљDc В8еl(­µЪєќ:$pьАKл¬sЕё¤бЂpИўF#|@…»Ир §
xs€npЎЗ.0dЎИ|А>GLа‡:sиІЖтВМJД“
0\ЃО€ D?5ґђЕлzь1И&бЖ*Ф,
7\Т‰лtRяВ2f(І^4rЉVxбG§!$Г…ЌЂрBЉФ
_‡м 
СJИQKІ-A€ІBЬC,•ь@ЖЫ@В ЎЊФЊ
Мd^мhЈЌiTcИш4sF$~Ф’
;СЂє«їѕwY\@ЊQK%EьO-2мяB:( Р€g¤аBH@'X
%А 
Р
+\в
@(B(Е)¦eA€Б5F1Ѓrђ n@E"ш
ж@aд""РГ'2P…
‹ђ4ђИ]тІ$H З$0aD@
PЂ …hA)<0
#
ALHб P&.0ѓФ` Уђ
ўД @JщѓwАЂ@П‘тТ
p†!ЂK4®(@
"РHH"…ёE~ 
 / YјЂ°ђБ%.Ѓ‡ёў$Ѕк!kAАhА:XC3
1cH"±яXД¦qмѓ®Р>†РЂ -ёЃ
%шF
J<б W
ЬвQ`ЂђаЂRвѓkа‡.\0
иaнр‡АЃPАЅћљ&Ж1
Њ1XnsxѓЊ* DгьрЂоPЏїzа 'ЅБ((°Џ—№ahжPЫ3dp%®±Ѓ;дѓCЁ„: б…B`b§ё1ј
"Ша?Ш0іє1X
ИЗ
"`qш/вр‡р
vЊ"(±ю6 фя

ш ;и„$@ oL#5АP np€%xаЇ B¶Щ°‡'иБi(A ж я
ДЈµhA2>A‡є“ћ;Z(Б ё
ЊАMX†!ЖЃTa˜`¶Qq(  z8"Ѓ 
5Фc Н Г pѓuА"KЂЖ2(Рю< WђDЄ
lГNxВ¬
†a[ШЂтЃxВP@
В иЂ#ж"ZшU pЂ"ЬЃ,
јC B7@D<@Ш
0>d@;иў8…muВ3PB4ёЂаБ$шГЊ8¬ЃґяАмђд@
ђA!d
ИL
Вм
¬?¬Ѓ6ИA!Hђ@
Ф‚,Ьd@=$ЁЉ–А(ФB xЂ*ш@;Б%ЬЂl@Ф
ъ;
јАрЃ°ѓ,р ,BHВИ
<
ь©ЉюБ p4$Г 8ЂГ8@@ЬЃTЬВ


Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1 +0,0 @@
<script>top.location.href='/index.php';</script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,241 +0,0 @@
GIF89a`р
Т а l0 „ч]RГьБB (pИ
ШЂци#R;ЎKЅ /Р0(АCЬ
М
SPя@
4°CБ† Д1K,А#
ЬД#0°
ЊL“AєHаB9чЬАE5zи`E%E<pЃЊд0й
A7Ь!Е=ОР’Бµ
р
<0З
¶„ў
,Ы\АMшArX
¶ШДИЃ
 н№pД)4АXLb† 2аЂT,ЃС`D=ЊАЂY\a@@КАИ^f%"@@<`o€BS˜Eк`FPб   €А$! 7ЂЃґа!Аа
hЂ X@
DaСђѓ
Ђ
e`$0…<  @†и°
&$
™6CX…,ђpF`Ђ
 
КВКИr@…^pc.Ё‚€aЂЖИЄbkт‡L$AЊ(B,,@„=˜AёЕ
0 4a
c`” ;!
0@М8@0ѓl
"ш­|M2‰?  
3,@Њ`АP…7n` иl!„И Ђ ®0ЯD А pЌ*HбqЁГ: ЉS8.€БцAEАб`˜А!Ф#[h@
жШЃ а а‡9 ГYNґE@
h(рђЎ20‡ўw-$°‚˜А p
ST"°xФC‰с[PѓVЂXр8Аq€А0<@0
Y
4Ѓ—ЏzA
°Bњ`gPњ3Bp3<АB ЅX† Цp‰@°Ў|°Ђ
ђ €(иВUШ‡~0ЃњpЃ
†`Ђ=Ша„ё„ФпIА aЯИz,±n$Г?pѓ
АаЂѕ°”c@ВаҐ>ѓ
ґ#"ИЂ$шa€ м  (& l xЃя
ЉРсЩњƘАРЂ,шв
ЮЂ @
" ј0ыа Д
1`
0иqL
р
;PO@
mа р < гаЌЂ “SА6хїpkрк°„нvѓPЏр
…P—P M
˜Ђ!А‡м6
г
<а V г№@hЬрј°‡®ёkЙА J`
И`u0'АH
а_рк
6
џяp ® E
-
GаЎА РО
@@™he04 30ьPЈ%LњБ
o`
Ача
LР°М`“PWрЇ@1¦Ріc с
°
 Л@
uяЂЩ”`К0@@јj@-0Q
Ђ
ЛР0pЉ ћ@/ Ђ¦
jР Q€Б00P К@wг@p
S  саP@Lj&рCа `%P
5P
*0ђ
bP“яp’рҐтЕ«ѓ
і°
ц
.
Ћ
« «pћ``а@0дц @7Ђf°
сp6
пєX
Yа
F0 p_@Pі' ЫPAА
с
F
Q°©Я
·"р4рU% 
зЂ p 
Lp3p гP ґбЖ
¬
Эрц
р

л
ё@ЯKR ` 304@HР
,O™°Qаи
A П ї
7 ¶0 Ў@°
°
@
°А р-`JР
"ЊА™АPЬKў`  %H
"рё ; `ъјHSАСц (рp¶А
“Аc`
 Z0rа‚°° 0Аp,L
@ХWTЄ
&p РV?„=B@Ђ “p ј T`б \0«*  Mа
4я@"4ЫуS X
Є0C +t:
fP
S@ +
џа
Ю@ У`4р4@b`™°
ЭЂ<а У0ґЂ'
€Аа €Р”р Ѓ~ґp
 ѓmА @ Ч`иmо;uP…Љ/р UА
УР
Ю0°йЌНэЕiPvJЂЂ
r@аn
Р ј@dА" ёЂ ч° т q`
ЌаҐ@аr ЕP ё`T п\“°Ђ   яђЂ
ШђШР Ч7иЂ
ЃЂЫ РЩ
»Ђ
%Р‰Р2 
>PMЉ` /`
Х0БA0" »аЬ0
 ђ
С‰ы
7 
Ћ< "eЃ
%
FuВуПгGђ!EЋ$YТдI”)U®dЩТеK˜1eО¤щ±]p-ui"W+!љ!ЙV€I4Оз†4°«ѓжЃ0 agК
Ш (Е%]ЪфiФ©KѓЈ2„ 8ит*я8ЊE€Б€‡ЖI$
ђаI6адЉ.#
 b t`x@8bИД‚ё
,'‚щ 2Ћ8ЋшДЊ?к8 њx$s¦[б!•uVZ»„3ШD
f¬`c>6Ў  *P&ў CУ,<h ЏU0€†•#X@
4ЪP…вЙў\`ёбґШѓoVQd!\( DВ±'Џ$м@f{pЙdюE]Ћ;ц8%jґ
,thЈ :¤1 h@
АЄЃ [bўXАрAh8' 8pbV ! 5˜ЕpЬsW2‰#DЙ!оёжI:ИBЃОiА‰KМС Ѓe”Ђ!"Ю°@b0]”
Jс
0˜ ѓ A$P†ЊSўЇtВ
АЂ­HD АB/˜Ў  ЃI  
р
`CтE 5ААo«Б<°‰RШа
ВАЉY(I(h,d C
@ <ёаШ‚Ѓ
Ё‘Пt0n8ЋАЎг€¦#5@Ає^@ЂХЎґ
Ю0€Oґb¦±Зh
ЊгPрG9<
xрA(€!oP
0BЁ°``

"дЃ
с ё
ДЃT@b4Д§iЉp…*њ  DPѓ
T€ЂHШBEDH[а
Ђ-°Ђ,ИЂL   
@B
Xqx:аѓ_hѓIшЂ)ЁњJ“
ё„°ЂZXГ¬MЏHLFЂ…8
ИЃaРЂOИN 
 „:
иD8ѓ(`Ђ)Ё…X… ˜
˜Ђ(ЂЂpp„Ih‡`h
3@Ђ„кд…Ђ‚€‚˜ЃeРЂ/
XX„&˜7.@…яАѓ_° P„&@Ѓ# ЂBёЂ
а˜„+˜¬F€ѓ`шѓU€ѓз€f6@
F˜X`‡'ЂЂђА
8ѓjИЃ?„4 "шЂhшё°`8ZЂёЃ@Ђq`ЃшЂ4X…L †7ИлбЂ