From 2289d86d71785a996b8575b61ec0aa80cc81f370 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sat, 11 Apr 2020 11:00:31 +0000 Subject: [PATCH] optimize pipes.raw menu: new menu component git-svn-id: svn://kolibrios.org@7773 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/lib/gui.h | 18 ++++ programs/cmm/lib/io.h | 30 +++++- programs/cmm/lib/ipc.h | 91 +++++++++++++++++ programs/cmm/lib/kolibri.h | 58 ++--------- programs/cmm/lib/mem.h | 26 +++++ programs/cmm/menu/Tupfile.lua | 6 ++ programs/cmm/menu/build.bat | 5 + programs/cmm/menu/menu.c | 180 +++++++++++++++++++++++++++++++++ programs/games/pipes/pipes.asm | 56 ++++------ programs/games/pipes/pipes.png | Bin 0 -> 4574 bytes programs/games/pipes/pipes.raw | 2 +- 11 files changed, 379 insertions(+), 93 deletions(-) create mode 100644 programs/cmm/lib/ipc.h create mode 100644 programs/cmm/menu/Tupfile.lua create mode 100644 programs/cmm/menu/build.bat create mode 100644 programs/cmm/menu/menu.c create mode 100644 programs/games/pipes/pipes.png diff --git a/programs/cmm/lib/gui.h b/programs/cmm/lib/gui.h index fca0560f5f..b4b28ff250 100644 --- a/programs/cmm/lib/gui.h +++ b/programs/cmm/lib/gui.h @@ -227,6 +227,14 @@ DrawPopupShadow(x,y,w,h-1,skinned); } +:void Draw3DPopup(dword x,y,w,h) +{ + DrawRectangle3D(x,y,w,h, system.color.work_dark, system.color.work_graph); + DrawBar(x+1,y+1,w-1,1,system.color.work_light); + DrawBar(x+1,y+2,1,h-2,system.color.work_light); + DrawPopupShadow(x,y,w,h-1,0); +} + :void DrawPopupShadow(dword x,y,w,h,skinned) { PutShadow(w+x+1,y,1,h+2,skinned,2); @@ -291,6 +299,16 @@ PutPixel(x+w+1, y+h, dark); } +:bool is_the_skin_dark() +{ + dword bg_col = system.color.work; + if (GrayScaleImage(#bg_col,1,1)<65) { + return true; + } else { + return false; + } +} + //this function increase falue and return it //useful for list of controls which goes one after one :struct incn diff --git a/programs/cmm/lib/io.h b/programs/cmm/lib/io.h index 29c8b1ccd9..2d99721bb4 100644 --- a/programs/cmm/lib/io.h +++ b/programs/cmm/lib/io.h @@ -216,6 +216,28 @@ return NULL; } +:void get_path_name(dword BUF,PATH) +{ + dword beg = PATH; + dword pos = PATH; + dword sav = PATH; + dword i; + while(DSBYTE[pos]) + { + if(DSBYTE[pos]=='/')sav = pos; + pos++; + } + i = sav-beg; + while(i) + { + DSBYTE[BUF] = DSBYTE[beg]; + beg++; + BUF++; + i--; + } + DSBYTE[BUF] = 0; +} + :struct __PATH { dword file(...); @@ -225,14 +247,18 @@ :char __PATH_NEW[4096]; :dword __PATH::path(dword PATH) { + char self_dir[4096]; dword pos; - if(!PATH) return self.dir; + + get_path_name(#self_dir,I_Path); + + if(!PATH) return #self_dir; pos = PATH; if(DSBYTE[pos]=='/') || (!strncmp(PATH,"./",2)) { return PATH; } - strcpy(#__PATH_NEW, self.dir); + strcpy(#__PATH_NEW, #self_dir); chrcat(#__PATH_NEW, '/'); strcpy(#__PATH_NEW, PATH); return #__PATH_NEW; diff --git a/programs/cmm/lib/ipc.h b/programs/cmm/lib/ipc.h new file mode 100644 index 0000000000..986866c8c8 --- /dev/null +++ b/programs/cmm/lib/ipc.h @@ -0,0 +1,91 @@ +#ifndef INCLUDE_IPC_H +#define INCLUDE_IPC_H + +/* + +====================================================================== +=========== Функция 60 - Inter Process Communication (IPC). ========== +====================================================================== +IPC применяется для посылок сообщений от одного процесса/потока +другому. При этом следует предварительно договориться о том, как +интерпретировать конкретное сообщение. + +-------- Подфункция 1 - установить область для получения IPC --------- +Вызывается процессом-приёмником. +Параметры: + * eax = 60 - номер функции + * ebx = 1 - номер подфункции + * ecx = указатель на буфер + * edx = размер буфера +Возвращаемое значение: + * eax = 0 - всегда успешно +Формат IPC-буфера: + * +0: dword: если здесь не 0, то буфер считается заблокированным; + блокируйте/разблокируйте буфер, когда вы с ним активно работаете + и вам надо, чтобы извне не изменялись данные буфера + (не поступали новые сообщения) + * +4: dword: занято места в буфере (в байтах) + * +8: первое сообщение + * +8+n: второе сообщение + * ... +Формат сообщения: + * +0: dword: PID процесса/потока, пославшего сообщение + * +4: dword: длина сообщения (не считая этот заголовок) + * +8: n*byte: данные сообщения + +--------------- Подфункция 2 - послать сообщение IPC. ---------------- +Вызывается процессом-инициатором. +Параметры: + * eax = 60 - номер функции + * ebx = 2 - номер подфункции + * ecx = PID приёмника + * edx = указатель на данные сообщения + * esi = длина сообщения (в байтах) +Возвращаемое значение: + * eax = 0 - успешно + * eax = 1 - приёмник не определил буфер для IPC-сообщений + (может быть, ещё не успел, а может быть, это не тот поток, + который нужен) + * eax = 2 - приёмник заблокировал IPC-буфер; + попробуйте немного подождать + * eax = 3 - переполнение IPC-буфера приёмника + * eax = 4 - процесса/потока с таким PID не существует +Замечания: + * Система сразу после записи IPC-сообщения в буфер посылает + потоку-приёмнику событие с кодом 7 (см. коды событий). + +---------------------- Константы для регистров: ---------------------- + eax - SF_IPC (60) + ebx - SSF_SET_AREA (1), SSF_SEND_MESSAGE (2) + + */ + +inline fastcall void IpcSetArea(ECX, EDX) +{ + $eax, 60 + $ebx, 1 + // ecx = указатель на буфер + // edx = размер буфера + $int 64 + // eax = 0 - всегда успешно +} + +inline fastcall int SendIpcMessage(ECX, EDX, ESI) +{ + $eax, 60 + $ebx, 2 + // ecx = PID приёмника + // edx = указатель на данные сообщения + // esi = длина сообщения (в байтах) + $int 64 + // eax = 0 - успешно + // eax = 1 - приёмник не определил буфер для IPC-сообщений + // (может быть, ещё не успел, а может быть, это + // не тот поток, который нужен) + // eax = 2 - приёмник заблокировал IPC-буфер; + // попробуйте немного подождать + // eax = 3 - переполнение IPC-буфера приёмника + // eax = 4 - процесса/потока с таким PID не существует +} + +#endif \ No newline at end of file diff --git a/programs/cmm/lib/kolibri.h b/programs/cmm/lib/kolibri.h index 0f2b8a6d13..153fdccc80 100644 --- a/programs/cmm/lib/kolibri.h +++ b/programs/cmm/lib/kolibri.h @@ -661,67 +661,17 @@ inline fastcall dword GetStartTime() DrawBar(x+37,y+10,2,2,color); } -:void __path_name__(dword BUF,PATH) -{ - dword beg = PATH; - dword pos = PATH; - dword sav = PATH; - dword i; - while(DSBYTE[pos]) - { - if(DSBYTE[pos]=='/')sav = pos; - pos++; - } - i = sav-beg; - while(i) - { - DSBYTE[BUF] = DSBYTE[beg]; - beg++; - BUF++; - i--; - } - /*while(DSBYTE[beg]) - { - DSBYTE[BUF1] = DSBYTE[beg]; - beg++; - BUF1++; - }*/ - //DSBYTE[BUF1] = 0; - DSBYTE[BUF] = 0; -} -char __BUF_DIR__[4096]; -:struct SELF -{ - dword dir; - dword file; - dword path; -} self; - -dword __generator; // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë - -:dword program_path_length; +dword __generator; // random number generator init //The initialization of the initial data before running void ______INIT______() { - //if (program_path[0]!='/') I_Path++; - - self.dir = #__BUF_DIR__; - self.file = 0; - self.path = I_Path; - __path_name__(#__BUF_DIR__,I_Path); - skin_height = GetSkinHeight(); screen.width = GetScreenWidth()+1; screen.height = GetScreenHeight()+1; - - __generator = GetStartTime(); - + __generator = GetStartTime(); mem_init(); - - main(); - ExitProcess(); } ______STOP______: #endif @@ -732,4 +682,8 @@ ______STOP______: #ifndef INCLUDE_DEBUG_H #include "../lib/debug.h" +#endif + +#ifndef INCLUDE_IPC_H +#include "../lib/ipc.h" #endif \ No newline at end of file diff --git a/programs/cmm/lib/mem.h b/programs/cmm/lib/mem.h index e5c2dccc0a..ef93332a44 100644 --- a/programs/cmm/lib/mem.h +++ b/programs/cmm/lib/mem.h @@ -98,7 +98,33 @@ L2: } } +inline fastcall dword memopen(ECX, EDX, ESI) +{ + $push ebx + $mov eax, 68 + $mov ebx, 22 + // ecx = area name, 31 symbols max + // edx = area size for SHM_CREATE SHM_OPEN_ALWAYS + // esi = flags, see the list below: + #define SHM_OPEN 0x00 + #define SHM_OPEN_ALWAYS 0x04 + #define SHM_CREATE 0x08 + #define SHM_READ 0x00 + #define SHM_WRITE 0x01 + $int 0x40 + $pop ebx + // eax, edx - please check system documentation +} +inline fastcall dword memclose(ECX) +{ + $push ebx + $mov eax, 68 + $mov ebx, 23 + $int 0x40 + $pop ebx + // eax destroyed +} #define mem_Alloc malloc #define mem_ReAlloc realloc diff --git a/programs/cmm/menu/Tupfile.lua b/programs/cmm/menu/Tupfile.lua new file mode 100644 index 0000000000..8862498b44 --- /dev/null +++ b/programs/cmm/menu/Tupfile.lua @@ -0,0 +1,6 @@ +if tup.getconfig("NO_CMM") ~= "" then return end +if tup.getconfig("LANG") == "ru" +then C_LANG = "LANG_RUS" +else C_LANG = "LANG_ENG" -- this includes default case without config +end +tup.rule("menu.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "menu.com") diff --git a/programs/cmm/menu/build.bat b/programs/cmm/menu/build.bat new file mode 100644 index 0000000000..1530c5ce65 --- /dev/null +++ b/programs/cmm/menu/build.bat @@ -0,0 +1,5 @@ +@del menu +@c-- menu.c +@rename menu.com menu +@del warning.txt +@pause \ No newline at end of file diff --git a/programs/cmm/menu/menu.c b/programs/cmm/menu/menu.c new file mode 100644 index 0000000000..5871bd6587 --- /dev/null +++ b/programs/cmm/menu/menu.c @@ -0,0 +1,180 @@ +#define MEMSIZE 4096*40 + +#include "../lib/io.h" +#include "../lib/gui.h" +#include "../lib/collection.h" +#include "../lib/list_box.h" +#include "../lib/fs.h" + +#define ITEM_H 19 + +llist menu1; +collection names; +collection hotkeys; +dword shared_mem; + +int win_x, win_y; + +int max_name_len; +int max_hotkey_len; + +int selected = 0; + +dword cur_param = #param; +int GetNextParam() +{ + int result; + dword next_param = strchr(cur_param, ' '); + ESBYTE[next_param] = '\0'; + result = atoi(cur_param); + cur_param = next_param+1; + return result; +} + +void GetWindowPosition() +{ + int position; + shared_mem = GetNextParam(); + debugval("shared_mem", ESDWORD[shared_mem]); + win_x = GetNextParam(); + win_y = GetNextParam(); + selected = GetNextParam(); + position = GetNextParam(); + if (position==2) win_x -= menu1.w; + if (position==3) { + win_x -= menu1.w; + win_y -= menu1.h; + } + if (position==4) win_y -= menu1.h; +} + +void GetMenuItems(dword current_name) +{ + dword next_name = strchr(current_name, '\n'); + dword hotkey = strchr(current_name, '|'); + + ESBYTE[next_name] = '\0'; + + if (hotkey) && (hotkey < next_name) { + ESBYTE[hotkey] = '\0'; + } else { + if (hotkey) && (!next_name) { + ESBYTE[hotkey] = '\0'; + } else { + hotkey = " "; + } + } + + hotkeys.add(hotkey+1); + names.add(current_name); + + if (next_name) GetMenuItems(next_name+2); +} + +void main() +{ + proc_info Form; + + GetMenuItems(strchr(#param, '\n') + 2); + max_name_len = strlen(names.get(0)) * 6; + max_hotkey_len = strlen(hotkeys.get(0)) * 6; + + //selected = ESDWORD[shared_mem]; + + menu1.count = names.count; + menu1.SetFont(6, 9, 0x80); + menu1.SetSizes(2,2, max_name_len + max_hotkey_len + 23, menu1.count*ITEM_H, ITEM_H); + menu1.cur_y = -1; + + GetWindowPosition(); + + SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE); + loop() switch(WaitEvent()) + { + case evMouse: + GetProcessInfo(#Form, SelfInfo); + if (!CheckActiveProcess(Form.ID)) exit(); + mouse.get(); + if (menu1.ProcessMouse(mouse.x, mouse.y)) draw_list(); + if (mouse.lkm)&&(mouse.up) click(); + break; + + case evKey: + GetKeys(); + ProcessKeys(); + break; + + case evReDraw: + DefineAndDrawWindow(win_x, win_y, menu1.w+4, menu1.h+3, 0x01, 0, 0, 0x01fffFFF); + system.color.get(); + Draw3DPopup(0,0,menu1.w+2,menu1.h+2); + draw_list(); + } +} + +void ProcessKeys() +{ + switch(key_scancode) + { + case SCAN_CODE_ESC: + exit(); + + case SCAN_CODE_ENTER: + click(); + + case SCAN_CODE_DOWN: + if (!menu1.KeyDown()) menu1.KeyHome(); + draw_list(); + break; + + case SCAN_CODE_UP: + if (!menu1.KeyUp()) menu1.KeyEnd(); + draw_list(); + break; + + default: + if (menu1.ProcessKey(key_scancode)) draw_list(); + } +} + +void draw_list() +{ + int i, item_y; + + dword active_background_color = MixColors(system.color.work_button, system.color.work,230); + dword active_top_border_color = MixColors(system.color.work_graph, system.color.work_button,240); + dword inactive_text_shadow_color = MixColors(system.color.work,0xFFFfff,150); + dword text_color; + bool skin_dark = is_the_skin_dark(); + + for (i=0; i mov ebx,0x50000 mov ecx,[score] if lang eq et @@ -407,23 +398,23 @@ pusha cmp ebx,0 jz .nowcolor mov ebx,eax - cmp ebx,0x00B0B5B0 + cmp ebx,0x00B0B4B0 jne .nog1 jmp .wcolor .nog1: - cmp ebx,0x00A0A5A0 + cmp ebx,0x00A0A4A0 jne .nog2 jmp .wcolor .nog2: - cmp ebx,0x00909590 + cmp ebx,0x00909490 jne .nog3 jmp .wcolor .nog3: - cmp ebx,0x00808580 + cmp ebx,0x00808480 jne .nog4 jmp .wcolor .nog4: - cmp ebx,0x00707570 + cmp ebx,0x00707470 jne .nowcolor jmp .wcolor .wcolor: @@ -453,22 +444,17 @@ pusha cmp [stat],3 jne .stat1 - mov eax,4 - mov ebx,159 shl 16 +202 - mov edx,lbl_new_game + mov ecx,btcolor or ecx,0xB0000000 - mcall + mcall 4, <159,202>,,lbl_new_game jmp .nomessage .stat1: cmp [stat],1 je .winmessage - mov eax,4 - mov ebx,170 shl 16 +196 - mov edx,lbl_gameover mov ecx,btcolor OR 0xB0000000 - mcall + mcall 4, <170,196>, , lbl_gameover add ebx,8 shl 16 +17 mov edx,lbl_yscore mcall @@ -481,12 +467,9 @@ pusha mcall jmp .nomessage .winmessage: - mov eax,4 - mov ebx,124 shl 16 +194 - mov edx,lbl_win mov ecx,btcolor or ecx,0xB0000000 - mcall + mcall 4, <124,194>, , lbl_win add ebx,17 add edx,lbl_win2-lbl_win mcall @@ -515,10 +498,7 @@ pusha pop edx push ebx push ecx - mov eax,7 - mov ebx,0x10000 - mov ecx,32 shl 16 +32 - mcall + mcall 7, 0x10000, <32,32> pop ecx pop ebx add edx,33 shl 16 @@ -563,7 +543,7 @@ pusha mov ebx,18 shl 16 +395 mov edx,lbl_score mcall - mov ebx,340 shl 16 +405 + mov ebx,360 shl 16 +405 mov ecx,fg3color mov edx,lbl_copy mcall @@ -584,7 +564,6 @@ lbl_win db ' T u b l i ! ',0 lbl_win2 db ' Lähme edasi! ',0 lbl_yscore db 'Sinu tulemus:',0 lbl_toolbar db 'Uus mäng: Lihtne Keskmine Raske',0 -lbl_copy db 'v1.41 2006,Mario Birkner',0 lbl_score db ' Aeg: Tulemus: Tase:',0 else lbl_title db 'Pipes',0 @@ -594,10 +573,11 @@ lbl_win db ' G r e a t ! ',0 lbl_win2 db " Let's keep going! ",0 lbl_yscore db 'Your Score:',0 lbl_toolbar db 'New Game: Easy Normal Hard',0 -lbl_copy db 'v1.41 2006,Mario Birkner',0 lbl_score db 'Time: Score: Level:',0 end if +lbl_copy db '2006, Mario Birkner',0 + ;================================================= ; DATA - VARS ;================================================= diff --git a/programs/games/pipes/pipes.png b/programs/games/pipes/pipes.png new file mode 100644 index 0000000000000000000000000000000000000000..ede9cdbd558e4128771f6c517efc2319492883a4 GIT binary patch literal 4574 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 IM6N<$f*eb&oB#j- literal 0 HcmV?d00001 diff --git a/programs/games/pipes/pipes.raw b/programs/games/pipes/pipes.raw index c225f610e6..b83a449402 100644 --- a/programs/games/pipes/pipes.raw +++ b/programs/games/pipes/pipes.raw @@ -1 +1 @@ -zsZgrfc[@@@@@@puppup@@@@@@uqwamqy]yco{bYmd@@@@@@puppup@@@@@@]v[eqhf`[irgksqY@@@@@@puppup@@@@@@shnfkynwouv^pxwY@@@@@@puppup@@@@@@ntsgaeX`xyc\eufh@@@@@@puppup@@@@@@^lyxfwuzzZdcwYno@@@@@@puppup@@@@@@]zfrcsftmsloajkY@@@@@@puppup@@@@@@xncxig^\uhyvoWrd@@@@@@puppup@@@@@@_rs`_kW__{ccZq]c@@@@@@puppup@@@@@@gkW_\cokeXtZthm^@@@@@@puppup@@@@@@f]eg\jZYbZmwqcif@@@@@@puppup@@@@@@xgYvrok[Yfq_rs`_@@@@@@puppup@@@@@@j]WwscnyfYlwutdd@@@@@@puppup@@@@@@pnpZ]ztey\jvouZp@@@@@@puppup@@@@@@q^oWnxZYZ`aXnZw_@@@@@@puppup@@@@@@njm\q{fZj]jewuq`@@@@@@puppup@@@@@@_wtlX^tcbe[[Zjkr@@@@@@puppup@@@@@@`cqafx`yjuvx^[dq@@@@@@puppup@@@@@@eu[t^exhnj\gnk]\@@@@@@puppup@@@@@@YdW]ilt\`^o`oqeW@@@@@@puppup@@@@@@rpwp`qb\XsvZgufh@@@@@@puppup@@@@@@vxmXZrxmn`Xvz[g\@@@@@@puppup@@@@@@whvf^tcifxZ]pt_{@@@@@@puppup@@@@@@{^tihkm]_cmmdzct@@@@@@puppup@@@@@@bpdtwewXjpYqhamm@@@@@@puppup@@@@@@f{xYahlX\lwj_g]_@@@@@@puppup@@@@@@W{s{WjrZn`Xvz[g\@@@@@@puppup@@@@@@whvf^tciwm_Zmslo@@@@@@puppup@@@@@@Yx^bxncxvgvffwme@@@@@@puppup@@@@@@ccndid_lpua]pjXX@@@@@@puppup@@@@@@XvwaaWjZdmZnqvfh@@@@@@puppup@@@@@@ikywnbhjZWizsZgr@@@@@@puppup@@@@@@brfuqwameZ`aXnZw_vepfnioypo{zieX^njm\q{fnngXugych{lj{X^zYugsimdwc{q{yYrfhY`swsxY[mg[xauceY_s]j_pXb[jjnfwmXZrxmtgXljjWq^oWnxZYle]eaikriZunuk{Xcunlejn_bakwzglrfv_^avlrvxZ^ehqnbhyfxj\z`xaihb^riZk{Y\iogexYydsilZc^uWwm_ZmsloajkYy]m^jm[_onbhjXlyqu_upvzynYtjct\\sipjmtq\h@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@puppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppup@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YskcYn]Xy[itfWzvecn_cmmdzctWqYl\jotki_`]xvqb[zbj]pyz]ck_vhXz]jzubvu`ahlqZwt`xZntxd^weibs^^lc]vztuoxqhgxf[]tkhxq[urvqanv_vXgemhplldtuZ_wtlX^tc^zqxXWq[zp`pZ{f[e^xiltj[[ppjtamf\tzW{s{WjrZgk\xb`qskcwibi\]\imwccadwpljpujy]p][jvqkaY[hnaequj]jewuq`y[{\gmrX]gildtuh\f]zfrc@@@@@@puppup@@@@@@WlnwomsYkm]oYdm{@@@@@@puppup@@@@@@pwz^d^hf[rZ_tWjv@@@@@@puppup@@@@@@hu{yXWg_qcqdvgYm@@@@@@puppup@@@@@@`ahlqZwtlpqZ`d_v@@@@@@puppup@@@@@@{mprhmcaseivxjX\@@@@@@puppup@@@@@@^ku]{xjXqy[_upjj@@@@@@puppup@@@@@@trx_oscmX_aylo^s@@@@@@puppup@@@@@@@@@wYnovqeZjcsgq]p@@@@@@puppuppup@@@@@@@@@@@@@@@@@@@@@@@@@@@{c]bpgpc@@@@@@puppuppup@@@@@@@@@@@@@@@@@@@@@@@@d^Zq_hiY@@@@@@puppuppuppuppuppuppuppuppuppuppupZWjY\hyt@@@@@@@@@puppupWkiq\kw]j@@@@@@@@@puppuphfnmo^ebiZ@@@@@@@@@puppup_kW_^t[mqje@@@@@@@@@puppupnzcpqt^bmiZl@@@@@@@@@puppupauYzqv`mzqfeZ@@@@@@@@@puppupaepiepknhmWplj@@@@@@@@@puppup]jco{zZd_zeyiZZ@@@@@@@@@puppupltu`Zyht`hrWqfee@@@@@@@@@puppupw{pd`tkfl_ugmWpll@@@@@@@@@puppupcmpzocuWi`\ZtbxjbZ@@@@@@@@@puppuppuppuppuppuppuppuppuppuppupn{XsupzoqfemphrWqfe@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Zyhtz[lfmWpls_ugmWpl@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@qxotbgq_Zncwl]aan_hWZd{ZXqslq[khw\w`iuyly{m{tjeuzkfkW^cj_yepcrm\aYwxyf[[hXppucpYcWnijZ]ca[iqqZ]fmynZoh_etszd`oizp_mqYqbsy_vZd_o]qa{nxru^zuo`Z{eqq^o\\_pglux`vtYzykXt[[p`[pctyzpvtt^khhgqopjdgWdf]ysxnsj\lzukhZk`^[ewyip]^jX_Yjmrvdud_zjZfoWftdnmbmb]tYcpsj\vmv{cqxotbgq_Zncwl]aan_hWZd{ZXqslq[khw\w`iuyly{m{tjeuzkfkW^cj_yepcrm\aYwxyf[[hXppucpYcWnijZ]ca[iqqZ]fmynZoh_etszd`oizp_mqYqbsy_vZd_o]qa{nxru^zuo`Z{eqq^o\\_pglux`vtYzykXt[[p`[pctyzpvtt^khhgqopjdgWdf]ysxnsj\lzukhZk`^[ewyip]^jX_Yjmrvdud_zjZfoWftdnmbmb]tYcpsj\vmv{cgyp^\olimqil`_hzmqij@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@tqzwhbpYWf`_hzmqijZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@zvoegeqtpe\ureWfZe@@@@@@@@@puppuppuppuppuppuppuppuppuppuppup]lvilyZflmZgWypel@@@@@@@@@puppupp]gbW\`[sptmqilZ@@@@@@@@@puppuppcvsajdX_hbWfZj@@@@@@@@@puppupmaf^kv_iurxpeZ@@@@@@@@@puppupfof^uovigWjle@@@@@@@@@puppupbpwlwu\amqbl@@@@@@@@@puppupq\mcjZkuWfZ@@@@@@@@@puppupxge]speYpe@@@@@@@@@puppupgqsva_xzl@@@@@@@@@puppupzxizgv^q@@@@@@@@@puppup]qjtjx^v@@@@@@puppuppuppuppuppuppuppuppuppuppupzzmr`mk`@@@@@@puppuppup@@@@@@@@@@@@@@@@@@@@@@@@_hzt[X\m@@@@@@puppuppup@@@@@@@@@@@@@@@@@@@@@@@@@@@urebyZtb@@@@@@puppup@@@@@@@@@t^{`hpWgWyxyrrY@@@@@@puppup@@@@@@wrkmauwlmqijXxxr@@@@@@puppup@@@@@@Yxuph{znWfZbZm_v@@@@@@puppup@@@@@@n_]rly^wpe]sutou@@@@@@puppup@@@@@@oo{hqXdolmm]ggs^@@@@@@puppup@@@@@@vsxmZW^mspYtuXc{@@@@@@puppup@@@@@@qcjcwghskkytwlmf@@@@@@puppup@@@@@@emXat_fYkslpWmgu_z]zgxqbfmpp]ztgv]yqmawqkpmefqWrhzqxqg\poac]lvqydykayY\xyYm]ZiyezmjisemwffvgvozpusX{nwwott]sbjxbtrtzv]cl^^sbiew^dxtnZx`twuguZXyy[`jgasjwukaWlgh\_n[xoyiblXgtmxrZXmxv_pZuovj\yebozs[rhfugmcso_xrt\k^^xek\v_d`Zqpljjpu_[yqf{^uvrYbm`vqzYuaiiX[ftYiZ\`^e[l_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@lpWmgu_slpWmfl[zthyZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@efqWrhpmefqozpusX{npuppuppuppuppuppuppuppuppuppuppup@@@@@@@@@ZbjxbtZ\`iWucozpmcpuppup@@@@@@@@@llpWmgu_lfkt`dp{wĐpuppup@@@@@@@@@eefqWrh`thyZ`utlpuppup@@@@@@@@@ZZiyez_dZz{ocj]puppup@@@@@@@@@jlpWmhnkpeipeapuppup@@@@@@@@@Zefqzm`vqzYuapuppup@@@@@@@@@lZimb^tqpcznpuppup@@@@@@@@@ejqm[t^_Wk_puppup@@@@@@@@@Zibe^omnfhpuppup@@@@@@@@@j]wk\qikWpuppup@@@@@@@@@tyh\YjWZpuppuppuppuppuppuppuppuppuppuppup@@@@@@Yih_qZ^d@@@@@@@@@@@@@@@@@@@@@@@@puppuppup@@@@@@cpgpb]c{@@@@@@@@@@@@@@@@@@@@@@@@@@@puppuppup@@@@@@p]qgscjZeqvonYw@@@@@@@@@puppup@@@@@@s^olya_Xmcso_xrt@@@@@@puppup@@@@@@jjpu_[yqXjx{]uk^@@@@@@puppup@@@@@@\Xjxviesacmhrpm{@@@@@@puppup@@@@@@v_d`ZqpltwZqlha`@@@@@@puppup@@@@@@mYgvdqcq_gWXy{uh@@@@@@puppup@@@@@@vjWt_Zr[fh^d^zwp@@@@@@puppup@@@@@@{mdYo]mkYsmownlW@@@@@@puppup@@@@@@crfz]f\hYf_taXme@@@@@@puppup@@@@@@fmlwtykkshgwcjcq@@@@@@puppup@@@@@@{cXutYpsm^WZmxsv@@@@@@puppup@@@@@@^sgg]mmlodXqh{oo@@@@@@puppup@@@@@@uotus]epw^ylr]_n@@@@@@puppup@@@@@@v_mZbZfWnz{hpuxY@@@@@@puppup@@@@@@rxxXjiqmlwuamkrw@@@@@@puppup@@@@@@YrryxyWgWph`{^t@@@@@@@@@puppup@@@@@@btZyberu@@@@@@@@@@@@@@@@@@@@@@@@@@@puppuppup@@@@@@m\X[tzh_@@@@@@@@@@@@@@@@@@@@@@@@puppuppup@@@@@@`km`rmzzpuppuppuppuppuppuppuppuppuppuppup@@@@@@v^xjtjq]puppup@@@@@@@@@b^vgzixzǐpuppup@@@@@@@@@ljx_avsqgpuppup@@@@@@@@@epxeps]egxŠpuppup@@@@@@@@@ZfWbkZjcm\qpuppup@@@@@@@@@lbqmtykklwpbpuppup@@@@@@@@@eljWgZYps^fofpuppup@@@@@@@@@Zepxru\mml^fampuppup@@@@@@@@@jZfWbh_`]epsvcppuppup@@@@@@@@@ZliqmtpsbZfWbg]ppuppup@@@@@@@@@lepyWgZmljiqmivl]puppuppuppuppuppuppuppuppuppuppup@@@@@@@@@eZfWeru\epxyWgeovz@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Zjiqmzh_`fWberuwzqt@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@jiqmzh_`liqmtzh_^pygc{vmv\jspcYt]botus]epyWgZjz_dudvrmjY_Xj^]piywe_mZbZfWeru\jsnxsy]fdWgdjpoqghhk^xxXjiqmzh_`p[[tXkyzYtv`xulgp_\\orryxyWgouz^urxn{aq]o_dZv_ysbqYqmtZyberuzste_hoZnymf]Zqqi[ac]Zjin\X[tzh_pXh[[fyxwYa\mrcpey_jc^Wkfkzuejt{m{ylyui`w\whk[qlsqXZ{dZWh_naa]lwcnZ_qgbtoxqh\f]zfrc@@@@@@puppup@@@@@@WlnwomsYkm]oYdm{@@@@@@puppup@@@@@@pwz^d^hf[rZ_tWjv@@@@@@puppup@@@@@@hu{yXWg_qcqdvgYm@@@@@@puppup@@@@@@`ahlqZwtlpqZ`d_v@@@@@@puppup@@@@@@{mprhmcaseivxjX\@@@@@@puppup@@@@@@^ku]{xjXqy[_upjj@@@@@@puppup@@@@@@trx_oscmX_aylo^@@@@@@@@@puppup@@@@@@@@@wYnovqe@@@@@@@@@@@@@@@@@@@@@@@@@@@puppuppuppup@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@puppuppuppup@@@@@@@@@@@@@@@@@@@@@@@@puppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppuppup@@@@@@@@@@@@@@@@@@@@@@@@puppuppuppup@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@puppuppuppup@@@@@@@@@@@@@@@@@@@@@@@@@@@_l[e^`\@@@@@@@@@puppup@@@@@@@@@Yrvu^{fqy[_upjj@@@@@@puppup@@@@@@trx_oscmgufhr[sz@@@@@@puppup@@@@@@ZrxmtgXlbiyox[n_@@@@@@puppup@@@@@@yyXZuguwt`xZntxd@@@@@@puppup@@@@@@bxjbs]ttowwn{Xsu@@@@@@puppup@@@@@@eyiZ]mYyx\Yyakyd@@@@@@puppup@@@@@@rWqfempkqwamqy]v@@@@@@puppup@@@@@@ugmWplsk_v\kex^^k\trx_oscm{mprhmcacZlWcciduv^`kyw[pdzZz\mYowbcdvwnYlp_[gsbt[jr[ryrvseivxX\q][irgksqqY{kwb_`Xchhli vBAADCDDEEFFFFFFEEECDDAAA^ cghWWqlrgk\cWXzgp HGHJKKMMMOOONNOMMMKJJGHH plxx^[dqm_anjcc @@@@@@ STSWWVYYYYYXWVWTSS @@@@@@ iXXvew\y]{vgq @@@```@@@@@@ ^^^bbbdeeedeabb^^] @@@@@@```@@@ bbxectt_{rWi @@@@@@```@@@ mmnqpqqqqmmn @@@```@@@@@@ ooYdm{wuoX\{^ @@@@@@@@@@@@ yyz}}}}}}zyz @@@@@@@@@@@@ vuuYjsirok[paAABHHH @@@@@@ @@@@@@ HHGAAAsshyxzgvffwmDCCKJKSTT^^^ ^^^STTJKKCDDiid_l[uv^pxwEEEMMMVVVbbammmyyz yyynnnbbbWWWMMMEEEaaeX`lljrrkrFFFOOOYYYdedqpp}}} }}~qqpeddYYYONNFFFtthudefq[nWuFFFNOOYYYdeeqqp~}} }}}qpqeddXXYNOOFFFkj]m`s`lbyslEDEMMMVWVbabmmmzzy yzznnmbbbWWWMMMEEElk__gz]k`ivgCCCJJKTTS^]^ ^^^SSSKKJDDCWlYtiqW\feufABAGGG @@@@@@ @@@@@@ GHHAABfWobh]yc\e`yv @@@@@@@@@@@@ zyz}}}}}}yyy @@@@@@@@@@@@ ^mfwuzxjfgyqv @@@@@@```@@@ nmmqqqqqqnmn @@@```@@@@@@ bmjnpidm{akr @@@```@@@@@@ ^]^abbdeedddbbb^^^ @@@@@@```@@@ obYp[^]eaiZyi @@@@@@ TTSVWVYYYYXYVWWTSS @@@@@@ cnoajkYr[vw[rlp HHGJJKMMMNNOONNMMMJKKGHG pgmnqvfhZ\safehg@@@ @@@ABBCCCEEEFFFFFFEEECCCBBA@@@ @@@lhomr`{svXW\a[si@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y{iozWobvtp^a[si@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y{irkYoyk\a^bvu`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@eibs^^lcpkwqeZ_X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@qczjWqf^bh]\Wemd@@@@@@@@@@@@@@@@@@@@@@@@lj\mufvjlfpjnuk{@@@@@@puppup@@@@@@rfv_^avl_{rWin_f@@@@@@puppup@@@@@@m]oYdm{apXfrxnwd@@@@@@puppup@@@@@@qvc`po][^]m^qu^k@@@@@@puppup@@@@@@l]caop\g_v\keu^k@@@@@@puppup@@@@@@l]calWcc^c{cax^k@@@@@@puppup@@@@@@lacZznwe^ku]{]jb@@@@@@puppup@@@@@@]hfmsmhu]g{juxjX@@@@@@puppup@@@@@@\Wg]l_kuavYum\ef@@@@@@puppup@@@@@@dZe^hsY]`z[sdjpw@@@@@@@@@@@@@@@@@@@@@@@@{YbdvlWxngr\eZe^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@tjZvr\gcrpwp`z]j@@@@@@@@@@@@@@@@@@@@@@@@@@@===@@@@@@@@@@@@@@@@@@q\g\\pwksuxhhqb\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@okqjpZetalbrfjar@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ahZsz_ug]jp[yehgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAghz][^_a{dr{`rlpAAAAAAAAAAAACCCFFFHGGIHHIHHHGGFFFCCCAAAAAAAAAAAApld^gxYmZpv]gyi^AAAAAACBCHHHLLMPPPSSRSSTSSTSSRPPPLLMHHHCBCAAAAAA^ivu\_hgkluhyr]`AAADDDJJJQQQXWW\]]```aaaaaa```\]]XWWQQQJJJDDDAAA`]zns`_kYtjctvhAAABBCJJJRSS\[[ddcjjkooopqppqpooojjkddc\[[RSSJJJBBCAAAh_rlWak^exhWypAAAGHHQQQ[\\ffgqppyyy~~~~~~yyyqppffg[\\QQQGHHAAAphgZmj^gqczjfAAACCDLLMXWWdddppp||||||pppdddXWWLLMCCDAAAh^fZakc{q{ygAAAFFEPPP]]\jjjxxxxxxjjj]]\PPPFFEAAA]e{iaWcpqt^lAAAHHGSRR```ono}~~}~~ono```SRRHHGAAAxkf\tz[^gZ\u@@@IIHTSSbaappppppbaaTSSIIH@@@ambrmrpYqhar@@@IIHTSSbaappppppbaaTSSIIH@@@WZhlX^ssecuwAAAHHGSRR```ono}~~}~~ono```SRRHHGAAAYa{hwZnqa{qmAAAFFEPPP]]\jjjxxxxxxjjj]]\PPPFFEAAAiq`ybulmXp[aAAACCDLLMXWWdddppp||||||pppdddXWWLLMCCDAAA{^WjvZh`Xf^{pAAAGHHQQQ[\\ffgqppyyy~~~~~~yyyqppffg[\\QQQGHHAAAp_lWXzgs{]_`ihAAABBCJJJRSS\[[ddcjjkooopqppqpooojjkddc\[[RSSJJJBBCAAAh^cX^nj[e^xlq]`AAADDDJJJQQQXWW\]]```aaaaaa```\]]XWWQQQJJJDDDAAA`]ieoe`{ofpdXci^lAAACBCHHHLLMPPPSSRSSTSSTSSRPPPLLMHHHCBCAAAl^iW\ltXo_{d^\zlp]^AAAAAACCCFFFHGGIHHIHHHGGFFFCCCAAAAAA^]plmY]xvqug^xyhhgc]][AAAAAAAAA@@@@@@AAAAAAAAA[]]cgh_`lyxf^hfbYp[^efsZddxZ_l]nka\]X]]ijpdgtYvzxtm_anjccv[eojrZe[ebgtWahbYc{XydquglftmYd]`gZkr{ldwWerhgrzmkhwzuis`eda\a^^q[yYvmq^\wpzktsk{ckpjlXewg]xkrje`{apwWYkl\l`^y\Wkhbd]Zzdchwp]oveZXgz_wc{hjdZyeZc`e^y{Zcp^[luspzg_pyw_eqt{^e{XydqugYgqfyzuZpWzqkeivnkrWYu_ZsWpn{bwd{xy_wxb\WxYikd_ff`soti^]a{mYqmlhxkrje`{apwWYkl\l`^y\Wkhftqt^XuvcziukavzrlaqupiqqtzfriXcsWmz`yaxvzqhguib^[q{trYuceceW`YswWymgtyzm{tukb`YYqWdeZ\X_flt]_azpx`tnkrmwmo{cyvz{cefvh_kpa[sfu_`ns`surWdevl\zxzm{`irvmuamckft^[rshwWyYrjeq{trYuceceW`YswWymgtyzmZZZ[xyjZ_Zji[Zyh^l{j\ZtZf{n\oqxjhioxifbxsocesW^s\_[jqpw^^pozf]jZXzvi]fudcviknf[j{fdWbWZ\zes`cvj`_zj]exvzenen\^[qfjb\pmjkrla\ghfxp_reckscnt^[rshwWyYrjerghxjbgbzu]aY^pai`qoeq\gbZgobd]Zzdchwp]oveZXgz_wc{hzkjos_ygwzhtmplqipmat{Wubksssbfjkp]t{t_zY`l[qZw]d[jZvtclsg\rfoi_uvb\getYgazmtdfyo``lz{y\rY{aqzX]f\pppwZwhcrmvbazr_kjjmneciZyxtwlgolat\\hp]zuvb\getYgazmtdfyo``lzkwpkpuyczfnqpmq{`_p^\heeZpdf]wsocp^[luspzg_pyw_eqt{^e{Xydquglftmvyhh{kziukavzrlaqupiqqtzfriXcsWmZpXi_nvakcYqyd\_[zjtowmo{cyvz{ceWymgtyzmZZZ[xyjZ_twppebrl`b^_ishmg_e{XuvjaX]umgree_\znYftlnq]qXjhmccx`gcZwgsbhzWtbdraio_[tzciYdimzl`yYveZxlkfet{f_envwa]^xghg]ye_v\kex^^k\trx_oscm{mprhmcacZlWcciduv^`kyw[kd\x>>GGGUUU999(((POPTSSSTSSTSMMMhr`iXXvew\y]{vgqXcnMMMSTS'''&&&===GGG***!!!abb^^]^^^STTSTSMMMnWPs[bxectt_{rWiWXMMMSTSSTT^^^///DDD:::///kklmmm^^^^^^STTEEEFFF9L\$&(CWh^Ydm{wuoX\{nMMMSTSSTT^^^^^^AAA!!!777'''222zyzzzymmmVVV^^^)))*** `Yjsirok[paAABHHHSTT^^^^^^mmmzzy555 ---zzy<<<'''(((888GGG777chyxzgvffwmDCCKJKSTT^^^mmmzzyrrr))) ]]]feeEEE"""555888[[[RRROOONdwd_l[uv^pxwEEE@@@VVV\\[mmmyyzkkk ZZZ000333KKK@@@XXX???JJJ%%%%'*eX`lljrr[{Tn###(((###9:9'''WWW+++kjk+++ """888%%%333///...).2hudefq[n*29---***999&&&999&&& +++zyz888UUU-,-333***$$$&&&TqPj]m`s`lby7BL!!!DDDBBB[[[BBBIII:::%%%ggg''' RRRvwwnnmVVVWWW>>>EEElk__gz]k`icFFFYYYWWW>>>222&&&NNNVVVvvv !!!```zzymmm^^^SSSKKJDDCWlYtiqW\feu000GGG222---+++444zzy444zzymmm^^^^^^STSGHHAABfWobh]yc\e`%'(((("""$%%ZZZTTTmmmzzyzyzKKK###999$$$777^^^^^^STTSTSMMMnmfwuzxjfgyqZu%'(@Xl@@@BCBSTT^^^^^^mmmnmm333333CCC888[[[STTSTSMMMXnbmjnpidm{akrg[@@@MMMSTSSTT^^^^]^abb)))$$$HHH???+++###QRQMMM@@@XWobYp[^]eaiZy`r@@@@@@MMMSTSSTSTTSVWV111666LLLPPPDDD>>>@@@@@@cXnoajkYr[vw[r^j@@@@@@@@@MMMHHGJJKMMM 000>>>ccc@@@$$$5?G@@@@@@j[mnqvfhZ\safeh[@@@@@@@@@@@@ABBCCCEEE)))###EEEFFF777!!! !!@@@@@@^homr`{svXW\a[si@@@@@@@@@@@@@@@@@@@@@555###"""!!!***...@@@@@@Y{iozWobvtp^a[si@@@@@@@@@@@@@@@@@@@@@>>>'''...+++888@@@===@@@@@@Y{irkYoyk\a^bvu`@@@@@@@@@@@@@@@@@@@@@@@@@@@===@@@@@@@@@@@@@@@@@@eibs^^lcpkwqeZ_X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@qczjWqf^bh]\Wemd@@@@@@@@@@@@@@@@@@@@@@@@lj\mufvjlfpjnuk{@@@@@@puppup@@@@@@rfv_^avl_{rWin_f@@@@@@puppup@@@@@@m]oYdm{apXfrxnwd@@@@@@puppup@@@@@@qvc`po][^]m^qu^k@@@@@@puppup@@@@@@l]caop\g`soti^]a{mYqmlhkZ\hnbbyYi]otxk`rwuWn]whdionanyyxful]Yp_kpjlXewg]pcWidfnWybZnrXtg{b\lr\b\wZmoto^wcw{iZozcqhdtk`dwgy{wolzYtoWnvXzvuqy_jWkYmvjdneWqnxqdpcWidfnWybZnZt^Wh^knl]{lztyc{``jgj`kv[YxbhXq_c_fsuj^[]oyfir_qYlptvhn{xgymXWckYeydcYq]g]ZibqYckZ^lszmcj`\y^oXy^_hyioe\l^shsasebmdnYno`ic\wuWnzr_kjjmneciZyxtwld]`W]`dewio]cYaYXlm^uksggh[filw{aehzxcfsXuqy_jWamckft^[rshwWyYrjerghxjbgbzu]aY^]bl{X\vpp_`Xktzovmg_zhqgnkY^o^Yslsk\i_zjvwmwvw\[WesXuZdqwWzWkf`zWjgdhtugZukidhr{xha_ky]ntcaenYq{`i[qardZoqntZnfftwYuzaxfhhg]khth_WbhhYcdi^]nopz`YzslvbnXlsWksZzbnWert]Zzqhguib^[q{trYuceceW`YswWyi[^v\WYiZ]uqapbXmuZ{tndcj[vxarrWowkuer[t]Zrzizo`[dbplj]]xxpvo`nubksssbfjfagirbtjbzWvgcs^cYme]ezmYuWYYbbnZcsxtzj\_Ynnmvyhh{kziuk[YxbhXqmd\[\xtZvksfm[r^eZfxb[zhoiwivncpXWckYeydcYq]g]ZibqYckZ^lsdx^y{Zcp^[luspzg_pyw_eqt{^e{Xydq`\YbgWpgXbud]Y^muaufoWZji[Zyh^l{`ej_^x[unw]rZ`zvj`zdt]dxZgjq`_irxkrje`{apwWYkl\l`^y\Wkhftqt^XuvcxwhWxop{\tvl\zxzm{`irvmuamckft^[tnzYqg{a[uXZg]ucYgfkifbb{{iipn`Xib\n{bwacnm[jumWxxydotbjhyu]nxtyhwzuis`eda\a^^q[yYvmq^\wpzktsk{ckpjlXewg]xkrje`{apwWYkl\l`^y\Wkhbd]Zzdchwp]oveZXgz_wc{hjdZyeZc`e^y{Zcp^[luspzg_pyw_eqt{^e{XydqugYgqfyzuZpWzqkeivnkrWYu_ZsWpn{bwd{xy_wxb\WxYikd_ff`soti^]a{mYqmlhxkrje`{apwWYkl\l`^y\Wkhftqt^XuvcziukavzrlaqupiqqtzfriXcsWmz`yaxvzqhguib^[q{trYuceceW`YswWymgtyzm{tukb`YYqWdeZ\X_flt]_azpx`tnkrmwmo{cyvz{cefvh_kpa[sfu_`ns`surWdevl\zxzm{`irvmuamckft^[rshwWyYrjeq{trYuceceW`YswWymgtyzmZZZ[xyjZ_Zji[Zyh^l{j\ZtZf{n\oqxjhioxifbxsocesW^s\_[jqpw^^pozf]jZXzvi]fudcviknf[j{fdWbWZ\zes`cvj`_zj]exvzenen\^[qfjb\pmjkrla\ghfxp_reckscnt^[rshwWyYrjerghxjbgbzu]aY^pai`qoeq\gbZgobd]Zzdchwp]oveZXgz_wc{hzkjos_ygwzhtmplqipmat{Wubksssbfjkp]t{t_zY`l[qZw]d[jZvtclsg\rfoi_uvb\getYgazmtdfyo``lz{y\rY{aqzX]f\pppwZwhcrmvbazr_kjjmneciZyxtwlgolat\\hp]zuvb\getYgazmtdfyo``lzkwpkpuyczfnqpmq{`_p^\heeZpdf]wsocp^[luspzg_pyw_eqt{^e{Xydquglftmvyhh{kziukavzrlaqupiqqtzfriXcsWmZpXi_nvakcYqyd\_[zjtowmo{cyvz{ceWymgtyzmZZZ[xyjZ_twppebrl`b^_ishmg_e{XuvjaX]umgree_\znYftlnq]qXjhmccx`gcZwgsbhzWtbdraio_[tzciYdimzl`yYveZxlkfet{f_envwa]^xghg]ye \ No newline at end of file +xpX`p``X@@@@@@ptpptp@@@@@@ppp`hpxXx`hx`Xh`@@@@@@ptpptp@@@@@@XpX`ph``Xhp`hppX@@@@@@ptpptp@@@@@@phh`hxhphppXpxpX@@@@@@ptpptp@@@@@@hpp```X`xx`X`p`h@@@@@@ptpptp@@@@@@Xhxx`ppxxX``pXhh@@@@@@ptpptp@@@@@@Xx`p`p`phphh`hhX@@@@@@ptpptp@@@@@@xh`xh`XXphxphPp`@@@@@@ptpptp@@@@@@Xpp`XhPXXx``XpX`@@@@@@ptpptp@@@@@@`hPXX`hh`XpXphhX@@@@@@ptpptp@@@@@@`X``XhXX`Xhpp`h`@@@@@@ptpptp@@@@@@x`XpphhXX`pXpp`X@@@@@@ptpptp@@@@@@hXPpp`hx`Xhppp``@@@@@@ptpptp@@@@@@phpXXxp`xXhphpXp@@@@@@ptpptp@@@@@@pXhPhxXXX``XhXpX@@@@@@ptpptp@@@@@@hhhXpx`XhXh`ppp`@@@@@@ptpptp@@@@@@XpphXXp```XXXhhp@@@@@@ptpptp@@@@@@``p``x`xhppxXX`p@@@@@@ptpptp@@@@@@`pXpX`xhhhX`hhXX@@@@@@ptpptp@@@@@@X`PXhhpX`Xh`hp`P@@@@@@ptpptp@@@@@@pppp`p`XXppX`p`h@@@@@@ptpptp@@@@@@pxhXXpxhh`XpxX`X@@@@@@ptpptp@@@@@@php`Xp`h`xXXppXx@@@@@@ptpptp@@@@@@xXphhhhXX`hh`x`p@@@@@@ptpptp@@@@@@`p`pp`pXhpXph`hh@@@@@@ptpptp@@@@@@`xxX`hhXXhphX`XX@@@@@@ptpptp@@@@@@PxpxPhpXh`XpxX`X@@@@@@ptpptp@@@@@@php`Xp`hphXXhphh@@@@@@ptpptp@@@@@@XxX`xh`xp`p``ph`@@@@@@ptpptp@@@@@@``h`h`Xhpp`XphXX@@@@@@ptpptp@@@@@@Xpp``PhX`hXhpp`h@@@@@@ptpptp@@@@@@hhxph`hhXPhxpX`p@@@@@@ptpptp@@@@@@`p`ppp`h`X``XhXpXp`p`hhhxphxxh`XXhhhXpx`hh`Xp`x`hxhhxXXxXp`phh`p`xpxxXp`hX`pppxXXh`Xx`p``XXpXhXpX`Xhhh`phXXpxhp`XhhhPpXhPhxXXh`X``hhphXphphxX`phh`hhX``hpx`hp`pXX`phppxXX`hph`hx`xhXx`x`hh`XphXhxXXhh``xXx`phhX`XpPphXXhphh`hhXxXhXhhXXhh`hhXhxppXpppxxhXph`pXXphphhppXh@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Xph`XhXXxXhp`Pxp``hX`hh`x`pPpXhXhhphhX`Xxpp`Xx`hXpxxX`hXphXxXhxp`pp``hhpXpp`xXhpx`Xp`h`pXXh`Xpxpphxph`x`XXphhxpXpppp`hpXpX``hhphh`ppXXpphXXp`XxpxXPpXxp`pXx`X`XxhhphXXpphp`h`XpxPxpxPhpX`hXx``pph`ph`hXXXhhp````pphhpphxXpXXhpph`XXhh``pphXh`ppp`xXxX`hpXX`hh`pphX`Xx`p`@@@@@@ptpptp@@@@@@PhhphhpXhhXhX`hx@@@@@@ptpptp@@@@@@ppxX`Xh`XpXXpPhp@@@@@@ptpptp@@@@@@hpxxXP`Xp`p`p`Xh@@@@@@ptpptp@@@@@@``hhpXpphppX``Xp@@@@@@ptpptp@@@@@@xhpphh``p`hpxhXX@@@@@@ptpptp@@@@@@XhpXxxhXpxXXpphh@@@@@@ptpptp@@@@@@ppxXhp`hXX`xhhXp@@@@@@ptpptp@@@@@@@@@pXhhpp`Xh`p`pXp@@@@@@ptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@@@@x`X`p`p`@@@@@@ptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@`XXpXhhX@@@@@@ptpptpptpptpptpptpptpptpptpptpptpXPhXXhxp@@@@@@@@@ptpptpPhhpXhpXh@@@@@@@@@ptpptph`hhhX``hX@@@@@@@@@ptpptpXhPXXpXhph`@@@@@@@@@ptpptphx`pppX`hhXh@@@@@@@@@ptpptp`pXxpp`hxp``X@@@@@@@@@ptpptp``ph`phhhhPphh@@@@@@@@@ptpptpXh`hxxX`Xx`xhXX@@@@@@@@@ptpptphpp`Xxhp`hpPp```@@@@@@@@@ptpptppxp``ph`hXp`hPphh@@@@@@@@@ptpptp`hpxh`pPh`XXp`xh`X@@@@@@@@@ptpptpptpptpptpptpptpptpptpptpptphxXpppxhp``hphpPp``@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XxhpxXh`hPphpXp`hPph@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@pxhp``pXXh`phX``hXhPX`xXXpphpXhhpXp`hpxhxxhxph`pxh`hPX`hXx`p`phX`Xpxx`XXhXppp`pX`PhhhXX``XhppXX`hxhXhhX`ppx``hhxpXhpXp`pxXpX`XhXp`xhxppXxph`Xx`ppXhXXXp`hpx`ppXxxhXpXXp`Xp`pxxppppXhhh`phph``P``XxpxhphXhxphhXh`XX`pxhpXXhXXXhhpp`p`XxhX`hP`p`hh`h`XpX`pphXphpx`pxhp``pXXh`phX``hXhPX`xXXpphpXhhpXp`hpxhxxhxph`pxh`hPX`hXx`p`phX`Xpxx`XXhXppp`pX`PhhhXX``XhppXX`hxhXhhX`ppx``hhxpXhpXp`pxXpX`XhXp`xhxppXxph`Xx`ppXhXXXp`hpx`ppXxxhXpXXp`Xp`pxxppppXhhh`phph``P``XxpxhphXhxphhXh`XX`pxhpXXhXXXhhpp`p`XxhX`hP`p`hh`h`XpX`pphXphpx``xpXXhhhhphh`Xhxhphh@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ppxph`pXP``XhxhphhX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xph```ppp`Xpp`P`X`@@@@@@@@@ptpptpptpptpptpptpptpptpptpptpptpXhphhxX`hhX`Pxp`h@@@@@@@@@ptpptppX``PX`XppphphhX@@@@@@@@@ptpptpp`pp`h`XXh`P`Xh@@@@@@@@@ptpptph``XhpXhppxp`X@@@@@@@@@ptpptp`h`Xphph`Phh`@@@@@@@@@ptpptp`pphppX`hp`h@@@@@@@@@ptpptppXh`hXhpP`X@@@@@@@@@ptpptpx``Xpp`Xp`@@@@@@@@@ptpptp`ppp`Xxxh@@@@@@@@@ptpptpxxhx`pXp@@@@@@@@@ptpptpXphphxXp@@@@@@ptpptpptpptpptpptpptpptpptpptpptpxxhp`hh`@@@@@@ptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@XhxpXXXh@@@@@@ptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@@@@pp``xXp`@@@@@@ptpptp@@@@@@@@@pXx`hpP`PxxxppX@@@@@@ptpptp@@@@@@pphh`pphhphhXxxp@@@@@@ptpptp@@@@@@XxpphxxhP`X`XhXp@@@@@@ptpptp@@@@@@hXXphxXpp`Xppphp@@@@@@ptpptp@@@@@@hhxhpX`hhhhX``pX@@@@@@ptpptp@@@@@@ppxhXPXhppXppX`x@@@@@@ptpptp@@@@@@p`h`p`hphhxpphh`@@@@@@ptpptp@@@@@@`hX`pX`XhphpPh`pXxXx`xp``hppXxp`pXxph`pphph``pPphxpxp`Xph``Xhppx`xh`xXXxxXhXXhx`xhhhp`hp``p`phxpppXxhpphppXp`hx`pppxpX`hXXp`h`pX`xphXx`ppp`pXXxxX`h``phpph`Ph`hXXhXxhxh`hX`phxpXXhxpXpXphphXx``hxpXph`p`h`phXxppXhXXx`hXpX``XpphhhppXXxp`xXpppX`h`ppxXp`hhXX`pXhXX`X`XhX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@hpPh`pXphpPh`hXxphxX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@``pPphph``phxpppXxhptpptpptpptpptpptpptpptpptpptpptp@@@@@@@@@X`hx`pXX`hPp`hxph`ptpptp@@@@@@@@@hhpPh`pXh`hp``pxpptpptp@@@@@@@@@```pPph`phxX`pphptpptp@@@@@@@@@XXhx`xX`Xxxh`hXptpptp@@@@@@@@@hhpPhhhhp`hp``ptpptp@@@@@@@@@X``pxh`ppxXp`ptpptp@@@@@@@@@hXhh`Xppp`xhptpptp@@@@@@@@@`hphXpXXPhXptpptp@@@@@@@@@Xh``Xhhh`hptpptp@@@@@@@@@hXphXphhPptpptp@@@@@@@@@pxhXXhPXptpptpptpptpptpptpptpptpptpptpptp@@@@@@XhhXpXX`@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptp@@@@@@`p`p`X`x@@@@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptp@@@@@@pXp`p`hX`pphhXp@@@@@@@@@ptpptp@@@@@@pXhhx`XXh`phXxpp@@@@@@ptpptp@@@@@@hhppXXxpXhxxXphX@@@@@@ptpptp@@@@@@XXhxph`p``hhpphx@@@@@@ptpptp@@@@@@pX``XpphppXphh``@@@@@@ptpptp@@@@@@hX`p`p`pX`PXxxph@@@@@@ptpptp@@@@@@phPpXXpX`hX`Xxpp@@@@@@ptpptp@@@@@@xh`XhXhhXphhphhP@@@@@@ptpptp@@@@@@`p`xX`XhX`Xp`Xh`@@@@@@ptpptp@@@@@@`hhppxhhph`p`h`p@@@@@@ptpptp@@@@@@x`XppXpphXPXhxpp@@@@@@ptpptp@@@@@@Xp``Xhhhh`Xphxhh@@@@@@ptpptp@@@@@@phpppX`ppXxhpXXh@@@@@@ptpptp@@@@@@pXhX`X`PhxxhppxX@@@@@@ptpptp@@@@@@pxxXhhphhpp`hhpp@@@@@@ptpptp@@@@@@XppxxxP`Pph`xXp@@@@@@@@@ptpptp@@@@@@`pXx``pp@@@@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptp@@@@@@hXXXpxhX@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptp@@@@@@`hh`phxxptpptpptpptpptpptpptpptpptpptpptp@@@@@@pXxhphpXptpptp@@@@@@@@@`Xp`xhxxptpptp@@@@@@@@@hhxX`ppp`ptpptp@@@@@@@@@`px`ppX``xptpptp@@@@@@@@@X`P`hXh`hXpptpptp@@@@@@@@@h`phpxhhhpp`ptpptp@@@@@@@@@`hhP`XXppX`h`ptpptp@@@@@@@@@X`pxppXhhhX``hptpptp@@@@@@@@@hX`P`hX`X`ppp`pptpptp@@@@@@@@@Xhhphppp`X`P``Xpptpptp@@@@@@@@@h`pxP`XhhhhphhphXptpptpptpptpptpptpptpptpptpptpptp@@@@@@@@@`X`P`ppX`pxxP``hpx@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XhhphxhX``P``pppxpp@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@hhphxhX`hhphpxhXXpx``xphpXhpp`XpX`hpppX`pxP`XhxX`p`pphhXXXhXXphxp`XhX`X`P`ppXhphxpxX``P``hphp`hhhXxxXhhphxhX`pXXpXhxxXpp`xph`pXXXhppxxxP`hpxXppxhx`pXhX`XpXxp`pXphpXx``ppxpp`XhhXhxh`XXpphX``XXhhhXXXpxhXpXhXX`xxpX`Xhp`p`xXh`XPh`hxp`hpxhxxhxph`pXphhXphppXXx`XPhXh``Xhp`hXXp``phxphX`Xx`p`@@@@@@ptpptp@@@@@@PhhphhpXhhXhX`hx@@@@@@ptpptp@@@@@@ppxX`Xh`XpXXpPhp@@@@@@ptpptp@@@@@@hpxxXP`Xp`p`p`Xh@@@@@@ptpptp@@@@@@``hhpXpphppX``Xp@@@@@@ptpptp@@@@@@xhpphh``p`hpxhXX@@@@@@ptpptp@@@@@@XhpXxxhXpxXXpphh@@@@@@ptpptp@@@@@@ppxXhp`hXX`xhhX@@@@@@@@@ptpptp@@@@@@@@@pXhhpp`@@@@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ptpptpptpptp@@@@@@@@@@@@@@@@@@@@@@@@@@@XhX`X`X@@@@@@@@@ptpptp@@@@@@@@@XpppXx`pxXXpphh@@@@@@ptpptp@@@@@@ppxXhp`h`p`hpXpx@@@@@@ptpptp@@@@@@Xpxhp`Xh`hxhxXhX@@@@@@ptpptp@@@@@@xxXXp`ppp`xXhpx`@@@@@@ptpptp@@@@@@`xh`pXpphpphxXpp@@@@@@ptpptp@@@@@@`xhXXhXxxXXx`hx`@@@@@@ptpptp@@@@@@pPp``hphpp`hpxXp@@@@@@ptpptp@@@@@@p`hPphphXpXh`xXXhXppxXhp`hxhpphh```XhP``h`ppX`hxpXp`xXxXhXhp```pphXhpXX`p`pXhpXpxppp`hpxXXpXXhp`hpppXxhp`X`X`hhhh ! ! p@@@@@@@@@@@@@@@@@@@@@@@@X ! ! ``hPPphp`hX`PXx`p ! ! ! ! @@@@@@PSQPSQ@@@PSQ@@@@@@ ! ! ! ! phxxXX`phX`hh`` ! ! @@@@@@ ! ! PSQPSQPSQPSQPSQPSQ ! ! @@@@@@ ! ! hXXp`pXxXxp`p ! ! @@@bed@@@@@@ ! PSQbedbedbedbedPSQ ! @@@@@@bed@@@ ! ! ``x``ppXxpPh ! ! @@@@@@bed@@@ ! ! bedptpptpbed ! ! @@@bed@@@@@@ ! ! hhX`hxpphXXxX ! ! @@@@@@@@@@@@ ! xzxxzxxzxxzx ! @@@@@@@@@@@@ ! ! pppXhphphhXp`@@@@@@ ! ! ! @@@@@@ ! ! ! ! @@@@@@ ! ! ! @@@@@@pphxxx`p``ph@@@@@@PSQPSQ ! ! ! ! ! ! ! ! ! ! PSQPSQ@@@@@@hh`XhXppXpxp@@@PSQPSQbedbedxzx ! ! ! ! ! ! ! ! xzxbedbedPSQPSQ@@@```X`hhhpphp@@@PSQPSQbedptpxzx ! ! ! ! xzxptpbedPSQPSQ@@@pphp```pXhPp@@@PSQPSQbedptpxzx ! ! ! ! xzxptpbedPSQPSQ@@@hhXh`p`h`xph@@@PSQPSQbedbedxzx ! ! ! ! ! ! ! ! xzxbedbedPSQPSQ@@@hhXX`xXh`hp`@@@@@@PSQPSQ ! ! ! ! ! ! ! ! ! ! PSQPSQ@@@@@@PhXphpPX``p`@@@@@@ ! ! ! @@@@@@ ! ! ! ! @@@@@@ ! ! ! @@@@@@`Ph`hXx`X``xp ! ! @@@@@@@@@@@@ ! xzxxzxxzxxzx ! @@@@@@@@@@@@ ! ! Xh`ppxxh``xpp ! ! @@@@@@bed@@@ ! ! bedptpptpbed ! ! @@@bed@@@@@@ ! ! `hhhph`hx`hp ! ! @@@bed@@@@@@ ! PSQbedbedbedbedPSQ ! @@@@@@bed@@@ ! ! h`XpXXX``hXxh ! ! @@@@@@ ! ! PSQPSQPSQPSQPSQPSQ ! ! @@@@@@ ! ! `hh`hhXpXppXphp ! ! ! ! @@@@@@PSQPSQPSQPSQ@@@@@@ ! ! ! ! p`hhpp`hXXp```h`@@@ ! ! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ! ! @@@hhhhp`xppXPX`Xph@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XxhhxPh`pppX`Xph@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XxhphXhxhX`X`pp`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`h`pXXh`phpp`XXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@p`xhPp`X`hXXP`h`@@@@@@@@@@@@@@@@@@@@@@@@hhXhp`phh`phhphx@@@@@@ptpptp@@@@@@p`pXX`phXxpPhhX`@@@@@@ptpptp@@@@@@hXhX`hx`pX`pxhp`@@@@@@ptpptp@@@@@@pp``phXXXXhXppXh@@@@@@ptpptp@@@@@@hX``hpX`XpXh`pXh@@@@@@ptpptp@@@@@@hX``hP``X`x``xXh@@@@@@ptpptp@@@@@@h``Xxhp`XhpXxXh`@@@@@@ptpptp@@@@@@Xh`hphhpX`xhpxhX@@@@@@ptpptp@@@@@@XP`XhXhp`pXphX``@@@@@@ptpptp@@@@@@`X`XhpXX`xXp`hpp@@@@@@@@@@@@@@@@@@@@@@@@xX``phPxh`pX`X`X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@phXppX``pppp`xXh@@@@@@@@@@@@@@@@@@@@@@@@@@@354@@@@@@@@@@@@@@@@@@pX`XXpphppxhhp`X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@hhphpX`p`h`p`h`p@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`hXpxXp`XhpXx`h`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`hxXXXX`x`px`php@@@@@@@@@@@@@@@@@@@@@@@@PSQ@@@@@@@@@@@@@@@@@@@@@ph`X`xXhXppX`xhX@@@@@@@@@@@@PSQPSQPSQPSQPSQPSQPSQPSQ@@@@@@@@@@@@XhppXXh`hhphxpX`@@@@@@@@@PSQPSQPSQbedbedbedbedPSQPSQPSQ@@@@@@@@@`Xxhp`XhXph`pph@@@@@@@@@PSQPSQbedbedbedptpptpbedbedbedPSQPSQ@@@@@@@@@hXphP`hX`xhPxh@@@@@@PSQPSQbedptpxzxxzxxzxxzxptpbedPSQPSQ@@@@@@hh`XhhX`p`xh`@@@@@@PSQPSQbedptpxzxxzxptpbedPSQPSQ@@@@@@hX`X`h`xpxx`@@@@@@PSQPSQbedxzxxzxbedPSQPSQ@@@@@@X`xh`P`pppXh@@@@@@PSQbedbedxzxxzxbedbedPSQ@@@@@@xh`XpxXX`XXp@@@@@@PSQbedptpptpbedPSQ@@@@@@`h`phppXph`p@@@@@@PSQbedptpptpbedPSQ@@@@@@PXhhXXpp``pp@@@@@@PSQbedbedxzxxzxbedbedPSQ@@@@@@X`xhpXhp`xph@@@@@@PSQPSQbedxzxxzxbedPSQPSQ@@@@@@hp`x`phhXpX`@@@@@@PSQPSQbedptpxzxxzxptpbedPSQPSQ@@@@@@xXPhpXh`X`Xxh@@@@@@PSQPSQbedptpxzxxzxxzxxzxptpbedPSQPSQ@@@@@@hXhPXx`pxXX`hh@@@@@@@@@PSQPSQbedbedbedptpptpbedbedbedPSQPSQ@@@@@@@@@hX`XXhhX`XxhpX`@@@@@@@@@PSQPSQPSQbedbedbedbedPSQPSQPSQ@@@@@@@@@`Xh`h``xh`p`X`hXh@@@@@@@@@PSQPSQPSQPSQPSQPSQPSQPSQ@@@@@@@@@hXhPXhpXhXx`XXxhpXX@@@@@@@@@@@@@@@@@@PSQ@@@@@@@@@@@@@@@XXphhXXxppp`Xxxhh``XXX@@@@@@@@@@@@@@@@@@@@@@@@XXX``hX`hxx`Xh``XpXX``pX``xXXhXhh`XXXXXhhp``pXpxxphX`hh``pX`hhpX`X```pP`h`X`xXx`pp`h`phX`X``Xhpxh`pP`ph`pxhhhpxphp````X`XXpXxXphpXXppxhpphx`hphhX`p`Xxhph``x`ppPXhhXh`XxXPhh``XXx``hppXhp`XX`xXp`xhh`Xx`X```XxxX`pXXhpppx`XpxpX`ppxX`xXx`pp`X`p`xxpXpPxph`hphhpPXpXXpPphx`p`xxxXpx`XPxXhh`X```phphXX`xhXphhhxhph``x`ppPXhhXh`XxXPhh`pppXXpp`xhph`pxph`ppphpppx`phX`pPhx`x`xpxph`ph`XXpxppXp````P`XppPxh`pxxhxpph``XXpP``XXXX`hpXX`xpx`phhphphhx`xpxx```phXhp`Xp`pX`hp`pppP``phXxxxhx`hpphp`h`h`pXXpphpPxXph`pxppXp````P`XppPxh`pxxhXXXXxxhXXXhhXXxhXhxhXXpX`xhXhpxhhhhxh``xph``pPXpXXXhpppXXphx`XhXXxphX`p``phhh`Xhx``P`PXXx`p``ph`XxhX`xpx`h`hXXXp`h`Xphhhph`X`h`xpXp``hp`hpXXpphpPxXph`p`hxh```xpX`XXp`h`ph`pX``X`h``XXx``hppXhp`XX`xXp`xhxhhhpXx`pxhphphphph`pxPp`hppp``hhpXpxpXxX`hXpXpX`XhXpp`hp`Xp`hhXpp`X``pX``xhp``xh``hxxxXpXx`pxXX`XppppXph`php``xpXhhhhh``hXxxpph`hh`pXXhpXxpp`X``pX``xhp``xh``hxhpphppx`x`hpphpx`XpXXh``Xp``Xpph`pXXhpppx`XpxpX`ppxX`xXx`pp`h`phpxhhxhxhph`pxph`ppphpppx`phX`pPhXpXhXhp`h`Xpx`XXXxhphphhx`xpxx``Pxh`pxxhXXXXxxhXXpppp``ph``XXhphh`X`xXpph`XXph`p``XXxhX`phhpXpXhhh``x```Xp`p`hxPp``p`hhXXpx`hX`hhxh`xXp`Xxhh``px`X`hpp`XXx`h`Xx`XpXh`xXXhXppxXhp`hxhpphh```XhP``h`ppX`hxpXh`XPSQbed354XXhp```pphXhpXX`p`pXhpXpxXPSQ354 ! ! ! ! @@@XpXXhp`hpppXxhp`X`X`hhhXh354 ! 354@@@@@@ ! ! @@@@@@@@@hPXX`hPPphp`hX`PXx`XX`PSQ ! @@@PSQ@@@354 ! @@@@@@@@@PSQX`hXhxxXX`phX`hh`XhPX@@@ ! 354@@@PSQ354 ! PSQPSQPSQPSQPSQhp`hXXp`pXxXxp`pX`hPSQPSQ ! ! 354@@@ ! ! bedPSQPSQPSQPSQPSQhPPX`x``ppXxpPhPXPSQPSQPSQPSQ ! ! @@@354 ! bedbedPSQPSQPSQ@@@@@@PSQ ! PSQXX`hxpphXXxhPSQPSQPSQbedPSQ@@@ ! 354 ! 354xzxxzxbedPSQPSQ ! ! ! ! ! `XhphphhXp`@@@@@@PSQPSQPSQptpxzx354 ! ! ! xzx354 ! ! 354@@@354 ! Xhxxx`p``ph@@@@@@PSQbedbedxzxptp ! ! PSQbed@@@ ! 354354PSQPSQPSQ ! bed`XhXppXpxp@@@@@@PSQPSQbedxzxbed ! ! PSQ354 ! 354@@@@@@PSQ354@@@ ! ! `X`hhhppXbed ! ! ! 354 ! PSQ ! bed ! ! ! ! ! ! ! 354 ! 354 ! ! ! 354hp```pXh354 ! ! ! 354 ! 354 ! ! ! ! ! ! ! xzx354PSQ ! 354 ! ! ! PbedXh`p`h`x@@@ ! @@@@@@PSQ@@@@@@354 ! ! bed ! ! PSQptpbedPSQPSQ354@@@hhXX`xXh`hX ! @@@PSQPSQ354354 ! PSQPSQptp ! ! bedxzxbedPSQPSQ@@@@@@PhXphpPX``p ! 354@@@354 ! ! 354xzx354 ! ! ! xzxbedPSQPSQPSQ@@@@@@`Ph`hXx`X`` ! ! ! ! ! PSQPSQbedxzxxzx@@@ ! 354 ! 354PSQPSQPSQPSQPSQhh`ppxxh``xpX ! PSQ@@@@@@PSQbedPSQbedbed354354@@@354 ! PSQPSQPSQPSQXh`hhhph`hx`hp`X@@@PSQPSQPSQPSQbedbed ! ! @@@354 ! ! PSQPSQ@@@XPh`XpXXX``hXx`p@@@@@@PSQPSQPSQPSQPSQ354354PSQPSQ@@@ ! 354@@@@@@`Xhh`hhXpXppXpXh@@@@@@@@@PSQ@@@@@@PSQ ! 354354bed@@@ ! 354@@@@@@hXhhpp`hXXp```hX@@@@@@@@@@@@@@@@@@@@@ ! ! @@@@@@354 ! ! @@@@@@Xhhhp`xppXPX`Xph@@@@@@@@@@@@@@@@@@@@@354 ! ! ! ! ! 354@@@@@@XxhhxPh`pppX`Xph@@@@@@@@@@@@@@@@@@@@@354 ! ! ! 354@@@354@@@@@@XxhphXhxhX`X`pp`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`h`pXXh`phpp`XXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@p`xhPp`X`hXXP`h`@@@@@@@@@@@@@@@@@@@@@@@@hhXhp`phh`phhphx@@@@@@ptpptp@@@@@@p`pXX`phXxpPhhX`@@@@@@ptpptp@@@@@@hXhX`hx`pX`pxhp`@@@@@@ptpptp@@@@@@pp``phXXXXhXppXh@@@@@@ptpptp@@@@@@hX``hpX``phphXX`xhXphhhhXXhh``xXhXhpxh`pppPhXph`hhh`hxxx`phXXpXhphhX`p`Xp`Ph``hPx`XhpXp`x`XhpX`XpXhhphXp`pxhXhx`ph`ph``p`xxphhxXphPhpXxpppxXhPhXhph`h`Pphxp`p`Ph``hPx`XhXpXPhXhhhXxhxpx`x``h`h`hpXXx`hXpX`X`pphXXXhx`hpXpXhppphhxx`xhXP`hX`x``XpX`XXh`pX`hXXhpxh`h`XxXhXxXXhxhh`XhXphp`p``h`hXhh`h`XppPhxpXhhhhh``hXxxpph`X`PX```phhX`X`XXhhXphp``hX`hhpx``hxx``pXppxXhP`h`h`pXXpphpPxXph`p`hxh```xpX`XXX`hxXXpppX`Xhpxhph`Xxhp`hhXXhXXphphXhXxhpphpppXXP`pXpX`ppPxPh``xPh``hpp`Xphh`hpxxh`XhxXhp```hXpx`hXp`p`XhphpXh``ppXpx`x`hh`XhhphXP`hhX``hXXhhpx`Xxphp`hXhpPhpXx`hP`ppXXxph`ph`XXpxppXp````P`XppPxhXXpXPXhXXpp`p`XhpXxph``hXpx`ppPhphp`pXpXXpxhxh`X``phhXXxxpph`hp`hppp``h```hp`ph`xPp``pX`Xh`X`xhXpPXX``hX`pxpxhXXXhhhpxhhxhxhphXXx`hXph`XXXxpXphp`hXpX`X`x`Xxhhhphph`pXP`hX`x``XpX`XXh`pX`hXXhp`xXxxX`pXXhpppx`XpxpX`ppxX`xXx`p`XX``Pp`X`p`XXXhp`p`hPXhhXXxhXhx``hXXxXphpXpX`xph`x`pX`xX`hp`Xhpxhph``x`ppPXhhXh`XxXPhh`pppXXpp`xphPxhpxXpphXxxxhx`hpphp`h`h`pXXphxXp`x`XpXX`Xp`X``hh```xxhhph`Xh`Xhx`p``hhXhphPxxx`hp`hhxpXhxpxhpxphp````X`XXpXxXphpXXppxhpphx`hphhX`p`Xxhph``x`ppPXhhXh`XxXPhh``XXx``hppXhp`XX`xXp`xhh`Xx`X```XxxX`pXXhpppx`XpxpX`ppxX`xXx`pp`X`p`xxpXpPxph`hphhpPXpXXpPphx`p`xxxXpx`XPxXhh`X```phphXX`xhXphhhxhph``x`ppPXhhXh`XxXPhh`pppXXpp`xhph`pxph`ppphpppx`phX`pPhx`x`xpxph`ph`XXpxppXp````P`XppPxh`pxxhxpph``XXpP``XXXX`hpXX`xpx`phhphphhx`xpxx```phXhp`Xp`pX`hp`pppP``phXxxxhx`hpphp`h`h`pXXpphpPxXph`pxppXp````P`XppPxh`pxxhXXXXxxhXXXhhXXxhXhxhXXpX`xhXhpxhhhhxh``xph``pPXpXXXhpppXXphx`XhXXxphX`p``phhh`Xhx``P`PXXx`p``ph`XxhX`xpx`h`hXXXp`h`Xphhhph`X`h`xpXp``hp`hpXXpphpPxXph`p`hxh```xpX`XXp`h`ph`pX``X`h``XXx``hppXhp`XX`xXp`xhxhhhpXx`pxhphphphph`pxPp`hppp``hhpXpxpXxX`hXpXpX`XhXpp`hp`Xp`hhXpp`X``pX``xhp``xh``hxxxXpXx`pxXX`XppppXph`php``xpXhhhhh``hXxxpph`hh`pXXhpXxpp`X``pX``xhp``xh``hxhpphppx`x`hpphpx`XpXXh``Xp``Xpph`pXXhpppx`XpxpX`ppxX`xXx`pp`h`phpxhhxhxhph`pxph`ppphpppx`phX`pPhXpXhXhp`h`Xpx`XXXxhphphhx`xpxx``Pxh`pxxhXXXXxxhXXpppp``ph``XXhphh`X`xXpph`XXph`p``XXxhX`phhpXpXhhh``x```Xp`p`hxPp``p`hhXXpx`hX`hhxh`xXp`Xxhh``px`X`hpp`XXx`h`Xx` \ No newline at end of file