From 652d77cc58775867ec0494367a316d0dfbede15a Mon Sep 17 00:00:00 2001 From: grunt22fox <44271623+grunt22fox@users.noreply.github.com> Date: Thu, 21 Dec 2023 07:46:09 -0600 Subject: [PATCH] Overhaul of Wii/GameCube game dumping guides --- _pages/en_US/dump-games.md | 117 ++++++--------- .../{gcbackupmanager.md => gc-backups.md} | 19 ++- _pages/en_US/site-navigation.md | 6 +- _pages/en_US/wii-backups.md | 137 ++++++++++++++++++ _pages/en_US/wiibackupmanager.md | 66 --------- images/desktop-apps/GCBM/folderbutton.png | Bin 0 -> 65895 bytes images/desktop-apps/GCBM/installgame.png | Bin 0 -> 25342 bytes images/desktop-apps/GCBM/selectdrive.png | Bin 0 -> 11965 bytes images/desktop-apps/GCBM/selectfolder.png | Bin 0 -> 25247 bytes images/desktop-apps/WBM/dumpedpartfiles.png | Bin 0 -> 6274 bytes .../desktop-apps/WBM/dumpedpartfileslinux.png | Bin 0 -> 5695 bytes images/desktop-apps/WBM/filemd5.png | Bin 0 -> 33945 bytes images/desktop-apps/WBM/joinpartfiles.png | Bin 0 -> 5838 bytes images/desktop-apps/WBM/loadwbf.png | Bin 0 -> 1985 bytes images/desktop-apps/WBM/mergesuccesslinux.png | Bin 0 -> 40449 bytes images/desktop-apps/WBM/opencmd.png | Bin 0 -> 17927 bytes images/desktop-apps/WBM/opendirectorywbf.png | Bin 0 -> 27132 bytes images/desktop-apps/WBM/openterminallinux.png | Bin 0 -> 23744 bytes images/desktop-apps/WBM/select_drive.png | Bin 50665 -> 82207 bytes images/desktop-apps/WBM/select_games.png | Bin 47902 -> 59873 bytes images/desktop-apps/WBM/select_games2.png | Bin 53044 -> 66109 bytes images/desktop-apps/WBM/settingswbf.png | Bin 0 -> 29138 bytes images/desktop-apps/WBM/terminalcd.png | Bin 0 -> 13117 bytes images/desktop-apps/WBM/transfer_todrive.png | Bin 52073 -> 65744 bytes images/desktop-apps/WBM/wbfsname.png | Bin 0 -> 4809 bytes images/desktop-apps/WBM/witinstallfolder.png | Bin 0 -> 16775 bytes .../dolphin/dolphin-user-folder.png | Bin .../dolphin/export-wiisave.png | Bin images/homebrew/CleanRip/checksum.png | Bin 0 -> 841373 bytes images/homebrew/CleanRip/dateldisc.png | Bin 0 -> 847543 bytes images/homebrew/CleanRip/device.png | Bin 0 -> 788278 bytes images/homebrew/CleanRip/filesystem.png | Bin 0 -> 792898 bytes images/homebrew/CleanRip/gcdumpcomplete.png | Bin 0 -> 1074122 bytes images/homebrew/CleanRip/gcprogress.png | Bin 0 -> 885430 bytes images/homebrew/CleanRip/insertdevice.png | Bin 0 -> 836125 bytes images/homebrew/CleanRip/insertdisc.png | Bin 0 -> 806908 bytes images/homebrew/CleanRip/readerror.png | Bin 0 -> 798440 bytes images/homebrew/CleanRip/redump.png | Bin 0 -> 817668 bytes images/homebrew/CleanRip/wiidumpcomplete.png | Bin 0 -> 1052655 bytes images/homebrew/CleanRip/wiiprogress.png | Bin 0 -> 832876 bytes images/homebrew/CleanRip/wiisettings.png | Bin 0 -> 911390 bytes 41 files changed, 202 insertions(+), 143 deletions(-) rename _pages/en_US/{gcbackupmanager.md => gc-backups.md} (64%) create mode 100644 _pages/en_US/wii-backups.md delete mode 100644 _pages/en_US/wiibackupmanager.md create mode 100644 images/desktop-apps/GCBM/folderbutton.png create mode 100644 images/desktop-apps/GCBM/installgame.png create mode 100644 images/desktop-apps/GCBM/selectdrive.png create mode 100644 images/desktop-apps/GCBM/selectfolder.png create mode 100644 images/desktop-apps/WBM/dumpedpartfiles.png create mode 100644 images/desktop-apps/WBM/dumpedpartfileslinux.png create mode 100644 images/desktop-apps/WBM/filemd5.png create mode 100644 images/desktop-apps/WBM/joinpartfiles.png create mode 100644 images/desktop-apps/WBM/loadwbf.png create mode 100644 images/desktop-apps/WBM/mergesuccesslinux.png create mode 100644 images/desktop-apps/WBM/opencmd.png create mode 100644 images/desktop-apps/WBM/opendirectorywbf.png create mode 100644 images/desktop-apps/WBM/openterminallinux.png create mode 100644 images/desktop-apps/WBM/settingswbf.png create mode 100644 images/desktop-apps/WBM/terminalcd.png create mode 100644 images/desktop-apps/WBM/wbfsname.png create mode 100644 images/desktop-apps/WBM/witinstallfolder.png rename images/{ => desktop-apps}/dolphin/dolphin-user-folder.png (100%) rename images/{ => desktop-apps}/dolphin/export-wiisave.png (100%) create mode 100644 images/homebrew/CleanRip/checksum.png create mode 100644 images/homebrew/CleanRip/dateldisc.png create mode 100644 images/homebrew/CleanRip/device.png create mode 100644 images/homebrew/CleanRip/filesystem.png create mode 100644 images/homebrew/CleanRip/gcdumpcomplete.png create mode 100644 images/homebrew/CleanRip/gcprogress.png create mode 100644 images/homebrew/CleanRip/insertdevice.png create mode 100644 images/homebrew/CleanRip/insertdisc.png create mode 100644 images/homebrew/CleanRip/readerror.png create mode 100644 images/homebrew/CleanRip/redump.png create mode 100644 images/homebrew/CleanRip/wiidumpcomplete.png create mode 100644 images/homebrew/CleanRip/wiiprogress.png create mode 100644 images/homebrew/CleanRip/wiisettings.png diff --git a/_pages/en_US/dump-games.md b/_pages/en_US/dump-games.md index 53ec79d86..088459378 100644 --- a/_pages/en_US/dump-games.md +++ b/_pages/en_US/dump-games.md @@ -4,7 +4,7 @@ title: "Dumping Wii/GameCube games" {% include toc title="Table of Contents" %} -This guide covers dumping GameCube or Wii game discs. You can either dump directly to an SD card or USB drive, or over the local network. +This guide covers dumping GameCube or Wii game discs to a local SD card or USB drive on your Wii. ### Dumping a Disc to SD/USB (CleanRip) @@ -13,10 +13,7 @@ This guide covers dumping GameCube or Wii game discs. You can either dump direct + An SD card or USB drive with at least 4.7 GB of free space (8.5 GB if dumping a dual layer disc). + [CleanRip](https://oscwii.org/library/app/cleanrip) -#### Instructions - -If you are dumping one of the 13 games on [this list](https://wiki.dolphin-emu.org/index.php?title=Category:Dual_Layer_Disc_games), set `Dual Layer` in Step 6 to `Yes`. -{: .notice--info} +#### Preparation 1. Power off your console. 1. Insert your SD card or USB drive into your computer. @@ -25,96 +22,76 @@ If you are dumping one of the 13 games on [this list](https://wiki.dolphin-emu.o 1. Power on your console. 1. Launch the Homebrew Channel. 1. Launch CleanRip from the list of homebrew. +1. When prompted, select `Yes` to calculate disc checksums. + + ![](/images/homebrew/CleanRip/checksum.png) + 1. Select your device that you will be dumping the game to - a USB device or SD card. - ![](/images/homebrew/CleanRip/2.png) + ![](/images/homebrew/CleanRip/device.png) + +1. Select the filesystem type of the device - in most cases it will be FAT (FAT32). + + ![](/images/homebrew/CleanRip/filesystem.png) + +1. Ensure that your device is connected to the system and press A to proceed. + + ![](/images/homebrew/CleanRip/insertdevice.png) 1. When prompted, select `Yes` to download the redump.org DAT files. + This is required to ensure that the resulting dumps are clean/accurate. - You may get an exception error if you do this. If so, simply skip and verify your dump on Dolphin Emulator if needed. + You may get an exception error if you do this. If so, restart your Wii and try again - but if you continue to get exception errors, dump the disc and verify the checksum in Dolphin instead if needed. {: .notice--warning} - ![](/images/homebrew/CleanRip/3.png) + ![](/images/homebrew/CleanRip/redump.png) -1. Insert the game disc you would like to dump. +1. Insert the game disc you would like to dump, and press A to continue. - ![](/images/homebrew/CleanRip/4.png) + ![](/images/homebrew/CleanRip/insertdisc.png) + +### Dumping a Wii Disc + +As of v2.1.2 of CleanRip, there is an option to auto-detect whether or not the disc you have is dual layer. If you are on an earlier version, or just want to verify that the correct option is being selected, you can check [this list](https://wiki.dolphin-emu.org/index.php?title=Category:Dual_Layer_Disc_games) to see if your game is a dual layer disc. +{: .notice--info} + +If you get an unrecovered read error, ensure that the disc you are attempting to dump is clean and can be properly read by the console. Even though you may be able to play the game disc normally, you may still get this error. If the error persists, try to dump another disc and see if the same error happens. +{: .notice--warning} + +1. When prompted, select if your disc is an unlicensed Datel disc. If unsure, select `No`. + + ![](/images/homebrew/CleanRip/dateldisc.png) 1. Set the settings as shown on the screen below, while verifying if your game disc is dual layer or not. - ![](/images/homebrew/CleanRip/6.png) + ![](/images/homebrew/CleanRip/wiisettings.png) 1. Press A to start dumping the disc. - + This process can take quite some time, since it will dump the full 4.7 GB disc contents (8.5 GB for dual layer discs). + + This process can take quite some time, since it will dump all 4.7 GB of the DVD (8.5 GB for dual layer discs). - ![](/images/homebrew/CleanRip/7.png) + ![](/images/homebrew/CleanRip/wiiprogress.png) -1. Proceed to [joining PART files](dump-games#joining-part-files-on-a-fat32-device). +1. When the dump finishes, you should see a screen with the MD5 checksum of your disc, compared to the Redump DAT if you enabled it. -### Dumping a Disc over LAN (Wii DVD Dumper) + ![](/images/homebrew/CleanRip/wiidumpcomplete.png) -#### Requirements - -+ A Windows/macOS/Linux PC with an internet connection -+ [DVD Dump Tool](/assets/files/DVDDumpTool.zip) - -#### Instructions - -Download speeds will be slow due to limitations in the network hardware of the Wii, but it remains a valid solution if you are willing to be patient. +Proceed to [Managing Wii Backups](wii-backups) to join the PART files that are output, and manage your dumped games. {: .notice--info} -Your Wii and your computer must be connected to the same local network. -{: .notice--warning} +### Dumping a GameCube Disc -1. Copy the `DVDDumpTool` folder from the DVDDumpTool `.zip` to the root of your SD card or USB drive. -1. Reinsert your SD card or USB drive into your console. -1. Power on your console. -1. Launch the Homebrew Channel. -1. Launch DVD Dump Tool from the list of homebrew. -1. Press right on the D-pad, then press A. -1. Choose the disc that you want to copy (The options are: `GameCube Disc`, `Wii Single-Layer Disc`, `Wii Dual-Layer Disc`) and press "A" +1. When prompted, select if your disc is an unlicensed Datel disc. If unsure, select `No`. - ![](/images/homebrew/DumpDiscs_LAN/2.png) -1. Insert the game disc into your Wii. - + If it is already inserted, eject and reinsert the disc. + ![](/images/homebrew/CleanRip/dateldisc.png) - ![](/images/homebrew/DumpDiscs_LAN/insertthedisc.jpg) -1. Select the proper disc type. +1. Press A to start dumping the disc. + + This process can take some time, since it will dump all 1.3 GB of the Mini DVD. - ![](/images/homebrew/DumpDiscs_LAN/3.png) -1. Press any button to begin the dumping process. + ![](/images/homebrew/CleanRip/gcprogress.png) - ![](/images/homebrew/DumpDiscs_LAN/4.png) -1. Remember or write down your Wii's URL (IP address). -1. On your computer, open the browser, go to your address bar and enter the Wii URL. +1. When the dump finishes, you should see a screen with the MD5 checksum of your disc, compared to the Redump DAT if you enabled it. - ![](/images/homebrew/DumpDiscs_LAN/5.png) -1. Click on `Click here to download XXXX.iso`. -1. Proceed to [joining PART files](dump-games#joining-part-files-on-a-fat32-device). + ![](/images/homebrew/CleanRip/gcdumpcomplete.png) -### Joining PART files on a FAT32 device - -If you dumped the disc (regardless if it was to a PC or Wii) on a FAT32 formatted device, you should have gotten at least two files that end with `.partX.iso`. They need to be joined. -{: .notice--info} - -#### Windows - -1. Copy the files that share the same name and end with `.partX.iso` into an empty folder on your computer. -1. In this folder, click the address bar in Windows Explorer and copy its PATH. -1. Open a PowerShell or Windows Terminal window. -1. Run `cd [PATH]`. -1. Type `copy /b *.part?.iso game.iso` and press enter. -1. Wait until the merging process finishes. - + It should end with the terminal outputting `1 file(s) copied`. - -#### macOS/Linux - -1. Copy the files that share the same name and end with `.partX.iso` into an empty folder on your computer. -1. Open up a Terminal. -1. Run `cd [PATH]`, replacing [PATH] with the folder path to your `.partX.iso` files. -1. Use the following command as is: `cat \*.part?.iso > game.iso`. -1. Wait until the merging process finishes. - -To organize the games on your drive properly, you can use [Wii Backup Manager](wiibackupmanager). -{: .notice--info} +Proceed to [Managing GameCube Backups](gc-backups) to shrink the size of your output file, and manage your dumped games. +{. notice--info} \ No newline at end of file diff --git a/_pages/en_US/gcbackupmanager.md b/_pages/en_US/gc-backups.md similarity index 64% rename from _pages/en_US/gcbackupmanager.md rename to _pages/en_US/gc-backups.md index 11abaae7d..06b673d7d 100644 --- a/_pages/en_US/gcbackupmanager.md +++ b/_pages/en_US/gc-backups.md @@ -1,10 +1,10 @@ --- -title: "GameCube Backup Manager" +title: "Managing GameCube Backups" --- {% include toc title="Table of Contents" %} -GameCube Backup Manager is a convenient PC software that simplifies the process of transferring GameCube games to your USB drive or SD Card. It functions similar to the popular tool called [Wii Backup Manager](wiibackupmanager), allowing you to easily manage and organize your GameCube game backups. With this program, you can effortlessly copy your favorite GameCube games onto portable storage devices, making them readily accessible for future gaming sessions. +This guide provides instructions on how to manage your GameCube backups, using GameCube Backup Manager. It functions similar to [Wii Backup Manager](wii-backups#using-wii-backup-manager). ### Requirements @@ -27,11 +27,22 @@ Make sure your USB drive is formatted as FAT32. Do not format it as other types #### Section II - Copying Games Over 1. Open the application and locate the folder button in the bottom right corner. Click on it to open the file explorer window. -1. Navigate to the location of the game file you want to transfer. This could be on your computer's hard drive or an external storage device. Once you find the file, select it by clicking on it. + + ![](/images/desktop-apps/GCBM/folderbutton.png) + +1. Navigate to the location of the folder that contains the game file you want to transfer. This could be on your computer's hard drive or an external storage device. Once you find the folder, select it. + + ![](/images/desktop-apps/GCBM/selectfolder.png) + 1. Click on the `Files (Destination)` tab, then select the `Inactive` option from the dropdown menu. This will allow you to choose the drive where you want to transfer the game. Select the appropriate drive letter from the list. + + ![](/images/desktop-apps/GCBM/selectdrive.png) + 1. Next, go back to the `Files (Source)` tab, select the game you want to transfer, and then click either `Install Game (1:1)` or `Install Game (Scrub)`. -Selecting `Install Game (Scrub)` will remove unnecessary data from the game, reducing the game's file size. + ![](/images/desktop-apps/GCBM/installgame.png) + +Selecting `Install Game (Scrub)` will remove unnecessary data from the game, reducing the game's file size. For some games this can be a major reduction, for example with Animal Crossing - going from 1.3GB to around 26MB. {: .notice--info} [Click here to go back to the site index.](site-navigation) diff --git a/_pages/en_US/site-navigation.md b/_pages/en_US/site-navigation.md index 234775911..8bfaa53b6 100644 --- a/_pages/en_US/site-navigation.md +++ b/_pages/en_US/site-navigation.md @@ -54,16 +54,16 @@ sitemap: false {% capture notice-5 %} **Homebrew** + [Creating Wii Game Shortcuts](wiigsc) -+ [GameCube Backup Manager](gcbackupmanager) + [How to dump Channels (WADs)](dump-wads) + [How to dump GameCube/Wii Games](dump-games) -+ [RSSMii](rssmii) ++ [Managing GameCube Backups](gc-backups) + [Managing GameCube Save Files](gcsaves) ++ [Managing Wii Backups](wii-backups) + [Priiloader Usage](priiloader-usage) + [Recommended Homebrew](recommended-homebrew) ++ [RSSMii](rssmii) + [USB Loaders](wii-loaders) + [Using SysCheck](syscheck) -+ [Wii Backup Manager](wiibackupmanager) + [Wii Themes Guide](themes) {% endcapture %}
JhA&@I8xRCUYRn2Hi*^8T{P!Ch=>*z3M1l}5WUK6V-kY;7Gdb#M1DL=u5olaNHkx25Zw ztOXfu 0D*>JoHMO(A9<0^h=+{zgm_t>&Z!F z4GoW6K+O1;-h9txNzK+OLFDU{Ogj}9^McIdq**EXuv?6Ug|H8VZPq)7Gn~fXf8xf) z(sO2pW_>jqFG^8vhR?idT{rOdzMU0E@32On2ex31!nIb+4H5d_0cXm4mZB ob?3-Y5jJ)b)Yk!K3w*
i*~rpn|NvhbtdKa0j?FW%JSN3H(UHqM^uhC++s56O{GkE zNo{&Uk1$Y=9VKZh k4^F}yUIZ` _qpGNn`bGkJgu< z7-caWT73fwsDT2|!ip~{r2+i1vP@?=Y+ikI*7k+1nXh_fr&n?VJ{|N<+)8Q><^FMz z^n{uD1FLn=U7_{RUg;Sck w+%ktFYX}EuXfi zTyQfw;0L=|i*Xm=IKvP1wSQB`FJtE%L%5ikYrZZ=PZzT>`yErRHX01FQ5hjp+y;+~ zKVI}|N2)S2Q&`T>i<)Fbh3)YynEwu
8V^Q-v>ql167yB0I1QB6VN9 k2f1julh(ND!(C+2HFCicSj|B)Upag`G)VOEg z#Lri9&uB7ov*KsVFRN`Qs7BVr>}zz7<^=K1CUuep@;OVq^OBNX)V!QGYM}w{nVGRr zM5`2~$43Fra@47d#p;E)a=Z_3(m%p!AF9HlX-?+U(d(cG?F|dT#>>0 dwDyx(0G;1J4N0U`%GUiF#2A`vA^8G~)jVC7B^Vfc&DD)IGpwt#a( z7U*v>Bk*mX1)|o0V5J>N?VZDWJk4wm=#T@Q^a~6GX$R8pbUD1{sYlMKTWFF-GA({j z&3A2_S3+=Q_=&(0sLEvl^KwMg+%MxZJHl@4_*ujN pkXQLz4NS80|a{q z4Cc$FD`H-cP2KH|FL jKFVe{ALvwE1ZJ`w|~3xHL-r-r5R5d9cw( zGpx&yB);`_@%yewgH3@KER>&5qzlG4rR2o#51mADVl%lC-w9a$Q5twxC}R&MGVU|? zY~!ID>mL3i&*e2%>HxIskg$&@BTCQQl|o(awdf?c!{a44|6PSnagRAe7Ux!oN)+Cj zxUvXlTt}K $*OyDN zKEy9|1GSoGu!#{lZ!;K-Lnz)XN1pg-AJ-lda6DaH^5yj7%AyjDCL_bqJVYIS)X&U( zpd5O*fA|O|c=VC?+B;%aW@ZHz-|R@RE3s7+Mb3{WmU10VH@^nq?6XcKU1{7t*u`%j zxglVE*!~7DH#;MIF51@mTqm<}@PCo@-houc@B4VAhz{b|Ga{jE$EK_hhpZ@jmc1Q2 z>u`{fWFAr?BdcN0bL^eu$jaU;Sy|uLQSZ;^{rmi$Kl&@rdB*Fx@9Vzq>%Lx4af)FL zy%H1d=rHq&>(+D1R#n3a^W)Ays6G*+?tCiduB;N6`{|e fD#}`0Qm {JJqO>mr3L3+9g!xz8Vkp*ptBtR}SdS?1Q~F%qV+Z2QAdW-1&&oSWWN zJMNe>cS}bP9-O&WRMH(RlklYYqK|3#ywpmFt*XdMhs>3S35Th|h}2PZo6GRqpySr7 z`rSjDwNJ<}j8fy{a#8iBBwtP}QkU4oDEcI_LLD{^w;Y0sX(wUxx~0d3W7S}^J|D?* z(<3cHYUEaijvS#HlO1iuCy554++E@A!#Y7qQ*}+H_0_U{>t7s$3*4T6I5 i%=Jq`?@8-=a*q|)IA6>o;$rhn{W=76De{%r8w zxZS@K-5>;&VKp{SE47@~c~;duN-I&(w$I&v1wCCyNZGTgpl@~2&oo1B!0=`lI_P0S z>+f*qzG_}5#!+jgsO@=04e1(f9#zpKU4lTfPl@}ahr&Bfg!?){Wk8s_E9cQl{?Fsq z{Xh!c3pZ-3>14!Y!xh~Lzt~4zQo+nuu2`gfv=!L=P`)A$(#Id-ATYj!gq+5U!!JE= z@)`XN@va|@;O4uH8EoUG9z@R#PEW_bYRX!7=#u@?5TR4>k%_f$jTNjo?FY!7E#`B6 zee<>jf@5k-&Y_MQF6 @Zk<0HAj^_MSPP|9_Z42Nj>Hi zlGfc*|E$T-`{a;w_xEuOCoyz$mcV`MhA`*jyKM&qet-6ePY*wI=Cx|lA&K4f_e0*b zaHr7SyyGT&-&<3?$%4%IL+9D`r{(YCQ6r@%3Ayc-dT=Yh53)&@*Tz6gm8kl@0BlS2 zxBu4<*e&FPcLnTucWhHOtw`q6bi*&ymYh?v9O@_?WffSl?MP2e*?sb~uCd@Ge`|zb zHP}L?(SOK^JGzb(S9nq_F!>=IpfZ85Pt}3IaYm&Z-(u4y9htgC%XiC*Y)zWTJI-mB zxm|aLAT2D1s%WfTVfrHUeXZA?0Zw22r(sSlwT8-h%7A;#BhfJ5`Q&Hj-y5qCgRz29 zJDxpPgB99C>i9 `8NyYp_})$uz8TYKdIJ@DZXy!IX2 zmpqprbk9j3c2s|IOLZ@-iw(G!eR#rvyq9;rq^e^4_)%`^V@cCE#)a5*ODC*xE|+$Z znqpsYDlUV0HNf>m#EQ&&K`zOVBV&7fy~xVlZ`$6Qtxyfk>_X?HIi=D>acLB1Xv(;; zyC!yNqoQDqR+boQ(qd6Nzd_K-VitX+uEgP%Z_mi}d9uAa=fUlKyW(hVPL8Av^>|QO zJSh6FR2c`{K&rveNN4e i469?Z>!-7;@Y4`;t~gC@`G2E8N7oea=hMqi^sI-~8_ ze;?-_0U)R}onA2`5BV?_{g}Vkc9mg4_)GI4y}O*|{4S0L6>vj8soE)O^~#aM*s-qW zq-Q3*`@WIbYvxEInue%MO->7o?2WnSmAsr#Xn<*ZuTa@Gy2W!480CQ0Q72jl2l{*c z`8r%cr5CBFUD*&y4eD7%ZjY##e)5Y1;qczOS_!W^yv;-|MEleF-_?m>k&gJ{l(8e^ zCCq}>5e*5}($jrbYPBj#=R_96EJ&yS%CBxSCIYiy@$=KIqEcsrY@N>!maC`ge=-*{ zu70Fg^^@2V&AAmw?T&NEVoM?|8mmzfE@ljeCwK!v9njHzg)C4dEU)3cP!I)oLkZV2 zE|7p)HTT~obzPNoHOUTC7P&fDZc*4&LiQr`e~U&nW3k;DQ7x_6G1%_ eFQv2wK zXqswg)i~<#N+&8wC6=HzJ6tK-nFKR7QupDJthm=IU7DEldM`JAdd4D6KCk`q@txA5 z>_KJer^(MBNUD&*S8fP=NXD0>yq@D1Nu&1bj;MV30;!<}ExKR#%H_GZLxDgsjiCGb zz1T{3#hmKtvTxZ65&dtJu6V +P5Gkx=_=G7fk{|)Rpy3KX!?KP0>EC=vUhNpw1E+3 zUxVoNtz|~=_> -z)!i7I2lD@?P;4P98IAo-fkFsi>XsA!SkTb4^eLnBRofql5TeHqS|bt(`byYE zYT=5v@NE@}e8@=jCc}Djq}kI4yB;xhtz 5Vjm19)eyxhUCBe57hEU>eI zdZdQyf~HNXxwoOWwZ* wJqlFLCbIgv9J4&)5xJ zW3XBj73IwfUgu6d$kgae5SZqJbdSZXzS)NQSzP0HIq6JFS=_bGPY|czeFzYFXR4wi z4{gLi>T>Ryil*OHdU|qp!8@M^cYjmZT#iaTstAhg@Vp^)N=uQTbyiH4A&|0R!gRjp zq7CO}v-sXTd 0g+8d<}Y{z-1vZH~#SGPa!zpRYb$ia{5*z0}dkI0do!=2?Ba z&uNA=Zp7B)S)xcY%ahF |we+lH!KLCuG0e>(bjzLu zIc)7{gnG%r2^_%&7BMY@&z|O=sO4dagyYM6()|j-HK+k_78!Z3IgGl!+WvaxFY;(V z5`!b28yp;F&4s;p+jUSjf%xEPPu3^1ke($mCU(01e3P_9c$;>+cA>t_)v0nt&ri9= z!J*gxT*bY?e842-T+LkS)t5|t8nv7bBH!6hs8A3?=gq=xRmPYqOcUJ+=8IewN=nba zz@$1Sn+n=q(#HWd#^+U*j=(3U4tK=uIj@`UU~B_EOr8}PLu7mCCzg5wPaNt1WoOaZ zBT>|aLwT{!m5TjjDTn=YQ86Z2Ap7>i6Xxkam#bDpY79=fo8PMwXw;j z0z9E`cKjbN3y|w6A55`;uMZTB3z>fF1Dn;C!Qdf98M{O+JX=T9>*UBML(021hyipE z;?hw>$4B>2$(kAB!Io{YsXj)?uI)geloN!OY%g#o8-+ajY*%IL`)f^GT1lMW&$&X5 zA1KG&{eY0}L5Ycshy(5_DTBxzpsMb%_CrIR7u;&&>awuKE=ahMKKKSK$b;Gdab$Re zo{-p8sBjt|lVI02b{wxB@+TLw|K5$(0c2iSH{l(?y^Ef{7rrx%CGcbvK!X?@reYKu ze3gJ1DG#HY?gOq_X`>E{m@b-)w!`hfrsiuKYZKP{)pRN&3l(>17Dh)`{eHR&AuRf} z8Uh2h&rfL*YC{TYOLX3(1G0~T;=v-7&(Zjwq=zO=Q<#Wx{8flP{d#e4!mmUkmJckc zi!HB_=X;k1^NyjXf)&t`QL{D^n|G9<41}<;DY~Bm?PbBSXvDL={x*H4E!igd+^?IW zKS;PY?5)n(6c(;(PB=}{j%=bzhLBpd-C17c74FlAJPcl{bAQQCd_;JYD9=S4nGI23 zAd8+c<*)oe#w2dm`c$aWe6g9${#MouY*rJlF77C<0DDag8?ol2DNJ6~+^}Zk8_C-B zGO=xJd|_5!5=um#mURm{&wmS2hWOzhtNM8(ZsU1FKh=lc7oG3U%uMhLS`m!;4rP#< z8*t8&rizzoM^0TK;COs#_QRjDq&pKlH%uyq?hM3ijOZ(k@Z2OM`(jb}WQeNpErPZF z6ij!g-ib;K*eKh~EaW*0g?N63Lz3I0z=kg4ssa_E8swG3W;1~k5-v?}iA$eA(8|2> zYpw>Pu&dt|t0xk!M?EP9dL(i{!cGq4!J^4kPLT?PRd704SL4#@E-9<{^WRz^v@gr? zP?4Se-_yynLuNw>xCn1D!CUWG_hrhQgsuS{d#X!5m #M#ql7Pr%29pSm7r2pHB$@0AXR!z$FHvw3bisKf=h3~CVB(0L zvN#IzV#5K97FNor7#N+MoTx+K1#U_@hJuk6)^r3?yI-b#KgqnNgKv2i>lEJ`-H19* z6-2Df`abII|K|bgUB!?;&d0EMNXO5+NRUxjhLaIMC%)JExPRQ5nV#67 F$;9QxNF!<)N?7xi2kxSD9mDxLuEbvsvx5LxQuSI zjKprC7oA%kv%R`mgO^P0^lGU!=^)OM2L(VnZIkH+<9%`kYO^kN?w>AQxt!xMP@Scp zxAwk2pQN;jsPBsnIBy!N2@2IMw>7rhY&sW)sizXsgA{u^5g_5Kr&z~kM=S{!(vPXR zy*~~bA;9yjTKp{WDQ4@;md#xxPdOlZh+;bF?X;|;x&5fpJ%{7(PtdJzn2CNsT_dE2 zxlGHIL&V+O-OFrx82rIN1+G4zCf}+0S0}Ha$D$U5MVd~=_cy=;RN{I}`muszGrpP{ z8ZAKNJn-&5EmS$+ 0w8WgwJDr# ^Ch6sB=jh`QVfH=LUa?aa~JsRTXaZRqEMU%aeOxflU(|fP6 D!=?r` TG7a x1ZA`Rg+2ZJbdx~D`TCXCdPvCw?h!^6+sH9&iD$o zwVz~eu^)w@PO-PGmTioo2T8aM%7`NzZr&Uptgu7}E3?%A#*g$@4uE_((#fZM0 zm0|Mn8gDTfdpZjhhp8ngDKK&Z^af*LnoM48YwcPIqv@mLWK}aG#MH8Q#{orRmTueM z%C(P+XBnGk$#{Q3bV$U<-nVPz%I|%)X0u7{NRe(vZ T-9ifz2y>rOMfZS^~rzs#5aXW;r~pt5#e zl`wO#oX(HaLeO|NZ=N57B;z=afV!pGZ==rk0vD1Jp#IjKVN+*cG43Y?lDNHm?~MtY zl-XzJ3AAdw9Py(=ybp`9plWp4{CQVrC-*1b<%hU7 iQ^`M)J<=5N7?`OO~M5zv3mg zXvem+(xuV9&;aES*^=GUWq9_Wl7%Pq@Ss#x9CL&0Gq6`vql2#wV+p@8skLdzV-^d@ z$evpXBQhOJ0ZO^?%wmH}Uw&&f4Cn&{*r?LmvjAMEOU5@A6_FKrQ1aL-$nOD_2nK=M zL#!&CvMIqaJ)@;Ew#?f1#uxR2Je2*N-LtPwRG87vU+Uc!-xJloH>E5Z_(G_L1;gcb zI)?1ISx ^+l|JyzQI9KS1DVmxeL*9MYSQ@rKYEF0~$qD6G>- zyDoAnsOkM(QjY+1|Heq}tEQ-J+WqUHb;{Gu9o!cQg1WVRsf5ebfe7bY>giFQnXe r;YY%(fZbGj zx3>5fO=oUsiYY;t6CZz`l1M}^DG47a2nYT67GffDYvN|-nD WZR+wHM9^__`?C_XY32_%y$$`KJ2$SL zxp7Cwzb?%`4ooQbB#upJHSKQ8XC>qt*!oFc3NTqa9Xhj%i*NfQ;4o!4TyR}qtV})} zljF5M_OzLx7Y|H;+ea8kgHPzt7qQtXMP7fVqxscw-@Z6L)}e0e(?0&QQ)sMY^mOvN z(Y 4j`}FkAnxE`t1B3Z?5`ciou$1#y`QC%R zp3s;;IyR|SdNu9IxMty?7i7=7R6dVgJR_E<9CA^7O9qrNKOpb!tE##tQxcQwi+?a} zm{_$hDzZ%6!b2^#42WKVg}d)R;LQCCk+I#$Taxn8`TlGv0`DX(`j+Lt;8uvB-Z;>1 z=$Du{_TKvb_8$3ZYU^($wy9P&uOo||o*q$!HQ+hjBRgEM_52QPN3F(p|^6iysO)V>s3Fu%ZsQ+b58(IM29q1p)ep>gDQS7uAz~T zkhpPCFYBM*AWCUS)?@m-j310y8qxpzyZI(IG*Dk`XL+bgB+%yOHSGi(SIo>Se30 Ie+P>xP+mhq9_4vO6-gYE{@c%q zQ;TcXB|X5>?#vWbw;
bF#DvP#oTCPwXai-B^rAn96pC- z^JIF3CD;QXCY?M8K>mcZG&=_IXhkVl&FSLXICaDi5MThKY*ObdSaHg8#v9<_Kg$=0 z?EXE(f5OKZwQ!wsy!n{f=r#lG)-|;Cb0%%u!|9xyoY&5i^>#FTf^UH;a391Bd*t^m z)?&~w{gWPDsQw85c>}npkwlJ02=vCI0$fvYt}4vD8Pn6#{l&&oqLAd20pKo$hkPQm z3v*~GZ;QS4ahrB@$bZ%zOi$8v>aI9fCOTFj5%H{-17n>Yt`7kFlK0WN#327DmzdObpL7ey z3mA=q(LD)aLdJQ#!?LdZ=%AqIcyxQ3Tb&dpZ#zXvT+hnHx++kO#>7aBdTDf=9vHJ| zC6S_W3rK2s(K+*<;Dt(RyweqRh@31jm4lW#jehC*eS5~V7ypn8K0Br-3`nt{#|zH~ zh*xd8R8TAl9FQ+)W*P}FIsJ;jf%?F>mn_+`*m}Wd{qYSn#iSHLdc{_`_svY;zw=;D zo=abRZebyvz-8BEd7@5=5(?FrvDOcZ)aAqn2-2;R+FxqlfVlPX7YD&Z8Q!x>prCL~ zVkJK9+fd#7CZRg)S~Zw;eVyw-uea{W5G8gZ8ANt zdU9y<{88kmXdc6A79F^T>j^)*_GjJv{-vXX?Rj-iCOa&FGwjj&U|yWWW3-B1OSTsT z4d^E83&TJx{o}XySNb(@&pFl0Op}cC^_1+ai~`nmk-FYAK8(-v;O@3xu~V7np0M9| zzQwHRp`q4Now2s>QucB4lkRB%l(qZjkv}`T1^)N2DCiA`M|HlR^Bt;}3ktjAC1GT= z`2}|0-kTTf1Ib)4Z*gUFSh1m@p}5;@B=O&yMi;B97$@sY$BU80ZNnJ)QWht!zWGM` z@n}y}C)H0WAhKmpd+K&OP|Da9C@x~{$jAyutK9R5(F`I_o`E#*7D%w(KP<`Y)#cJ- z3FRUz!dt1^ev$I|#Q}5tVdX2sjR19Df?eJ=o%-_eHOeb!=5+;ixc^o9bx|I=kP2pr zm9c2H%D{a^D{1i>m!LeMOw>B2BR>V^N;$^P1BQR|)p7)--vhmQ< a?q+Ewf&Dm _kxWC~&Qa3Dx3=LHFwn*}=*J({UAd|`d{H$b?xcXSA1!V$UEm6hV0ZR~eTQ^g~OJ{VPf&6rAH zyWOCO*nQFY*WvAqW6T3svrSi%3r4nZ*9H{U61S!O#6LSvngl1R5R0$ARM0Y{Za3Y; z>1On_(EluGIE%61`MgXaK^v4c@eu1vly#bedHE#$4{Vh7zB|j|VPO{&jodAUpb-WC zd75D *2w3g|?zPr*H~bqPRp1Y9shnuM=IC8m@9PIS^}*?=D+qSCI@VFwQX z-gnqz^)R^f&G{7k1_@~>+sS2I*>$_`Mft5$?ADEqUrZYUb5Y_E`Q-^55hMToH;@dR zNJid%?d*&D-T9LvZ az-Nd9H4UJ8pMe3BY`}BRixfjVdDH$2GgL;&xV>Fd6e_A-*zg?V zQq1`kekdirtiYA|4#a=Q{k?|M=Usd?kYQtQW(JtU6C@Ez<)AbVdib^uY&$Yv $FifC^2_U8jfnE7b!x(vn6xPY(w zJ|}pnaBir`P#9Q1TxX{a`yU>US;qI IzHEfqnV9IfeTh)d0?xrPqRE+5?5?o zlV%sAA|gSP&u1WL0E}b+G$sVo>+`p~YP>gK3L9@eH09vK-J&dZR?@S(^!BO9fx;fF zEh6!Ot)k?YnulF+eSaZCvwKveuFiwx=}og?eTlibxop>&R+}fr91Kj+y7#27Tgl6Z z =B_mK~k)&FSiVm4^Lax$%0f;93;Z--FL% z4oea( Wxz+GuH0km64rIXDka@Aj^obD z6$c&3d=qfyX ?m{(66)+S7j9XJ#QDvq~q8|Gsps(KCM6 zXPOjElLo&C8qDtc{&Cq7$%(BVnA}_X!<|?9M18;J4k}XD^8vM_tI9Zji=EVE+*l Xj*N%U`*B?M70X;?TA@M09AVbo7-Jt-q^xbfk4G&99Y!JK=Rhbg*cxf3>h18OB z L (9(ylDI+bnA1*L&l?R;ZEWIiN^(B z74kq7n*xa4<`#cCoiO67;ff*;Yebb>3bS8vz;=(=-*9C?cUoHMxuU-v(efk>H~O$G zh+XgDI~b)cwUWO6t5lp^F0eyc9C#Z6eoyxX%mbumSO9weey83;<8VA^>7rHmYyJBi zdp#~l#eXj8q09cJxi{Ry%svSauESKUK-GT*C=cI-!&k{Mfp9RX+5{T4f?%ozkRjP% zzoB(XcI{MP3G4_c$jv6AT!t;F$%EJff0I@Ii~pi3zHBcL0!ia1mf#VK$glD>w(INz z!Bdo{zpyS5Sr1P1Vn|#51wQ!)PqU$i7$$L-Mo8IAzvOOQzTwAQ{0+d!-qwImOv4jO zU>;~P5~_iZlK`(!B~juRI`0i&*|j1kBUQ+)$nobBNJ $U!IhT w z`cbx@03gVsXD_VBOE$ov{UR~~zR;Jo7Xb&KhZ5++k3R;bJ17Vh)_~U7xmUKM4@kf8 zhl&6ND80y$#~FymP99 -z#;jSpIlUe$IK@ObxB6Of1l|;exs7-iC)M?BBd=n@^Qbw2}F#H0< z@V}3NBL!UQDiKBv1?+nYJ5@Pa1#ZpTCI=4!L*}unzqiBQqIAo{f|U*lCn94K2rx&? zOTsv5KwZp}2iU}Y1+KtiPa3JePo9|LO*WJ bye3ibUD(b^z9iy%2Y$tDE`jebH|oLJl2y!kABlt)dD%_WRyC-}Tf~v3(%p1L zBr(G}9J?GHxOO+n@yY@v%*}AEGE_D+9rf{%pq$*~D$&13qy!$(v;Y%J#xJwac#Ae8 z6ek1~h1AHXbTr&*UIHqLlP(95o>6f@|8j*}K0$hNEqwaoTkhQx4iV(6`tSb1(u-8! zr3Dl8`2)SLjCZl36r+fsf!PzRz*C^|z}0y31CSEoTz}AdQKQI-hvCLnIq7?Z)ZY0_ zyGgJdHFFAc&Z&)l)la`vcrFaCLrSKz?E#!Zp$B*lzQ6EYoY+ zlMHRe$>_Y$_XfHkoH8xjRNAo{P_Cz$QF88jwV;Ya|Lfq9*fATgnzOuK?9lBm3GMrk z^*oz+y(rAp;6$H<