From 52dcf8460115ddf370898833ec897a5a60e8dee6 Mon Sep 17 00:00:00 2001 From: gho tik Date: Sun, 16 Oct 2016 12:47:44 -0400 Subject: [PATCH] v2_03_91_src_fx5 Former-commit-id: 5354fc59f0281dcfbedf0226d607cc4501799929 --- Include/dxwnd.h | 1 + build/dxwnd.dll | 4 +- build/dxwnd.exe | 2 +- build/exports/AeroStyle.dxw | 5 ++- build/exports/Chicken Invaders 2.dxw | 35 ++++++++++++++++++ build/exports/Daytona USA Deluxe.dxw | 35 ++++++++++++++++++ build/exports/Galapagos.dxw | 28 +++++++------- .../Jeff Wayne's - The War of the Worlds.dxw | 33 +++++++++++++++++ ....T. Escape Or Die Trying (SW 640X480).dxw | 35 ++++++++++++++++++ ...D.T. Escape Or Die Trying (HW 640X480).dxw | 35 ++++++++++++++++++ build/exports/V-Rally 2 Expert Edition.dxw | 35 ++++++++++++++++++ build/exports/dxwnd.log | 19 ++-------- build/readme-relnotes.txt | 5 ++- dll/dwhide.cpp | 26 ++++++++++--- dll/dxhook.cpp | 3 +- dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 11264 -> 33280 bytes dll/dxwsstack.cpp | 16 +++++++- dll/user32.cpp | 11 ++++++ host/CGlobalSettings.cpp | 2 + host/MessageBox.cpp | 5 +++ host/dxwndhost.cpp | 5 +++ host/dxwndhost.vs2008.suo | Bin 46592 -> 46592 bytes 23 files changed, 298 insertions(+), 44 deletions(-) create mode 100644 build/exports/Chicken Invaders 2.dxw create mode 100644 build/exports/Daytona USA Deluxe.dxw create mode 100644 build/exports/Jeff Wayne's - The War of the Worlds.dxw create mode 100644 build/exports/O.D.T. Escape Or Die Trying (SW 640X480).dxw create mode 100644 build/exports/O.D.T. Escape Or Die Trying (HW 640X480).dxw create mode 100644 build/exports/V-Rally 2 Expert Edition.dxw diff --git a/Include/dxwnd.h b/Include/dxwnd.h index 2ef095a..111d80d 100644 --- a/Include/dxwnd.h +++ b/Include/dxwnd.h @@ -347,6 +347,7 @@ char *hexdump(unsigned char *, int); LRESULT CALLBACK extWindowProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK extChildWindowProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK extDialogWindowProc(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK dw_Hider_Message_Handler(HWND, UINT, WPARAM, LPARAM); // defines below to condition debug message handling diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 56518ae..7fd1a23 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c0a0bc5af69c9bca35060d300910d4ec21d43d16136375c612d412aee68c925 -size 688128 +oid sha256:316eb7122e88fb04f315feae566f9dd25795711486906c18921c705267ead3ea +size 688640 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index 7b2a23c..c7a426d 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d33e2d7ebb3bdfa9da636b6ab7630829f3aacb7b02fd0e07d8cbdba99d9ecae +oid sha256:a8ac20985704c056d733ed339eed0f3da3467d780f238d3717fb855f5d8dec20 size 662016 diff --git a/build/exports/AeroStyle.dxw b/build/exports/AeroStyle.dxw index 211933a..c681f1c 100644 --- a/build/exports/AeroStyle.dxw +++ b/build/exports/AeroStyle.dxw @@ -9,7 +9,7 @@ notes0= registry0= ver0=0 coord0=0 -flag0=136314914 +flag0=136314886 flagg0=1207959552 flagh0=20 flagi0=138412036 @@ -30,3 +30,6 @@ maxres0=-1 swapeffect0=0 maxddinterface0=7 slowratio0=2 +monitorid0=-1 +initresw0=800 +initresh0=600 diff --git a/build/exports/Chicken Invaders 2.dxw b/build/exports/Chicken Invaders 2.dxw new file mode 100644 index 0000000..6fbfac1 --- /dev/null +++ b/build/exports/Chicken Invaders 2.dxw @@ -0,0 +1,35 @@ +[target] +title0=Chicken Invaders 2 +path0=F:\Games\Chicken Invaders 2\ChickenInvaders2.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=65536 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +initresw0=800 +initresh0=600 diff --git a/build/exports/Daytona USA Deluxe.dxw b/build/exports/Daytona USA Deluxe.dxw new file mode 100644 index 0000000..5c4be2e --- /dev/null +++ b/build/exports/Daytona USA Deluxe.dxw @@ -0,0 +1,35 @@ +[target] +title0=Daytona USA Deluxe +path0=F:\Games\Daytona USA Deluxe\DAYTONA USA Deluxe.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=134217732 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +initresw0=800 +initresh0=600 diff --git a/build/exports/Galapagos.dxw b/build/exports/Galapagos.dxw index 8dcfe0e..c508058 100644 --- a/build/exports/Galapagos.dxw +++ b/build/exports/Galapagos.dxw @@ -1,27 +1,27 @@ [target] title0=Galapagos -path0=D:\Games\Galapagos\GALA.EXE +path0=F:\Games\Galapagos\GALA.EXE startfolder0= launchpath0= module0= opengllib0= -notes0=Needs single thread affinity to avoid concurrency crashes.\nBetter add also message pump to avoid process kill by OS while moving the mouse\nNeeds SmackW32 hooking and fix loop flag to be able to show the company logo initial movie +notes0= registry0= ver0=0 -monitorid0=0 +monitorid0=-1 coord0=0 -flag0=-1464811354 -flagg0=1209008128 -flagh0=532 +flag0=137379894 +flagg0=1207959552 +flagh0=33300 flagi0=138412036 -flagj0=201326720 -flagk0=65536 -flagl0=67108880 +flagj0=469766272 +flagk0=67584 +flagl0=25231376 flagm0=0 tflag0=0 dflag0=0 -posx0=50 -posy0=50 +posx0=150 +posy0=150 sizx0=800 sizy0=600 maxfps0=0 @@ -30,6 +30,6 @@ winver0=0 maxres0=-1 swapeffect0=0 maxddinterface0=7 -slowratio0=1 -initresw0=0 -initresh0=0 +slowratio0=2 +initresw0=640 +initresh0=480 diff --git a/build/exports/Jeff Wayne's - The War of the Worlds.dxw b/build/exports/Jeff Wayne's - The War of the Worlds.dxw new file mode 100644 index 0000000..20d1955 --- /dev/null +++ b/build/exports/Jeff Wayne's - The War of the Worlds.dxw @@ -0,0 +1,33 @@ +[target] +title0=Jeff Wayne's - The War of the Worlds +path0=F:\Games\Jeff Wayne's - The War of the Worlds\Wow.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=681574434 +flagg0=1207959552 +flagh0=20 +flagi0=-2009071612 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/O.D.T. Escape Or Die Trying (SW 640X480).dxw b/build/exports/O.D.T. Escape Or Die Trying (SW 640X480).dxw new file mode 100644 index 0000000..ff22c8e --- /dev/null +++ b/build/exports/O.D.T. Escape Or Die Trying (SW 640X480).dxw @@ -0,0 +1,35 @@ +[target] +title0=O.D.T. Escape Or Die Trying (SW 640X480) +path0=F:\Games\ODT\ODT.exe +startfolder0= +launchpath0=F:\Games\ODT\ODT.exe 640 480 FALSE DISPLAY (SW) +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=0 +coord0=0 +flag0=134217826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=128 +flagk0=0 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=1 +initresw0=0 +initresh0=0 diff --git a/build/exports/O.D.T. Escape Or Die Trying (HW 640X480).dxw b/build/exports/O.D.T. Escape Or Die Trying (HW 640X480).dxw new file mode 100644 index 0000000..7b3e5e4 --- /dev/null +++ b/build/exports/O.D.T. Escape Or Die Trying (HW 640X480).dxw @@ -0,0 +1,35 @@ +[target] +title0=O.D.T. Escape Or Die Trying (HW 640X480) +path0=F:\Games\ODT\ODT.exe +startfolder0= +launchpath0=F:\Games\ODT\ODT.exe 640 480 TRUE DISPLAY (HW) +module0= +opengllib0= +notes0= +registry0=”&G +ver0=0 +monitorid0=0 +coord0=0 +flag0=134217826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=128 +flagk0=0 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=1 +initresw0=0 +initresh0=0 diff --git a/build/exports/V-Rally 2 Expert Edition.dxw b/build/exports/V-Rally 2 Expert Edition.dxw new file mode 100644 index 0000000..fcedcd2 --- /dev/null +++ b/build/exports/V-Rally 2 Expert Edition.dxw @@ -0,0 +1,35 @@ +[target] +title0=V-Rally 2 Expert Edition +path0=F:\Games\V-Rally 2 Expert Edition\V-Rally2 Expert Edition\Vrally2.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0=Note: the game detects Alt-tabs and terminates. \nThen the "do not notify on task switch" is mandatory, but also minimizing is not supported. +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=136314931 +flagg0=1207959808 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=1048576 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +initresw0=800 +initresh0=600 diff --git a/build/exports/dxwnd.log b/build/exports/dxwnd.log index bc2604d..b258931 100644 --- a/build/exports/dxwnd.log +++ b/build/exports/dxwnd.log @@ -1,19 +1,6 @@ -OnRun idx=3 prog="D:\Games\Barbie Riding Club\Program\Barbie Riding Club.exe" +OnRun idx=0 prog="G:\Games\Nascar Racing 3\NASCAR Racing 3.exe" setwindowshook mode -OnRun idx=3 prog="D:\Games\Barbie Riding Club\Program\Barbie Riding Club.exe" +OnRun idx=0 prog="G:\Games\Nascar Racing 3\NASCAR Racing 3.exe" setwindowshook mode -OnRun idx=5 prog="D:\Games\The Creed\Creed.exe" -export virtual registry -setwindowshook mode -OnRun idx=4 prog="D:\Games\The Creed (SW DEMO)\DemoCreed.exe" -setwindowshook mode -OnRun idx=4 prog="D:\Games\The Creed (SW DEMO)\DemoCreed.exe" -setwindowshook mode -OnRun idx=5 prog="D:\Games\The Creed ( HW DEMO)\DemoCreed.exe" -setwindowshook mode -OnRun idx=4 prog="D:\Games\The Creed (SW DEMO)\DemoCreed.exe" -setwindowshook mode -OnRun idx=5 prog="D:\Games\The Creed ( HW DEMO)\DemoCreed.exe" -setwindowshook mode -OnRun idx=5 prog="D:\Games\The Creed ( HW DEMO)\DemoCreed.exe" +OnRun idx=0 prog="G:\Games\Nascar Racing 3\NASCAR Racing 3.exe" setwindowshook mode diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 76b2900..5da1d5f 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -1293,9 +1293,12 @@ fix: manages the possibility or ValidateRect receiving a NULL RECT pointer - fix add: auto-blit mode in SmakW32 frame loop - shows "Galapagos" company logo intro movie fix: force stop blitting on window minimize event - fixes "Galapagos" and many others .... -v2.03.91.fx1-4: +v2.03.91.fx1-5: fix: eliminated LOC causing bad window sizing fix: better desktop hider management fix: DC emulation object leakage - fixes "Yu No" leakage fix: USER32 EndPaint DC leakage - fixes "Yu No" leakage fix: window position problems +fix: GUI auto hide mode enabled and disabled without need of GUI restart +fix: ddraw surface stack policy. Recovers "Warhammer 40K Rites of War" after v2.03.83 fix. +add: /q quiet mode, no message dialogs on screen \ No newline at end of file diff --git a/dll/dwhide.cpp b/dll/dwhide.cpp index f187564..4975291 100644 --- a/dll/dwhide.cpp +++ b/dll/dwhide.cpp @@ -6,6 +6,8 @@ #include "syslibs.h" #include "dxhelper.h" +//#define FOUR_WINDOWS_STRIPED_HIDER + /**************************************************************************** * Function Name : gShowHideTaskBar() * * Parameters : BOOL bHide (flag to toggle Show/Hide of Taskbar) * @@ -53,9 +55,10 @@ void gShowHideTaskBar(BOOL bHide /*=FALSE*/) static bool quit = false; static HWND wHider=0; +static RECT wDesktop; #ifdef FOUR_WINDOWS_STRIPED_HIDER -static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam) +LRESULT CALLBACK dw_Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam) { switch(umsg) { @@ -70,8 +73,12 @@ static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wpara return (*pDefWindowProcA)(hwnd, umsg, wparam, lparam); } #else -static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam) +LRESULT CALLBACK dw_Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam) { + + extern void ExplainMsg(char *, HWND, UINT, WPARAM, LPARAM); + // ExplainMsg("HIDER", hwnd, umsg, wparam, lparam); + //LRESULT ret; switch(umsg) { @@ -86,6 +93,7 @@ static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wpara // OutTrace("HIDER: msg=%x(%s) w/lparam= %x-%x\n", umsg, ExplainWinMessage(umsg), wparam, lparam); if(hwnd == wHider){ + WINDOWPOS *wp; switch(umsg){ case WM_NOTIFY: case WM_SETFOCUS: @@ -103,6 +111,14 @@ static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wpara (*pSetWindowPos)(dxw.GethWnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOOWNERZORDER|SWP_NOSENDCHANGING); return 0; break; + case WM_WINDOWPOSCHANGING: + case WM_WINDOWPOSCHANGED: + wp = (WINDOWPOS *)lparam; + wp->x = wDesktop.left; + wp->y = wDesktop.top; + wp->cx = wDesktop.right - wDesktop.left; + wp->cy = wDesktop.bottom - wDesktop.top; + break; default: break; } @@ -142,7 +158,7 @@ static HINSTANCE RegisterHiderWindow() WndClsEx.cbSize = sizeof(WNDCLASSEX); WndClsEx.style = 0; - WndClsEx.lpfnWndProc = Hider_Message_Handler; //DefWindowProc; + WndClsEx.lpfnWndProc = dw_Hider_Message_Handler; //DefWindowProc; WndClsEx.cbClsExtra = 0; WndClsEx.cbWndExtra = 0; WndClsEx.hIcon = LoadIcon(NULL, IDI_APPLICATION); @@ -274,7 +290,7 @@ void dxwCore::HideDesktop(HWND hwnd) { static BOOL DoOnce=TRUE; static ATOM aClass; - RECT wRect, wDesktop; + RECT wRect; static HINSTANCE hinst=NULL; if(DoOnce){ @@ -302,7 +318,7 @@ void dxwCore::HideDesktop(HWND hwnd) if(!wHider) { wHider=(*pCreateWindowExA)(0, "dxwnd:hider", "hider", 0, 0, 0, 0, 0, hParent, NULL, hinst, NULL); if(!wHider) { - OutTrace("HideDesktop: CreateWindowEx ERROR hwnd=%x err=%d\n", hwnd, GetLastError()); + OutTrace("HideDesktop: CreateWindowEx ERROR hwnd=%x parent=%x err=%d\n", hwnd, hParent, GetLastError()); return; } (*pSetWindowLongA)(wHider, GWL_STYLE, 0); diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index 73b9708..63fac42 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -652,7 +652,8 @@ void HookWindowProc(HWND hwnd) // don't hook twice .... if ((pWindowProc == extWindowProc) || (pWindowProc == extChildWindowProc) || - (pWindowProc == extDialogWindowProc)){ + (pWindowProc == extDialogWindowProc) || + (pWindowProc == dw_Hider_Message_Handler)){ // hooked already !!! OutTraceDW("GetWindowLong: hwnd=%x WindowProc HOOK already in place\n", hwnd); return; diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index a56fc82..9771d8f 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -27,7 +27,7 @@ along with this program. If not, see . #include "TlHelp32.h" -#define VERSION "2.03.91.fx4" +#define VERSION "2.03.91.fx5" #define DDTHREADLOCK 1 //#define LOCKTHREADS diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 5629aeaa68b3f9447999320e32253ccf9ad77142..9e4ca3d83a71cf49f78b24bc23cce366d0542fa0 100644 GIT binary patch literal 33280 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 delta 815 zcmaJIcS$qtOUXIj;yX++E*cZC+w3qCD)%-ubw^nAm3)iDU*1zNh&J(ZLbkCg#x9IPNJW z)lWvZg#N}nbQi}@<(ZlGshToDPtBR&ms)#L-hQodW~oRL9t0NAhy}6FC}d zWH0YvDVfHX$w1p(P_1NF#(CXqR;Cemn0(;YjmAi*dx}=cNgli5aZVAu!f7GF=G0ka zyc5S)A|0tDYgE#RWnrysEc>J_WmUF|{vP|Hqj?t0Jn;p}Q^98*y{JkSiBVI;g0333Y!F@A+vZN$e&L z{L~^ZL66a*PHm!)74z51VZV3+g0=%0{S?BbY)xxMyRt z1P`x8E!47A#`Rr?=VS)AY}42Zub>%AGa0`VH^8fR@h0X(M2nyse#HLGetParent())->UpdateHotKeys(); gbDebug = m_DebugMode; + gAutoHideMode = m_AutoHideMode; } diff --git a/host/MessageBox.cpp b/host/MessageBox.cpp index 6f0ab9c..b810e50 100644 --- a/host/MessageBox.cpp +++ b/host/MessageBox.cpp @@ -2,10 +2,14 @@ #include #include +extern BOOL gQuietMode; + int MessageBoxLang(UINT iText, UINT iCaption, UINT uType) { WCHAR sBuffer[1024+1]; WCHAR sCaption[48+1]; + + if (gQuietMode) return MB_OK; LoadStringW(AfxGetResourceHandle(), iText, (LPWSTR)&sBuffer, sizeof(sBuffer)); LoadStringW(AfxGetResourceHandle(), iCaption, (LPWSTR)&sCaption, sizeof(sCaption)); @@ -19,6 +23,7 @@ int MessageBoxLangArg(UINT iText, UINT iCaption, UINT uType, ...) WCHAR sFormat[1024+1]; WCHAR sCaption[48+1]; + if (gQuietMode) return MB_OK; LoadStringW(AfxGetResourceHandle(), iText, (LPWSTR)&sFormat, sizeof(sFormat)); LoadStringW(AfxGetResourceHandle(), iCaption, (LPWSTR)&sCaption, sizeof(sCaption)); diff --git a/host/dxwndhost.cpp b/host/dxwndhost.cpp index ba6daae..c4dd3be 100644 --- a/host/dxwndhost.cpp +++ b/host/dxwndhost.cpp @@ -37,6 +37,7 @@ UINT m_InitialState = DXW_ACTIVE; BOOL gbDebug = FALSE; BOOL gTransientMode = FALSE; BOOL gAutoHideMode = FALSE; +BOOL gQuietMode = FALSE; int iProgIndex; extern char m_ConfigFileName[20+1] = "dxwnd.ini"; @@ -111,6 +112,10 @@ void CNewCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) iProgIndex = atoi(&p[2]); return; } + if (sParam.MakeLower() == "q"){ + // (Q)uiet mode: no message dialogs on screen + gQuietMode = TRUE; + } } // Call the base class to ensure proper command line processing diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index ccefed36334c1df9307f4530d8903a12411e1d59..156ead84414207098b67d9f9e5262f7fcd171e98 100644 GIT binary patch delta 336 zcmZp8!_@GGX+sVR+XUT${ioF@7qJ9RKFn=6*?@&*^ADCOj4c2D|NlRE0-MIf5D^0t z1_p+&KnxW6Zw{nC1FGwbkl7oTCf7m1@Yp}~qOc0su!oEkKHomv~-2)zn z_GKF7N9$tjCOdK(Om^UCVGRIkbf3II-9=;kk6{>?FMy33sE!jV%{S#Ky3>O4g5+i3{oyC7#Iu!UA%B delta 367 zcmZp8!_@GGX+sVR+lN`}3ldc(7qJ9RKFnu0*?@&*^ADCOj4XN#3=ESeuxYsH0~rQD zYzV|gKx_)cCP4fZh;4w_9Ed*yu_X}y`~UyHHIRM}#I`_e2gI&GJoyisgrFOc;SR(e zK^j%H%J60h5pL8%!?Y_XjE3{DnV&g}DrFlhEWd)&}g1KwUtcllM#6ZW46{ zTFL