From dd13d34074699bd4ce19ca973e878ee1a7d0dff2 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Fri, 15 Jul 2022 17:09:41 -0500 Subject: [PATCH] The first commit --- .gitignore | 74 + .gitmodules | 18 + Dockerfile | 12 + Makefile | 604 + README.md | 71 + asm/core1/ultra/libm_vals.s | 5 + asm/core1/ultra/setintmask.s | 135 + asm/data/fight/code_180.data.s | 429 + asm/ultra/exceptasm.s | 707 + asm/ultra/setintmask.s | 135 + banjo.jp.yaml | 86 + banjo.pal.yaml | 185 + banjo.us.v10.yaml | 199 + banjo.us.v11.yaml | 87 + diff | 5 + ido/ido5.3_recomp/Makefile | 37 + ido/ido5.3_recomp/acpp | Bin 0 -> 154688 bytes ido/ido5.3_recomp/as1 | Bin 0 -> 904272 bytes ido/ido5.3_recomp/cc | Bin 0 -> 256560 bytes ido/ido5.3_recomp/cc_c.c | 70220 +++++++++ ido/ido5.3_recomp/cfe | Bin 0 -> 822296 bytes ido/ido5.3_recomp/copt | Bin 0 -> 8697704 bytes ido/ido5.3_recomp/elf.h | 99 + ido/ido5.3_recomp/err.english.cc | 1260 + ido/ido5.3_recomp/header.h | 30 + ido/ido5.3_recomp/helpers.h | 13 + ido/ido5.3_recomp/libc_impl.c | 2543 + ido/ido5.3_recomp/libc_impl.h | 163 + ido/ido5.3_recomp/recomp | Bin 0 -> 117552 bytes ido/ido5.3_recomp/recomp.cpp | 2933 + ido/ido5.3_recomp/ugen | Bin 0 -> 611432 bytes ido/ido5.3_recomp/ugen_c.c | 133401 +++++++++++++++++ ido/ido5.3_recomp/ujoin | Bin 0 -> 269352 bytes ido/ido5.3_recomp/uld | Bin 0 -> 1956176 bytes ido/ido5.3_recomp/umerge | Bin 0 -> 420888 bytes ido/ido5.3_recomp/uopt | Bin 0 -> 742592 bytes ido/ido5.3_recomp/usplit | Bin 0 -> 170664 bytes include/2.0L/PR/PRimage.h | 126 + include/2.0L/PR/R4300.h | 453 + include/2.0L/PR/abi.h | 410 + include/2.0L/PR/gbi.h | 4572 + include/2.0L/PR/gs2dex.h | 392 + include/2.0L/PR/gt.h | 365 + include/2.0L/PR/gu.h | 269 + include/2.0L/PR/leo.h | 280 + include/2.0L/PR/leoappli.h | 274 + include/2.0L/PR/libaudio.h | 972 + include/2.0L/PR/mbi.h | 100 + include/2.0L/PR/n_abi.h | 122 + include/2.0L/PR/n_libaudio.h | 380 + include/2.0L/PR/n_libaudio_s_to_n.h | 120 + include/2.0L/PR/os.h | 108 + include/2.0L/PR/os_ai.h | 92 + include/2.0L/PR/os_cache.h | 96 + include/2.0L/PR/os_cont.h | 207 + include/2.0L/PR/os_convert.h | 111 + include/2.0L/PR/os_debug.h | 117 + include/2.0L/PR/os_eeprom.h | 107 + include/2.0L/PR/os_error.h | 86 + include/2.0L/PR/os_exception.h | 119 + include/2.0L/PR/os_flash.h | 71 + include/2.0L/PR/os_gbpak.h | 107 + include/2.0L/PR/os_gio.h | 86 + include/2.0L/PR/os_host.h | 161 + include/2.0L/PR/os_internal.h | 49 + include/2.0L/PR/os_internal_debug.h | 43 + include/2.0L/PR/os_internal_error.h | 45 + include/2.0L/PR/os_internal_exception.h | 49 + include/2.0L/PR/os_internal_gio.h | 45 + include/2.0L/PR/os_internal_host.h | 42 + include/2.0L/PR/os_internal_reg.h | 59 + include/2.0L/PR/os_internal_rsp.h | 48 + include/2.0L/PR/os_internal_si.h | 46 + include/2.0L/PR/os_internal_thread.h | 43 + include/2.0L/PR/os_internal_tlb.h | 47 + include/2.0L/PR/os_libc.h | 100 + include/2.0L/PR/os_message.h | 163 + include/2.0L/PR/os_motor.h | 75 + include/2.0L/PR/os_pfs.h | 174 + include/2.0L/PR/os_pi.h | 228 + include/2.0L/PR/os_rdp.h | 92 + include/2.0L/PR/os_reg.h | 90 + include/2.0L/PR/os_rsp.h | 86 + include/2.0L/PR/os_si.h | 86 + include/2.0L/PR/os_system.h | 118 + include/2.0L/PR/os_thread.h | 154 + include/2.0L/PR/os_time.h | 114 + include/2.0L/PR/os_tlb.h | 107 + include/2.0L/PR/os_version.h | 16 + include/2.0L/PR/os_vi.h | 298 + include/2.0L/PR/os_voice.h | 108 + include/2.0L/PR/ramrom.h | 113 + include/2.0L/PR/rcp.h | 885 + include/2.0L/PR/rdb.h | 93 + include/2.0L/PR/region.h | 123 + include/2.0L/PR/rmon.h | 39 + include/2.0L/PR/sched.h | 115 + include/2.0L/PR/sp.h | 196 + include/2.0L/PR/sptask.h | 201 + include/2.0L/PR/ucode.h | 192 + include/2.0L/PR/ucode_debug.h | 54 + include/2.0L/PR/ultraerror.h | 179 + include/2.0L/PR/ultralog.h | 74 + include/2.0L/PR/ultratypes.h | 90 + include/2.0L/PR/uportals.h | 134 + include/2.0L/assert.h | 54 + include/2.0L/ultra64.h | 40 + include/SnS.h | 137 + include/animation.h | 50 + include/assets.h | 21 + include/bs_funcs.h | 715 + include/bsint.h | 31 + include/core1/core1.h | 11 + include/core1/mem.h | 6 + include/core1/rarezip.h | 87 + include/core2/animctrl.h | 93 + include/core2/code_6DA30.h | 10 + include/core2/code_C9E70.h | 84 + include/core2/core2.h | 15 + include/core2/timedfunc.h | 25 + include/cseq.h | 11 + include/cseqp.h | 10 + include/enums.h | 2851 + include/functions.h | 590 + include/gc/gc.h | 8 + include/gc/gcbound.h | 12 + include/gc/gctransition.h | 17 + include/gc/gczoombox.h | 104 + include/initfx.h | 59 + include/macro.inc | 25 + include/ml.h | 10 + include/ml/mtx.h | 11 + include/model.h | 182 + include/music.h | 34 + include/n_abi.h | 122 + include/n_cseqp.h | 10 + include/n_synth.h | 157 + include/osint.h | 48 + include/overlays.h | 15 + include/piint.h | 145 + include/prelude.s | 15 + include/prop.h | 361 + include/rand.h | 8 + include/rarezip.h | 51 + include/save.h | 23 + include/seqp.h | 37 + include/stdarg.h | 42 + include/string.h | 18 + include/structs.h | 873 + include/synthInternals.h | 340 + include/variables.h | 21 + include/viint.h | 70 + level_symbols.us.v10.txt | 23 + packages.txt | 11 + progress/progress_BGS.svg | 23 + progress/progress_CC.svg | 23 + progress/progress_CCW.svg | 23 + progress/progress_FP.svg | 23 + progress/progress_GV.svg | 23 + progress/progress_MM.svg | 23 + progress/progress_MMM.svg | 23 + progress/progress_RBB.svg | 23 + progress/progress_SM.svg | 23 + progress/progress_TTC.svg | 23 + progress/progress_bk_boot.svg | 23 + progress/progress_core1.svg | 23 + progress/progress_core2.svg | 23 + progress/progress_cutscenes.svg | 23 + progress/progress_fight.svg | 23 + progress/progress_lair.svg | 23 + progress/progress_total.svg | 23 + requirements.txt | 12 + src/BGS/ch/croctus.c | 232 + src/BGS/ch/flibbit.c | 452 + src/BGS/ch/leafboat.c | 216 + src/BGS/ch/mrvile.c | 453 + src/BGS/ch/tanktup.c | 199 + src/BGS/ch/yellowflibbit.c | 496 + src/BGS/ch/yumblie.c | 216 + src/BGS/code_3030.c | 105 + src/BGS/code_3420.c | 646 + src/BGS/code_9750.c | 94 + src/BGS/done/ch/bigalligator.c | 24 + src/BGS/done/ch/code_2270.c | 347 + src/BGS/done/ch/code_6730.c | 203 + src/BGS/done/ch/code_8A60.c | 100 + src/BGS/done/ch/mudhut.c | 125 + src/BGS/done/ch/pinkegg.c | 119 + src/BGS/done/code_8DF0.c | 68 + src/CC/CC.h | 7 + src/CC/ch/sawblade.c | 162 + src/CC/ch/tooth.c | 100 + src/CC/code_0.c | 142 + src/CC/code_13C0.c | 172 + src/CC/code_19B0.c | 51 + src/CC/code_1B90.c | 115 + src/CC/code_1F70.c | 440 + src/CC/code_3400.c | 104 + src/CC/code_530.c | 200 + src/CC/code_BF0.c | 145 + src/CCW/code_0.c | 37 + src/CCW/code_14B0.c | 125 + src/CCW/code_160.c | 217 + src/CCW/code_1B20.c | 162 + src/CCW/code_21A0.c | 34 + src/CCW/code_2270.c | 207 + src/CCW/code_2B00.c | 170 + src/CCW/code_3050.c | 69 + src/CCW/code_3310.c | 251 + src/CCW/code_3DA0.c | 187 + src/CCW/code_4530.c | 107 + src/CCW/code_4960.c | 100 + src/CCW/code_4D00.c | 83 + src/CCW/code_50D0.c | 98 + src/CCW/code_5540.c | 171 + src/CCW/code_5BF0.c | 123 + src/CCW/code_61E0.c | 100 + src/CCW/code_6620.c | 114 + src/CCW/code_6AC0.c | 114 + src/CCW/code_6EC0.c | 79 + src/CCW/code_7120.c | 114 + src/CCW/code_7570.c | 40 + src/CCW/code_76C0.c | 155 + src/CCW/code_7BC0.c | 20 + src/CCW/code_7BF0.c | 117 + src/CCW/code_8050.c | 178 + src/CCW/code_8670.c | 31 + src/CCW/code_950.c | 215 + src/FP/ch/wozzasjig.c | 91 + src/FP/code_0.c | 148 + src/FP/code_11F0.c | 201 + src/FP/code_19E0.c | 102 + src/FP/code_1FF0.c | 84 + src/FP/code_2350.c | 661 + src/FP/code_3E00.c | 179 + src/FP/code_4400.c | 80 + src/FP/code_45D0.c | 79 + src/FP/code_4770.c | 611 + src/FP/code_4D0.c | 93 + src/FP/code_5CC0.c | 392 + src/FP/code_6AE0.c | 445 + src/FP/code_790.c | 102 + src/FP/code_7980.c | 236 + src/FP/code_8330.c | 115 + src/FP/code_87E0.c | 148 + src/FP/code_8D00.c | 57 + src/FP/code_8E20.c | 341 + src/FP/code_9EA0.c | 89 + src/FP/code_A1C0.c | 21 + src/FP/code_A240.c | 86 + src/FP/code_A40.c | 210 + src/FP/code_A500.c | 93 + src/FP/code_A880.c | 83 + src/FP/code_ABD0.c | 245 + src/FP/code_B4D0.c | 40 + src/GV/code_0.c | 87 + src/GV/code_1570.c | 237 + src/GV/code_1E80.c | 158 + src/GV/code_230.c | 267 + src/GV/code_24D0.c | 76 + src/GV/code_2730.c | 131 + src/GV/code_2B80.c | 91 + src/GV/code_2EE0.c | 50 + src/GV/code_30C0.c | 152 + src/GV/code_3630.c | 117 + src/GV/code_3AA0.c | 25 + src/GV/code_3B10.c | 28 + src/GV/code_3BB0.c | 63 + src/GV/code_3D90.c | 158 + src/GV/code_43B0.c | 110 + src/GV/code_4740.c | 325 + src/GV/code_5570.c | 323 + src/GV/code_61E0.c | 63 + src/GV/code_6370.c | 295 + src/GV/code_6F80.c | 40 + src/GV/code_7060.c | 135 + src/GV/code_7530.c | 230 + src/GV/code_7D50.c | 27 + src/GV/code_7DB0.c | 75 + src/GV/code_7FC0.c | 28 + src/GV/code_7FF0.c | 522 + src/GV/code_9130.c | 206 + src/GV/code_9860.c | 80 + src/GV/code_9B70.c | 20 + src/GV/code_9C10.c | 54 + src/GV/code_9DB0.c | 239 + src/GV/code_A490.c | 105 + src/GV/code_D60.c | 232 + src/MM/ch/chimpystump.c | 66 + src/MM/ch/conga.c | 374 + src/MM/ch/grublin.c | 91 + src/MM/ch/hut.c | 121 + src/MM/ch/juju.c | 227 + src/MM/ch/jujuhitbox.c | 161 + src/MM/ch/lmonkey.c | 138 + src/MM/ch/orange.c | 97 + src/MM/ch/orangepad.c | 141 + src/MM/code_1AD0.c | 34 + src/MM/code_24C0.c | 28 + src/MMM/ch/loggo.c | 123 + src/MMM/ch/motzhand.c | 202 + src/MMM/ch/napper.c | 225 + src/MMM/code_16B0.c | 246 + src/MMM/code_2040.c | 421 + src/MMM/code_2F60.c | 94 + src/MMM/code_3120.c | 115 + src/MMM/code_3420.c | 380 + src/MMM/code_3D50.c | 293 + src/MMM/code_47D0.c | 191 + src/MMM/code_5000.c | 161 + src/MMM/code_DC0.c | 94 + src/RBB/code_0.c | 169 + src/RBB/code_1570.c | 236 + src/RBB/code_1FC0.c | 183 + src/RBB/code_27E0.c | 84 + src/RBB/code_2A70.c | 129 + src/RBB/code_2E90.c | 200 + src/RBB/code_34B0.c | 53 + src/RBB/code_36A0.c | 128 + src/RBB/code_3CB0.c | 124 + src/RBB/code_40F0.c | 178 + src/RBB/code_47D0.c | 160 + src/RBB/code_4C70.c | 152 + src/RBB/code_5060.c | 87 + src/RBB/code_52F0.c | 47 + src/RBB/code_5490.c | 116 + src/RBB/code_5AB0.c | 45 + src/RBB/code_5C10.c | 71 + src/RBB/code_5F10.c | 19 + src/RBB/code_5F80.c | 613 + src/RBB/code_640.c | 224 + src/RBB/code_7A60.c | 31 + src/RBB/code_7B20.c | 122 + src/RBB/code_7FD0.c | 110 + src/RBB/code_8520.c | 398 + src/RBB/code_9670.c | 62 + src/RBB/code_9840.c | 60 + src/RBB/code_99F0.c | 68 + src/RBB/code_CA0.c | 214 + src/SM/ch/attacktutorial.c | 219 + src/SM/ch/vegetables.c | 494 + src/SM/code_0.c | 33 + src/SM/code_2900.c | 17 + src/SM/code_2990.c | 563 + src/SM/code_3FC0.c | 64 + src/SM/code_4070.c | 145 + src/SM/code_44D0.c | 57 + src/SM/code_46C0.c | 64 + src/SM/code_46C0.us.v10.c | 5 + src/SM/code_5B0.c | 151 + src/SM/code_BF0.c | 43 + src/SM/code_F0.c | 161 + src/TTC/ch/lockup.c | 153 + src/TTC/ch/treasure.c | 94 + src/TTC/code_0.c | 338 + src/TTC/code_10A0.c | 246 + src/TTC/code_19D0.c | 330 + src/TTC/code_26D0.c | 173 + src/TTC/code_2B80.c | 121 + src/TTC/code_3040.c | 29 + src/TTC/code_35D0.c | 245 + src/TTC/code_3E30.c | 587 + src/core1/audio/n_adpcm.c | 7 + src/core1/audio/n_csplayer.c | 20 + src/core1/code_0.c | 224 + src/core1/code_11AC0.c | 498 + src/core1/code_12F10.c | 176 + src/core1/code_13640.c | 21 + src/core1/code_13680.c | 35 + src/core1/code_136D0.c | 153 + src/core1/code_13990.c | 387 + src/core1/code_15770.c | 77 + src/core1/code_15B30.c | 268 + src/core1/code_18110.c | 28 + src/core1/code_18210.c | 32 + src/core1/code_18310.c | 137 + src/core1/code_18350.c | 1491 + src/core1/code_1BE90.c | 628 + src/core1/code_1D00.c | 577 + src/core1/code_1D5D0.c | 364 + src/core1/code_1E6E0.c | 47 + src/core1/code_1E820.c | 12 + src/core1/code_22E40.c | 86 + src/core1/code_25E20.c | 16 + src/core1/code_26110.c | 8 + src/core1/code_2BD0.c | 42 + src/core1/code_2DA0.c | 57 + src/core1/code_2FA0.c | 68 + src/core1/code_31C0.c | 123 + src/core1/code_3A70.c | 625 + src/core1/code_660.c | 109 + src/core1/code_7090.c | 70 + src/core1/code_72B0.c | 228 + src/core1/code_7F60.c | 58 + src/core1/code_8C50.c | 392 + src/core1/code_9D30.c | 173 + src/core1/code_E360.c | 196 + src/core1/code_EAF0.c | 575 + src/core1/done/audio/auxbus.c | 42 + src/core1/done/audio/bnkf.c | 118 + src/core1/done/audio/cents2ratio.c | 23 + src/core1/done/audio/code_219D0.c | 14 + src/core1/done/audio/code_21A80.c | 9 + src/core1/done/audio/code_21AF0.c | 16 + src/core1/done/audio/code_21B50.c | 40 + src/core1/done/audio/copy.c | 14 + src/core1/done/audio/cseq.c | 375 + src/core1/done/audio/cspgettempo.c | 10 + src/core1/done/audio/cspplay.c | 12 + src/core1/done/audio/cspsetbank.c | 13 + src/core1/done/audio/cspsetseq.c | 11 + src/core1/done/audio/cspsettempo.c | 17 + src/core1/done/audio/cspsetvol.c | 15 + src/core1/done/audio/cspstop.c | 10 + src/core1/done/audio/drvrNew.c | 280 + src/core1/done/audio/env.c | 495 + src/core1/done/audio/event.c | 137 + src/core1/done/audio/filter.c | 12 + src/core1/done/audio/heapalloc.c | 43 + src/core1/done/audio/heapinit.c | 16 + src/core1/done/audio/load.c | 446 + src/core1/done/audio/mainbus.c | 46 + src/core1/done/audio/n_auxbus.c | 23 + src/core1/done/audio/n_csplayer.c | 870 + src/core1/done/audio/n_csq.c | 292 + src/core1/done/audio/n_drvrNew.c | 188 + src/core1/done/audio/n_envresample.c | 40 + src/core1/done/audio/n_load.c | 87 + src/core1/done/audio/n_mainbus.c | 28 + src/core1/done/audio/n_resample.c | 116 + src/core1/done/audio/n_resample_add01.c_ | 2 + src/core1/done/audio/n_save.c | 19 + src/core1/done/audio/n_save_add01.c_ | 2 + src/core1/done/audio/n_synaddplayer.c | 68 + src/core1/done/audio/n_synallocfx.c | 10 + src/core1/done/audio/n_synallocvoice.c | 107 + src/core1/done/audio/n_synfreevoice.c | 30 + src/core1/done/audio/n_synsetfxmix.c | 29 + src/core1/done/audio/n_synsetpan.c | 27 + src/core1/done/audio/n_synsetpitch.c | 27 + src/core1/done/audio/n_synsetvol.c | 30 + src/core1/done/audio/n_synstartvoice.c | 49 + src/core1/done/audio/n_synstartvoiceparam.c | 42 + src/core1/done/audio/n_synstopvoice.c | 20 + src/core1/done/audio/n_synthesizer.c | 359 + src/core1/done/audio/resample.c | 125 + src/core1/done/audio/reverb.c | 431 + src/core1/done/audio/save.c | 41 + src/core1/done/audio/seq.c | 309 + src/core1/done/audio/sl.c | 38 + src/core1/done/audio/synallocfx.c | 12 + src/core1/done/audio/syndelete.c | 6 + src/core1/done/audio/synthesizer.c | 303 + src/core1/done/code_1D590.c | 15 + src/core1/done/code_1E360.c | 133 + src/core1/done/code_1E8C0.c | 36 + src/core1/done/code_CE60.c | 651 + src/core1/done/gu/guint.h | 42 + src/core1/done/gu/normalize.c | 15 + src/core1/done/gu/ortho.c | 31 + src/core1/done/gu/sinf.c | 157 + src/core1/done/gu/sqrtf.c | 8 + src/core1/done/gu/translate.c | 22 + src/core1/done/io/ai.c | 12 + src/core1/done/io/aigetlen.c | 6 + src/core1/done/io/aisetfreq.c | 20 + src/core1/done/io/aisetnextbuf.c | 23 + src/core1/done/io/cartrominit.c | 36 + src/core1/done/io/conteeplongread.c | 15 + src/core1/done/io/conteeplongwrite.c | 18 + src/core1/done/io/conteepread.c | 106 + src/core1/done/io/conteepwrite.c | 167 + src/core1/done/io/contpfs.c | 302 + src/core1/done/io/contramread.c | 102 + src/core1/done/io/contramwrite.c | 94 + src/core1/done/io/contreaddata.c | 75 + src/core1/done/io/controller.c | 95 + src/core1/done/io/controller.h | 207 + src/core1/done/io/contsetch.c | 21 + src/core1/done/io/crc.c | 47 + src/core1/done/io/devmgr.c | 113 + src/core1/done/io/dpgetstat.c | 6 + src/core1/done/io/dpsetstat.c | 7 + src/core1/done/io/epirawdma.c | 66 + src/core1/done/io/epirawread.c | 14 + src/core1/done/io/epirawwrite.c | 13 + src/core1/done/io/leodiskinit.c | 29 + src/core1/done/io/leointerrupt.c | 215 + src/core1/done/io/motor.c | 170 + src/core1/done/io/pfschecker.c | 207 + src/core1/done/io/pfsgetstatus.c | 26 + src/core1/done/io/pfsinit.c | 24 + src/core1/done/io/pfsisplug.c | 99 + src/core1/done/io/piacs.c | 24 + src/core1/done/io/pigetcmdq.c | 11 + src/core1/done/io/pimgr.c | 50 + src/core1/done/io/pirawdma.c | 28 + src/core1/done/io/pirawread.c | 11 + src/core1/done/io/piread.c | 11 + src/core1/done/io/si.c | 11 + src/core1/done/io/siacs.c | 24 + src/core1/done/io/siint.h | 10 + src/core1/done/io/sirawdma.c | 22 + src/core1/done/io/sirawread.c | 9 + src/core1/done/io/sirawwrite.c | 10 + src/core1/done/io/sp.c | 12 + src/core1/done/io/spgetstat.c | 7 + src/core1/done/io/sprawdma.c | 16 + src/core1/done/io/spsetpc.c | 14 + src/core1/done/io/spsetstat.c | 6 + src/core1/done/io/sptask.c | 61 + src/core1/done/io/sptaskyield.c | 7 + src/core1/done/io/sptaskyielded.c | 20 + src/core1/done/io/vi.c | 36 + src/core1/done/io/viblack.c | 14 + src/core1/done/io/vigetcurrcontext.c | 7 + src/core1/done/io/vigetcurrframebuf.c | 12 + src/core1/done/io/vigetnextframebuf.c | 14 + src/core1/done/io/vimgr.c | 107 + src/core1/done/io/vimodempallan1.c | 36 + src/core1/done/io/vimodentsclan1.c | 36 + src/core1/done/io/vimodepallan1.c | 36 + src/core1/done/io/visetevent.c | 13 + src/core1/done/io/visetmode.c | 12 + src/core1/done/io/visetspecial.c | 38 + src/core1/done/io/viswapbuf.c | 11 + src/core1/done/io/viswapcontext.c | 71 + src/core1/done/ll.c | 53 + src/core1/done/os/createmesgqueue.c | 19 + src/core1/done/os/createthread.c | 31 + src/core1/done/os/destroythread.c | 48 + src/core1/done/os/getthreadpri.c | 12 + src/core1/done/os/gettime.c | 17 + src/core1/done/os/jammesg.c | 33 + src/core1/done/os/pidma.c | 31 + src/core1/done/os/recvmesg.c | 35 + src/core1/done/os/resetglobalintmask.c | 13 + src/core1/done/os/sendmesg.c | 34 + src/core1/done/os/seteventmesg.c | 13 + src/core1/done/os/setglobalintmask.c | 9 + src/core1/done/os/settimer.c | 19 + src/core1/done/os/settreadpri.c | 28 + src/core1/done/os/startthread.c | 45 + src/core1/done/os/stopthread.c | 32 + src/core1/done/os/stoptimer.c | 27 + src/core1/done/os/thread.c | 26 + src/core1/done/os/timerintr.c | 99 + src/core1/done/os/virtualtophysical.c | 19 + src/core1/done/os/yieldthread.c | 9 + src/core1/done/syncprintf.c | 15 + src/core1/exceptasm.c | 24 + src/core1/gu/cosf.c | 6 + src/core1/gu/mtxutil.c | 62 + src/core1/gu/rotate.c | 55 + src/core1/inflate.c | 546 + src/core1/memory.c | 832 + src/core1/n_reverb.c | 16 + src/core1/n_reverb_add01.c_ | 5 + src/core1/n_reverb_add02.c_ | 5 + src/core1/n_reverb_add03.c_ | 7 + src/core1/n_reverb_add04.c_ | 6 + src/core1/os/initialize.c | 69 + src/core1/os/writebackdcache.c | 6 + src/core2/animctrl.c | 351 + src/core2/bs/ant.c | 485 + src/core2/bs/bBarge.c | 184 + src/core2/bs/bEggAss.c | 65 + src/core2/bs/bEggHead.c | 73 + src/core2/bs/bFlap.c | 199 + src/core2/bs/bFlip.c | 167 + src/core2/bs/bFly.c | 823 + src/core2/bs/bLongLeg.c | 505 + src/core2/bs/bPeck.c | 137 + src/core2/bs/bShock.c | 195 + src/core2/bs/bSwim.c | 586 + src/core2/bs/bTrot.c | 769 + src/core2/bs/bWhirl.c | 304 + src/core2/bs/bbuster.c | 208 + src/core2/bs/bee.c | 64 + src/core2/bs/beeFly.c | 270 + src/core2/bs/beeMain.c | 537 + src/core2/bs/carry.c | 116 + src/core2/bs/claw.c | 74 + src/core2/bs/climb.c | 225 + src/core2/bs/croc.c | 708 + src/core2/bs/crouch.c | 208 + src/core2/bs/die.c | 132 + src/core2/bs/drone.c | 49 + src/core2/bs/dronegoto.c | 115 + src/core2/bs/dronexform.c | 426 + src/core2/bs/jig.c | 196 + src/core2/bs/jump.c | 443 + src/core2/bs/ow.c | 71 + src/core2/bs/pumpkin.c | 568 + src/core2/bs/rebound.c | 137 + src/core2/bs/rest.c | 172 + src/core2/bs/sled.c | 57 + src/core2/bs/slide.c | 121 + src/core2/bs/splat.c | 87 + src/core2/bs/stand.c | 336 + src/core2/bs/surf.c | 49 + src/core2/bs/swim.c | 315 + src/core2/bs/throw.c | 74 + src/core2/bs/timeout.c | 75 + src/core2/bs/turn.c | 70 + src/core2/bs/twirl.c | 84 + src/core2/bs/walk.c | 505 + src/core2/bs/walrus.c | 777 + src/core2/bs/washy.c | 103 + src/core2/bsList.c | 53 + src/core2/ch/badShad.c | 162 + src/core2/ch/beehive.c | 89 + src/core2/ch/bigbutt.c | 386 + src/core2/ch/clankerwhipcrack.c | 57 + src/core2/ch/climbBase.c | 91 + src/core2/ch/clucker.c | 227 + src/core2/ch/code_468E0.c | 101 + src/core2/ch/code_5AB30.c | 324 + src/core2/ch/code_CFA60.c | 156 + src/core2/ch/drips.c | 89 + src/core2/ch/firefx.c | 91 + src/core2/ch/flotsam.c | 332 + src/core2/ch/gameSelect.c | 606 + src/core2/ch/ghost.c | 367 + src/core2/ch/gloop.c | 93 + src/core2/ch/icecube.c | 376 + src/core2/ch/jiggy.c | 212 + src/core2/ch/jigsawdance.c | 106 + src/core2/ch/jinjo.c | 321 + src/core2/ch/mole.c | 453 + src/core2/ch/molehill.c | 113 + src/core2/ch/musicnote.c | 17 + src/core2/ch/soundsource.c | 124 + src/core2/ch/trainers.c | 123 + src/core2/ch/wadingboots.c | 105 + src/core2/ch/whipcrack.c | 129 + src/core2/code_10CD0.c | 36 + src/core2/code_10E0.c | 132 + src/core2/code_11040.c | 58 + src/core2/code_11460.c | 65 + src/core2/code_11660.c | 87 + src/core2/code_117D0.c | 58 + src/core2/code_11870.c | 93 + src/core2/code_12360.c | 101 + src/core2/code_126C0.c | 235 + src/core2/code_12F30.c | 177 + src/core2/code_13780.c | 68 + src/core2/code_13900.c | 61 + src/core2/code_13A00.c | 177 + src/core2/code_13FC0.c | 161 + src/core2/code_14420.c | 817 + src/core2/code_1550.c | 95 + src/core2/code_15F20.c | 41 + src/core2/code_16010.c | 322 + src/core2/code_16C60.c | 198 + src/core2/code_171F0.c | 59 + src/core2/code_1930.c | 226 + src/core2/code_2240.c | 187 + src/core2/code_27550.c | 141 + src/core2/code_27F40.c | 78 + src/core2/code_28220.c | 136 + src/core2/code_2890.c | 290 + src/core2/code_32DB0.c | 171 + src/core2/code_33250.c | 33 + src/core2/code_33310.c | 154 + src/core2/code_336F0.c | 133 + src/core2/code_33AB0.c | 52 + src/core2/code_33C30.c | 45 + src/core2/code_33D40.c | 71 + src/core2/code_33F90.c | 132 + src/core2/code_34310.c | 137 + src/core2/code_34790.c | 372 + src/core2/code_3480.c | 144 + src/core2/code_35520.c | 170 + src/core2/code_356B0.c | 1000 + src/core2/code_379B0.c | 101 + src/core2/code_37CD0.c | 50 + src/core2/code_37E50.c | 112 + src/core2/code_38150.c | 57 + src/core2/code_382E0.c | 42 + src/core2/code_38460.c | 47 + src/core2/code_38630.c | 90 + src/core2/code_388E0.c | 76 + src/core2/code_38AD0.c | 100 + src/core2/code_38F40.c | 75 + src/core2/code_39190.c | 183 + src/core2/code_396B0.c | 90 + src/core2/code_39A10.c | 115 + src/core2/code_39D0.c | 317 + src/core2/code_39EF0.c | 381 + src/core2/code_3AE10.c | 139 + src/core2/code_3B5C0.c | 134 + src/core2/code_3BB80.c | 600 + src/core2/code_3EAD0.c | 41 + src/core2/code_3EC30.c | 24 + src/core2/code_3ECE0.c | 61 + src/core2/code_400F0.c | 348 + src/core2/code_41460.c | 294 + src/core2/code_41F30.c | 21 + src/core2/code_41FB0.c | 120 + src/core2/code_42CB0.c | 168 + src/core2/code_43250.c | 173 + src/core2/code_43800.c | 74 + src/core2/code_43A40.c | 103 + src/core2/code_440B0.c | 400 + src/core2/code_45310.c | 526 + src/core2/code_47BD0.c | 532 + src/core2/code_47C0.c | 1069 + src/core2/code_49A70.c | 129 + src/core2/code_4A6F0.c | 526 + src/core2/code_4BD70.c | 27 + src/core2/code_4BE10.c | 44 + src/core2/code_4C020.c | 1275 + src/core2/code_50490.c | 109 + src/core2/code_509D0.c | 376 + src/core2/code_517A0.c | 53 + src/core2/code_51950.c | 93 + src/core2/code_51C90.c | 184 + src/core2/code_53A10.c | 84 + src/core2/code_53C10.c | 389 + src/core2/code_54D50.c | 104 + src/core2/code_55180.c | 88 + src/core2/code_55390.c | 110 + src/core2/code_556C0.c | 60 + src/core2/code_55850.c | 87 + src/core2/code_55A90.c | 55 + src/core2/code_55BC0.c | 109 + src/core2/code_55E70.c | 93 + src/core2/code_560F0.c | 612 + src/core2/code_57C70.c | 183 + src/core2/code_581D0.c | 87 + src/core2/code_584D0.c | 458 + src/core2/code_59780.c | 148 + src/core2/code_599E0.c | 14 + src/core2/code_59A80.c | 103 + src/core2/code_59D40.c | 403 + src/core2/code_5B6A0.c | 183 + src/core2/code_5BD90.c | 39 + src/core2/code_5BEB0.c | 629 + src/core2/code_5DBC0.c | 304 + src/core2/code_5FD80.c | 8 + src/core2/code_5FD90.c | 762 + src/core2/code_62FD0.c | 44 + src/core2/code_630D0.c | 104 + src/core2/code_63410.c | 101 + src/core2/code_63690.c | 69 + src/core2/code_637D0.c | 291 + src/core2/code_654C0.c | 383 + src/core2/code_66490.c | 40 + src/core2/code_66D90.c | 57 + src/core2/code_66FB0.c | 132 + src/core2/code_67650.c | 921 + src/core2/code_69F60.c | 127 + src/core2/code_6A4B0.c | 24 + src/core2/code_6AEF0.c | 35 + src/core2/code_6B030.c | 386 + src/core2/code_6B30.c | 167 + src/core2/code_6C3E0.c | 252 + src/core2/code_6CD20.c | 52 + src/core2/code_6CEC0.c | 37 + src/core2/code_6D030.c | 63 + src/core2/code_6D270.c | 63 + src/core2/code_6D490.c | 233 + src/core2/code_6DA30.c | 807 + src/core2/code_7060.c | 961 + src/core2/code_70C30.c | 97 + src/core2/code_70F20.c | 205 + src/core2/code_71820.c | 186 + src/core2/code_72060.c | 153 + src/core2/code_72B10.c | 272 + src/core2/code_73640.c | 269 + src/core2/code_74090.c | 122 + src/core2/code_74290.c | 62 + src/core2/code_74420.c | 123 + src/core2/code_75480.c | 22 + src/core2/code_75930.c | 28 + src/core2/code_75E90.c | 30 + src/core2/code_76390.c | 15 + src/core2/code_763D0.c | 317 + src/core2/code_76D90.c | 266 + src/core2/code_77E50.c | 38 + src/core2/code_78100.c | 14 + src/core2/code_78E50.c | 218 + src/core2/code_79C80.c | 130 + src/core2/code_7AF80.c | 1734 + src/core2/code_82000.c | 549 + src/core2/code_83340.c | 180 + src/core2/code_83D70.c | 123 + src/core2/code_840D0.c | 93 + src/core2/code_851D0.c | 240 + src/core2/code_857B0.c | 19 + src/core2/code_85800.c | 1017 + src/core2/code_87E30.c | 635 + src/core2/code_8DA0.c | 74 + src/core2/code_8DC20.c | 60 + src/core2/code_90E0.c | 82 + src/core2/code_91E10.c | 640 + src/core2/code_9290.c | 55 + src/core2/code_935F0.c | 93 + src/core2/code_93C10.c | 72 + src/core2/code_9450.c | 128 + src/core2/code_94620.c | 1982 + src/core2/code_9900.c | 79 + src/core2/code_99860.c | 35 + src/core2/code_999A0.c | 180 + src/core2/code_9A320.c | 82 + src/core2/code_9A580.c | 60 + src/core2/code_9A740.c | 99 + src/core2/code_9A9D0.c | 100 + src/core2/code_9B180.c | 163 + src/core2/code_9B650.c | 137 + src/core2/code_9B990.c | 399 + src/core2/code_9BD0.c | 322 + src/core2/code_9C170.c | 292 + src/core2/code_9D640.c | 97 + src/core2/code_9D760.c | 36 + src/core2/code_9E370.c | 1619 + src/core2/code_A4D00.c | 1657 + src/core2/code_A600.c | 55 + src/core2/code_A6E0.c | 65 + src/core2/code_A960.c | 34 + src/core2/code_AA60.c | 392 + src/core2/code_ABC00.c | 34 + src/core2/code_AC520.c | 276 + src/core2/code_AD0.c | 156 + src/core2/code_AD110.c | 590 + src/core2/code_AD5B0.c | 397 + src/core2/code_AE290.c | 98 + src/core2/code_AE5D0.c | 272 + src/core2/code_AEDA0.c | 312 + src/core2/code_B1400.c | 1307 + src/core2/code_B3A80.c | 518 + src/core2/code_B5040.c | 376 + src/core2/code_B5E00.c | 135 + src/core2/code_B62B0.c | 110 + src/core2/code_B650.c | 75 + src/core2/code_B6640.c | 21 + src/core2/code_B6C60.c | 29 + src/core2/code_B6CE0.c | 51 + src/core2/code_B6EA0.c | 342 + src/core2/code_B6EA0.h | 52 + src/core2/code_B7B20.c | 16 + src/core2/code_B7F40.c | 54 + src/core2/code_B8020.c | 6 + src/core2/code_B8070.c | 5 + src/core2/code_B8080.c | 226 + src/core2/code_B850.c | 74 + src/core2/code_B8860.c | 195 + src/core2/code_B9090.c | 14 + src/core2/code_B9770.c | 291 + src/core2/code_BB50.c | 49 + src/core2/code_BD100.c | 143 + src/core2/code_BD20.c | 124 + src/core2/code_BDCC0.c | 178 + src/core2/code_BE2C0.c | 32 + src/core2/code_BEF20.c | 437 + src/core2/code_C0CF0.c | 270 + src/core2/code_C0E0.c | 142 + src/core2/code_C2C20.c | 88 + src/core2/code_C2F30.c | 103 + src/core2/code_C31A0.c | 58 + src/core2/code_C3A40.c | 31 + src/core2/code_C3B20.c | 264 + src/core2/code_C3F0.c | 41 + src/core2/code_C4320.c | 365 + src/core2/code_C4B0.c | 401 + src/core2/code_C4F40.c | 158 + src/core2/code_C5440.c | 184 + src/core2/code_C5AF0.c | 30 + src/core2/code_C5CC0.c | 49 + src/core2/code_C5F00.c | 32 + src/core2/code_C61C0.c | 32 + src/core2/code_C62B0.c | 384 + src/core2/code_C76D0.c | 122 + src/core2/code_C7CC0.c | 39 + src/core2/code_C8230.c | 32 + src/core2/code_C8360.c | 36 + src/core2/code_C8490.c | 71 + src/core2/code_C8760.c | 68 + src/core2/code_C89C0.c | 327 + src/core2/code_C97F0.c | 191 + src/core2/code_C9E70.c | 21 + src/core2/code_C9F00.c | 488 + src/core2/code_CB050.c | 8 + src/core2/code_CB610.c | 83 + src/core2/code_CB8A0.c | 86 + src/core2/code_CBBF0.c | 55 + src/core2/code_CBD10.c | 118 + src/core2/code_CC1E0.c | 376 + src/core2/code_CD0A0.c | 92 + src/core2/code_CD3F0.c | 82 + src/core2/code_CD6E0.c | 477 + src/core2/code_CECD0.c | 99 + src/core2/code_CF090.c | 94 + src/core2/code_CF3E0.c | 160 + src/core2/code_D0CA0.c | 540 + src/core2/code_D2180.c | 136 + src/core2/code_D5D10.c | 101 + src/core2/code_D5FD0.c | 91 + src/core2/code_D6180.c | 146 + src/core2/code_D6600.c | 224 + src/core2/code_D7040.c | 243 + src/core2/code_D7D10.c | 317 + src/core2/code_D800.c | 79 + src/core2/code_D89E0.c | 492 + src/core2/code_D9B0.c | 198 + src/core2/code_DA3A0.c | 113 + src/core2/code_DA760.c | 72 + src/core2/code_DAAA0.c | 161 + src/core2/code_DB010.c | 735 + src/core2/code_DC4B0.c | 47 + src/core2/code_DF70.c | 93 + src/core2/code_E410.c | 80 + src/core2/code_E680.c | 117 + src/core2/code_E910.c | 329 + src/core2/code_EE40.c | 44 + src/core2/code_EF50.c | 557 + src/core2/code_FD60.c | 432 + src/core2/done/bs/talk.c | 51 + src/core2/done/climb.c | 67 + src/core2/done/code_3B2C0.c | 97 + src/core2/fxcommon3score.c | 232 + src/core2/gc/bound.c | 52 + src/core2/gc/pauseMenu.c | 1177 + src/core2/gc/transition.c | 364 + src/core2/gc/zoombox.c | 1451 + src/core2/jiggyscore.c | 108 + src/core2/levelspecificflags.c | 65 + src/core2/mapspecificflags.c | 109 + src/core2/pitch.c | 70 + src/core2/rand.c | 132 + src/core2/roll.c | 68 + src/core2/sla.c | 70 + src/core2/string.c | 168 + src/core2/timedfuncqueue.c | 328 + src/core2/vla.c | 107 + src/core2/yaw.c | 136 + src/cutscenes/code_0.c | 1472 + src/cutscenes/code_60F0.c | 687 + src/cutscenes/code_6730.c | 97 + src/cutscenes/code_69F0.c | 106 + src/cutscenes/code_6C90.c | 98 + src/done/bk_boot_1050.c | 40 + src/done/cartrominit.c | 34 + src/done/createmesgqueue.c | 15 + src/done/createthread.c | 32 + src/done/destroythread.c | 45 + src/done/devmgr.c | 113 + src/done/epirawdma.c | 29 + src/done/epirawread.c | 14 + src/done/epirawwrite.c | 13 + src/done/getthreadpri.c | 11 + src/done/inflate.c | 588 + src/done/initialize.c | 68 + src/done/kdebugserver.c | 3 + src/done/leodiskinit.c | 29 + src/done/leointerrupt.c | 215 + src/done/ll.c | 57 + src/done/overlays.c | 44 + src/done/piacs.c | 24 + src/done/pigetstat.c | 7 + src/done/pimgr.c | 50 + src/done/pirawdma.c | 28 + src/done/pirawread.c | 11 + src/done/rarezip.c | 51 + src/done/recvmesg.c | 32 + src/done/resetglobalintmask.c | 13 + src/done/sendmesg.c | 31 + src/done/seteventmesg.c | 13 + src/done/setglobalintmask.c | 9 + src/done/setthreadpri.c | 24 + src/done/si.c | 11 + src/done/sirawread.c | 9 + src/done/sirawwrite.c | 9 + src/done/startthread.c | 40 + src/done/thread.c | 25 + src/done/virtualtophysical.c | 19 + src/done/yieldthread.c | 9 + src/fight/code_0.c | 40 + src/fight/code_180.c | 2409 + src/fight/code_5ED0.c | 405 + src/fight/code_6E90.c | 171 + src/fight/code_7580.c | 134 + src/fight/code_7BE0.c | 206 + src/fight/code_8390.c | 134 + src/fight/code_87A0.c | 410 + src/fight/code_9850.c | 142 + src/fight/code_9D40.c | 420 + src/fight/code_AED0.c | 30 + src/lair/code_0.c | 1885 + src/lair/code_42A0.c | 424 + src/lair/code_5640.c | 210 + src/lair/code_5ED0.c | 1224 + src/lair/code_86F0.c | 550 + src/lair/code_9C40.c | 123 + src/lair/code_A170.c | 89 + src/lair/code_A430.c | 19 + src/lair/code_A4A0.c | 101 + src/lair/code_A810.c | 148 + src/lair/code_AD70.c | 317 + src/lair/code_BBD0.c | 146 + src/lair/code_C1C0.c | 121 + src/lair/code_C6C0.c | 57 + subyaml/BGS.jp.yaml | 33 + subyaml/BGS.pal.yaml | 33 + subyaml/BGS.us.v10.yaml | 94 + subyaml/BGS.us.v11.yaml | 33 + subyaml/CC.jp.yaml | 33 + subyaml/CC.pal.yaml | 33 + subyaml/CC.us.v10.yaml | 61 + subyaml/CC.us.v11.yaml | 33 + subyaml/CCW.jp.yaml | 33 + subyaml/CCW.pal.yaml | 33 + subyaml/CCW.us.v10.yaml | 92 + subyaml/CCW.us.v11.yaml | 33 + subyaml/FP.jp.yaml | 33 + subyaml/FP.pal.yaml | 33 + subyaml/FP.us.v10.yaml | 100 + subyaml/FP.us.v11.yaml | 33 + subyaml/GV.jp.yaml | 33 + subyaml/GV.pal.yaml | 33 + subyaml/GV.us.v10.yaml | 118 + subyaml/GV.us.v11.yaml | 33 + subyaml/MM.jp.yaml | 33 + subyaml/MM.pal.yaml | 33 + subyaml/MM.us.v10.yaml | 66 + subyaml/MM.us.v11.yaml | 33 + subyaml/MMM.jp.yaml | 33 + subyaml/MMM.pal.yaml | 33 + subyaml/MMM.us.v10.yaml | 77 + subyaml/MMM.us.v11.yaml | 33 + subyaml/RBB.jp.yaml | 33 + subyaml/RBB.pal.yaml | 33 + subyaml/RBB.us.v10.yaml | 121 + subyaml/RBB.us.v11.yaml | 33 + subyaml/SM.jp.yaml | 33 + subyaml/SM.pal.yaml | 72 + subyaml/SM.us.v10.yaml | 71 + subyaml/SM.us.v11.yaml | 33 + subyaml/TTC.jp.yaml | 33 + subyaml/TTC.pal.yaml | 33 + subyaml/TTC.us.v10.yaml | 69 + subyaml/TTC.us.v11.yaml | 33 + subyaml/core1.jp.yaml | 33 + subyaml/core1.pal.yaml | 33 + subyaml/core1.us.v10.yaml | 337 + subyaml/core1.us.v11.yaml | 33 + subyaml/core2.jp.yaml | 33 + subyaml/core2.pal.yaml | 31 + subyaml/core2.us.v10.yaml | 931 + subyaml/core2.us.v11.yaml | 33 + subyaml/cutscenes.jp.yaml | 32 + subyaml/cutscenes.pal.yaml | 33 + subyaml/cutscenes.us.v10.yaml | 51 + subyaml/cutscens.us.v11.yaml | 33 + subyaml/fight.jp.yaml | 33 + subyaml/fight.pal.yaml | 33 + subyaml/fight.us.v10.yaml | 77 + subyaml/fight.us.v11.yaml | 33 + subyaml/fight.us.v12.yaml | 72 + subyaml/lair.jp.yaml | 33 + subyaml/lair.pal.yaml | 33 + subyaml/lair.us.v10.yaml | 84 + subyaml/lair.us.v11.yaml | 33 + symbol_addrs.boot.us.v10.txt | 10 + symbol_addrs.core1.us.v10.txt | 513 + symbol_addrs.core2.us.v10.txt | 513 + symbol_addrs.global.us.v10.txt | 68 + tools/asm-differ | 1 + tools/asm-processor | 1 + tools/bk_asset_tool | 1 + tools/bk_crc/bk_crc | Bin 0 -> 43624 bytes tools/bk_crc/bk_crc.cpp | 73 + tools/bk_tools | 1 + tools/decomp_me_ctx.sh | 5 + tools/ido-static-recomp | 1 + tools/m2ctx.py | 66 + tools/mips_to_c_ctx.sh | 6 + tools/n64splat | 1 + tools/progress.py | 87 + tools/progress_read.py | 77 + tools/rareunzip.py | 28 + tools/set_o32abi_bit.py | 25 + tools/sound_func_val_unwrap | 6 + tools/splat_inputs.py | 42 + undefined_syms.libultra.txt | 7 + undefined_syms.us.v10.txt | 172 + 1087 files changed, 391897 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 README.md create mode 100644 asm/core1/ultra/libm_vals.s create mode 100644 asm/core1/ultra/setintmask.s create mode 100644 asm/data/fight/code_180.data.s create mode 100644 asm/ultra/exceptasm.s create mode 100644 asm/ultra/setintmask.s create mode 100644 banjo.jp.yaml create mode 100644 banjo.pal.yaml create mode 100644 banjo.us.v10.yaml create mode 100644 banjo.us.v11.yaml create mode 100755 diff create mode 100644 ido/ido5.3_recomp/Makefile create mode 100755 ido/ido5.3_recomp/acpp create mode 100755 ido/ido5.3_recomp/as1 create mode 100755 ido/ido5.3_recomp/cc create mode 100644 ido/ido5.3_recomp/cc_c.c create mode 100755 ido/ido5.3_recomp/cfe create mode 100755 ido/ido5.3_recomp/copt create mode 100644 ido/ido5.3_recomp/elf.h create mode 100644 ido/ido5.3_recomp/err.english.cc create mode 100644 ido/ido5.3_recomp/header.h create mode 100644 ido/ido5.3_recomp/helpers.h create mode 100644 ido/ido5.3_recomp/libc_impl.c create mode 100644 ido/ido5.3_recomp/libc_impl.h create mode 100755 ido/ido5.3_recomp/recomp create mode 100644 ido/ido5.3_recomp/recomp.cpp create mode 100755 ido/ido5.3_recomp/ugen create mode 100644 ido/ido5.3_recomp/ugen_c.c create mode 100755 ido/ido5.3_recomp/ujoin create mode 100755 ido/ido5.3_recomp/uld create mode 100755 ido/ido5.3_recomp/umerge create mode 100755 ido/ido5.3_recomp/uopt create mode 100755 ido/ido5.3_recomp/usplit create mode 100644 include/2.0L/PR/PRimage.h create mode 100644 include/2.0L/PR/R4300.h create mode 100644 include/2.0L/PR/abi.h create mode 100644 include/2.0L/PR/gbi.h create mode 100644 include/2.0L/PR/gs2dex.h create mode 100644 include/2.0L/PR/gt.h create mode 100644 include/2.0L/PR/gu.h create mode 100644 include/2.0L/PR/leo.h create mode 100644 include/2.0L/PR/leoappli.h create mode 100644 include/2.0L/PR/libaudio.h create mode 100644 include/2.0L/PR/mbi.h create mode 100644 include/2.0L/PR/n_abi.h create mode 100644 include/2.0L/PR/n_libaudio.h create mode 100644 include/2.0L/PR/n_libaudio_s_to_n.h create mode 100644 include/2.0L/PR/os.h create mode 100644 include/2.0L/PR/os_ai.h create mode 100644 include/2.0L/PR/os_cache.h create mode 100644 include/2.0L/PR/os_cont.h create mode 100644 include/2.0L/PR/os_convert.h create mode 100644 include/2.0L/PR/os_debug.h create mode 100644 include/2.0L/PR/os_eeprom.h create mode 100644 include/2.0L/PR/os_error.h create mode 100644 include/2.0L/PR/os_exception.h create mode 100644 include/2.0L/PR/os_flash.h create mode 100644 include/2.0L/PR/os_gbpak.h create mode 100644 include/2.0L/PR/os_gio.h create mode 100644 include/2.0L/PR/os_host.h create mode 100644 include/2.0L/PR/os_internal.h create mode 100644 include/2.0L/PR/os_internal_debug.h create mode 100644 include/2.0L/PR/os_internal_error.h create mode 100644 include/2.0L/PR/os_internal_exception.h create mode 100644 include/2.0L/PR/os_internal_gio.h create mode 100644 include/2.0L/PR/os_internal_host.h create mode 100644 include/2.0L/PR/os_internal_reg.h create mode 100644 include/2.0L/PR/os_internal_rsp.h create mode 100644 include/2.0L/PR/os_internal_si.h create mode 100644 include/2.0L/PR/os_internal_thread.h create mode 100644 include/2.0L/PR/os_internal_tlb.h create mode 100644 include/2.0L/PR/os_libc.h create mode 100644 include/2.0L/PR/os_message.h create mode 100644 include/2.0L/PR/os_motor.h create mode 100644 include/2.0L/PR/os_pfs.h create mode 100644 include/2.0L/PR/os_pi.h create mode 100644 include/2.0L/PR/os_rdp.h create mode 100644 include/2.0L/PR/os_reg.h create mode 100644 include/2.0L/PR/os_rsp.h create mode 100644 include/2.0L/PR/os_si.h create mode 100644 include/2.0L/PR/os_system.h create mode 100644 include/2.0L/PR/os_thread.h create mode 100644 include/2.0L/PR/os_time.h create mode 100644 include/2.0L/PR/os_tlb.h create mode 100644 include/2.0L/PR/os_version.h create mode 100644 include/2.0L/PR/os_vi.h create mode 100644 include/2.0L/PR/os_voice.h create mode 100644 include/2.0L/PR/ramrom.h create mode 100644 include/2.0L/PR/rcp.h create mode 100644 include/2.0L/PR/rdb.h create mode 100644 include/2.0L/PR/region.h create mode 100644 include/2.0L/PR/rmon.h create mode 100644 include/2.0L/PR/sched.h create mode 100644 include/2.0L/PR/sp.h create mode 100644 include/2.0L/PR/sptask.h create mode 100644 include/2.0L/PR/ucode.h create mode 100644 include/2.0L/PR/ucode_debug.h create mode 100644 include/2.0L/PR/ultraerror.h create mode 100644 include/2.0L/PR/ultralog.h create mode 100644 include/2.0L/PR/ultratypes.h create mode 100644 include/2.0L/PR/uportals.h create mode 100644 include/2.0L/assert.h create mode 100644 include/2.0L/ultra64.h create mode 100644 include/SnS.h create mode 100644 include/animation.h create mode 100644 include/assets.h create mode 100644 include/bs_funcs.h create mode 100644 include/bsint.h create mode 100644 include/core1/core1.h create mode 100644 include/core1/mem.h create mode 100644 include/core1/rarezip.h create mode 100644 include/core2/animctrl.h create mode 100644 include/core2/code_6DA30.h create mode 100644 include/core2/code_C9E70.h create mode 100644 include/core2/core2.h create mode 100644 include/core2/timedfunc.h create mode 100755 include/cseq.h create mode 100755 include/cseqp.h create mode 100644 include/enums.h create mode 100644 include/functions.h create mode 100644 include/gc/gc.h create mode 100644 include/gc/gcbound.h create mode 100644 include/gc/gctransition.h create mode 100644 include/gc/gczoombox.h create mode 100755 include/initfx.h create mode 100644 include/macro.inc create mode 100644 include/ml.h create mode 100644 include/ml/mtx.h create mode 100644 include/model.h create mode 100644 include/music.h create mode 100644 include/n_abi.h create mode 100755 include/n_cseqp.h create mode 100644 include/n_synth.h create mode 100644 include/osint.h create mode 100644 include/overlays.h create mode 100644 include/piint.h create mode 100644 include/prelude.s create mode 100644 include/prop.h create mode 100644 include/rand.h create mode 100644 include/rarezip.h create mode 100644 include/save.h create mode 100755 include/seqp.h create mode 100644 include/stdarg.h create mode 100644 include/string.h create mode 100644 include/structs.h create mode 100755 include/synthInternals.h create mode 100644 include/variables.h create mode 100644 include/viint.h create mode 100644 level_symbols.us.v10.txt create mode 100644 packages.txt create mode 100644 progress/progress_BGS.svg create mode 100644 progress/progress_CC.svg create mode 100644 progress/progress_CCW.svg create mode 100644 progress/progress_FP.svg create mode 100644 progress/progress_GV.svg create mode 100644 progress/progress_MM.svg create mode 100644 progress/progress_MMM.svg create mode 100644 progress/progress_RBB.svg create mode 100644 progress/progress_SM.svg create mode 100644 progress/progress_TTC.svg create mode 100644 progress/progress_bk_boot.svg create mode 100644 progress/progress_core1.svg create mode 100644 progress/progress_core2.svg create mode 100644 progress/progress_cutscenes.svg create mode 100644 progress/progress_fight.svg create mode 100644 progress/progress_lair.svg create mode 100644 progress/progress_total.svg create mode 100644 requirements.txt create mode 100644 src/BGS/ch/croctus.c create mode 100644 src/BGS/ch/flibbit.c create mode 100644 src/BGS/ch/leafboat.c create mode 100644 src/BGS/ch/mrvile.c create mode 100644 src/BGS/ch/tanktup.c create mode 100644 src/BGS/ch/yellowflibbit.c create mode 100644 src/BGS/ch/yumblie.c create mode 100644 src/BGS/code_3030.c create mode 100644 src/BGS/code_3420.c create mode 100644 src/BGS/code_9750.c create mode 100644 src/BGS/done/ch/bigalligator.c create mode 100644 src/BGS/done/ch/code_2270.c create mode 100644 src/BGS/done/ch/code_6730.c create mode 100644 src/BGS/done/ch/code_8A60.c create mode 100644 src/BGS/done/ch/mudhut.c create mode 100644 src/BGS/done/ch/pinkegg.c create mode 100644 src/BGS/done/code_8DF0.c create mode 100644 src/CC/CC.h create mode 100644 src/CC/ch/sawblade.c create mode 100644 src/CC/ch/tooth.c create mode 100644 src/CC/code_0.c create mode 100644 src/CC/code_13C0.c create mode 100644 src/CC/code_19B0.c create mode 100644 src/CC/code_1B90.c create mode 100644 src/CC/code_1F70.c create mode 100644 src/CC/code_3400.c create mode 100644 src/CC/code_530.c create mode 100644 src/CC/code_BF0.c create mode 100644 src/CCW/code_0.c create mode 100644 src/CCW/code_14B0.c create mode 100644 src/CCW/code_160.c create mode 100644 src/CCW/code_1B20.c create mode 100644 src/CCW/code_21A0.c create mode 100644 src/CCW/code_2270.c create mode 100644 src/CCW/code_2B00.c create mode 100644 src/CCW/code_3050.c create mode 100644 src/CCW/code_3310.c create mode 100644 src/CCW/code_3DA0.c create mode 100644 src/CCW/code_4530.c create mode 100644 src/CCW/code_4960.c create mode 100644 src/CCW/code_4D00.c create mode 100644 src/CCW/code_50D0.c create mode 100644 src/CCW/code_5540.c create mode 100644 src/CCW/code_5BF0.c create mode 100644 src/CCW/code_61E0.c create mode 100644 src/CCW/code_6620.c create mode 100644 src/CCW/code_6AC0.c create mode 100644 src/CCW/code_6EC0.c create mode 100644 src/CCW/code_7120.c create mode 100644 src/CCW/code_7570.c create mode 100644 src/CCW/code_76C0.c create mode 100644 src/CCW/code_7BC0.c create mode 100644 src/CCW/code_7BF0.c create mode 100644 src/CCW/code_8050.c create mode 100644 src/CCW/code_8670.c create mode 100644 src/CCW/code_950.c create mode 100644 src/FP/ch/wozzasjig.c create mode 100644 src/FP/code_0.c create mode 100644 src/FP/code_11F0.c create mode 100644 src/FP/code_19E0.c create mode 100644 src/FP/code_1FF0.c create mode 100644 src/FP/code_2350.c create mode 100644 src/FP/code_3E00.c create mode 100644 src/FP/code_4400.c create mode 100644 src/FP/code_45D0.c create mode 100644 src/FP/code_4770.c create mode 100644 src/FP/code_4D0.c create mode 100644 src/FP/code_5CC0.c create mode 100644 src/FP/code_6AE0.c create mode 100644 src/FP/code_790.c create mode 100644 src/FP/code_7980.c create mode 100644 src/FP/code_8330.c create mode 100644 src/FP/code_87E0.c create mode 100644 src/FP/code_8D00.c create mode 100644 src/FP/code_8E20.c create mode 100644 src/FP/code_9EA0.c create mode 100644 src/FP/code_A1C0.c create mode 100644 src/FP/code_A240.c create mode 100644 src/FP/code_A40.c create mode 100644 src/FP/code_A500.c create mode 100644 src/FP/code_A880.c create mode 100644 src/FP/code_ABD0.c create mode 100644 src/FP/code_B4D0.c create mode 100644 src/GV/code_0.c create mode 100644 src/GV/code_1570.c create mode 100644 src/GV/code_1E80.c create mode 100644 src/GV/code_230.c create mode 100644 src/GV/code_24D0.c create mode 100644 src/GV/code_2730.c create mode 100644 src/GV/code_2B80.c create mode 100644 src/GV/code_2EE0.c create mode 100644 src/GV/code_30C0.c create mode 100644 src/GV/code_3630.c create mode 100644 src/GV/code_3AA0.c create mode 100644 src/GV/code_3B10.c create mode 100644 src/GV/code_3BB0.c create mode 100644 src/GV/code_3D90.c create mode 100644 src/GV/code_43B0.c create mode 100644 src/GV/code_4740.c create mode 100644 src/GV/code_5570.c create mode 100644 src/GV/code_61E0.c create mode 100644 src/GV/code_6370.c create mode 100644 src/GV/code_6F80.c create mode 100644 src/GV/code_7060.c create mode 100644 src/GV/code_7530.c create mode 100644 src/GV/code_7D50.c create mode 100644 src/GV/code_7DB0.c create mode 100644 src/GV/code_7FC0.c create mode 100644 src/GV/code_7FF0.c create mode 100644 src/GV/code_9130.c create mode 100644 src/GV/code_9860.c create mode 100644 src/GV/code_9B70.c create mode 100644 src/GV/code_9C10.c create mode 100644 src/GV/code_9DB0.c create mode 100644 src/GV/code_A490.c create mode 100644 src/GV/code_D60.c create mode 100644 src/MM/ch/chimpystump.c create mode 100644 src/MM/ch/conga.c create mode 100644 src/MM/ch/grublin.c create mode 100644 src/MM/ch/hut.c create mode 100644 src/MM/ch/juju.c create mode 100644 src/MM/ch/jujuhitbox.c create mode 100644 src/MM/ch/lmonkey.c create mode 100644 src/MM/ch/orange.c create mode 100644 src/MM/ch/orangepad.c create mode 100644 src/MM/code_1AD0.c create mode 100644 src/MM/code_24C0.c create mode 100644 src/MMM/ch/loggo.c create mode 100644 src/MMM/ch/motzhand.c create mode 100644 src/MMM/ch/napper.c create mode 100644 src/MMM/code_16B0.c create mode 100644 src/MMM/code_2040.c create mode 100644 src/MMM/code_2F60.c create mode 100644 src/MMM/code_3120.c create mode 100644 src/MMM/code_3420.c create mode 100644 src/MMM/code_3D50.c create mode 100644 src/MMM/code_47D0.c create mode 100644 src/MMM/code_5000.c create mode 100644 src/MMM/code_DC0.c create mode 100644 src/RBB/code_0.c create mode 100644 src/RBB/code_1570.c create mode 100644 src/RBB/code_1FC0.c create mode 100644 src/RBB/code_27E0.c create mode 100644 src/RBB/code_2A70.c create mode 100644 src/RBB/code_2E90.c create mode 100644 src/RBB/code_34B0.c create mode 100644 src/RBB/code_36A0.c create mode 100644 src/RBB/code_3CB0.c create mode 100644 src/RBB/code_40F0.c create mode 100644 src/RBB/code_47D0.c create mode 100644 src/RBB/code_4C70.c create mode 100644 src/RBB/code_5060.c create mode 100644 src/RBB/code_52F0.c create mode 100644 src/RBB/code_5490.c create mode 100644 src/RBB/code_5AB0.c create mode 100644 src/RBB/code_5C10.c create mode 100644 src/RBB/code_5F10.c create mode 100644 src/RBB/code_5F80.c create mode 100644 src/RBB/code_640.c create mode 100644 src/RBB/code_7A60.c create mode 100644 src/RBB/code_7B20.c create mode 100644 src/RBB/code_7FD0.c create mode 100644 src/RBB/code_8520.c create mode 100644 src/RBB/code_9670.c create mode 100644 src/RBB/code_9840.c create mode 100644 src/RBB/code_99F0.c create mode 100644 src/RBB/code_CA0.c create mode 100644 src/SM/ch/attacktutorial.c create mode 100644 src/SM/ch/vegetables.c create mode 100644 src/SM/code_0.c create mode 100644 src/SM/code_2900.c create mode 100644 src/SM/code_2990.c create mode 100644 src/SM/code_3FC0.c create mode 100644 src/SM/code_4070.c create mode 100644 src/SM/code_44D0.c create mode 100644 src/SM/code_46C0.c create mode 100644 src/SM/code_46C0.us.v10.c create mode 100644 src/SM/code_5B0.c create mode 100644 src/SM/code_BF0.c create mode 100644 src/SM/code_F0.c create mode 100644 src/TTC/ch/lockup.c create mode 100644 src/TTC/ch/treasure.c create mode 100644 src/TTC/code_0.c create mode 100644 src/TTC/code_10A0.c create mode 100644 src/TTC/code_19D0.c create mode 100644 src/TTC/code_26D0.c create mode 100644 src/TTC/code_2B80.c create mode 100644 src/TTC/code_3040.c create mode 100644 src/TTC/code_35D0.c create mode 100644 src/TTC/code_3E30.c create mode 100644 src/core1/audio/n_adpcm.c create mode 100644 src/core1/audio/n_csplayer.c create mode 100644 src/core1/code_0.c create mode 100644 src/core1/code_11AC0.c create mode 100644 src/core1/code_12F10.c create mode 100644 src/core1/code_13640.c create mode 100644 src/core1/code_13680.c create mode 100644 src/core1/code_136D0.c create mode 100644 src/core1/code_13990.c create mode 100644 src/core1/code_15770.c create mode 100644 src/core1/code_15B30.c create mode 100644 src/core1/code_18110.c create mode 100644 src/core1/code_18210.c create mode 100644 src/core1/code_18310.c create mode 100644 src/core1/code_18350.c create mode 100644 src/core1/code_1BE90.c create mode 100644 src/core1/code_1D00.c create mode 100644 src/core1/code_1D5D0.c create mode 100644 src/core1/code_1E6E0.c create mode 100644 src/core1/code_1E820.c create mode 100644 src/core1/code_22E40.c create mode 100644 src/core1/code_25E20.c create mode 100644 src/core1/code_26110.c create mode 100644 src/core1/code_2BD0.c create mode 100644 src/core1/code_2DA0.c create mode 100644 src/core1/code_2FA0.c create mode 100644 src/core1/code_31C0.c create mode 100644 src/core1/code_3A70.c create mode 100644 src/core1/code_660.c create mode 100644 src/core1/code_7090.c create mode 100644 src/core1/code_72B0.c create mode 100644 src/core1/code_7F60.c create mode 100644 src/core1/code_8C50.c create mode 100644 src/core1/code_9D30.c create mode 100644 src/core1/code_E360.c create mode 100644 src/core1/code_EAF0.c create mode 100644 src/core1/done/audio/auxbus.c create mode 100644 src/core1/done/audio/bnkf.c create mode 100644 src/core1/done/audio/cents2ratio.c create mode 100644 src/core1/done/audio/code_219D0.c create mode 100644 src/core1/done/audio/code_21A80.c create mode 100644 src/core1/done/audio/code_21AF0.c create mode 100644 src/core1/done/audio/code_21B50.c create mode 100644 src/core1/done/audio/copy.c create mode 100644 src/core1/done/audio/cseq.c create mode 100644 src/core1/done/audio/cspgettempo.c create mode 100644 src/core1/done/audio/cspplay.c create mode 100644 src/core1/done/audio/cspsetbank.c create mode 100644 src/core1/done/audio/cspsetseq.c create mode 100644 src/core1/done/audio/cspsettempo.c create mode 100644 src/core1/done/audio/cspsetvol.c create mode 100644 src/core1/done/audio/cspstop.c create mode 100644 src/core1/done/audio/drvrNew.c create mode 100644 src/core1/done/audio/env.c create mode 100644 src/core1/done/audio/event.c create mode 100644 src/core1/done/audio/filter.c create mode 100644 src/core1/done/audio/heapalloc.c create mode 100644 src/core1/done/audio/heapinit.c create mode 100644 src/core1/done/audio/load.c create mode 100644 src/core1/done/audio/mainbus.c create mode 100644 src/core1/done/audio/n_auxbus.c create mode 100644 src/core1/done/audio/n_csplayer.c create mode 100644 src/core1/done/audio/n_csq.c create mode 100644 src/core1/done/audio/n_drvrNew.c create mode 100644 src/core1/done/audio/n_envresample.c create mode 100644 src/core1/done/audio/n_load.c create mode 100644 src/core1/done/audio/n_mainbus.c create mode 100644 src/core1/done/audio/n_resample.c create mode 100644 src/core1/done/audio/n_resample_add01.c_ create mode 100644 src/core1/done/audio/n_save.c create mode 100644 src/core1/done/audio/n_save_add01.c_ create mode 100644 src/core1/done/audio/n_synaddplayer.c create mode 100644 src/core1/done/audio/n_synallocfx.c create mode 100644 src/core1/done/audio/n_synallocvoice.c create mode 100644 src/core1/done/audio/n_synfreevoice.c create mode 100644 src/core1/done/audio/n_synsetfxmix.c create mode 100644 src/core1/done/audio/n_synsetpan.c create mode 100644 src/core1/done/audio/n_synsetpitch.c create mode 100644 src/core1/done/audio/n_synsetvol.c create mode 100644 src/core1/done/audio/n_synstartvoice.c create mode 100644 src/core1/done/audio/n_synstartvoiceparam.c create mode 100644 src/core1/done/audio/n_synstopvoice.c create mode 100644 src/core1/done/audio/n_synthesizer.c create mode 100644 src/core1/done/audio/resample.c create mode 100644 src/core1/done/audio/reverb.c create mode 100644 src/core1/done/audio/save.c create mode 100644 src/core1/done/audio/seq.c create mode 100644 src/core1/done/audio/sl.c create mode 100644 src/core1/done/audio/synallocfx.c create mode 100644 src/core1/done/audio/syndelete.c create mode 100644 src/core1/done/audio/synthesizer.c create mode 100644 src/core1/done/code_1D590.c create mode 100644 src/core1/done/code_1E360.c create mode 100644 src/core1/done/code_1E8C0.c create mode 100644 src/core1/done/code_CE60.c create mode 100644 src/core1/done/gu/guint.h create mode 100644 src/core1/done/gu/normalize.c create mode 100644 src/core1/done/gu/ortho.c create mode 100644 src/core1/done/gu/sinf.c create mode 100644 src/core1/done/gu/sqrtf.c create mode 100644 src/core1/done/gu/translate.c create mode 100644 src/core1/done/io/ai.c create mode 100644 src/core1/done/io/aigetlen.c create mode 100644 src/core1/done/io/aisetfreq.c create mode 100644 src/core1/done/io/aisetnextbuf.c create mode 100644 src/core1/done/io/cartrominit.c create mode 100644 src/core1/done/io/conteeplongread.c create mode 100644 src/core1/done/io/conteeplongwrite.c create mode 100644 src/core1/done/io/conteepread.c create mode 100644 src/core1/done/io/conteepwrite.c create mode 100644 src/core1/done/io/contpfs.c create mode 100644 src/core1/done/io/contramread.c create mode 100644 src/core1/done/io/contramwrite.c create mode 100644 src/core1/done/io/contreaddata.c create mode 100644 src/core1/done/io/controller.c create mode 100755 src/core1/done/io/controller.h create mode 100644 src/core1/done/io/contsetch.c create mode 100644 src/core1/done/io/crc.c create mode 100644 src/core1/done/io/devmgr.c create mode 100644 src/core1/done/io/dpgetstat.c create mode 100644 src/core1/done/io/dpsetstat.c create mode 100644 src/core1/done/io/epirawdma.c create mode 100644 src/core1/done/io/epirawread.c create mode 100644 src/core1/done/io/epirawwrite.c create mode 100644 src/core1/done/io/leodiskinit.c create mode 100644 src/core1/done/io/leointerrupt.c create mode 100644 src/core1/done/io/motor.c create mode 100644 src/core1/done/io/pfschecker.c create mode 100644 src/core1/done/io/pfsgetstatus.c create mode 100644 src/core1/done/io/pfsinit.c create mode 100644 src/core1/done/io/pfsisplug.c create mode 100644 src/core1/done/io/piacs.c create mode 100644 src/core1/done/io/pigetcmdq.c create mode 100644 src/core1/done/io/pimgr.c create mode 100644 src/core1/done/io/pirawdma.c create mode 100644 src/core1/done/io/pirawread.c create mode 100644 src/core1/done/io/piread.c create mode 100644 src/core1/done/io/si.c create mode 100644 src/core1/done/io/siacs.c create mode 100644 src/core1/done/io/siint.h create mode 100644 src/core1/done/io/sirawdma.c create mode 100644 src/core1/done/io/sirawread.c create mode 100644 src/core1/done/io/sirawwrite.c create mode 100644 src/core1/done/io/sp.c create mode 100644 src/core1/done/io/spgetstat.c create mode 100644 src/core1/done/io/sprawdma.c create mode 100644 src/core1/done/io/spsetpc.c create mode 100644 src/core1/done/io/spsetstat.c create mode 100644 src/core1/done/io/sptask.c create mode 100644 src/core1/done/io/sptaskyield.c create mode 100644 src/core1/done/io/sptaskyielded.c create mode 100644 src/core1/done/io/vi.c create mode 100644 src/core1/done/io/viblack.c create mode 100644 src/core1/done/io/vigetcurrcontext.c create mode 100644 src/core1/done/io/vigetcurrframebuf.c create mode 100644 src/core1/done/io/vigetnextframebuf.c create mode 100644 src/core1/done/io/vimgr.c create mode 100644 src/core1/done/io/vimodempallan1.c create mode 100644 src/core1/done/io/vimodentsclan1.c create mode 100644 src/core1/done/io/vimodepallan1.c create mode 100644 src/core1/done/io/visetevent.c create mode 100644 src/core1/done/io/visetmode.c create mode 100644 src/core1/done/io/visetspecial.c create mode 100644 src/core1/done/io/viswapbuf.c create mode 100644 src/core1/done/io/viswapcontext.c create mode 100644 src/core1/done/ll.c create mode 100644 src/core1/done/os/createmesgqueue.c create mode 100644 src/core1/done/os/createthread.c create mode 100644 src/core1/done/os/destroythread.c create mode 100644 src/core1/done/os/getthreadpri.c create mode 100644 src/core1/done/os/gettime.c create mode 100644 src/core1/done/os/jammesg.c create mode 100644 src/core1/done/os/pidma.c create mode 100644 src/core1/done/os/recvmesg.c create mode 100644 src/core1/done/os/resetglobalintmask.c create mode 100644 src/core1/done/os/sendmesg.c create mode 100644 src/core1/done/os/seteventmesg.c create mode 100644 src/core1/done/os/setglobalintmask.c create mode 100644 src/core1/done/os/settimer.c create mode 100644 src/core1/done/os/settreadpri.c create mode 100644 src/core1/done/os/startthread.c create mode 100644 src/core1/done/os/stopthread.c create mode 100644 src/core1/done/os/stoptimer.c create mode 100644 src/core1/done/os/thread.c create mode 100644 src/core1/done/os/timerintr.c create mode 100644 src/core1/done/os/virtualtophysical.c create mode 100644 src/core1/done/os/yieldthread.c create mode 100644 src/core1/done/syncprintf.c create mode 100644 src/core1/exceptasm.c create mode 100644 src/core1/gu/cosf.c create mode 100644 src/core1/gu/mtxutil.c create mode 100644 src/core1/gu/rotate.c create mode 100644 src/core1/inflate.c create mode 100644 src/core1/memory.c create mode 100644 src/core1/n_reverb.c create mode 100644 src/core1/n_reverb_add01.c_ create mode 100644 src/core1/n_reverb_add02.c_ create mode 100644 src/core1/n_reverb_add03.c_ create mode 100644 src/core1/n_reverb_add04.c_ create mode 100644 src/core1/os/initialize.c create mode 100644 src/core1/os/writebackdcache.c create mode 100644 src/core2/animctrl.c create mode 100644 src/core2/bs/ant.c create mode 100644 src/core2/bs/bBarge.c create mode 100644 src/core2/bs/bEggAss.c create mode 100644 src/core2/bs/bEggHead.c create mode 100644 src/core2/bs/bFlap.c create mode 100644 src/core2/bs/bFlip.c create mode 100644 src/core2/bs/bFly.c create mode 100644 src/core2/bs/bLongLeg.c create mode 100644 src/core2/bs/bPeck.c create mode 100644 src/core2/bs/bShock.c create mode 100644 src/core2/bs/bSwim.c create mode 100644 src/core2/bs/bTrot.c create mode 100644 src/core2/bs/bWhirl.c create mode 100644 src/core2/bs/bbuster.c create mode 100644 src/core2/bs/bee.c create mode 100644 src/core2/bs/beeFly.c create mode 100644 src/core2/bs/beeMain.c create mode 100644 src/core2/bs/carry.c create mode 100644 src/core2/bs/claw.c create mode 100644 src/core2/bs/climb.c create mode 100644 src/core2/bs/croc.c create mode 100644 src/core2/bs/crouch.c create mode 100644 src/core2/bs/die.c create mode 100644 src/core2/bs/drone.c create mode 100644 src/core2/bs/dronegoto.c create mode 100644 src/core2/bs/dronexform.c create mode 100644 src/core2/bs/jig.c create mode 100644 src/core2/bs/jump.c create mode 100644 src/core2/bs/ow.c create mode 100644 src/core2/bs/pumpkin.c create mode 100644 src/core2/bs/rebound.c create mode 100644 src/core2/bs/rest.c create mode 100644 src/core2/bs/sled.c create mode 100644 src/core2/bs/slide.c create mode 100644 src/core2/bs/splat.c create mode 100644 src/core2/bs/stand.c create mode 100644 src/core2/bs/surf.c create mode 100644 src/core2/bs/swim.c create mode 100644 src/core2/bs/throw.c create mode 100644 src/core2/bs/timeout.c create mode 100644 src/core2/bs/turn.c create mode 100644 src/core2/bs/twirl.c create mode 100644 src/core2/bs/walk.c create mode 100644 src/core2/bs/walrus.c create mode 100644 src/core2/bs/washy.c create mode 100644 src/core2/bsList.c create mode 100644 src/core2/ch/badShad.c create mode 100644 src/core2/ch/beehive.c create mode 100644 src/core2/ch/bigbutt.c create mode 100644 src/core2/ch/clankerwhipcrack.c create mode 100644 src/core2/ch/climbBase.c create mode 100644 src/core2/ch/clucker.c create mode 100644 src/core2/ch/code_468E0.c create mode 100644 src/core2/ch/code_5AB30.c create mode 100644 src/core2/ch/code_CFA60.c create mode 100644 src/core2/ch/drips.c create mode 100644 src/core2/ch/firefx.c create mode 100644 src/core2/ch/flotsam.c create mode 100644 src/core2/ch/gameSelect.c create mode 100644 src/core2/ch/ghost.c create mode 100644 src/core2/ch/gloop.c create mode 100644 src/core2/ch/icecube.c create mode 100644 src/core2/ch/jiggy.c create mode 100644 src/core2/ch/jigsawdance.c create mode 100644 src/core2/ch/jinjo.c create mode 100644 src/core2/ch/mole.c create mode 100644 src/core2/ch/molehill.c create mode 100644 src/core2/ch/musicnote.c create mode 100644 src/core2/ch/soundsource.c create mode 100644 src/core2/ch/trainers.c create mode 100644 src/core2/ch/wadingboots.c create mode 100644 src/core2/ch/whipcrack.c create mode 100644 src/core2/code_10CD0.c create mode 100644 src/core2/code_10E0.c create mode 100644 src/core2/code_11040.c create mode 100644 src/core2/code_11460.c create mode 100644 src/core2/code_11660.c create mode 100644 src/core2/code_117D0.c create mode 100644 src/core2/code_11870.c create mode 100644 src/core2/code_12360.c create mode 100644 src/core2/code_126C0.c create mode 100644 src/core2/code_12F30.c create mode 100644 src/core2/code_13780.c create mode 100644 src/core2/code_13900.c create mode 100644 src/core2/code_13A00.c create mode 100644 src/core2/code_13FC0.c create mode 100644 src/core2/code_14420.c create mode 100644 src/core2/code_1550.c create mode 100644 src/core2/code_15F20.c create mode 100644 src/core2/code_16010.c create mode 100644 src/core2/code_16C60.c create mode 100644 src/core2/code_171F0.c create mode 100644 src/core2/code_1930.c create mode 100644 src/core2/code_2240.c create mode 100644 src/core2/code_27550.c create mode 100644 src/core2/code_27F40.c create mode 100644 src/core2/code_28220.c create mode 100644 src/core2/code_2890.c create mode 100644 src/core2/code_32DB0.c create mode 100644 src/core2/code_33250.c create mode 100644 src/core2/code_33310.c create mode 100644 src/core2/code_336F0.c create mode 100644 src/core2/code_33AB0.c create mode 100644 src/core2/code_33C30.c create mode 100644 src/core2/code_33D40.c create mode 100644 src/core2/code_33F90.c create mode 100644 src/core2/code_34310.c create mode 100644 src/core2/code_34790.c create mode 100644 src/core2/code_3480.c create mode 100644 src/core2/code_35520.c create mode 100644 src/core2/code_356B0.c create mode 100644 src/core2/code_379B0.c create mode 100644 src/core2/code_37CD0.c create mode 100644 src/core2/code_37E50.c create mode 100644 src/core2/code_38150.c create mode 100644 src/core2/code_382E0.c create mode 100644 src/core2/code_38460.c create mode 100644 src/core2/code_38630.c create mode 100644 src/core2/code_388E0.c create mode 100644 src/core2/code_38AD0.c create mode 100644 src/core2/code_38F40.c create mode 100644 src/core2/code_39190.c create mode 100644 src/core2/code_396B0.c create mode 100644 src/core2/code_39A10.c create mode 100644 src/core2/code_39D0.c create mode 100644 src/core2/code_39EF0.c create mode 100644 src/core2/code_3AE10.c create mode 100644 src/core2/code_3B5C0.c create mode 100644 src/core2/code_3BB80.c create mode 100644 src/core2/code_3EAD0.c create mode 100644 src/core2/code_3EC30.c create mode 100644 src/core2/code_3ECE0.c create mode 100644 src/core2/code_400F0.c create mode 100644 src/core2/code_41460.c create mode 100644 src/core2/code_41F30.c create mode 100644 src/core2/code_41FB0.c create mode 100644 src/core2/code_42CB0.c create mode 100644 src/core2/code_43250.c create mode 100644 src/core2/code_43800.c create mode 100644 src/core2/code_43A40.c create mode 100644 src/core2/code_440B0.c create mode 100644 src/core2/code_45310.c create mode 100644 src/core2/code_47BD0.c create mode 100644 src/core2/code_47C0.c create mode 100644 src/core2/code_49A70.c create mode 100644 src/core2/code_4A6F0.c create mode 100644 src/core2/code_4BD70.c create mode 100644 src/core2/code_4BE10.c create mode 100644 src/core2/code_4C020.c create mode 100644 src/core2/code_50490.c create mode 100644 src/core2/code_509D0.c create mode 100644 src/core2/code_517A0.c create mode 100644 src/core2/code_51950.c create mode 100644 src/core2/code_51C90.c create mode 100644 src/core2/code_53A10.c create mode 100644 src/core2/code_53C10.c create mode 100644 src/core2/code_54D50.c create mode 100644 src/core2/code_55180.c create mode 100644 src/core2/code_55390.c create mode 100644 src/core2/code_556C0.c create mode 100644 src/core2/code_55850.c create mode 100644 src/core2/code_55A90.c create mode 100644 src/core2/code_55BC0.c create mode 100644 src/core2/code_55E70.c create mode 100644 src/core2/code_560F0.c create mode 100644 src/core2/code_57C70.c create mode 100644 src/core2/code_581D0.c create mode 100644 src/core2/code_584D0.c create mode 100644 src/core2/code_59780.c create mode 100644 src/core2/code_599E0.c create mode 100644 src/core2/code_59A80.c create mode 100644 src/core2/code_59D40.c create mode 100644 src/core2/code_5B6A0.c create mode 100644 src/core2/code_5BD90.c create mode 100644 src/core2/code_5BEB0.c create mode 100644 src/core2/code_5DBC0.c create mode 100644 src/core2/code_5FD80.c create mode 100644 src/core2/code_5FD90.c create mode 100644 src/core2/code_62FD0.c create mode 100644 src/core2/code_630D0.c create mode 100644 src/core2/code_63410.c create mode 100644 src/core2/code_63690.c create mode 100644 src/core2/code_637D0.c create mode 100644 src/core2/code_654C0.c create mode 100644 src/core2/code_66490.c create mode 100644 src/core2/code_66D90.c create mode 100644 src/core2/code_66FB0.c create mode 100644 src/core2/code_67650.c create mode 100644 src/core2/code_69F60.c create mode 100644 src/core2/code_6A4B0.c create mode 100644 src/core2/code_6AEF0.c create mode 100644 src/core2/code_6B030.c create mode 100644 src/core2/code_6B30.c create mode 100644 src/core2/code_6C3E0.c create mode 100644 src/core2/code_6CD20.c create mode 100644 src/core2/code_6CEC0.c create mode 100644 src/core2/code_6D030.c create mode 100644 src/core2/code_6D270.c create mode 100644 src/core2/code_6D490.c create mode 100644 src/core2/code_6DA30.c create mode 100644 src/core2/code_7060.c create mode 100644 src/core2/code_70C30.c create mode 100644 src/core2/code_70F20.c create mode 100644 src/core2/code_71820.c create mode 100644 src/core2/code_72060.c create mode 100644 src/core2/code_72B10.c create mode 100644 src/core2/code_73640.c create mode 100644 src/core2/code_74090.c create mode 100644 src/core2/code_74290.c create mode 100644 src/core2/code_74420.c create mode 100644 src/core2/code_75480.c create mode 100644 src/core2/code_75930.c create mode 100644 src/core2/code_75E90.c create mode 100644 src/core2/code_76390.c create mode 100644 src/core2/code_763D0.c create mode 100644 src/core2/code_76D90.c create mode 100644 src/core2/code_77E50.c create mode 100644 src/core2/code_78100.c create mode 100644 src/core2/code_78E50.c create mode 100644 src/core2/code_79C80.c create mode 100644 src/core2/code_7AF80.c create mode 100644 src/core2/code_82000.c create mode 100644 src/core2/code_83340.c create mode 100644 src/core2/code_83D70.c create mode 100644 src/core2/code_840D0.c create mode 100644 src/core2/code_851D0.c create mode 100644 src/core2/code_857B0.c create mode 100644 src/core2/code_85800.c create mode 100644 src/core2/code_87E30.c create mode 100644 src/core2/code_8DA0.c create mode 100644 src/core2/code_8DC20.c create mode 100644 src/core2/code_90E0.c create mode 100644 src/core2/code_91E10.c create mode 100644 src/core2/code_9290.c create mode 100644 src/core2/code_935F0.c create mode 100644 src/core2/code_93C10.c create mode 100644 src/core2/code_9450.c create mode 100644 src/core2/code_94620.c create mode 100644 src/core2/code_9900.c create mode 100644 src/core2/code_99860.c create mode 100644 src/core2/code_999A0.c create mode 100644 src/core2/code_9A320.c create mode 100644 src/core2/code_9A580.c create mode 100644 src/core2/code_9A740.c create mode 100644 src/core2/code_9A9D0.c create mode 100644 src/core2/code_9B180.c create mode 100644 src/core2/code_9B650.c create mode 100644 src/core2/code_9B990.c create mode 100644 src/core2/code_9BD0.c create mode 100644 src/core2/code_9C170.c create mode 100644 src/core2/code_9D640.c create mode 100644 src/core2/code_9D760.c create mode 100644 src/core2/code_9E370.c create mode 100644 src/core2/code_A4D00.c create mode 100644 src/core2/code_A600.c create mode 100644 src/core2/code_A6E0.c create mode 100644 src/core2/code_A960.c create mode 100644 src/core2/code_AA60.c create mode 100644 src/core2/code_ABC00.c create mode 100644 src/core2/code_AC520.c create mode 100644 src/core2/code_AD0.c create mode 100644 src/core2/code_AD110.c create mode 100644 src/core2/code_AD5B0.c create mode 100644 src/core2/code_AE290.c create mode 100644 src/core2/code_AE5D0.c create mode 100644 src/core2/code_AEDA0.c create mode 100644 src/core2/code_B1400.c create mode 100644 src/core2/code_B3A80.c create mode 100644 src/core2/code_B5040.c create mode 100644 src/core2/code_B5E00.c create mode 100644 src/core2/code_B62B0.c create mode 100644 src/core2/code_B650.c create mode 100644 src/core2/code_B6640.c create mode 100644 src/core2/code_B6C60.c create mode 100644 src/core2/code_B6CE0.c create mode 100644 src/core2/code_B6EA0.c create mode 100644 src/core2/code_B6EA0.h create mode 100644 src/core2/code_B7B20.c create mode 100644 src/core2/code_B7F40.c create mode 100644 src/core2/code_B8020.c create mode 100644 src/core2/code_B8070.c create mode 100644 src/core2/code_B8080.c create mode 100644 src/core2/code_B850.c create mode 100644 src/core2/code_B8860.c create mode 100644 src/core2/code_B9090.c create mode 100644 src/core2/code_B9770.c create mode 100644 src/core2/code_BB50.c create mode 100644 src/core2/code_BD100.c create mode 100644 src/core2/code_BD20.c create mode 100644 src/core2/code_BDCC0.c create mode 100644 src/core2/code_BE2C0.c create mode 100644 src/core2/code_BEF20.c create mode 100644 src/core2/code_C0CF0.c create mode 100644 src/core2/code_C0E0.c create mode 100644 src/core2/code_C2C20.c create mode 100644 src/core2/code_C2F30.c create mode 100644 src/core2/code_C31A0.c create mode 100644 src/core2/code_C3A40.c create mode 100644 src/core2/code_C3B20.c create mode 100644 src/core2/code_C3F0.c create mode 100644 src/core2/code_C4320.c create mode 100644 src/core2/code_C4B0.c create mode 100644 src/core2/code_C4F40.c create mode 100644 src/core2/code_C5440.c create mode 100644 src/core2/code_C5AF0.c create mode 100644 src/core2/code_C5CC0.c create mode 100644 src/core2/code_C5F00.c create mode 100644 src/core2/code_C61C0.c create mode 100644 src/core2/code_C62B0.c create mode 100644 src/core2/code_C76D0.c create mode 100644 src/core2/code_C7CC0.c create mode 100644 src/core2/code_C8230.c create mode 100644 src/core2/code_C8360.c create mode 100644 src/core2/code_C8490.c create mode 100644 src/core2/code_C8760.c create mode 100644 src/core2/code_C89C0.c create mode 100644 src/core2/code_C97F0.c create mode 100644 src/core2/code_C9E70.c create mode 100644 src/core2/code_C9F00.c create mode 100644 src/core2/code_CB050.c create mode 100644 src/core2/code_CB610.c create mode 100644 src/core2/code_CB8A0.c create mode 100644 src/core2/code_CBBF0.c create mode 100644 src/core2/code_CBD10.c create mode 100644 src/core2/code_CC1E0.c create mode 100644 src/core2/code_CD0A0.c create mode 100644 src/core2/code_CD3F0.c create mode 100644 src/core2/code_CD6E0.c create mode 100644 src/core2/code_CECD0.c create mode 100644 src/core2/code_CF090.c create mode 100644 src/core2/code_CF3E0.c create mode 100644 src/core2/code_D0CA0.c create mode 100644 src/core2/code_D2180.c create mode 100644 src/core2/code_D5D10.c create mode 100644 src/core2/code_D5FD0.c create mode 100644 src/core2/code_D6180.c create mode 100644 src/core2/code_D6600.c create mode 100644 src/core2/code_D7040.c create mode 100644 src/core2/code_D7D10.c create mode 100644 src/core2/code_D800.c create mode 100644 src/core2/code_D89E0.c create mode 100644 src/core2/code_D9B0.c create mode 100644 src/core2/code_DA3A0.c create mode 100644 src/core2/code_DA760.c create mode 100644 src/core2/code_DAAA0.c create mode 100644 src/core2/code_DB010.c create mode 100644 src/core2/code_DC4B0.c create mode 100644 src/core2/code_DF70.c create mode 100644 src/core2/code_E410.c create mode 100644 src/core2/code_E680.c create mode 100644 src/core2/code_E910.c create mode 100644 src/core2/code_EE40.c create mode 100644 src/core2/code_EF50.c create mode 100644 src/core2/code_FD60.c create mode 100644 src/core2/done/bs/talk.c create mode 100644 src/core2/done/climb.c create mode 100644 src/core2/done/code_3B2C0.c create mode 100644 src/core2/fxcommon3score.c create mode 100644 src/core2/gc/bound.c create mode 100644 src/core2/gc/pauseMenu.c create mode 100644 src/core2/gc/transition.c create mode 100644 src/core2/gc/zoombox.c create mode 100644 src/core2/jiggyscore.c create mode 100644 src/core2/levelspecificflags.c create mode 100644 src/core2/mapspecificflags.c create mode 100644 src/core2/pitch.c create mode 100644 src/core2/rand.c create mode 100644 src/core2/roll.c create mode 100644 src/core2/sla.c create mode 100644 src/core2/string.c create mode 100644 src/core2/timedfuncqueue.c create mode 100644 src/core2/vla.c create mode 100644 src/core2/yaw.c create mode 100644 src/cutscenes/code_0.c create mode 100644 src/cutscenes/code_60F0.c create mode 100644 src/cutscenes/code_6730.c create mode 100644 src/cutscenes/code_69F0.c create mode 100644 src/cutscenes/code_6C90.c create mode 100644 src/done/bk_boot_1050.c create mode 100644 src/done/cartrominit.c create mode 100644 src/done/createmesgqueue.c create mode 100644 src/done/createthread.c create mode 100644 src/done/destroythread.c create mode 100644 src/done/devmgr.c create mode 100644 src/done/epirawdma.c create mode 100644 src/done/epirawread.c create mode 100644 src/done/epirawwrite.c create mode 100644 src/done/getthreadpri.c create mode 100644 src/done/inflate.c create mode 100644 src/done/initialize.c create mode 100644 src/done/kdebugserver.c create mode 100644 src/done/leodiskinit.c create mode 100644 src/done/leointerrupt.c create mode 100644 src/done/ll.c create mode 100644 src/done/overlays.c create mode 100644 src/done/piacs.c create mode 100644 src/done/pigetstat.c create mode 100644 src/done/pimgr.c create mode 100644 src/done/pirawdma.c create mode 100644 src/done/pirawread.c create mode 100644 src/done/rarezip.c create mode 100644 src/done/recvmesg.c create mode 100644 src/done/resetglobalintmask.c create mode 100644 src/done/sendmesg.c create mode 100644 src/done/seteventmesg.c create mode 100644 src/done/setglobalintmask.c create mode 100644 src/done/setthreadpri.c create mode 100644 src/done/si.c create mode 100644 src/done/sirawread.c create mode 100644 src/done/sirawwrite.c create mode 100644 src/done/startthread.c create mode 100644 src/done/thread.c create mode 100644 src/done/virtualtophysical.c create mode 100644 src/done/yieldthread.c create mode 100644 src/fight/code_0.c create mode 100644 src/fight/code_180.c create mode 100644 src/fight/code_5ED0.c create mode 100644 src/fight/code_6E90.c create mode 100644 src/fight/code_7580.c create mode 100644 src/fight/code_7BE0.c create mode 100644 src/fight/code_8390.c create mode 100644 src/fight/code_87A0.c create mode 100644 src/fight/code_9850.c create mode 100644 src/fight/code_9D40.c create mode 100644 src/fight/code_AED0.c create mode 100644 src/lair/code_0.c create mode 100644 src/lair/code_42A0.c create mode 100644 src/lair/code_5640.c create mode 100644 src/lair/code_5ED0.c create mode 100644 src/lair/code_86F0.c create mode 100644 src/lair/code_9C40.c create mode 100644 src/lair/code_A170.c create mode 100644 src/lair/code_A430.c create mode 100644 src/lair/code_A4A0.c create mode 100644 src/lair/code_A810.c create mode 100644 src/lair/code_AD70.c create mode 100644 src/lair/code_BBD0.c create mode 100644 src/lair/code_C1C0.c create mode 100644 src/lair/code_C6C0.c create mode 100644 subyaml/BGS.jp.yaml create mode 100644 subyaml/BGS.pal.yaml create mode 100644 subyaml/BGS.us.v10.yaml create mode 100644 subyaml/BGS.us.v11.yaml create mode 100644 subyaml/CC.jp.yaml create mode 100644 subyaml/CC.pal.yaml create mode 100644 subyaml/CC.us.v10.yaml create mode 100644 subyaml/CC.us.v11.yaml create mode 100644 subyaml/CCW.jp.yaml create mode 100644 subyaml/CCW.pal.yaml create mode 100644 subyaml/CCW.us.v10.yaml create mode 100644 subyaml/CCW.us.v11.yaml create mode 100644 subyaml/FP.jp.yaml create mode 100644 subyaml/FP.pal.yaml create mode 100644 subyaml/FP.us.v10.yaml create mode 100644 subyaml/FP.us.v11.yaml create mode 100644 subyaml/GV.jp.yaml create mode 100644 subyaml/GV.pal.yaml create mode 100644 subyaml/GV.us.v10.yaml create mode 100644 subyaml/GV.us.v11.yaml create mode 100644 subyaml/MM.jp.yaml create mode 100644 subyaml/MM.pal.yaml create mode 100644 subyaml/MM.us.v10.yaml create mode 100644 subyaml/MM.us.v11.yaml create mode 100644 subyaml/MMM.jp.yaml create mode 100644 subyaml/MMM.pal.yaml create mode 100644 subyaml/MMM.us.v10.yaml create mode 100644 subyaml/MMM.us.v11.yaml create mode 100644 subyaml/RBB.jp.yaml create mode 100644 subyaml/RBB.pal.yaml create mode 100644 subyaml/RBB.us.v10.yaml create mode 100644 subyaml/RBB.us.v11.yaml create mode 100644 subyaml/SM.jp.yaml create mode 100644 subyaml/SM.pal.yaml create mode 100644 subyaml/SM.us.v10.yaml create mode 100644 subyaml/SM.us.v11.yaml create mode 100644 subyaml/TTC.jp.yaml create mode 100644 subyaml/TTC.pal.yaml create mode 100644 subyaml/TTC.us.v10.yaml create mode 100644 subyaml/TTC.us.v11.yaml create mode 100644 subyaml/core1.jp.yaml create mode 100644 subyaml/core1.pal.yaml create mode 100644 subyaml/core1.us.v10.yaml create mode 100644 subyaml/core1.us.v11.yaml create mode 100644 subyaml/core2.jp.yaml create mode 100644 subyaml/core2.pal.yaml create mode 100644 subyaml/core2.us.v10.yaml create mode 100644 subyaml/core2.us.v11.yaml create mode 100644 subyaml/cutscenes.jp.yaml create mode 100644 subyaml/cutscenes.pal.yaml create mode 100644 subyaml/cutscenes.us.v10.yaml create mode 100644 subyaml/cutscens.us.v11.yaml create mode 100644 subyaml/fight.jp.yaml create mode 100644 subyaml/fight.pal.yaml create mode 100644 subyaml/fight.us.v10.yaml create mode 100644 subyaml/fight.us.v11.yaml create mode 100644 subyaml/fight.us.v12.yaml create mode 100644 subyaml/lair.jp.yaml create mode 100644 subyaml/lair.pal.yaml create mode 100644 subyaml/lair.us.v10.yaml create mode 100644 subyaml/lair.us.v11.yaml create mode 100644 symbol_addrs.boot.us.v10.txt create mode 100644 symbol_addrs.core1.us.v10.txt create mode 100644 symbol_addrs.core2.us.v10.txt create mode 100644 symbol_addrs.global.us.v10.txt create mode 160000 tools/asm-differ create mode 160000 tools/asm-processor create mode 160000 tools/bk_asset_tool create mode 100755 tools/bk_crc/bk_crc create mode 100644 tools/bk_crc/bk_crc.cpp create mode 160000 tools/bk_tools create mode 100755 tools/decomp_me_ctx.sh create mode 160000 tools/ido-static-recomp create mode 100755 tools/m2ctx.py create mode 100755 tools/mips_to_c_ctx.sh create mode 160000 tools/n64splat create mode 100644 tools/progress.py create mode 100644 tools/progress_read.py create mode 100644 tools/rareunzip.py create mode 100755 tools/set_o32abi_bit.py create mode 100755 tools/sound_func_val_unwrap create mode 100755 tools/splat_inputs.py create mode 100644 undefined_syms.libultra.txt create mode 100644 undefined_syms.us.v10.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2252bc96 --- /dev/null +++ b/.gitignore @@ -0,0 +1,74 @@ +# ignore all rom files +baseroms/* +*.z64 +*.n64 +*.v64 + +#compiled or ripped asm +asm/nonmatchings +asm/*.s +asm/*/*.s +asm/core1/os +!asm/ultra +!asm/core1/ultra +build/* +build/ + +#binaries ripped from the ROMs +assets/ +assets/* +bin/ +bin/* +tools/bk_crc/bk_crc + +# This folder will hold modified asset binaries +# these assets will override the original game +# assets in the bin/ at compile time. +mod/ +mod/* + + +#compiled object files +*.slo +*.lo +*.o +*.obj + +#Precompiled Headers +*.gch +*.pch + +#compiled dynamic libraries +*.so +*.dylib +*.dll + +#static libraries +*.lai +*.la +*.a +*.lib + +#misc +__pycache__/ +*__pycache__/ +expected/ +.*/ +*.ld +*.map +*auto.txt +.splat_cache +.splat_cache* +diff_settings.py +ctx.c +nonmatchings/ +undefined_syms_auto* +undefined_funcs_auto* + +#progress reports +*.csv +symbol_addrs.us.v10.txt + +#secret folder +tmp/ +tmp/* diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..0f15f0ba --- /dev/null +++ b/.gitmodules @@ -0,0 +1,18 @@ +[submodule "tools/bk_tools"] + path = tools/bk_tools + url = https://github.com/MittenzHugg/bk_tools.git +[submodule "tools/asm-differ"] + path = tools/asm-differ + url = https://github.com/simonlindholm/asm-differ.git +[submodule "tools/asm-processor"] + path = tools/asm-processor + url = https://github.com/simonlindholm/asm-processor.git +[submodule "tools/n64splat"] + path = tools/n64splat + url = https://github.com/ethteck/splat +[submodule "tools/ido-static-recomp"] + path = tools/ido-static-recomp + url = https://github.com/Emill/ido-static-recomp.git +[submodule "tools/bk_asset_tool"] + path = tools/bk_asset_tool + url = https://github.com/MittenzHugg/bk_asset_tool.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..943029d7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM ubuntu:20.04 as build + +ENV DEBIAN_FRONTEND=noninteractive + +COPY packages.txt / +RUN apt-get update && apt-get install -y $(cat packages.txt) + +COPY requirements.txt / +RUN python3 -m pip install -r requirements.txt + +RUN mkdir /banjo +WORKDIR /banjo diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..72abaa04 --- /dev/null +++ b/Makefile @@ -0,0 +1,604 @@ +### Configuration ### +BASENAME := banjo +VERSION ?= us.v10 + +ifeq ($(VERSION),us.v10) + C_VERSION=0 +endif + +ifeq ($(VERSION),pal) + C_VERSION=1 +endif + +ifeq ($(VERSION),us.v11) + C_VERSION=2 +endif + +ifeq ($(VERSION),jp) + C_VERSION=3 +endif + +IN_CFLAGS ?= -DCODE2_CODE_CRC2=0 -DCODE2_DATA_CRC2=0 +### Tools ### + +# System tools +MKDIR := mkdir +CP := cp +CD := cd +RM := rm +CAT := cat +DIFF := diff + +# Build tools +CROSS := mips-linux-gnu- +CC := ido/ido5.3_recomp/cc +CPP := cpp +GCC := $(CROSS)gcc +AS := $(CROSS)as +LD := $(CROSS)ld -b elf32-tradbigmips +OBJDUMP := $(CROSS)objdump +OBJCOPY := $(CROSS)objcopy +PYTHON := python3 +GREP := grep -rl +SPLAT := $(PYTHON) tools/n64splat/split.py +PRINT := printf +PATCH_LIB_MATH := tools/patch_libultra_math +ASM_PROCESSOR_DIR := tools/asm-processor +BK_TOOLS := tools/bk_tools +BK_CRC := tools/bk_crc/bk_crc +BK_INFLATE := $(BK_TOOLS)/bk_inflate_code +BK_DEFLATE := $(BK_TOOLS)/bk_deflate_code +BK_ASSET_TOOL := tools/bk_asset_tool/bk_asset_tool +ASM_PROCESSOR := $(PYTHON) $(ASM_PROCESSOR_DIR)/asm_processor.py +SPLAT_INPUTS := $(PYTHON) tools/splat_inputs.py +PROGRESS := $(PYTHON) tools/progress.py +PROGRESS_READ := $(PYTHON) tools/progress_read.py + +### Files and Directories ### + +# Inputs +OVERLAYS := core1 core2 MM TTC CC BGS FP lair GV CCW RBB MMM SM fight cutscenes + +# Creates a list of all the source files for the given overlay (e.g. BGS_C_SRCS) +# Appends that list to OVERLAY_C_FILES +define get_overlay_sources + $(1)_C_SRCS := $(filter $(SRC_ROOT)/$(1)/%,$(ALL_C_SRCS)) + $(1)_ASM_SRCS := $(filter $(ASM_ROOT)/$(1)/%,$(ALL_ASM_SRCS)) + $(1)_BINS := $(filter $(BIN_ROOT)/$(1)/%,$(ALL_BINS)) + OVERLAY_C_SRCS += $$($(1)_C_SRCS) + OVERLAY_ASM_SRCS += $$($(1)_ASM_SRCS) + OVERLAY_BINS += $$($(1)_BINS) + # Overlay inputs + $(1)_NEW_FILES := $$(filter $(BIN_ROOT)/$(1)/%, $(NEW_BINS)) $$(filter $(SRC_ROOT)/$(1)/%, $(NEW_C_SRCS)) $$(filter $(ASM_ROOT)/$(1)/%, $(NEW_ASM_SRCS)) $$(filter $(ASM_ROOT)/data/$(1)/%, $(NEW_ASM_SRCS)) + OVERLAY_NEW_FILES += $$($(1)_NEW_FILES) +endef + +# Source files +SRC_ROOT := src +ASM_ROOT := asm +BIN_ROOT := bin +ASSET_ROOT := assets +SUBYAML := subyaml +NONMATCHINGS := nonmatchings +NONMATCHING_DIR := $(ASM_ROOT)/$(NONMATCHINGS) +BUILD_ROOT := build +BUILD_DIR := $(BUILD_ROOT)/$(VERSION) +ALL_ASSET_FILES := $(shell find $(ASSET_ROOT) -type f -iname '*.*' 2> /dev/null) +ALL_C_SRCS := $(shell find $(SRC_ROOT) -type f -iname '*.c' 2> /dev/null) +ALL_ASM_SRCS := $(filter-out $(ASM_ROOT)/$(NONMATCHINGS), $(shell find $(ASM_ROOT) -name $(NONMATCHINGS) -prune -o -iname '*.s' 2> /dev/null)) +ALL_BINS := $(shell find $(BIN_ROOT) -type f -iname '*.bin' 2> /dev/null) +# Files referenced in the splat files +YAML_CALL := $(SPLAT_INPUTS) $(BASENAME).$(VERSION).yaml $(addprefix $(SUBYAML)/, $(addsuffix .$(VERSION).yaml, $(OVERLAYS))) +YAML_SRCS := $(shell $(SPLAT_INPUTS) $(BASENAME).$(VERSION).yaml $(addprefix $(SUBYAML)/, $(addsuffix .$(VERSION).yaml, $(OVERLAYS)))) +YAML_C_SRCS := $(filter %.c, $(YAML_SRCS)) +YAML_ASM_SRCS := $(filter %.s, $(YAML_SRCS)) +YAML_BINS := $(filter %.bin, $(YAML_SRCS)) +# Files that need to be extracted +NEW_C_SRCS := $(filter-out $(ALL_C_SRCS), $(YAML_C_SRCS)) +NEW_ASM_SRCS := $(filter-out $(ALL_ASM_SRCS), $(YAML_ASM_SRCS)) +NEW_BINS := $(filter-out $(ALL_BINS), $(YAML_BINS)) +NEW_FILES := $(NEW_C_SRCS) $(NEW_ASM_SRCS) $(NEW_BINS) +$(foreach overlay,$(OVERLAYS),$(eval $(call get_overlay_sources,$(overlay)))) +# Files for the rom itself +MAIN_C_SRCS := $(filter-out $(OVERLAY_C_SRCS),$(ALL_C_SRCS)) +MAIN_ASM_SRCS := $(filter-out $(OVERLAY_ASM_SRCS),$(ALL_ASM_SRCS)) +MAIN_BINS := $(filter-out $(OVERLAY_BINS),$(ALL_BINS)) +# Files that need to be extracted for the rom itself +MAIN_NEW_FILES := $(filter-out $(OVERLAY_NEW_FILES), $(NEW_FILES)) +# Any source files that have GLOBAL_ASM in them or do not exist before splitting +GLOBAL_ASM_C_SRCS := $(shell $(GREP) GLOBAL_ASM $(SRC_ROOT) arg2) +define print2 + @$(PRINT) "$(GREEN)$(1) $(YELLOW)$(2)$(GREEN) -> $(BLUE)$(3)$(NO_COL)\n" +endef + +### Flags ### + +# Build tool flags +CFLAGS := -c -Wab,-r4300_mul -non_shared -G 0 -Xfullwarn -Xcpluscomm $(OPT_FLAGS) $(MIPSBIT) -D_FINALROM -DF3DEX_GBI -DVERSION='$(C_VERSION)' +CFLAGS += -woff 649,654,838,807 +CFLAGS += $(IN_CFLAGS) +CPPFLAGS := -D_FINALROM -DN_MICRO +INCLUDE_CFLAGS := -I . -I include -I include/2.0L -I include/2.0L/PR +OPT_FLAGS := -O2 +MIPSBIT := -mips2 +ASFLAGS := -EB -mtune=vr4300 -march=vr4300 -mabi=32 -I include +GCC_ASFLAGS := -c -x assembler-with-cpp -mabi=32 -ffreestanding -mtune=vr4300 -march=vr4300 -mfix4300 -G 0 -O -mno-shared -fno-PIC -mno-abicalls +LDFLAGS_COMMON := -T symbol_addrs.core1.$(VERSION).txt -T symbol_addrs.core2.$(VERSION).txt -T symbol_addrs.global.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T undefined_syms.libultra.txt --no-check-sections --accept-unknown-input-arch +LDFLAGS := -T $(LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T undefined_syms.libultra.txt +BINOFLAGS := -I binary -O elf32-tradbigmips + +### Rules ### + +# Default target, all +all: verify + +# Shows progress for all overlays, boot, and total +progress: $(OVERLAY_PROG_CSVS) $(MAIN_PROG_CSV) $(TOTAL_PROG_CSV) + @$(foreach overlay,$(OVERLAYS),$(PROGRESS_READ) progress/progress.$(overlay).csv $(VERSION) $(overlay) &&) \ + $(PROGRESS_READ) $(MAIN_PROG_CSV) $(VERSION) bk_boot + @$(PROGRESS_READ) $(TOTAL_PROG_CSV) $(VERSION) total + +# Shows progress for a single overlay (e.g. progress-SM) +$(addprefix progress-,$(OVERLAYS)) : progress-% : progress/progress.%.csv + @$(PROGRESS_READ) $< $(VERSION) $* + +# Verify that the roms match, also sets up diff_settings +verify: $(Z64) + @$(DIFF) $(BASEROM) $(Z64) > /dev/null && \ + $(PRINT) "$(YELLOW) _\n _( )_\n [ ]_\n ) _ _)\n [_( )_]\n$(BLUE)$(BASENAME).$(VERSION).z64$(NO_COL): $(GREEN)OK$(NO_COL)\n" || \ + $(PRINT) "$(BLUE)$(BASEROM) $(RED)differs$(NO_COL)\n" + @$(PRINT) "def apply(config, args):\n" > diff_settings.py + @$(PRINT) "\tconfig[\"baseimg\"] = \"$(BASEROM)\"\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"myimg\"] = \"$(Z64)\"\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"mapfile\"] = \"$(Z64:.z64=.map)\"\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"source_directories\"] = ['$(SRC_ROOT)', 'include']\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"makeflags\"] = ['-s']\n" >> diff_settings.py + +# Musical note print for individual overlays +# Need to figure out how to print this only when building a single overlay +# $(YELLOW) ╒════╕\n │ │\n _│ _│\n └─┘ └─┘\n + +# Verify that any given overlay matches, also sets up diff_settings +verify-%: $(BUILD_DIR)/%.rzip.bin $(BIN_ROOT)/%.$(VERSION).rzip.bin $(BUILD_DIR)/%.full progress/progress_%.svg + @$(DIFF) $< $(BIN_ROOT)/$*.$(VERSION).rzip.bin > /dev/null && \ + $(PRINT) "$(BLUE)%-10s$(NO_COL): $(GREEN)OK$(NO_COL)\n" "$*" || \ + $(PRINT) "$(BLUE)$* $(RED)differs$(NO_COL)\n" + @$(PRINT) "def apply(config, args):\n" > diff_settings.py + @$(PRINT) "\tconfig[\"baseimg\"] = \"$(BUILD_DIR)/$*.$(VERSION).bin\"\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"myimg\"] = \"$(BUILD_DIR)/$*.full\"\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"mapfile\"] = \"$(BUILD_DIR)/$*.map\"\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"source_directories\"] = ['$(SRC_ROOT)/$*', 'include']\n" >> diff_settings.py + @$(PRINT) "\tconfig[\"makeflags\"] = ['TARGET=$*','-s']\n" >> diff_settings.py + +$(OVERLAY_PROG_SVGS) : progress/progress_%.svg: progress/progress.%.csv + $(call print1,Creating progress svg for:,$*) + @$(PROGRESS_READ) $< $(VERSION) $* + +$(OVERLAY_PROG_CSVS) : progress/progress.%.csv: $(BUILD_DIR)/%.elf + $(call print1,Calculating progress for:,$*) + @$(PROGRESS) . $(BUILD_DIR)/$*.elf .$*_code --version $(VERSION) --subcode $* > $@ + +$(MAIN_PROG_SVG): $(MAIN_PROG_CSV) + $(call print1,Creating progress svg for:,boot) + @$(PROGRESS_READ) $< $(VERSION) bk_boot + +$(MAIN_PROG_CSV): $(ELF) + $(call print1,Calculating progress for:,boot) + @$(PROGRESS) . $< .boot_bk_boot --version $(VERSION) > $@ + +$(TOTAL_PROG_SVG): $(TOTAL_PROG_CSV) + $(call print0,Creating total progress svg) + @$(PROGRESS_READ) $< $(VERSION) total + +$(TOTAL_PROG_CSV): $(OVERLAY_PROG_CSVS) $(MAIN_PROG_CSV) + $(call print0,Calculating total progress) + @cat $^ > $@ + +# Verify that each overlay matches +verify-each: $(addprefix verify-,$(OVERLAYS)) + +# per-overlay rules +define overlay_rules + # .o -> .elf (overlay) + $(BUILD_DIR)/$(1).elf : $$($(1)_ALL_OBJS) $(1).ld + $(LD) -T $(1).ld -R core2.elf --allow-multiple-definition -Map $(BUILD_DIR)/$(1).map $$(LDFLAGS_COMMON) -T undefined_syms_auto.$(1).$(VERSION).txt -T undefined_funcs_auto.$(1).$(VERSION).txt -o $$@ + # split overlay + $(BUILD_DIR)/$(1)_SPLAT_TIMESTAMP : $(SUBYAML)/$(1).$(VERSION).yaml $(BUILD_DIR)/$(1).$(VERSION).bin $(SYMBOL_ADDRS) + $(call print1,Splitting bin:,$$<) + $(SPLAT) --target $(BUILD_DIR)/$(1).$(VERSION).bin $(SUBYAML)/$(1).$(VERSION).yaml --basedir . + @touch $$@ + @touch $(1).ld + # Dummy target to make sure extraction happens before compilation, mainly for extracted asm + $$($(1)_C_SRCS) $$($(1)_ASM_SRCS) $$($(1)_BINS) : | $(BUILD_DIR)/$(1)_SPLAT_TIMESTAMP + @: + # Dummy target to make sure extraction happens before processing extracted files and linking + $$($(1)_NEW_FILES) $(1).ld: $(BUILD_DIR)/$(1)_SPLAT_TIMESTAMP + @: +endef +$(foreach overlay,$(OVERLAYS),$(eval $(call overlay_rules,$(overlay)))) + +# Additional symbols for core2 +$(BUILD_DIR)/core2.elf: LDFLAGS_COMMON = -T symbol_addrs.core1.$(VERSION).txt -T symbol_addrs.core2.$(VERSION).txt -T symbol_addrs.global.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T undefined_syms.libultra.txt --no-check-sections --accept-unknown-input-arch -T level_symbols.$(VERSION).txt +$(BUILD_DIR)/core2.temp.elf: LDFLAGS_COMMON = -T symbol_addrs.core1.$(VERSION).txt -T symbol_addrs.core2.$(VERSION).txt -T symbol_addrs.global.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T undefined_syms.libultra.txt --no-check-sections --accept-unknown-input-arch -T level_symbols.$(VERSION).txt + +# mkdir +$(ALL_DIRS) : + $(call print1,Making folder:,$@) + @$(MKDIR) -p $@ + +# .s -> .o (assemble with gcc for preprocessor support) +$(BUILD_DIR)/%.s.o: %.s | $(ASM_BUILD_DIRS) + $(call print2,Assembling:,$<,$@) + @$(GCC) $(GCC_ASFLAGS) $(INCLUDE_CFLAGS) -o $@ $< + +# .bin -> .o +$(BIN_OBJS) : $(BUILD_DIR)/%.bin.o : %.bin | $(BIN_BUILD_DIRS) + $(call print2,Objcopying:,$<,$@) + @$(OBJCOPY) $(BINOFLAGS) $< $@ + +# .bin -> .o (overlay) +$(OVERLAY_RZIP_OBJS) : $(BUILD_DIR)/$(BIN_ROOT)/%.$(VERSION).rzip.bin.o : $(BUILD_DIR)/%.rzip.bin + $(call print2,Objcopying:,$<,$@) + @$(OBJCOPY) $(BINOFLAGS) $< $@ + +$(BUILD_DIR)/bk_boot.full: $(BUILD_DIR)/bk_boot.elf + @mips-linux-gnu-objcopy -I elf32-tradbigmips -O binary --only-section .boot_bk_boot $(BUILD_DIR)/bk_boot.elf $@ + +$(BUILD_DIR)/crc.bin : $(BUILD_DIR)/bk_boot.full $(BUILD_DIR)/core1.code $(BUILD_DIR)/core1.data $(BK_CRC) + @$(BK_CRC) $(BUILD_DIR)/bk_boot.full > $(BUILD_DIR)/crc.bin + @$(BK_CRC) $(BUILD_DIR)/core1.code >> $(BUILD_DIR)/crc.bin + @$(BK_CRC) $(BUILD_DIR)/core1.data >> $(BUILD_DIR)/crc.bin + +# .bin -> .o (overlay crc check) +$(CRC_OBJS) : $(BUILD_DIR)/crc.bin + $(call print2,Objcopying:,$<,$@) + @$(OBJCOPY) $(BINOFLAGS) $< $@ + +# .c -> .o +$(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS) + $(call print2,Compiling:,$<,$@) + @$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) -o $@ $< + +# .c -> .o (mips3) +$(MIPS3_OBJS) : $(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS) + $(call print2,Compiling:,$<,$@) + @$(CC) -c -32 $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(LOOP_UNROLL) $(MIPSBIT) -o $@ $< + @tools/set_o32abi_bit.py $@ + +# .c -> .o with asm processor +$(GLOBAL_ASM_C_OBJS) : $(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS) + $(call print2,Compiling (with ASM Processor):,$<,$@) + @$(ASM_PROCESSOR) $(OPT_FLAGS) $< > $(BUILD_DIR)/$< + @$(CC) -32 $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) -o $@ $(BUILD_DIR)/$< + @$(ASM_PROCESSOR) $(OPT_FLAGS) $< --post-process $@ \ + --assembler "$(AS) $(ASFLAGS)" --asm-prelude include/prelude.s + +# Split baserom +$(BUILD_DIR)/SPLAT_TIMESTAMP: $(BASENAME).$(VERSION).yaml $(SYMBOL_ADDRS) | $(BUILD_DIR) + $(call print1,Splitting rom:,$<) + @touch $@ + @$(SPLAT) $(BASENAME).$(VERSION).yaml + @touch $(LD_SCRIPT) +# Dummy target to make the LD script and overlay rzips depend on splat being run +# without causing it to be rerun once for every overlay +# Bin files are also dependent on the splat timestamp since they get overwritten on resplit +$(MAIN_NEW_FILES) $(LD_SCRIPT) $(MAIN_BINS) : $(BUILD_DIR)/SPLAT_TIMESTAMP + @: +# Dummy target to make sure extraction happens before compilation, mainly for extracted asm +$(MAIN_C_SRCS) $(MAIN_ASM_SRCS) : | $(BUILD_DIR)/SPLAT_TIMESTAMP + @: + +# .rzip.bin -> .bin +$(OVERLAY_BINS) : $(BUILD_DIR)/%.$(VERSION).bin : $(BIN_ROOT)/%.$(VERSION).rzip.bin $(BK_INFLATE) | $(BUILD_DIR) + $(call print1,Decompressing rzip:,$<) + @$(BK_INFLATE) $< $@ + +# Special rules to handle core2 code checksumming +ifneq ($(CORE2_CODE_CRC_C_OBJS),) + CORE2_TEMP_LD := core2.temp.ld + CORE2_CODE_CRC_C_TEMP_OBJS := $(CORE2_CODE_CRC_C_OBJS:.c.o=.c.o_) + core2_NON_CRC_OBJS := $(filter-out $(CORE2_CODE_CRC_C_OBJS),$(core2_ALL_OBJS)) + + # core2.ld -> core2.temp.ld + $(CORE2_TEMP_LD) : core2.ld + $(call print0,Creating linker script for initial core2 linking step) + @$(CP) $< $@ + $(foreach obj, $(CORE2_CODE_CRC_C_OBJS), sed -i 's:$(obj):$(obj)_:g' $@) + + # core2 .c -> .o with zero for core2 code CRC + $(CORE2_CODE_CRC_C_TEMP_OBJS) : $(BUILD_DIR)/%.c.o_ : %.c | $(C_BUILD_DIRS) + $(call print2,Compiling temp file:,$<,$@) + @$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) -o $@ $< + + # core2 objects with zero for code CRC -> core2.temp.elf + $(BUILD_DIR)/core2.temp.elf : $(core2_NON_CRC_OBJS) $(CORE2_TEMP_LD) $(CORE2_CODE_CRC_C_TEMP_OBJS) + $(call print1,Linking elf:,$@) + @$(LD) -T $(CORE2_TEMP_LD) -Map $(BUILD_DIR)/core2.map $(LDFLAGS_COMMON) -T undefined_syms_auto.core2.$(VERSION).txt -T undefined_funcs_auto.core2.$(VERSION).txt -o $@ + + # core2.temp.elf -> core2.temp.code + $(BUILD_DIR)/core2.temp.code : $(BUILD_DIR)/core2.temp.elf + $(call print2,Converting initial core2 code:,$<,$@) + @$(OBJCOPY) -O binary --only-section .core2_code $< $@ + + # core2 code -> core2 code crc + $(BUILD_DIR)/core2.code.crc : $(BUILD_DIR)/core2.temp.code $(BK_CRC) + $(call print0,Calculating core2 code CRC) + @$(BK_CRC) -D CORE2_CODE $< > $@ + + # core2 .c -> .o with correct core2 code CRC + $(CORE2_CODE_CRC_C_OBJS) : $(BUILD_DIR)/%.c.o : %.c $(BUILD_DIR)/core2.code.crc | $(C_BUILD_DIRS) + $(call print2,Compiling:,$<,$@) + @$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) $(shell cat $(BUILD_DIR)/core2.code.crc) -o $@ $< +endif + +# core2 data -> core2 data CRC +$(BUILD_DIR)/core2.data.crc : $(BUILD_DIR)/core2.data $(BK_CRC) + $(call print0,Calculating core2 data CRC) + @$(BK_CRC) -D CORE2_DATA $< > $@ + +# core1 .c -> .o with correct core2 data CRC +$(CORE2_DATA_CRC_C_OBJS) : $(BUILD_DIR)/%.o : % $(BUILD_DIR)/core2.data.crc | $(C_BUILD_DIRS) + $(call print2,Compiling file with core2 data CRC (with ASM Processor):,$<,$@) + @$(ASM_PROCESSOR) $(OPT_FLAGS) $< > $(BUILD_DIR)/$< + @$(CC) -32 $(CFLAGS) $(CPPFLAGS) $(INCLUDE_CFLAGS) $(OPT_FLAGS) $(MIPSBIT) $(shell cat $(BUILD_DIR)/core2.data.crc) -o $@ $(BUILD_DIR)/$< + @$(ASM_PROCESSOR) $(OPT_FLAGS) $< --post-process $@ \ + --assembler "$(AS) $(ASFLAGS)" --asm-prelude include/prelude.s + +# .elf -> .code +$(OVERLAY_CODE_BINS) : $(BUILD_DIR)/%.code : $(BUILD_DIR)/%.elf + $(call print2,Converting overlay code:,$<,$@) + @$(OBJCOPY) -I elf32-tradbigmips -O binary --only-section .$*_code --only-section .$*_mips3 $< $@ + +# .elf -> .data +$(OVERLAY_DATA_BINS) : $(BUILD_DIR)/%.data : $(BUILD_DIR)/%.elf + $(call print2,Converting overlay data:,$<,$@) + @$(OBJCOPY) -I elf32-tradbigmips -O binary --only-section .$*_data --only-section .*_data_* $< $@ + +# .elf -> .full +$(BUILD_DIR)/%.full : $(BUILD_DIR)/%.elf + @$(OBJCOPY) -I elf32-tradbigmips -O binary $< $@ + +# .data + .code -> .rzip.bin +$(BUILD_DIR)/%.rzip.bin : $(BUILD_DIR)/%.code $(BUILD_DIR)/%.data $(BK_DEFLATE) + $(call print1,Compressing overlay:,$@) + @cd $(BK_TOOLS) && ../../$(BK_DEFLATE) ../../$@ ../../$(BUILD_DIR)/$*.code ../../$(BUILD_DIR)/$*.data + +# .bin -> .yaml +$(ASSET_ROOT)/assets.yaml : $(BIN_ROOT)/assets.bin $(BK_ASSET_TOOL) + $(call print1,Extracting Assets:,$@) + $(BK_ASSET_TOOL) -e $< $(ASSET_ROOT) + +# .yaml -> .bin +ifneq (,$(shell which cargo)) +$(ASSET_BIN): $(ASSET_ROOT)/assets.yaml $(BK_ASSET_TOOL) $(ALL_ASSET_FILES) + $(call print2,Constructing Asset Binary:,$<,$@) + $(BK_ASSET_TOOL) -c $< $@ +else +$(ASSET_BIN): $(BIN_ROOT)/assets.bin + $(call print2,Copying Asset Binary (install cargo to construct instead):,$<,$@) + @$(CP) $< $@ +endif + +# .bin -> .o +$(ASSET_OBJS): $(ASSET_BIN) + $(call print2,Objcopying:,$<,$@) + @$(OBJCOPY) $(BINOFLAGS) $< $@ + +# .o -> .elf (game) +$(ELF): $(MAIN_ALL_OBJS) $(LD_SCRIPT) $(OVERLAY_RZIP_OBJS) $(addprefix $(BUILD_DIR)/, $(addsuffix .full, $(OVERLAYS))) $(ASSET_OBJS) + $(call print1,Linking elf:,$@) + @$(LD) $(LDFLAGS) -T undefined_syms_auto.$(VERSION).txt -o $@ + +$(BK_BOOT_LD_SCRIPT): $(LD_SCRIPT) + sed '\|$(CRC_OBJS)|d' $< > $@ + +# .o -> .elf (game) +$(BUILD_DIR)/bk_boot.elf: $(filter-out $(CRC_OBJS),$(MAIN_ALL_OBJS)) $(BK_BOOT_LD_SCRIPT) $(OVERLAY_RZIP_OBJS) $(addprefix $(BUILD_DIR)/, $(addsuffix .full, $(OVERLAYS))) + $(call print1,Linking elf:,$@) + @$(LD) -T $(BK_BOOT_LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T undefined_syms.libultra.txt -T undefined_syms_auto.$(VERSION).txt -o $@ + +# .elf -> .z64 +$(Z64) : $(ELF) $(OVERLAY_PROG_SVGS) $(MAIN_PROG_SVG) $(TOTAL_PROG_SVG) + $(call print1,Creating z64:,$@) + @$(OBJCOPY) $< $@ -O binary $(OCOPYFLAGS) + +$(BK_TOOLS)/gzip-1.2.4/gzip: $(BK_TOOLS)/gzip-1.2.4/Makefile + @$(CD) $(BK_TOOLS)/gzip-1.2.4 && $(MAKE) gzip + +$(BK_TOOLS)/gzip-1.2.4/Makefile: + @$(CD) $(BK_TOOLS)/gzip-1.2.4 && ./configure + +$(BK_ASSET_TOOL): + @$(CD) tools/bk_asset_tool && cargo build --release + @$(CP) tools/bk_asset_tool/target/release/bk_asset_tool $@ + +# Build tools +$(BK_TOOLS)/%: $(BK_TOOLS)/gzip-1.2.4/gzip + $(call print1,Compiling build tool:,$@) + @$(CD) $(BK_TOOLS) && $(MAKE) $* + +$(BK_CRC) : + g++ $@.cpp -o $@ + +# Combined symbol addresses file +$(SYMBOL_ADDRS): $(SYMBOL_ADDR_FILES) + $(call print0,Combining symbol address files) + @$(CAT) symbol_addrs.*.$(VERSION).txt > $@ + +# Shorthand rules for each overlay (e.g. SM) +$(OVERLAYS): %: verify-% + +clean: + $(call print0,Cleaning build artifacts) + @$(RM) -rf $(BUILD_ROOT) + @$(RM) -rf $(BIN_ROOT) + @$(RM) -rf $(NONMATCHING_DIR) + @$(RM) -rf $(ASM_ROOT)/*.s + @$(RM) -rf $(addprefix $(ASM_ROOT)/,$(filter-out core1,$(OVERLAYS))) + @$(RM) -rf $(ASM_ROOT)/core1/*.s + @$(RM) -rf $(ASM_ROOT)/core1/os + @$(RM) -f undefined_syms_auto* undefined_funcs_auto* + @$(RM) -f *.ld + @$(RM) -f $(SYMBOL_ADDRS) + +# Per-file flag definitions +build/$(VERSION)/src/core1/io/%.c.o: OPT_FLAGS = -O1 +build/$(VERSION)/src/core1/io/pimgr.c.o: OPT_FLAGS = -O1 +build/$(VERSION)/src/core1/done/io/%.c.o: OPT_FLAGS = -O1 +build/$(VERSION)/src/core1/os/%.c.o: OPT_FLAGS = -O1 +build/$(VERSION)/src/core1/code_2D2D0.c.o: OPT_FLAGS = -O1 +build/$(VERSION)/src/core1/done/os/%.c.o: OPT_FLAGS = -O1 +build/$(VERSION)/src/core1/code_21A10.c.o: INCLUDE_CFLAGS = -I . -I include -I include/2.0L -I include/2.0L/PR +build/$(VERSION)/src/core1/code_21A10.c.o: OPT_FLAGS = -O3 +build/$(VERSION)/src/core1/done/gu/%.c.o: OPT_FLAGS = -O3 +build/$(VERSION)/src/core1/done/gu/%.c.o: INCLUDE_CFLAGS = -I . -I include -I include/2.0L -I include/2.0L/PR +build/$(VERSION)/src/core1/gu/mtxutil.c.o: OPT_FLAGS = -O2 +build/$(VERSION)/src/core1/gu/rotate.c.o: OPT_FLAGS = -O2 +build/$(VERSION)/src/core1/done/audio/%.c.o: INCLUDE_CFLAGS = -I . -I include -I include/2.0L -I include/2.0L/PR +build/$(VERSION)/src/core1/done/audio/%.c.o: OPT_FLAGS = -O3 +# build/$(VERSION)/src/core1/code_21CB0.c.o: INCLUDE_CFLAGS = -I . -I include -I include/2.0L -I include/2.0L/PR +# build/$(VERSION)/src/core1/code_21CB0.c.o: OPT_FLAGS = -O3 +build/$(VERSION)/src/core1/done/io/sptask.c.o: OPT_FLAGS = -O1 +build/$(VERSION)/src/core1/done/ll.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/core1/done/ll.c.o: MIPSBIT := -mips3 -o32 + +build/$(VERSION)/src/bk_boot_27F0.c.o: OPT_FLAGS = -O2 +build/$(VERSION)/src/done/destroythread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/pirawdma.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/thread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/pimgr.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/getthreadid.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/setthreadpri.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/createthread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/yieldthread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/setglobalintmask.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/recvmesg.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/startthread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/devmgr.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/sendmesg.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/pigetstat.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/si.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/resetglobalintmask.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/epirawwrite.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/epirawread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/createmesgqueue.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/leodiskinit.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/virtualtophysical.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/ll.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/ll.c.o: MIPSBIT := -mips3 -o32 +build/$(VERSION)/src/done/sirawwrite.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/sirawread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/initialize.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/pirawread.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/seteventmesg.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/siacs.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/cartrominit.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/leointerrupt.c.o: OPT_FLAGS := -O1 +build/$(VERSION)/src/done/epirawdma.c.o: OPT_FLAGS := -O1 + +# Disable implicit rules +MAKEFLAGS += -r + +# Disable built-in rules +.SUFFIXES: + +# Phony targets +.PHONY: all clean verify $(OVERLAYS) progress $(addprefix progress-,$(OVERLAYS)) + +# Set up pipefail +SHELL = /bin/bash -e -o pipefail + +# Debug variable print target +print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true diff --git a/README.md b/README.md new file mode 100644 index 00000000..be303e41 --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +# banjo + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + +## Building + +Grab tools + +```sh +git submodule update --init --recursive +``` + +Drop in `US v1.0` as `baserom.us.v10.z64` (sha1sum: `1fe1632098865f639e22c11b9a81ee8f29c75d7a`) + +To extract and build everything + +```sh +make +``` + +where the following are supported values of `` +- `core1` +- `core2` +- `MM` +- `TTC` +- `CC` +- `BGS` +- `FP` +- `lair` +- `GV` +- `CCW` +- `RBB` +- `MMM` +- `SM` +- `fight` +- `cutscenes` + +### Prerequisites + +Ubuntu 18.04 or higher. + +```sh +sudo apt-get update && sudo apt-get install -y $(cat packages.txt) + +python3 -m pip install -r requirements.txt +``` + +### Other versions + +Drop in `us.v11`, `jp`, or `pal` as `baserom..z64` e.g. `baserom.us.v11.z64` + +```sh +make VERSION=us.v11 +``` diff --git a/asm/core1/ultra/libm_vals.s b/asm/core1/ultra/libm_vals.s new file mode 100644 index 00000000..b88ad985 --- /dev/null +++ b/asm/core1/ultra/libm_vals.s @@ -0,0 +1,5 @@ + .rdata + .align 4 + .globl __libm_qnan_f +__libm_qnan_f: + .word 0x7F810000 diff --git a/asm/core1/ultra/setintmask.s b/asm/core1/ultra/setintmask.s new file mode 100644 index 00000000..a561e22f --- /dev/null +++ b/asm/core1/ultra/setintmask.s @@ -0,0 +1,135 @@ +#include +.include "macro.inc" +# assembler directives +.set noat # allow manual use of $at +.set gp=64 # allow use of 64-bit general purpose registers + +.rdata + +#define MI_INTR_MASK 0x3f +#define CLR_SP 0x0001 +#define SET_SP 0x0002 +#define CLR_SI 0x0004 +#define SET_SI 0x0008 +#define CLR_AI 0x0010 +#define SET_AI 0x0020 +#define CLR_VI 0x0040 +#define SET_VI 0x0080 +#define CLR_PI 0x0100 +#define SET_PI 0x0200 +#define CLR_DP 0x0400 +#define SET_DP 0x0800 + +EXPORT(__osRcpImTable) +/* LUT to convert between MI_INTR and MI_INTR_MASK */ +/* MI_INTR is status for each interrupt whereas */ +/* MI_INTR_MASK has seperate bits for set/clr */ +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | SET_PI | SET_DP +.text +.set noreorder +glabel osSetIntMask + mfc0 $t4, $12 + andi $v0, $t4, 0xff01 + lui $t0, %hi(__OSGlobalIntMask) + addiu $t0, $t0, %lo(__OSGlobalIntMask) + lw $t3, ($t0) + addiu $at, $zero, -1 + xor $t0, $t3, $at + andi $t0, $t0, 0xff00 + or $v0, $v0, $t0 + lui $t2, %hi(D_A430000C) + lw $t2, %lo(D_A430000C)($t2) + beqz $t2, setintmask_1 + srl $t1, $t3, 0x10 + addiu $at, $zero, -1 + xor $t1, $t1, $at + andi $t1, $t1, 0x3f + or $t2, $t2, $t1 +setintmask_1: + sll $t2, $t2, 0x10 + or $v0, $v0, $t2 + lui $at, 0x3f + and $t0, $a0, $at + and $t0, $t0, $t3 + srl $t0, $t0, 0xf + lui $t2, %hi(__osRcpImTable) + addu $t2, $t2, $t0 + lhu $t2, %lo(__osRcpImTable)($t2) + lui $at, %hi(D_A430000C) + sw $t2, %lo(D_A430000C)($at) + andi $t0, $a0, 0xff01 + andi $t1, $t3, 0xff00 + and $t0, $t0, $t1 + lui $at, 0xffff + ori $at, $at, 0xff + and $t4, $t4, $at + or $t4, $t4, $t0 + mtc0 $t4, $12 + nop + nop + jr $ra + nop +endlabel osSetIntMask diff --git a/asm/data/fight/code_180.data.s b/asm/data/fight/code_180.data.s new file mode 100644 index 00000000..d589d122 --- /dev/null +++ b/asm/data/fight/code_180.data.s @@ -0,0 +1,429 @@ +.include "macro.inc" + +.section .data + +dlabel D_80392100 +.double -500.0 + +dlabel jtbl_80392108 +.word L80387794_13A4, L803877F8_1408, L803878FC_150C, L803879A0_15B0, L80387A20_1630, L80387A98_16A8 + +dlabel D_80392120 +.float 0.95 + +dlabel D_80392124 +.float 1.05 + +dlabel D_80392128 +.float 5000.0 + +dlabel D_8039212C +.float 12000.0 + +dlabel D_80392130 +.float 1e8 + +dlabel jtbl_80392134 +.word L80388254_1E64, L80388558_2168, L80388558_2168, L80388268_1E78, L80388314_1F24, L8038837C_1F8C, L80388420_2030, L80388468_2078, L80388484_2094, L80388558_2168, L803884CC_20DC, L803884E0_20F0 + +dlabel D_80392164 +.float 0.95 + +dlabel D_80392168 +.float 1.05 + +dlabel D_8039216C +.float 5000.0 + +dlabel D_80392170 +.float 12000.0, 0.95 + +dlabel D_80392178 +.float 1.05 + +dlabel D_8039217C +.float 5000.0 + +dlabel D_80392180 +.float 12000.0 + +dlabel D_80392184 +.float 0.4 + +dlabel D_80392188 +.float 5000.0 + +dlabel D_8039218C +.float 12000.0, 2700.0 + +dlabel D_80392194 +.float 1150.0 + +dlabel D_80392198 +.float 0.95 + +dlabel D_8039219C +.float 1.05 + +dlabel D_803921A0 +.float 5000.0 + +dlabel D_803921A4 +.float 12000.0 + +dlabel D_803921A8 +.float 0.95 + +dlabel D_803921AC +.float 1.05 + +dlabel D_803921B0 +.float 5000.0 + +dlabel D_803921B4 +.float 12000.0 + +dlabel jtbl_803921B8 +.word L803887AC_23BC, L803888A8_24B8, L80388964_2574, L803889EC_25FC, L80388B24_2734, L80388DC4_29D4, L80388E84_2A94, L80388F5C_2B6C, L80388FC4_2BD4, L80389054_2C64, L803890C0_2CD0, L80389158_2D68 + +dlabel D_803921E8 +.double 0.3333333333333333 + +dlabel D_803921F0 +.double 3300.0, 0.7333333333333334 + +dlabel D_80392200 +.double 3300.0 + +dlabel D_80392208 +.double 0.66 + +dlabel D_80392210 +.double 0.65 + +dlabel jtbl_80392218 +.word L803893E8_2FF8, L803894CC_30DC, L803894F0_3100, L80389594_31A4, L803895D8_31E8, L80389638_3248, L80389660_3270 + +dlabel jtbl_80392234 +.word L8038975C_336C, L80389788_3398, L803897B4_33C4, L803897E0_33F0, L8038980C_341C + +dlabel D_80392248 +.float 1.54 + +dlabel jtbl_8039224C +.word L80389BD8_37E8, L80389CFC_390C, L80389D48_3958, L80389D80_3990, L80389E14_3A24, L80389E3C_3A4C, L80389F40_3B50 + +dlabel D_80392268 +.word 0x3F99999A, 0x00000000 + +dlabel D_80392270 +.double 0.1 + +dlabel D_80392278 +.double 0.8 + +dlabel jtbl_80392280 +.word L80389FEC_3BFC, L8038A4D4_40E4, L8038A01C_3C2C, L8038A4D4_40E4, L8038A1B4_3DC4, L8038A208_3E18, L8038A3D4_3FE4 + +dlabel D_8039229C +.float 2.2 + +dlabel D_803922A0 +.float 2.2 + +dlabel D_803922A4 +.float 2.2 + +dlabel D_803922A8 +.float 4.4 + +dlabel D_803922AC +.float 4.4 + +dlabel D_803922B0 +.float 4.4 + +dlabel D_803922B4 +.float 6.6 + +dlabel D_803922B8 +.float 6.6 + +dlabel D_803922BC +.float 6.6 + +dlabel D_803922C0 +.float 8.8 + +dlabel D_803922C4 +.float 8.8 + +dlabel D_803922C8 +.float 8.8 + +dlabel D_803922CC +.float 0.95 + +dlabel D_803922D0 +.float 1.05 + +dlabel D_803922D4 +.float 5000.0 + +dlabel D_803922D8 +.float 12000.0 + +dlabel D_803922DC +.float 0.6 + +dlabel D_803922E0 +.double 1.7, -1190.0 + +dlabel D_803922F0 +.float 1.7 + +dlabel D_803922F4 +.float 1.7 + +dlabel D_803922F8 +.float 1.7 + +dlabel D_803922FC +.float 1.7 + +dlabel D_80392300 +.float 0.95 + +dlabel D_80392304 +.float 1.05 + +dlabel D_80392308 +.float 0.95 + +dlabel D_8039230C +.float 1.05 + +dlabel jtbl_80392310 +.word L8038A778_4388, L8038A7D0_43E0, L8038A818_4428, L8038A8A0_44B0, L8038A8FC_450C, L8038A924_4534, L8038AA3C_464C + +dlabel D_8039232C +.float 0.95 + +dlabel D_80392330 +.float 1.05 + +dlabel D_80392334 +.float 0.95 + +dlabel D_80392338 +.float 1.05 + +dlabel D_8039233C +.float 0.95 + +dlabel D_80392340 +.float 1.05 + +dlabel D_80392344 +.float 0.95 + +dlabel D_80392348 +.float 1.05 + +dlabel D_8039234C +.float 0.95 + +dlabel D_80392350 +.float 1.05 + +dlabel D_80392354 +.float 0.95 + +dlabel D_80392358 +.float 1.05, 0.0 + +dlabel D_80392360 +.double 0.4 + +dlabel D_80392368 +.double 0.65 + +dlabel D_80392370 +.double 0.005 + +dlabel D_80392378 +.double 1.99 + +dlabel D_80392380 +.float 0.95 + +dlabel D_80392384 +.float 1.05 + +dlabel jtbl_80392388 +.word L8038ACE8_48F8, L8038AD90_49A0, L8038ADA0_49B0, L8038AF14_4B24, L8038AF70_4B80, L8038ADA8_49B8, L8038AE00_4A10, L8038AE5C_4A6C, L8038AF28_4B38 + +dlabel D_803923AC +.float 0.95 + +dlabel D_803923B0 +.float 1.05 + +dlabel D_803923B4 +.float 5000.0 + +dlabel D_803923B8 +.float 12000.0, 0.95 + +dlabel D_803923C0 +.float 1.05 + +dlabel D_803923C4 +.float 5000.0 + +dlabel D_803923C8 +.float 12000.0 + +dlabel D_803923CC +.float 0.95 + +dlabel D_803923D0 +.float 1.05 + +dlabel D_803923D4 +.float 5000.0 + +dlabel D_803923D8 +.float 12000.0 + +dlabel D_803923DC +.float 0.6 + +dlabel D_803923E0 +.float 0.6, 2.4 + +dlabel D_803923E8 +.float 2.4 + +dlabel D_803923EC +.float 4.4 + +dlabel D_803923F0 +.float 4.4 + +dlabel jtbl_803923F4 +.word L8038B290_4EA0, L8038B2A4_4EB4, L8038B2DC_4EEC, L8038B368_4F78, L8038B3B4_4FC4, L8038B460_5070, L8038B4FC_510C, L8038B564_5174, L8038B58C_519C + +dlabel D_80392418 +.double 0.56 + +dlabel D_80392420 +.double 0.99 + +dlabel D_80392428 +.float 4.8 + +dlabel jtbl_8039242C +.word L8038B874_5484, L8038B8D0_54E0, L8038B91C_552C, L8038B93C_554C, L8038B95C_556C + +dlabel D_80392440 +.float 0.95 + +dlabel D_80392444 +.float 1.05 + +dlabel D_80392448 +.float 5000.0 + +dlabel D_8039244C +.float 12000.0 + +dlabel D_80392450 +.float 0.6 + +dlabel jtbl_80392454 +.word L8038BF30_5B40, L8038BF40_5B50, L8038BF50_5B60, L8038BF60_5B70, L8038BF70_5B80, L8038BF80_5B90, 0 + +dlabel D_80392470 +.double 0.08 + +dlabel D_80392478 +.float 2.88, 0.0 + +dlabel D_80392480 +.double 0.35 + +dlabel D_80392488 +.double 0.65 + +dlabel D_80392490 +.float 0.3, 0.0 + +dlabel D_80392498 +.double 45.0 + +dlabel D_803924A0 +.double 0.3 + +dlabel D_803924A8 +.double 2.26 + +dlabel D_803924B0 +.double 182.04444 + +dlabel jtbl_803924B8 +.word L8038C92C_653C, L8038C980_6590, L8038CA48_6658, L8038CA48_6658, L8038CE68_6A78 + +dlabel D_803924CC +.float 0.95 + +dlabel D_803924D0 +.float 1.05 + +dlabel D_803924D4 +.float 5000.0 + +dlabel D_803924D8 +.float 0.95 + +dlabel D_803924DC +.float 1.05 + +dlabel D_803924E0 +.float 5000.0 + +dlabel D_803924E4 +.float 12000.0 + +dlabel D_803924E8 +.double 0.1 + +dlabel D_803924F0 +.double 0.8 + +dlabel D_803924F8 +.double 0.2 + +dlabel D_80392500 +.float 0.1 + +dlabel D_80392504 +.float 5000.0 + +dlabel D_80392508 +.float 12000.0 + +dlabel D_8039250C +.float 2500.0 + +dlabel D_80392510 +.double 0.98 + +dlabel D_80392518 +.float 1.15 + +dlabel D_8039251C +.float 0.1 + +dlabel D_80392520 +.float 2.26, 0.0, 0.0, 0.0 diff --git a/asm/ultra/exceptasm.s b/asm/ultra/exceptasm.s new file mode 100644 index 00000000..307ba0fa --- /dev/null +++ b/asm/ultra/exceptasm.s @@ -0,0 +1,707 @@ +#include +.include "macro.inc" + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purpose registers + +.data + +EXPORT(__osHwIntTable) +.word 0x0, 0x0, 0x0, 0x0, 0x0 + +.rdata +#define REDISPATCH 0x00 +#define SW1 0x04 +#define SW2 0x08 +#define RCP 0x0c +#define CART 0x10 +#define PRENMI 0x14 +#define IP6_HDLR 0x18 +#define IP7_HDLR 0x1c +#define COUNTER 0x20 +__osIntOffTable: +.byte REDISPATCH +.byte PRENMI +.byte IP6_HDLR +.byte IP6_HDLR +.byte IP7_HDLR +.byte IP7_HDLR +.byte IP7_HDLR +.byte IP7_HDLR +.byte COUNTER +.byte COUNTER +.byte IP6_HDLR +.byte IP6_HDLR +.byte IP7_HDLR +.byte IP7_HDLR +.byte IP7_HDLR +.byte IP7_HDLR +.byte REDISPATCH +.byte SW1 +.byte SW2 +.byte SW2 +.byte RCP +.byte RCP +.byte RCP +.byte RCP +.byte CART +.byte CART +.byte CART +.byte CART +.byte CART +.byte CART +.byte CART +.byte CART +__osIntTable: +.word redispatch, sw1, sw2, rcp, cart, prenmi, IP6_Hdlr, IP7_Hdlr, counter + +.text + +glabel __osExceptionPreamble +/* 2E60 80002260 3C1A8000 */ lui $k0, %hi(__osException) +/* 2E64 80002264 275A2280 */ addiu $k0, $k0, %lo(__osException) +/* 2E68 80002268 03400008 */ jr $k0 +/* 2E6C 8000226C 00000000 */ nop +endlabel __osExceptionPreamble + +# What is this? +glabel __osExceptionPreamble2 +/* 2E70 80002270 3C1A8000 */ lui $k0, %hi(__osException) +/* 2E74 80002274 275A2280 */ addiu $k0, $k0, %lo(__osException) +/* 2E78 80002278 03400008 */ jr $k0 +/* 2E7C 8000227C 00000000 */ nop +endlabel __osExceptionPreamble2 + +glabel __osException +/* 2E80 80002280 3C1A8000 */ lui $k0, %hi(__osThreadSave) +/* 2E84 80002284 275A72C0 */ addiu $k0, $k0, %lo(__osThreadSave) +/* 2E88 80002288 FF410020 */ sd $at, 0x20($k0) +/* 2E8C 8000228C 401B6000 */ mfc0 $k1, $12 +/* 2E90 80002290 AF5B0118 */ sw $k1, 0x118($k0) +/* 2E94 80002294 2401FFFC */ addiu $at, $zero, -4 +/* 2E98 80002298 0361D824 */ and $k1, $k1, $at +/* 2E9C 8000229C 409B6000 */ mtc0 $k1, $12 +/* 2EA0 800022A0 FF480058 */ sd $t0, 0x58($k0) +/* 2EA4 800022A4 FF490060 */ sd $t1, 0x60($k0) +/* 2EA8 800022A8 FF4A0068 */ sd $t2, 0x68($k0) +/* 2EAC 800022AC AF400018 */ sw $zero, 0x18($k0) +/* 2EB0 800022B0 40086800 */ mfc0 $t0, $13 +/* 2EB4 800022B4 03404025 */ or $t0, $k0, $zero +/* 2EB8 800022B8 3C1A8000 */ lui $k0, %hi(__osRunningThread) +/* 2EBC 800022BC 8F5A5130 */ lw $k0, %lo(__osRunningThread)($k0) +/* 2EC0 800022C0 DD090020 */ ld $t1, 0x20($t0) +/* 2EC4 800022C4 FF490020 */ sd $t1, 0x20($k0) +/* 2EC8 800022C8 DD090118 */ ld $t1, 0x118($t0) +/* 2ECC 800022CC FF490118 */ sd $t1, 0x118($k0) +/* 2ED0 800022D0 DD090058 */ ld $t1, 0x58($t0) +/* 2ED4 800022D4 FF490058 */ sd $t1, 0x58($k0) +/* 2ED8 800022D8 DD090060 */ ld $t1, 0x60($t0) +/* 2EDC 800022DC FF490060 */ sd $t1, 0x60($k0) +/* 2EE0 800022E0 DD090068 */ ld $t1, 0x68($t0) +/* 2EE4 800022E4 FF490068 */ sd $t1, 0x68($k0) +/* 2EE8 800022E8 8F5B0118 */ lw $k1, 0x118($k0) +/* 2EEC 800022EC 00004012 */ mflo $t0 +/* 2EF0 800022F0 FF480108 */ sd $t0, 0x108($k0) +/* 2EF4 800022F4 00004010 */ mfhi $t0 +/* 2EF8 800022F8 3369FF00 */ andi $t1, $k1, 0xff00 +/* 2EFC 800022FC FF420028 */ sd $v0, 0x28($k0) +/* 2F00 80002300 FF430030 */ sd $v1, 0x30($k0) +/* 2F04 80002304 FF440038 */ sd $a0, 0x38($k0) +/* 2F08 80002308 FF450040 */ sd $a1, 0x40($k0) +/* 2F0C 8000230C FF460048 */ sd $a2, 0x48($k0) +/* 2F10 80002310 FF470050 */ sd $a3, 0x50($k0) +/* 2F14 80002314 FF4B0070 */ sd $t3, 0x70($k0) +/* 2F18 80002318 FF4C0078 */ sd $t4, 0x78($k0) +/* 2F1C 8000231C FF4D0080 */ sd $t5, 0x80($k0) +/* 2F20 80002320 FF4E0088 */ sd $t6, 0x88($k0) +/* 2F24 80002324 FF4F0090 */ sd $t7, 0x90($k0) +/* 2F28 80002328 FF500098 */ sd $s0, 0x98($k0) +/* 2F2C 8000232C FF5100A0 */ sd $s1, 0xa0($k0) +/* 2F30 80002330 FF5200A8 */ sd $s2, 0xa8($k0) +/* 2F34 80002334 FF5300B0 */ sd $s3, 0xb0($k0) +/* 2F38 80002338 FF5400B8 */ sd $s4, 0xb8($k0) +/* 2F3C 8000233C FF5500C0 */ sd $s5, 0xc0($k0) +/* 2F40 80002340 FF5600C8 */ sd $s6, 0xc8($k0) +/* 2F44 80002344 FF5700D0 */ sd $s7, 0xd0($k0) +/* 2F48 80002348 FF5800D8 */ sd $t8, 0xd8($k0) +/* 2F4C 8000234C FF5900E0 */ sd $t9, 0xe0($k0) +/* 2F50 80002350 FF5C00E8 */ sd $gp, 0xe8($k0) +/* 2F54 80002354 FF5D00F0 */ sd $sp, 0xf0($k0) +/* 2F58 80002358 FF5E00F8 */ sd $fp, 0xf8($k0) +/* 2F5C 8000235C FF5F0100 */ sd $ra, 0x100($k0) +/* 2F60 80002360 1120000D */ beqz $t1, .L80002398 +/* 2F64 80002364 FF480110 */ sd $t0, 0x110($k0) +/* 2F68 80002368 3C088000 */ lui $t0, %hi(__OSGlobalIntMask) +/* 2F6C 8000236C 250850F0 */ addiu $t0, $t0, %lo(__OSGlobalIntMask) +/* 2F70 80002370 8D080000 */ lw $t0, ($t0) +/* 2F74 80002374 2401FFFF */ addiu $at, $zero, -1 +/* 2F78 80002378 01014026 */ xor $t0, $t0, $at +/* 2F7C 8000237C 3C01FFFF */ lui $at, 0xffff +/* 2F80 80002380 3108FF00 */ andi $t0, $t0, 0xff00 +/* 2F84 80002384 342100FF */ ori $at, $at, 0xff +/* 2F88 80002388 01284825 */ or $t1, $t1, $t0 +/* 2F8C 8000238C 0361D824 */ and $k1, $k1, $at +/* 2F90 80002390 0369D825 */ or $k1, $k1, $t1 +/* 2F94 80002394 AF5B0118 */ sw $k1, 0x118($k0) +.L80002398: +/* 2F98 80002398 3C09A430 */ lui $t1, %hi(D_A430000C) +/* 2F9C 8000239C 8D29000C */ lw $t1, %lo(D_A430000C)($t1) +/* 2FA0 800023A0 5120000C */ beql $t1, $zero, .L800023D4 +/* 2FA4 800023A4 AF490128 */ sw $t1, 0x128($k0) +/* 2FA8 800023A8 3C088000 */ lui $t0, %hi(__OSGlobalIntMask) +/* 2FAC 800023AC 250850F0 */ addiu $t0, $t0, %lo(__OSGlobalIntMask) +/* 2FB0 800023B0 8D080000 */ lw $t0, ($t0) +/* 2FB4 800023B4 8F4C0128 */ lw $t4, 0x128($k0) +/* 2FB8 800023B8 2401FFFF */ addiu $at, $zero, -1 +/* 2FBC 800023BC 00084402 */ srl $t0, $t0, 0x10 +/* 2FC0 800023C0 01014026 */ xor $t0, $t0, $at +/* 2FC4 800023C4 3108003F */ andi $t0, $t0, 0x3f +/* 2FC8 800023C8 010C4024 */ and $t0, $t0, $t4 +/* 2FCC 800023CC 01284825 */ or $t1, $t1, $t0 +/* 2FD0 800023D0 AF490128 */ sw $t1, 0x128($k0) +.L800023D4: +/* 2FD4 800023D4 40087000 */ mfc0 $t0, $14 +/* 2FD8 800023D8 AF48011C */ sw $t0, 0x11c($k0) +/* 2FDC 800023DC 8F480018 */ lw $t0, 0x18($k0) +/* 2FE0 800023E0 11000014 */ beqz $t0, .L80002434 +/* 2FE4 800023E4 00000000 */ nop +/* 2FE8 800023E8 4448F800 */ cfc1 $t0, $31 +/* 2FEC 800023EC 00000000 */ nop +/* 2FF0 800023F0 AF48012C */ sw $t0, 0x12c($k0) +/* 2FF4 800023F4 F7400130 */ sdc1 $f0, 0x130($k0) +/* 2FF8 800023F8 F7420138 */ sdc1 $f2, 0x138($k0) +/* 2FFC 800023FC F7440140 */ sdc1 $f4, 0x140($k0) +/* 3000 80002400 F7460148 */ sdc1 $f6, 0x148($k0) +/* 3004 80002404 F7480150 */ sdc1 $f8, 0x150($k0) +/* 3008 80002408 F74A0158 */ sdc1 $f10, 0x158($k0) +/* 300C 8000240C F74C0160 */ sdc1 $f12, 0x160($k0) +/* 3010 80002410 F74E0168 */ sdc1 $f14, 0x168($k0) +/* 3014 80002414 F7500170 */ sdc1 $f16, 0x170($k0) +/* 3018 80002418 F7520178 */ sdc1 $f18, 0x178($k0) +/* 301C 8000241C F7540180 */ sdc1 $f20, 0x180($k0) +/* 3020 80002420 F7560188 */ sdc1 $f22, 0x188($k0) +/* 3024 80002424 F7580190 */ sdc1 $f24, 0x190($k0) +/* 3028 80002428 F75A0198 */ sdc1 $f26, 0x198($k0) +/* 302C 8000242C F75C01A0 */ sdc1 $f28, 0x1a0($k0) +/* 3030 80002430 F75E01A8 */ sdc1 $f30, 0x1a8($k0) +.L80002434: +/* 3034 80002434 40086800 */ mfc0 $t0, $13 +/* 3038 80002438 AF480120 */ sw $t0, 0x120($k0) +/* 303C 8000243C 24090002 */ addiu $t1, $zero, 2 +/* 3040 80002440 A7490010 */ sh $t1, 0x10($k0) +/* 3044 80002444 3109007C */ andi $t1, $t0, 0x7c +/* 3048 80002448 240A0024 */ addiu $t2, $zero, 0x24 +/* 304C 8000244C 512A00B1 */ beql $t1, $t2, handle_break +/* 3050 80002450 24090001 */ addiu $t1, $zero, 1 +/* 3054 80002454 240A002C */ addiu $t2, $zero, 0x2c +/* 3058 80002458 112A00FF */ beq $t1, $t2, handle_CpU +/* 305C 8000245C 00000000 */ nop +/* 3060 80002460 240A0000 */ addiu $t2, $zero, 0 +/* 3064 80002464 152A00C3 */ bne $t1, $t2, .L80002774 +/* 3068 80002468 00000000 */ nop +/* 306C 8000246C 03688024 */ and $s0, $k1, $t0 +next_interrupt: +/* 3070 80002470 3209FF00 */ andi $t1, $s0, 0xff00 +/* 3074 80002474 00095302 */ srl $t2, $t1, 0xc +/* 3078 80002478 15400003 */ bnez $t2, .L80002488 +/* 307C 8000247C 00000000 */ nop +/* 3080 80002480 00095202 */ srl $t2, $t1, 8 +/* 3084 80002484 214A0010 */ addi $t2, $t2, 0x10 +.L80002488: +/* 3088 80002488 3C018000 */ lui $at, %hi(__osIntOffTable) +/* 308C 8000248C 002A0821 */ addu $at, $at, $t2 +/* 3090 80002490 902A5180 */ lbu $t2, %lo(__osIntOffTable)($at) +/* 3094 80002494 3C018000 */ lui $at, %hi(__osIntTable) +/* 3098 80002498 002A0821 */ addu $at, $at, $t2 +/* 309C 8000249C 8C2A51A0 */ lw $t2, %lo(__osIntTable)($at) +/* 30A0 800024A0 01400008 */ jr $t2 +/* 30A4 800024A4 00000000 */ nop +IP6_Hdlr: +/* 30A8 800024A8 2401DFFF */ addiu $at, $zero, -0x2001 +/* 30AC 800024AC 1000FFF0 */ b next_interrupt +/* 30B0 800024B0 02018024 */ and $s0, $s0, $at +IP7_Hdlr: +/* 30B4 800024B4 2401BFFF */ addiu $at, $zero, -0x4001 +/* 30B8 800024B8 1000FFED */ b next_interrupt +/* 30BC 800024BC 02018024 */ and $s0, $s0, $at +counter: +/* 30C0 800024C0 40095800 */ mfc0 $t1, $11 +/* 30C4 800024C4 40895800 */ mtc0 $t1, $11 +/* 30C8 800024C8 0C0009E9 */ jal send_mesg +/* 30CC 800024CC 24040018 */ addiu $a0, $zero, 0x18 +/* 30D0 800024D0 3C01FFFF */ lui $at, 0xffff +/* 30D4 800024D4 34217FFF */ ori $at, $at, 0x7fff +/* 30D8 800024D8 1000FFE5 */ b next_interrupt +/* 30DC 800024DC 02018024 */ and $s0, $s0, $at +cart: +/* 30E0 800024E0 2401F7FF */ addiu $at, $zero, -0x801 +/* 30E4 800024E4 02018024 */ and $s0, $s0, $at +/* 30E8 800024E8 240A0004 */ addiu $t2, $zero, 4 +/* 30EC 800024EC 3C018000 */ lui $at, %hi(__osHwIntTable) +/* 30F0 800024F0 002A0821 */ addu $at, $at, $t2 +/* 30F4 800024F4 8C2A5100 */ lw $t2, %lo(__osHwIntTable)($at) +/* 30F8 800024F8 3C1D8000 */ lui $sp, %hi(leoDiskStack) +/* 30FC 800024FC 27BD7470 */ addiu $sp, $sp, %lo(leoDiskStack) +/* 3100 80002500 24040010 */ addiu $a0, $zero, 0x10 +/* 3104 80002504 11400007 */ beqz $t2, .L80002524 +/* 3108 80002508 27BD0FF0 */ addiu $sp, $sp, 0xff0 +/* 310C 8000250C 0140F809 */ jalr $t2 +/* 3110 80002510 00000000 */ nop +/* 3114 80002514 10400003 */ beqz $v0, .L80002524 +/* 3118 80002518 00000000 */ nop +/* 311C 8000251C 10000082 */ b redispatch +/* 3120 80002520 00000000 */ nop +.L80002524: +/* 3124 80002524 0C0009E9 */ jal send_mesg +/* 3128 80002528 00000000 */ nop +/* 312C 8000252C 1000FFD1 */ b next_interrupt + 4 +/* 3130 80002530 3209FF00 */ andi $t1, $s0, 0xff00 +rcp: +/* 3134 80002534 3C088000 */ lui $t0, %hi(__OSGlobalIntMask) +/* 3138 80002538 250850F0 */ addiu $t0, $t0, %lo(__OSGlobalIntMask) +/* 313C 8000253C 8D080000 */ lw $t0, ($t0) +/* 3140 80002540 3C11A430 */ lui $s1, %hi(D_A4300008) +/* 3144 80002544 8E310008 */ lw $s1, %lo(D_A4300008)($s1) +/* 3148 80002548 00084402 */ srl $t0, $t0, 0x10 +/* 314C 8000254C 02288824 */ and $s1, $s1, $t0 +/* 3150 80002550 32290001 */ andi $t1, $s1, 1 +/* 3154 80002554 51200014 */ beql $t1, $zero, .L800025A8 +/* 3158 80002558 32290008 */ andi $t1, $s1, 8 +/* 315C 8000255C 3C0CA404 */ lui $t4, %hi(D_A4040010) +/* 3160 80002560 8D8C0010 */ lw $t4, %lo(D_A4040010)($t4) +/* 3164 80002564 24090008 */ addiu $t1, $zero, 8 +/* 3168 80002568 3C01A404 */ lui $at, %hi(D_A4040010) +/* 316C 8000256C 318C0300 */ andi $t4, $t4, 0x300 +/* 3170 80002570 3231003E */ andi $s1, $s1, 0x3e +/* 3174 80002574 11800007 */ beqz $t4, .L80002594 +/* 3178 80002578 AC290010 */ sw $t1, %lo(D_A4040010)($at) +/* 317C 8000257C 0C0009E9 */ jal send_mesg +/* 3180 80002580 24040020 */ addiu $a0, $zero, 0x20 +/* 3184 80002584 52200039 */ beql $s1, $zero, .L8000266C +/* 3188 80002588 2401FBFF */ addiu $at, $zero, -0x401 +/* 318C 8000258C 10000006 */ b .L800025A8 +/* 3190 80002590 32290008 */ andi $t1, $s1, 8 +.L80002594: +/* 3194 80002594 0C0009E9 */ jal send_mesg +/* 3198 80002598 24040058 */ addiu $a0, $zero, 0x58 +/* 319C 8000259C 52200033 */ beql $s1, $zero, .L8000266C +/* 31A0 800025A0 2401FBFF */ addiu $at, $zero, -0x401 +/* 31A4 800025A4 32290008 */ andi $t1, $s1, 8 +.L800025A8: +/* 31A8 800025A8 11200007 */ beqz $t1, .L800025C8 +/* 31AC 800025AC 3C01A440 */ lui $at, %hi(D_A4400010) +/* 31B0 800025B0 32310037 */ andi $s1, $s1, 0x37 +/* 31B4 800025B4 AC200010 */ sw $zero, %lo(D_A4400010)($at) +/* 31B8 800025B8 0C0009E9 */ jal send_mesg +/* 31BC 800025BC 24040038 */ addiu $a0, $zero, 0x38 +/* 31C0 800025C0 5220002A */ beql $s1, $zero, .L8000266C +/* 31C4 800025C4 2401FBFF */ addiu $at, $zero, -0x401 +.L800025C8: +/* 31C8 800025C8 32290004 */ andi $t1, $s1, 4 +/* 31CC 800025CC 5120000A */ beql $t1, $zero, .L800025F8 +/* 31D0 800025D0 32290002 */ andi $t1, $s1, 2 +/* 31D4 800025D4 24090001 */ addiu $t1, $zero, 1 +/* 31D8 800025D8 3C01A450 */ lui $at, %hi(D_A450000C) +/* 31DC 800025DC 3231003B */ andi $s1, $s1, 0x3b +/* 31E0 800025E0 AC29000C */ sw $t1, %lo(D_A450000C)($at) +/* 31E4 800025E4 0C0009E9 */ jal send_mesg +/* 31E8 800025E8 24040030 */ addiu $a0, $zero, 0x30 +/* 31EC 800025EC 5220001F */ beql $s1, $zero, .L8000266C +/* 31F0 800025F0 2401FBFF */ addiu $at, $zero, -0x401 +/* 31F4 800025F4 32290002 */ andi $t1, $s1, 2 +.L800025F8: +/* 31F8 800025F8 11200007 */ beqz $t1, .L80002618 +/* 31FC 800025FC 3C01A480 */ lui $at, %hi(D_A4800018) +/* 3200 80002600 3231003D */ andi $s1, $s1, 0x3d +/* 3204 80002604 AC200018 */ sw $zero, %lo(D_A4800018)($at) +/* 3208 80002608 0C0009E9 */ jal send_mesg +/* 320C 8000260C 24040028 */ addiu $a0, $zero, 0x28 +/* 3210 80002610 52200016 */ beql $s1, $zero, .L8000266C +/* 3214 80002614 2401FBFF */ addiu $at, $zero, -0x401 +.L80002618: +/* 3218 80002618 32290010 */ andi $t1, $s1, 0x10 +/* 321C 8000261C 5120000A */ beql $t1, $zero, .L80002648 +/* 3220 80002620 32290020 */ andi $t1, $s1, 0x20 +/* 3224 80002624 24090002 */ addiu $t1, $zero, 2 +/* 3228 80002628 3C01A460 */ lui $at, %hi(D_A4600010) +/* 322C 8000262C 3231002F */ andi $s1, $s1, 0x2f +/* 3230 80002630 AC290010 */ sw $t1, %lo(D_A4600010)($at) +/* 3234 80002634 0C0009E9 */ jal send_mesg +/* 3238 80002638 24040040 */ addiu $a0, $zero, 0x40 +/* 323C 8000263C 5220000B */ beql $s1, $zero, .L8000266C +/* 3240 80002640 2401FBFF */ addiu $at, $zero, -0x401 +/* 3244 80002644 32290020 */ andi $t1, $s1, 0x20 +.L80002648: +/* 3248 80002648 51200008 */ beql $t1, $zero, .L8000266C +/* 324C 8000264C 2401FBFF */ addiu $at, $zero, -0x401 +/* 3250 80002650 24090800 */ addiu $t1, $zero, 0x800 +/* 3254 80002654 3C01A430 */ lui $at, 0xa430 +/* 3258 80002658 3231001F */ andi $s1, $s1, 0x1f +/* 325C 8000265C AC290000 */ sw $t1, ($at) +/* 3260 80002660 0C0009E9 */ jal send_mesg +/* 3264 80002664 24040048 */ addiu $a0, $zero, 0x48 +/* 3268 80002668 2401FBFF */ addiu $at, $zero, -0x401 +.L8000266C: +/* 326C 8000266C 1000FF80 */ b next_interrupt +/* 3270 80002670 02018024 */ and $s0, $s0, $at +prenmi: +/* 3274 80002674 8F5B0118 */ lw $k1, 0x118($k0) +/* 3278 80002678 2401EFFF */ addiu $at, $zero, -0x1001 +/* 327C 8000267C 3C098000 */ lui $t1, %hi(__osShutdown) +/* 3280 80002680 0361D824 */ and $k1, $k1, $at +/* 3284 80002684 AF5B0118 */ sw $k1, 0x118($k0) +/* 3288 80002688 252950EC */ addiu $t1, $t1, %lo(__osShutdown) +/* 328C 8000268C 8D2A0000 */ lw $t2, ($t1) +/* 3290 80002690 11400003 */ beqz $t2, firstnmi +/* 3294 80002694 2401EFFF */ addiu $at, $zero, -0x1001 +/* 3298 80002698 10000023 */ b redispatch +/* 329C 8000269C 02018024 */ and $s0, $s0, $at +firstnmi: +/* 32A0 800026A0 240A0001 */ addiu $t2, $zero, 1 +/* 32A4 800026A4 AD2A0000 */ sw $t2, ($t1) +/* 32A8 800026A8 0C0009E9 */ jal send_mesg +/* 32AC 800026AC 24040070 */ addiu $a0, $zero, 0x70 +/* 32B0 800026B0 3C0A8000 */ lui $t2, %hi(__osRunQueue) +/* 32B4 800026B4 8D4A5128 */ lw $t2, %lo(__osRunQueue)($t2) +/* 32B8 800026B8 2401EFFF */ addiu $at, $zero, -0x1001 +/* 32BC 800026BC 02018024 */ and $s0, $s0, $at +/* 32C0 800026C0 8D5B0118 */ lw $k1, 0x118($t2) +/* 32C4 800026C4 0361D824 */ and $k1, $k1, $at +/* 32C8 800026C8 10000017 */ b redispatch +/* 32CC 800026CC AD5B0118 */ sw $k1, 0x118($t2) +sw2: +/* 32D0 800026D0 2401FDFF */ addiu $at, $zero, -0x201 +/* 32D4 800026D4 01014024 */ and $t0, $t0, $at +/* 32D8 800026D8 40886800 */ mtc0 $t0, $13 +/* 32DC 800026DC 0C0009E9 */ jal send_mesg +/* 32E0 800026E0 24040008 */ addiu $a0, $zero, 8 +/* 32E4 800026E4 2401FDFF */ addiu $at, $zero, -0x201 +/* 32E8 800026E8 1000FF61 */ b next_interrupt +/* 32EC 800026EC 02018024 */ and $s0, $s0, $at +sw1: +/* 32F0 800026F0 2401FEFF */ addiu $at, $zero, -0x101 +/* 32F4 800026F4 01014024 */ and $t0, $t0, $at +/* 32F8 800026F8 40886800 */ mtc0 $t0, $13 +/* 32FC 800026FC 0C0009E9 */ jal send_mesg +/* 3300 80002700 24040000 */ addiu $a0, $zero, 0 +/* 3304 80002704 2401FEFF */ addiu $at, $zero, -0x101 +/* 3308 80002708 1000FF59 */ b next_interrupt +/* 330C 8000270C 02018024 */ and $s0, $s0, $at +/* 3310 80002710 24090001 */ addiu $t1, $zero, 1 +handle_break: +/* 3314 80002714 A7490012 */ sh $t1, 0x12($k0) +/* 3318 80002718 0C0009E9 */ jal send_mesg +/* 331C 8000271C 24040050 */ addiu $a0, $zero, 0x50 +/* 3320 80002720 10000001 */ b redispatch +/* 3324 80002724 00000000 */ nop +redispatch: +/* 3328 80002728 3C0A8000 */ lui $t2, %hi(__osRunQueue) +/* 332C 8000272C 8D4A5128 */ lw $t2, %lo(__osRunQueue)($t2) +/* 3330 80002730 8F490004 */ lw $t1, 4($k0) +/* 3334 80002734 8D4B0004 */ lw $t3, 4($t2) +/* 3338 80002738 012B082A */ slt $at, $t1, $t3 +/* 333C 8000273C 10200007 */ beqz $at, enqueueRunning +/* 3340 80002740 00000000 */ nop +/* 3344 80002744 3C048000 */ lui $a0, %hi(__osRunQueue) +/* 3348 80002748 03402825 */ or $a1, $k0, $zero +/* 334C 8000274C 0C000A63 */ jal __osEnqueueThread +/* 3350 80002750 24845128 */ addiu $a0, $a0, %lo(__osRunQueue) +/* 3354 80002754 08000A79 */ j __osDispatchThread +/* 3358 80002758 00000000 */ nop +enqueueRunning: +/* 335C 8000275C 3C098000 */ lui $t1, %hi(__osRunQueue) +/* 3360 80002760 25295128 */ addiu $t1, $t1, %lo(__osRunQueue) +/* 3364 80002764 8D2A0000 */ lw $t2, ($t1) +/* 3368 80002768 AF4A0000 */ sw $t2, ($k0) +/* 336C 8000276C 08000A79 */ j __osDispatchThread +/* 3370 80002770 AD3A0000 */ sw $k0, ($t1) +.L80002774: +/* 3374 80002774 3C018000 */ lui $at, %hi(__osFaultedThread) +/* 3378 80002778 AC3A5134 */ sw $k0, %lo(__osFaultedThread)($at) +/* 337C 8000277C 24090001 */ addiu $t1, $zero, 1 +/* 3380 80002780 A7490010 */ sh $t1, 0x10($k0) +/* 3384 80002784 24090002 */ addiu $t1, $zero, 2 +/* 3388 80002788 A7490012 */ sh $t1, 0x12($k0) +/* 338C 8000278C 400A4000 */ mfc0 $t2, $8 +/* 3390 80002790 AF4A0124 */ sw $t2, 0x124($k0) +/* 3394 80002794 0C0009E9 */ jal send_mesg +/* 3398 80002798 24040060 */ addiu $a0, $zero, 0x60 +/* 339C 8000279C 08000A79 */ j __osDispatchThread +/* 33A0 800027A0 00000000 */ nop +endlabel __osException + +glabel send_mesg +/* 33A4 800027A4 3C0A8001 */ lui $t2, %hi(__osEventStateTab) +/* 33A8 800027A8 254A8470 */ addiu $t2, $t2, %lo(__osEventStateTab) +/* 33AC 800027AC 01445021 */ addu $t2, $t2, $a0 +/* 33B0 800027B0 8D490000 */ lw $t1, ($t2) +/* 33B4 800027B4 03E09025 */ or $s2, $ra, $zero +/* 33B8 800027B8 11200025 */ beqz $t1, send_done +/* 33BC 800027BC 00000000 */ nop +/* 33C0 800027C0 8D2B0008 */ lw $t3, 8($t1) +/* 33C4 800027C4 8D2C0010 */ lw $t4, 0x10($t1) +/* 33C8 800027C8 016C082A */ slt $at, $t3, $t4 +/* 33CC 800027CC 10200020 */ beqz $at, send_done +/* 33D0 800027D0 00000000 */ nop +/* 33D4 800027D4 8D2D000C */ lw $t5, 0xc($t1) +/* 33D8 800027D8 01AB6821 */ addu $t5, $t5, $t3 +/* 33DC 800027DC 01AC001A */ div $zero, $t5, $t4 +/* 33E0 800027E0 15800002 */ bnez $t4, .L800027EC +/* 33E4 800027E4 00000000 */ nop +/* 33E8 800027E8 0007000D */ break 7 +.L800027EC: +/* 33EC 800027EC 2401FFFF */ addiu $at, $zero, -1 +/* 33F0 800027F0 15810004 */ bne $t4, $at, .L80002804 +/* 33F4 800027F4 3C018000 */ lui $at, 0x8000 +/* 33F8 800027F8 15A10002 */ bne $t5, $at, .L80002804 +/* 33FC 800027FC 00000000 */ nop +/* 3400 80002800 0006000D */ break 6 +.L80002804: +/* 3404 80002804 8D2C0014 */ lw $t4, 0x14($t1) +/* 3408 80002808 00006810 */ mfhi $t5 +/* 340C 8000280C 000D6880 */ sll $t5, $t5, 2 +/* 3410 80002810 018D6021 */ addu $t4, $t4, $t5 +/* 3414 80002814 8D4D0004 */ lw $t5, 4($t2) +/* 3418 80002818 256A0001 */ addiu $t2, $t3, 1 +/* 341C 8000281C AD8D0000 */ sw $t5, ($t4) +/* 3420 80002820 AD2A0008 */ sw $t2, 8($t1) +/* 3424 80002824 8D2A0000 */ lw $t2, ($t1) +/* 3428 80002828 8D4B0000 */ lw $t3, ($t2) +/* 342C 8000282C 11600008 */ beqz $t3, send_done +/* 3430 80002830 00000000 */ nop +/* 3434 80002834 0C000A75 */ jal __osPopThread +/* 3438 80002838 01202025 */ or $a0, $t1, $zero +/* 343C 8000283C 00405025 */ or $t2, $v0, $zero +/* 3440 80002840 3C048000 */ lui $a0, %hi(__osRunQueue) +/* 3444 80002844 01402825 */ or $a1, $t2, $zero +/* 3448 80002848 0C000A63 */ jal __osEnqueueThread +/* 344C 8000284C 24845128 */ addiu $a0, $a0, %lo(__osRunQueue) +send_done: +/* 3450 80002850 02400008 */ jr $s2 +/* 3454 80002854 00000000 */ nop +endlabel send_mesg + +glabel handle_CpU +/* 3458 80002858 3C013000 */ lui $at, 0x3000 +/* 345C 8000285C 01014824 */ and $t1, $t0, $at +/* 3460 80002860 00094F02 */ srl $t1, $t1, 0x1c +/* 3464 80002864 240A0001 */ addiu $t2, $zero, 1 +/* 3468 80002868 152AFFC2 */ bne $t1, $t2, .L80002774 +/* 346C 8000286C 00000000 */ nop +/* 3470 80002870 8F5B0118 */ lw $k1, 0x118($k0) +/* 3474 80002874 3C012000 */ lui $at, 0x2000 +/* 3478 80002878 24090001 */ addiu $t1, $zero, 1 +/* 347C 8000287C 0361D825 */ or $k1, $k1, $at +/* 3480 80002880 AF490018 */ sw $t1, 0x18($k0) +/* 3484 80002884 1000FFB5 */ b enqueueRunning +/* 3488 80002888 AF5B0118 */ sw $k1, 0x118($k0) +endlabel handle_CpU + +glabel __osEnqueueAndYield +/* 348C 8000288C 3C058000 */ lui $a1, %hi(__osRunningThread) +/* 3490 80002890 8CA55130 */ lw $a1, %lo(__osRunningThread)($a1) +/* 3494 80002894 40086000 */ mfc0 $t0, $12 +/* 3498 80002898 8CBB0018 */ lw $k1, 0x18($a1) +/* 349C 8000289C 35080002 */ ori $t0, $t0, 2 +/* 34A0 800028A0 ACA80118 */ sw $t0, 0x118($a1) +/* 34A4 800028A4 FCB00098 */ sd $s0, 0x98($a1) +/* 34A8 800028A8 FCB100A0 */ sd $s1, 0xa0($a1) +/* 34AC 800028AC FCB200A8 */ sd $s2, 0xa8($a1) +/* 34B0 800028B0 FCB300B0 */ sd $s3, 0xb0($a1) +/* 34B4 800028B4 FCB400B8 */ sd $s4, 0xb8($a1) +/* 34B8 800028B8 FCB500C0 */ sd $s5, 0xc0($a1) +/* 34BC 800028BC FCB600C8 */ sd $s6, 0xc8($a1) +/* 34C0 800028C0 FCB700D0 */ sd $s7, 0xd0($a1) +/* 34C4 800028C4 FCBC00E8 */ sd $gp, 0xe8($a1) +/* 34C8 800028C8 FCBD00F0 */ sd $sp, 0xf0($a1) +/* 34CC 800028CC FCBE00F8 */ sd $fp, 0xf8($a1) +/* 34D0 800028D0 FCBF0100 */ sd $ra, 0x100($a1) +/* 34D4 800028D4 13600009 */ beqz $k1, .L800028FC +/* 34D8 800028D8 ACBF011C */ sw $ra, 0x11c($a1) +/* 34DC 800028DC 445BF800 */ cfc1 $k1, $31 +/* 34E0 800028E0 F4B40180 */ sdc1 $f20, 0x180($a1) +/* 34E4 800028E4 F4B60188 */ sdc1 $f22, 0x188($a1) +/* 34E8 800028E8 F4B80190 */ sdc1 $f24, 0x190($a1) +/* 34EC 800028EC F4BA0198 */ sdc1 $f26, 0x198($a1) +/* 34F0 800028F0 F4BC01A0 */ sdc1 $f28, 0x1a0($a1) +/* 34F4 800028F4 F4BE01A8 */ sdc1 $f30, 0x1a8($a1) +/* 34F8 800028F8 ACBB012C */ sw $k1, 0x12c($a1) +.L800028FC: +/* 34FC 800028FC 8CBB0118 */ lw $k1, 0x118($a1) +/* 3500 80002900 3369FF00 */ andi $t1, $k1, 0xff00 +/* 3504 80002904 5120000E */ beql $t1, $zero, .L80002940 +/* 3508 80002908 3C1BA430 */ lui $k1, 0xa430 +/* 350C 8000290C 3C088000 */ lui $t0, %hi(__OSGlobalIntMask) +/* 3510 80002910 250850F0 */ addiu $t0, $t0, %lo(__OSGlobalIntMask) +/* 3514 80002914 8D080000 */ lw $t0, ($t0) +/* 3518 80002918 2401FFFF */ addiu $at, $zero, -1 +/* 351C 8000291C 01014026 */ xor $t0, $t0, $at +/* 3520 80002920 3C01FFFF */ lui $at, 0xffff +/* 3524 80002924 3108FF00 */ andi $t0, $t0, 0xff00 +/* 3528 80002928 342100FF */ ori $at, $at, 0xff +/* 352C 8000292C 01284825 */ or $t1, $t1, $t0 +/* 3530 80002930 0361D824 */ and $k1, $k1, $at +/* 3534 80002934 0369D825 */ or $k1, $k1, $t1 +/* 3538 80002938 ACBB0118 */ sw $k1, 0x118($a1) +/* 353C 8000293C 3C1BA430 */ lui $k1, %hi(D_A430000C) +.L80002940: +/* 3540 80002940 8F7B000C */ lw $k1, %lo(D_A430000C)($k1) +/* 3544 80002944 1360000B */ beqz $k1, .L80002974 +/* 3548 80002948 00000000 */ nop +/* 354C 8000294C 3C1A8000 */ lui $k0, %hi(__OSGlobalIntMask) +/* 3550 80002950 275A50F0 */ addiu $k0, $k0, %lo(__OSGlobalIntMask) +/* 3554 80002954 8F5A0000 */ lw $k0, ($k0) +/* 3558 80002958 8CA80128 */ lw $t0, 0x128($a1) +/* 355C 8000295C 2401FFFF */ addiu $at, $zero, -1 +/* 3560 80002960 001AD402 */ srl $k0, $k0, 0x10 +/* 3564 80002964 0341D026 */ xor $k0, $k0, $at +/* 3568 80002968 335A003F */ andi $k0, $k0, 0x3f +/* 356C 8000296C 0348D024 */ and $k0, $k0, $t0 +/* 3570 80002970 037AD825 */ or $k1, $k1, $k0 +.L80002974: +/* 3574 80002974 10800003 */ beqz $a0, .L80002984 +/* 3578 80002978 ACBB0128 */ sw $k1, 0x128($a1) +/* 357C 8000297C 0C000A63 */ jal __osEnqueueThread +/* 3580 80002980 00000000 */ nop +.L80002984: +/* 3584 80002984 08000A79 */ j __osDispatchThread +/* 3588 80002988 00000000 */ nop +endlabel __osEnqueueAndYield + +glabel __osEnqueueThread +/* 358C 8000298C 8C980000 */ lw $t8, ($a0) +/* 3590 80002990 8CAF0004 */ lw $t7, 4($a1) +/* 3594 80002994 0080C825 */ or $t9, $a0, $zero +/* 3598 80002998 8F0E0004 */ lw $t6, 4($t8) +/* 359C 8000299C 01CF082A */ slt $at, $t6, $t7 +/* 35A0 800029A0 54200008 */ bnel $at, $zero, .L800029C4 +/* 35A4 800029A4 8F380000 */ lw $t8, ($t9) +/* 35A8 800029A8 0300C825 */ or $t9, $t8, $zero +.L800029AC: +/* 35AC 800029AC 8F180000 */ lw $t8, ($t8) +/* 35B0 800029B0 8F0E0004 */ lw $t6, 4($t8) +/* 35B4 800029B4 01CF082A */ slt $at, $t6, $t7 +/* 35B8 800029B8 5020FFFC */ beql $at, $zero, .L800029AC +/* 35BC 800029BC 0300C825 */ or $t9, $t8, $zero +/* 35C0 800029C0 8F380000 */ lw $t8, ($t9) +.L800029C4: +/* 35C4 800029C4 ACB80000 */ sw $t8, ($a1) +/* 35C8 800029C8 AF250000 */ sw $a1, ($t9) +/* 35CC 800029CC 03E00008 */ jr $ra +/* 35D0 800029D0 ACA40008 */ sw $a0, 8($a1) +endlabel __osEnqueueThread + +glabel __osPopThread +/* 35D4 800029D4 8C820000 */ lw $v0, ($a0) +/* 35D8 800029D8 8C590000 */ lw $t9, ($v0) +/* 35DC 800029DC 03E00008 */ jr $ra +/* 35E0 800029E0 AC990000 */ sw $t9, ($a0) +endlabel __osPopThread + +glabel __osDispatchThread +/* 35E4 800029E4 3C048000 */ lui $a0, %hi(__osRunQueue) +/* 35E8 800029E8 0C000A75 */ jal __osPopThread +/* 35EC 800029EC 24845128 */ addiu $a0, $a0, %lo(__osRunQueue) +/* 35F0 800029F0 3C018000 */ lui $at, %hi(__osRunningThread) +/* 35F4 800029F4 AC225130 */ sw $v0, %lo(__osRunningThread)($at) +/* 35F8 800029F8 24080004 */ addiu $t0, $zero, 4 +/* 35FC 800029FC A4480010 */ sh $t0, 0x10($v0) +/* 3600 80002A00 0040D025 */ or $k0, $v0, $zero +/* 3604 80002A04 3C088000 */ lui $t0, %hi(__OSGlobalIntMask) +/* 3608 80002A08 8F5B0118 */ lw $k1, 0x118($k0) +/* 360C 80002A0C 250850F0 */ addiu $t0, $t0, %lo(__OSGlobalIntMask) +/* 3610 80002A10 8D080000 */ lw $t0, ($t0) +/* 3614 80002A14 3C01FFFF */ lui $at, 0xffff +/* 3618 80002A18 3369FF00 */ andi $t1, $k1, 0xff00 +/* 361C 80002A1C 342100FF */ ori $at, $at, 0xff +/* 3620 80002A20 3108FF00 */ andi $t0, $t0, 0xff00 +/* 3624 80002A24 01284824 */ and $t1, $t1, $t0 +/* 3628 80002A28 0361D824 */ and $k1, $k1, $at +/* 362C 80002A2C 0369D825 */ or $k1, $k1, $t1 +/* 3630 80002A30 409B6000 */ mtc0 $k1, $12 +/* 3634 80002A34 DF5B0108 */ ld $k1, 0x108($k0) +/* 3638 80002A38 DF410020 */ ld $at, 0x20($k0) +/* 363C 80002A3C DF420028 */ ld $v0, 0x28($k0) +/* 3640 80002A40 03600013 */ mtlo $k1 +/* 3644 80002A44 DF5B0110 */ ld $k1, 0x110($k0) +/* 3648 80002A48 DF430030 */ ld $v1, 0x30($k0) +/* 364C 80002A4C DF440038 */ ld $a0, 0x38($k0) +/* 3650 80002A50 DF450040 */ ld $a1, 0x40($k0) +/* 3654 80002A54 DF460048 */ ld $a2, 0x48($k0) +/* 3658 80002A58 DF470050 */ ld $a3, 0x50($k0) +/* 365C 80002A5C DF480058 */ ld $t0, 0x58($k0) +/* 3660 80002A60 DF490060 */ ld $t1, 0x60($k0) +/* 3664 80002A64 DF4A0068 */ ld $t2, 0x68($k0) +/* 3668 80002A68 DF4B0070 */ ld $t3, 0x70($k0) +/* 366C 80002A6C DF4C0078 */ ld $t4, 0x78($k0) +/* 3670 80002A70 DF4D0080 */ ld $t5, 0x80($k0) +/* 3674 80002A74 DF4E0088 */ ld $t6, 0x88($k0) +/* 3678 80002A78 DF4F0090 */ ld $t7, 0x90($k0) +/* 367C 80002A7C DF500098 */ ld $s0, 0x98($k0) +/* 3680 80002A80 DF5100A0 */ ld $s1, 0xa0($k0) +/* 3684 80002A84 DF5200A8 */ ld $s2, 0xa8($k0) +/* 3688 80002A88 DF5300B0 */ ld $s3, 0xb0($k0) +/* 368C 80002A8C DF5400B8 */ ld $s4, 0xb8($k0) +/* 3690 80002A90 DF5500C0 */ ld $s5, 0xc0($k0) +/* 3694 80002A94 DF5600C8 */ ld $s6, 0xc8($k0) +/* 3698 80002A98 DF5700D0 */ ld $s7, 0xd0($k0) +/* 369C 80002A9C DF5800D8 */ ld $t8, 0xd8($k0) +/* 36A0 80002AA0 DF5900E0 */ ld $t9, 0xe0($k0) +/* 36A4 80002AA4 DF5C00E8 */ ld $gp, 0xe8($k0) +/* 36A8 80002AA8 03600011 */ mthi $k1 +/* 36AC 80002AAC DF5D00F0 */ ld $sp, 0xf0($k0) +/* 36B0 80002AB0 DF5E00F8 */ ld $fp, 0xf8($k0) +/* 36B4 80002AB4 DF5F0100 */ ld $ra, 0x100($k0) +/* 36B8 80002AB8 8F5B011C */ lw $k1, 0x11c($k0) +/* 36BC 80002ABC 409B7000 */ mtc0 $k1, $14 +/* 36C0 80002AC0 8F5B0018 */ lw $k1, 0x18($k0) +/* 36C4 80002AC4 13600013 */ beqz $k1, .L80002B14 +/* 36C8 80002AC8 00000000 */ nop +/* 36CC 80002ACC 8F5B012C */ lw $k1, 0x12c($k0) +/* 36D0 80002AD0 44DBF800 */ ctc1 $k1, $31 +/* 36D4 80002AD4 D7400130 */ ldc1 $f0, 0x130($k0) +/* 36D8 80002AD8 D7420138 */ ldc1 $f2, 0x138($k0) +/* 36DC 80002ADC D7440140 */ ldc1 $f4, 0x140($k0) +/* 36E0 80002AE0 D7460148 */ ldc1 $f6, 0x148($k0) +/* 36E4 80002AE4 D7480150 */ ldc1 $f8, 0x150($k0) +/* 36E8 80002AE8 D74A0158 */ ldc1 $f10, 0x158($k0) +/* 36EC 80002AEC D74C0160 */ ldc1 $f12, 0x160($k0) +/* 36F0 80002AF0 D74E0168 */ ldc1 $f14, 0x168($k0) +/* 36F4 80002AF4 D7500170 */ ldc1 $f16, 0x170($k0) +/* 36F8 80002AF8 D7520178 */ ldc1 $f18, 0x178($k0) +/* 36FC 80002AFC D7540180 */ ldc1 $f20, 0x180($k0) +/* 3700 80002B00 D7560188 */ ldc1 $f22, 0x188($k0) +/* 3704 80002B04 D7580190 */ ldc1 $f24, 0x190($k0) +/* 3708 80002B08 D75A0198 */ ldc1 $f26, 0x198($k0) +/* 370C 80002B0C D75C01A0 */ ldc1 $f28, 0x1a0($k0) +/* 3710 80002B10 D75E01A8 */ ldc1 $f30, 0x1a8($k0) +.L80002B14: +/* 3714 80002B14 8F5B0128 */ lw $k1, 0x128($k0) +/* 3718 80002B18 3C1A8000 */ lui $k0, %hi(__OSGlobalIntMask) +/* 371C 80002B1C 275A50F0 */ addiu $k0, $k0, %lo(__OSGlobalIntMask) +/* 3720 80002B20 8F5A0000 */ lw $k0, ($k0) +/* 3724 80002B24 001AD402 */ srl $k0, $k0, 0x10 +/* 3728 80002B28 037AD824 */ and $k1, $k1, $k0 +/* 372C 80002B2C 001BD840 */ sll $k1, $k1, 1 +/* 3730 80002B30 3C1A8000 */ lui $k0, %hi(__osRcpImTable) +/* 3734 80002B34 275A51D0 */ addiu $k0, $k0, %lo(__osRcpImTable) +/* 3738 80002B38 037AD821 */ addu $k1, $k1, $k0 +/* 373C 80002B3C 977B0000 */ lhu $k1, ($k1) +/* 3740 80002B40 3C1AA430 */ lui $k0, %hi(D_A430000C) +/* 3744 80002B44 275A000C */ addiu $k0, $k0, %lo(D_A430000C) +/* 3748 80002B48 AF5B0000 */ sw $k1, ($k0) +/* 374C 80002B4C 00000000 */ nop +/* 3750 80002B50 00000000 */ nop +/* 3754 80002B54 00000000 */ nop +/* 3758 80002B58 00000000 */ nop +/* 375C 80002B5C 42000018 */ eret +endlabel __osDispatchThread + +glabel __osCleanupThread +/* 3760 80002B60 0C000EB4 */ jal osDestroyThread +/* 3764 80002B64 00002025 */ or $a0, $zero, $zero +/* 3768 80002B68 00000000 */ nop +/* 376C 80002B6C 00000000 */ nop +endlabel __osCleanupThread diff --git a/asm/ultra/setintmask.s b/asm/ultra/setintmask.s new file mode 100644 index 00000000..5af09ba5 --- /dev/null +++ b/asm/ultra/setintmask.s @@ -0,0 +1,135 @@ +#include +.include "macro.inc" +# assembler directives +.set noat # allow manual use of $at +.set gp=64 # allow use of 64-bit general purpose registers + +.rdata + +#define MI_INTR_MASK 0x3f +#define CLR_SP 0x0001 +#define SET_SP 0x0002 +#define CLR_SI 0x0004 +#define SET_SI 0x0008 +#define CLR_AI 0x0010 +#define SET_AI 0x0020 +#define CLR_VI 0x0040 +#define SET_VI 0x0080 +#define CLR_PI 0x0100 +#define SET_PI 0x0200 +#define CLR_DP 0x0400 +#define SET_DP 0x0800 + +EXPORT(__osRcpImTable) +/* LUT to convert between MI_INTR and MI_INTR_MASK */ +/* MI_INTR is status for each interrupt whereas */ +/* MI_INTR_MASK has seperate bits for set/clr */ +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | CLR_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | SET_PI | CLR_DP +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | CLR_PI | SET_DP +.half CLR_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | CLR_VI | SET_PI | SET_DP +.half CLR_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | CLR_AI | SET_VI | SET_PI | SET_DP +.half CLR_SP | CLR_SI | SET_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | CLR_SI | SET_AI | SET_VI | SET_PI | SET_DP +.half CLR_SP | SET_SI | SET_AI | SET_VI | SET_PI | SET_DP +.half SET_SP | SET_SI | SET_AI | SET_VI | SET_PI | SET_DP +.text +.set noreorder +glabel func_80003A30 +/* 4630 80003A30 400C6000 */ mfc0 $t4, $12 +/* 4634 80003A34 3182FF01 */ andi $v0, $t4, 0xff01 +/* 4638 80003A38 3C088000 */ lui $t0, %hi(__OSGlobalIntMask) +/* 463C 80003A3C 250850F0 */ addiu $t0, $t0, %lo(__OSGlobalIntMask) +/* 4640 80003A40 8D0B0000 */ lw $t3, ($t0) +/* 4644 80003A44 2401FFFF */ addiu $at, $zero, -1 +/* 4648 80003A48 01614026 */ xor $t0, $t3, $at +/* 464C 80003A4C 3108FF00 */ andi $t0, $t0, 0xff00 +/* 4650 80003A50 00481025 */ or $v0, $v0, $t0 +/* 4654 80003A54 3C0AA430 */ lui $t2, %hi(D_A430000C) +/* 4658 80003A58 8D4A000C */ lw $t2, %lo(D_A430000C)($t2) +/* 465C 80003A5C 11400005 */ beqz $t2, .L80003A74 +/* 4660 80003A60 000B4C02 */ srl $t1, $t3, 0x10 +/* 4664 80003A64 2401FFFF */ addiu $at, $zero, -1 +/* 4668 80003A68 01214826 */ xor $t1, $t1, $at +/* 466C 80003A6C 3129003F */ andi $t1, $t1, 0x3f +/* 4670 80003A70 01495025 */ or $t2, $t2, $t1 +.L80003A74: +/* 4674 80003A74 000A5400 */ sll $t2, $t2, 0x10 +/* 4678 80003A78 004A1025 */ or $v0, $v0, $t2 +/* 467C 80003A7C 3C01003F */ lui $at, 0x3f +/* 4680 80003A80 00814024 */ and $t0, $a0, $at +/* 4684 80003A84 010B4024 */ and $t0, $t0, $t3 +/* 4688 80003A88 000843C2 */ srl $t0, $t0, 0xf +/* 468C 80003A8C 3C0A8000 */ lui $t2, %hi(__osRcpImTable) +/* 4690 80003A90 01485021 */ addu $t2, $t2, $t0 +/* 4694 80003A94 954A51D0 */ lhu $t2, %lo(__osRcpImTable)($t2) +/* 4698 80003A98 3C01A430 */ lui $at, %hi(D_A430000C) +/* 469C 80003A9C AC2A000C */ sw $t2, %lo(D_A430000C)($at) +/* 46A0 80003AA0 3088FF01 */ andi $t0, $a0, 0xff01 +/* 46A4 80003AA4 3169FF00 */ andi $t1, $t3, 0xff00 +/* 46A8 80003AA8 01094024 */ and $t0, $t0, $t1 +/* 46AC 80003AAC 3C01FFFF */ lui $at, 0xffff +/* 46B0 80003AB0 342100FF */ ori $at, $at, 0xff +/* 46B4 80003AB4 01816024 */ and $t4, $t4, $at +/* 46B8 80003AB8 01886025 */ or $t4, $t4, $t0 +/* 46BC 80003ABC 408C6000 */ mtc0 $t4, $12 +/* 46C0 80003AC0 00000000 */ nop +/* 46C4 80003AC4 00000000 */ nop +/* 46C8 80003AC8 03E00008 */ jr $ra +/* 46CC 80003ACC 00000000 */ nop +endlabel func_80003A30 diff --git a/banjo.jp.yaml b/banjo.jp.yaml new file mode 100644 index 00000000..1773c085 --- /dev/null +++ b/banjo.jp.yaml @@ -0,0 +1,86 @@ +options: + basename: banjo + find_file_boundaries: true + compiler: "\"IDO\"" + undefined_syms_path: undefined_syms.jp.txt +segments: + - name: header + type: header + start: 0x00000000 + subsegments: + - [0x00000000, header, header] + - name: boot + type: bin + start: 0x00000040 + - name: bk_boot + type: code + start: 0x00001000 + vram: 0x80000400 + subsegments: + - [0x00001000, asm] + - name: assets + type: bin + start: 0x00005E90 + subsegments: + - [0x00005E90, bin, assets] + - name: soundfont1 + type: bin + start: 0x00DA80A0 + subsegments: + - [0x00DA80A0, bin, soundfont1.ctl] + - [0x00DB8E90, bin, soundfont1.tbl] + - name: soundfont2 + type: bin + start: 0x00EC7890 + subsegments: + - [0x00EC7890, bin, soundfont2.ctl] + - [0x00ED16F0, bin, soundfont2.tbl] + - name: core1.jp.rzip + type: bin + start: 0x00F3CC30 + - name: core2.jp.rzip + type: bin + start: 0x00F5B1A0 + - name: level2.jp.rzip + type: bin + start: 0x00FC8190 + - name: level9.jp.rzip + type: bin + start: 0x00FCA100 + - name: level6.jp.rzip + type: bin + start: 0x00FCD300 + - name: level1.jp.rzip + type: bin + start: 0x00FD2AB0 + - name: level0.jp.rzip + type: bin + start: 0x00FD6710 + - name: level3.jp.rzip + type: bin + start: 0x00FD8740 + - name: level8.jp.rzip + type: bin + start: 0x00FDDC80 + - name: level4.jp.rzip + type: bin + start: 0x00FE2E60 + - name: level10.jp.rzip + type: bin + start: 0x00FE8A90 + - name: level12.jp.rzip + type: bin + start: 0x00FEB1A0 + - name: level5.jp.rzip + type: bin + start: 0x00FED3D0 + - name: level11.jp.rzip + type: bin + start: 0x00FF46E0 + - name: level7.jp.rzip + type: bin + start: 0x00FFA4D0 + - name: emptyLvl.jp.rzip + type: bin + start: 0x00FFED30 + - [0x01000000] \ No newline at end of file diff --git a/banjo.pal.yaml b/banjo.pal.yaml new file mode 100644 index 00000000..355b9b42 --- /dev/null +++ b/banjo.pal.yaml @@ -0,0 +1,185 @@ +options: + basename: banjo + find_file_boundaries: True + compiler: "IDO" + platform: n64 + asm_endlabels: "endlabel" + cpp_args: + - "-Iinclude" + - "-Iinclude/2.0L" + - "-D_LANGUAGE_C" + generated_c_preamble: | + #include + #include "functions.h" + #include "variables.h" + create_detected_syms: yes + undefined_syms_path: undefined_syms.pal.txt + symbol_addrs_path: symbol_addrs.boot.pal.txt + undefined_funcs_auto_path: undefined_funcs_auto.pal.txt + undefined_syms_auto_path: undefined_syms_auto.pal.txt + base_path: . + target_path: baserom.pal.z64 + asset_path: bin + build_path: build/pal +segments: +- [0x0, bin, binner] +# - name: header +# type: header +# start: 0x00000000 +# - name: boot +# type: code +# start: 0x00000040 +# vram: 0xA4000040 +# subsegments: +# - [0x0040, asm, boot] +# - [0x0B70, bin, boot2] +# - name: entry +# type: code +# start: 0x1000 +# vram: 0x80000400 +# subsegments: +# - [0x1000, hasm, entry] +# - name: boot/bk_boot +# type: code +# start: 0x1050 +# vram: 0x80000450 +# subsegments: +# - [0x1050, c, done/bk_boot_1050] +# - [0x1150, c, done/rarezip] +# - [0x12B0, c, done/inflate] +# - [0x27F0, c, done/overlays] +# - [0x2970, c, done/initialize] +# - [0x2C00, c, done/pirawdma] +# - [0x2CE0, c, done/pigetstat] +# - [0x2CF0, hasm, bzero] +# - [0x2D90, hasm, setsr] +# - [0x2DA0, hasm, getsr] +# - [0x2DB0, hasm, setfpccsr] +# - [0x2DC0, c, done/sirawread] +# - [0x2E10, c, done/sirawwrite] +# - [0x2E60, hasm, ultra/exceptasm] +# - [0x3770, hasm, writebackdcache] +# - [0x37F0, hasm, invalicache] +# - [0x3870, hasm, maptlbrdb] +# - [0x38D0, c, done/pirawread] +# - [0x3930, c, done/ll] +# - [0x3BF0, bin, padding3BF0] # Empty space +# - [0x3C50, c, done/virtualtophysical] +# - [0x3CD0, c, done/si] +# - [0x3D00, c, done/thread] +# - [0x3D40, c, done/leointerrupt] +# - [0x45C0, c, done/seteventmesg] +# - [0x4630, hasm, ultra/setintmask] +# - [0x46D0, c, done/destroythread] +# - [0x47D0, hasm, probetlb] +# - [0x4890, c, done/leodiskinit] +# - [0x4990, c, done/epirawdma] +# - [0x4BC0, hasm, interrupt] +# - [0x4C00, c, done/pimgr] +# - [0x4D90, c, done/cartrominit] +# - [0x4E90, c, done/createmesgqueue] +# - [0x4EC0, c, done/piacs] +# - [0x4F80, c, done/getthreadpri] +# - [0x4FA0, c, done/setthreadpri] +# - [0x5080, c, done/createthread] +# - [0x51D0, c, done/devmgr] +# - [0x5660, c, done/startthread] +# - [0x57B0, c, done/sendmesg] +# - [0x5900, c, done/recvmesg] +# - [0x5A40, c, done/resetglobalintmask] +# - [0x5AA0, c, done/epirawwrite] +# - [0x5AF0, c, done/epirawread] +# - [0x5B40, c, done/setglobalintmask] +# - [0x5B90, c, done/yieldthread] +# - [0x5BE0, c, done/kdebugserver] +# - [0x5BE0, .data, done/inflate] +# - [0x5CE0, .data, done/initialize] +# - [0x5D00, .data, ultra/exceptasm] +# - [0x5D20, .data, done/thread] +# - [0x5D40, .data, done/pimgr] +# - [0x5D70, .data, done/piacs] +# - [0x5D80, .rodata, ultra/exceptasm] +# - [0x5DD0, .rodata, ultra/setintmask] +# - [0x5E50, .rodata, done/devmgr] +# - [0x5E70, .bss, done/bk_boot_1050] +# - [0x5E70, .bss, done/rarezip] +# - [0x5E70, .bss, done/inflate] +# - [0x5E70, .bss, done/initialize] +# - [0x5E70, .bss, done/kdebugserver] +# - [0x5E70, .bss, done/leointerrupt] +# - [0x5E70, .bss, done/seteventmesg] +# - [0x5E70, .bss, done/leodiskinit] +# - [0x5E70, .bss, done/pimgr] +# - [0x5E70, .bss, done/cartrominit] +# - [0x5E70, .bss, done/piacs] +# - name: crc +# type: bin +# start: 0x5E70 +# subsegments: +# - [0x5E70, bin, crc] +# - name: assets +# type: bin +# start: 0x5E90 +# subsegments: +# - [0x5E90, bin, assets] +# - name: soundfont1 +# type: bin +# start: 0x00DA8DF0 +# subsegments: +# - [0x00DA8DF0, bin, soundfont1.ctl] +# - [0x00DB9BE0, bin, soundfont1.tbl] +# - name: soundfont2 +# type: bin +# start: 0x00EC85E0 +# subsegments: +# - [0x00EC85E0, bin, soundfont2.ctl] +# - [0x00ED2440, bin, soundfont2.tbl] +# - name: core1.pal.rzip +# type: bin +# start: 0x00F3D980 +# - name: core2.pal.rzip +# type: bin +# start: 0x00F5BEC0 +# - name: CC.pal.rzip +# type: bin +# start: 0x00FC8460 +# - name: MMM.pal.rzip +# type: bin +# start: 0x00FCA3C0 +# - name: GV.pal.rzip +# type: bin +# start: 0x00FCD5C0 +# - name: TTC.pal.rzip +# type: bin +# start: 0x00FD2CC0 +# - name: MM.pal.rzip +# type: bin +# start: 0x00FD6900 +# - name: BGS.pal.rzip +# type: bin +# start: 0x00FD8930 +# - name: RBB.pal.rzip +# type: bin +# start: 0x00FDDE80 +# - name: FP.pal.rzip +# type: bin +# start: 0x00FE3060 +- name: SM.pal.rzip + type: bin + start: 0x00FE8CA0 +- name: cutscenes.pal.rzip + type: bin + start: 0x00FEB540 +# - name: lair.pal.rzip +# type: bin +# start: 0x00FED780 +# - name: fight.pal.rzip +# type: bin +# start: 0x00FF4A50 +# - name: CCW.pal.rzip +# type: bin +# start: 0x00FFA830 +# - name: emptyLvl.pal.rzip +# type: bin +# start: 0x00FFF090 +- [0x01000000] \ No newline at end of file diff --git a/banjo.us.v10.yaml b/banjo.us.v10.yaml new file mode 100644 index 00000000..dadd6fb0 --- /dev/null +++ b/banjo.us.v10.yaml @@ -0,0 +1,199 @@ +sha1: 1fe1632098865f639e22c11b9a81ee8f29c75d7a +options: + basename: banjo + find_file_boundaries: True + compiler: "IDO" + platform: n64 + asm_endlabels: "endlabel" + cpp_args: + - "-Iinclude" + - "-Iinclude/2.0L" + - "-D_LANGUAGE_C" + generated_c_preamble: | + #include + #include "functions.h" + #include "variables.h" + create_detected_syms: yes + undefined_syms_path: undefined_syms.us.v10.txt + symbol_addrs_path: symbol_addrs.boot.us.v10.txt + undefined_funcs_auto_path: undefined_funcs_auto.us.v10.txt + undefined_syms_auto_path: undefined_syms_auto.us.v10.txt + base_path: . + target_path: baserom.us.v10.z64 + asset_path: bin + build_path: build/us.v10 +segments: +- name: header + type: header + start: 0x00000000 +- name: boot + type: code + start: 0x0040 + vram: 0xA4000040 + subsegments: + - [0x0040, asm, boot] + - [0x0B70, bin, boot2] +- name: entry + type: code + start: 0x1000 + vram: 0x80000400 + subsegments: + - [0x1000, hasm, entry] +- name: boot/bk_boot + type: code + start: 0x1050 + vram: 0x80000450 + subsegments: + - [0x1050, c, done/bk_boot_1050] + - [0x1150, c, done/rarezip] + - [0x12B0, c, done/inflate] + - [0x27F0, c, done/overlays] + - [0x2970, c, done/initialize] + - [0x2C00, c, done/pirawdma] + - [0x2CE0, c, done/pigetstat] + - [0x2CF0, hasm, bzero] + - [0x2D90, hasm, setsr] + - [0x2DA0, hasm, getsr] + - [0x2DB0, hasm, setfpccsr] + - [0x2DC0, c, done/sirawread] + - [0x2E10, c, done/sirawwrite] + - [0x2E60, hasm, ultra/exceptasm] + - [0x3770, hasm, writebackdcache] + - [0x37F0, hasm, invalicache] + - [0x3870, hasm, maptlbrdb] + - [0x38D0, c, done/pirawread] + - [0x3930, c, done/ll] + - [0x3BF0, bin, padding3BF0] # Empty space + - [0x3C50, c, done/virtualtophysical] + - [0x3CD0, c, done/si] + - [0x3D00, c, done/thread] + - [0x3D40, c, done/leointerrupt] + - [0x45C0, c, done/seteventmesg] + - [0x4630, hasm, ultra/setintmask] + - [0x46D0, c, done/destroythread] + - [0x47D0, hasm, probetlb] + - [0x4890, c, done/leodiskinit] + - [0x4990, c, done/epirawdma] + - [0x4BC0, hasm, interrupt] + - [0x4C00, c, done/pimgr] + - [0x4D90, c, done/cartrominit] + - [0x4E90, c, done/createmesgqueue] + - [0x4EC0, c, done/piacs] + - [0x4F80, c, done/getthreadpri] + - [0x4FA0, c, done/setthreadpri] + - [0x5080, c, done/createthread] + - [0x51D0, c, done/devmgr] + - [0x5660, c, done/startthread] + - [0x57B0, c, done/sendmesg] + - [0x5900, c, done/recvmesg] + - [0x5A40, c, done/resetglobalintmask] + - [0x5AA0, c, done/epirawwrite] + - [0x5AF0, c, done/epirawread] + - [0x5B40, c, done/setglobalintmask] + - [0x5B90, c, done/yieldthread] + - [0x5BE0, c, done/kdebugserver] + - [0x5BE0, .data, done/inflate] + - [0x5CE0, .data, done/initialize] + - [0x5D00, .data, ultra/exceptasm] + - [0x5D20, .data, done/thread] + - [0x5D40, .data, done/pimgr] + - [0x5D70, .data, done/piacs] + - [0x5D80, .rodata, ultra/exceptasm] + - [0x5DD0, .rodata, ultra/setintmask] + - [0x5E50, .rodata, done/devmgr] + - [0x5E70, .bss, done/bk_boot_1050] + - [0x5E70, .bss, done/rarezip] + - [0x5E70, .bss, done/inflate] + - [0x5E70, .bss, done/initialize] + - [0x5E70, .bss, done/kdebugserver] + - [0x5E70, .bss, done/leointerrupt] + - [0x5E70, .bss, done/seteventmesg] + - [0x5E70, .bss, done/leodiskinit] + - [0x5E70, .bss, done/pimgr] + - [0x5E70, .bss, done/cartrominit] + - [0x5E70, .bss, done/piacs] +- name: crc + type: bin + start: 0x5E70 + subsegments: + - [0x5E70, bin, crc] +- name: assets + type: bin + start: 0x5E90 + subsegments: + - [0x5E90, bin, assets] +- name: soundfont1 + type: bin + start: 0xD846C0 + subsegments: + - [0xD846C0, bin, soundfont1.ctl] + - [0xD954B0, bin, soundfont1.tbl] +- name: soundfont2 + type: bin + start: 0xEA3EB0 + subsegments: + - [0xEA3EB0, bin, soundfont2.ctl] + - [0xEADE60, bin, soundfont2.tbl] +- name: core1.us.v10.rzip + type: bin #type: rzip_code #compressed code + start: 0xF19250 + #vram: 0x8023DA20 +- name: core2.us.v10.rzip + type: bin #type: rzip_code #compressed code + start: 0xF37F90 + #vram: 0x80286F90 +- name: CC.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFA3FD0 + #vram: 0x803863F0 +- name: MMM.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFA5F50 + #vram: 0x803863F0 +- name: GV.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFA9150 + #vram: 0x803863F0 +- name: TTC.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFAE860 + #vram: 0x803863F0 +- name: MM.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFB24A0 + #vram: 0x803863F0 +- name: BGS.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFB44E0 + #vram: 0x803863F0 +- name: RBB.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFB9A30 + #vram: 0x803863F0 +- name: FP.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFBEBE0 + #vram: 0x803863F0 +- name: SM.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFC4810 + #vram: 0x803863F0 +- name: cutscenes.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFC6F20 + #vram: 0x803863F0 +- name: lair.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFC9150 + #vram: 0x803863F0 +- name: fight.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFD0420 + #vram: 0x803863F0 +- name: CCW.us.v10.rzip + type: bin #type: rzip_code/overlay #compressed code + start: 0xFD6190 + #vram: 0x803863F0 +- [0xFDAA10, bin, emptyLvl.us.v10.rzip] +- [0xFDAA30, bin, trailer] # 0xff to end +- [0x1000000] # end of ROM diff --git a/banjo.us.v11.yaml b/banjo.us.v11.yaml new file mode 100644 index 00000000..f8c9bf00 --- /dev/null +++ b/banjo.us.v11.yaml @@ -0,0 +1,87 @@ +options: + basename: banjo + find_file_boundaries: True + compiler: "IDO" + undefined_syms_path: undefined_syms.us.v11.txt + symbol_addrs_path: symbol_addrs.us.v11.txt +segments: + - name: header + type: header + start: 0x00000000 + subsegments: + - [0x00000000, header, header] + - name: boot + type: bin + start: 0x00000040 + - name: bk_boot + type: code + start: 0x00001000 + vram: 0x80000400 + subsegments: + - [0x00001000, asm] + - name: assets + type: bin + start: 0x00005E90 + subsegments: + - [0x00005E90, bin, assets] + - name: soundfont1 + type: bin + start: 0x00D87CA0 + subsegments: + - [0x00D87CA0, bin, soundfont1.ctl] + - [0x00D98A90, bin, soundfont1.tbl] + - name: soundfont2 + type: bin + start: 0x00EA7490 + subsegments: + - [0x00EA7490, bin, soundfont2.ctl] + - [0x00EB12F0, bin, soundfont2.tbl] + - name: core1.us.v11.rzip + type: bin + start: 0x00F1C830 + - name: core2.us.v11.rzip + type: bin + start: 0x00F3ADB0 + - name: level2.us.v11.rzip + type: bin + start: 0x00FA6F80 + - name: level9.us.v11.rzip + type: bin + start: 0x00FA8EE0 + - name: level6.us.v11.rzip + type: bin + start: 0x00FAC0E0 + - name: level1.us.v11.rzip + type: bin + start: 0x00FB1810 + - name: level0.us.v11.rzip + type: bin + start: 0x00FB5450 + - name: level3.us.v11.rzip + type: bin + start: 0x00FB7480 + - name: level8.us.v11.rzip + type: bin + start: 0x00FBC9C0 + - name: level4.us.v11.rzip + type: bin + start: 0x00FC1BA0 + - name: level10.us.v11.rzip + type: bin + start: 0x00FC77E0 + - name: level12.us.v11.rzip + type: bin + start: 0x00FC9EF0 + - name: level5.us.v11.rzip + type: bin + start: 0x00FCC120 + - name: level11.us.v11.rzip + type: bin + start: 0x00FD3400 + - name: level7.us.v11.rzip + type: bin + start: 0x00FD91F0 + - name: emptyLvl.us.v11.rzip + type: bin + start: 0x00FDDA80 + - [0x01000000] \ No newline at end of file diff --git a/diff b/diff new file mode 100755 index 00000000..16411599 --- /dev/null +++ b/diff @@ -0,0 +1,5 @@ +#!/bin/bash + +python3 ./tools/asm-differ/diff.py -wm3 $1 + + diff --git a/ido/ido5.3_recomp/Makefile b/ido/ido5.3_recomp/Makefile new file mode 100644 index 00000000..84a5de31 --- /dev/null +++ b/ido/ido5.3_recomp/Makefile @@ -0,0 +1,37 @@ +IRIX_ROOT := ../ido5.3_compiler + +cc: OPT_CFLAGS := -O2 +cfe: OPT_CFLAGS := -O2 +uopt: OPT_CFLAGS := -O2 +ugen: OPT_CFLAGS := -O2 +as1: OPT_CFLAGS := -O2 +acpp: OPT_CFLAGS := -O2 + +RECOMP := recomp + +ugen_c.c: RECOMP_FLAGS := --conservative + +all: cc cfe uopt ugen as1 acpp copt ujoin uld umerge usplit err.english.cc + +clean: + $(RM) cc* cfe* uopt* ugen* as1* acpp* copt* ujoin* uld* umerge* usplit* err.english.cc $(RECOMP) libc_impl.o + +$(RECOMP): recomp.cpp + $(CXX) $^ -o $@ -std=c++11 -O2 -Wno-switch `pkg-config --cflags --libs capstone` + +libc_impl.o: libc_impl.c libc_impl.h + $(CC) $< -c -fno-strict-aliasing -O2 -DIDO53 + +err.english.cc: $(IRIX_ROOT)/usr/lib/err.english.cc + cp $^ $@ + +cc_c.c: $(IRIX_ROOT)/usr/bin/cc $(RECOMP) + ./$(RECOMP) $(RECOMP_FLAGS) $< > $@ + +%_c.c: $(IRIX_ROOT)/usr/lib/% $(RECOMP) + ./$(RECOMP) $(RECOMP_FLAGS) $< > $@ + +%: %_c.c libc_impl.o + $(CC) libc_impl.o $< -o $@ $(OPT_CFLAGS) -fno-strict-aliasing -lm -no-pie + +.PHONY: all clean diff --git a/ido/ido5.3_recomp/acpp b/ido/ido5.3_recomp/acpp new file mode 100755 index 0000000000000000000000000000000000000000..6dcb6c097676494f627ffd0fa308d2189cb8c327 GIT binary patch literal 154688 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

0v^m;cG4I->|c!XYi8H? z!8n}x;;cWknMX-gHisk8S%75l;=;AVwK3n(p47y3uC80Uwqj2(Pc^*Va(0Cq1A`ns zZ*Oj<8s788MptEes#>ry_yuM)wlx)Y1QsT?qu6s&Ge-6GvyHIPm`?zTC=B04*r>NR zkg(e-)=1$m1OH|C+Vu2P%;Hop=LD*L`FkxPD>-!XLU}dKMx|i$l34|<3$ti1`73{p zsd-Ww4-A66w3T7AY*U)!jATal!oJ8Xb`UOn*hR#;I0v{#8F=(P0{ejIc-)~cUe;QN zqOiSnos6}``$UJv=nwsTE%K`gSX&GN`jC8Z5|Vd{eq zm<7BZ#9)g#r#^ZC_J@xqvs%ak=mC9U_OHy8RS45=MrIeaAQIfi1*&^J2z&{DNrk<3Bxv#Q=7_mYer!PShSYYGyx0a{(wVXKMFnp z*h|Cy8QLwX4D^7z2E|ub`GMsL~*Yxy(~ju&-$wERF_E0PknVv3qPDL_->@1LUx4&2_a(X6!2v zX3dV@L7k9~-?tt+1Y*f+RE_Z-Tkaa(G{>NW1sV2ZzsI0c%wV`Y;^tehTVg$SmOY2q zwZ zgjCWh!=J6VTwcGZr|N;)wvPs-?KJV~`#&nbsb>~vLay=g49knK5^pTVd5Mk}<3TiB z!oJo#-*Wae6<`CFv|!)*aWaVXfu80;z)h2syhQ4%^hNL=Ic&ba7YyVh(50U8`?m&3 z@U1L?r|;dUEN>4f5Sb4DgDa)=`eOD)rFsj*KnbBT`ZdF!+nqs#+7QVHw9HEuDMjh4*cfEJYFH(&%OEA=A^Q(kmJn29Lnl4* z!@mHS*cGoN`v%R7;+e-(w%`0YI@tir7lb0K_l1uyz1f#{-0h>z=@f8&YPMrPi>j`O z+<#uE<+LbOIZoEcrLl2dSDja*PEp(a|1hn$APpSW587|FecyS#`b}x!Mz{~7KWn{m zm^Kzw{VFoQBB$xgIaaY_>2-igez=&D3R>kyNC(ny@`9b@Y%SO*uO?l{Q=5|vu-Q#s zOF=L`-T*DM{|wLo0Ie=aviT7K>x@w)P%N)6k&9UbOR5oSP9(~l`8Ao`D^KU`0A4ZM zNdx*hD5HGV0C_Jl6|OM5SIetPZ_L{;wg91hyi9ZAgw!-V17eATHj zI7)|V{0UP>OITQV@$}LPBMr08EA-95fGfkHQ5(-@v@zc0=r;3t0OhuqqV?~whXxkd z3x@yO_C&HKK1(Ch!J62;u}&-;cSL`0CUHp54Ie43!c&XeYoQ;E{a5+{XOD13J9{I> z)(@P07)Ndw7iuRUnGxJwu^1WICO1- z$~{6c(lZeNZ|Mz616Sal1Vxpj`U?L$(z4_9fSj7A!F(K*;T1_7x_CNN_fa`VJy6P< zqTNs*>@fw~0)ybxWq5Oe6>jtNrsjM520r7swCxpK5rsX+T|OP0qB0^MTL2RTx0b9x?M~HN@GdYx)TL$iLi-eHh%4Q)1j7&)LuW z9(TNdW8caAu0B4+BY2N(=p^10;UnVE>4WB-=vjPxh+bnj=wRYD^CDoQ70;t9td(~r zM#PUG&YrKX{f2+JFaPiKFWuF@md%O!R}6U_+f47+znaScoTm5ay>XCmeC-TXYOiy{!?t5Ri=k)?l-UMQ zYADuB@LKrj-U#Dp?i#?~JLmc@C=Ol7W!g8=LUL`kk z30$I-Un>PaE~s660Xm?1urm_lKlR?ew*N0Iw;kJ~^)9)fXz<>}8|nyL5Ys==09e>j z96&oomAA4ZSbbu!WMF3)SV>O3SQqe2mFa!45Ed{YPhaYvT`_k^L{IJY^}pSoYNVr$ za3c)2*~EWQd1W`XU`yaqYKah$-q!&T&9&I=#Nm(i3n}P1unH@1Z$0JqcL$-eIl33# z@tB+9!dgc=@lH@m@D*ETEhy<=u*$yBmN_;&|800M*=$F4Gcqncw=R^B8XaVhg z?PDK`f(lRvy9!k7uBa}U+0oye*ONu{=qWYZutp*exOxu(sj~j5+&~Ze3u4jFzv?MZ zAP>?Sys4OoG5fs>zucv00{q=`>M;oDOL{6fr2jxAVHJs<&*wexX=LVdL}vDdnLG>D zjU&nVnR4KB?tb(Yti3c?R9P^BtpNnx^ose5CDk$Hz?zOSK_3g;jRS*=v1Ee$!6mSm6;S>uT1jKJfIjA+2sh1S&7Ic>E`MPNpESqp1np0)i}RCXZ{a1CC-04omC_& z&MteKgX?dvlHnEh*M4}o?5`EsWYx`!tU5*M*ta0_raXQ(RzNirBlm*+ntrm_C-lgr zA6ScFQly{h^s_+jC3-_ovRl)0jr}AGHH9PglPu5_Zn2-Oc$)beNyat6l=P##2z2?t zC9eL<>-{M>wUFtxT^uX@eWZfAB?ri!Ev)m7dN~Y6YU&?Ox;RzHO3I!2}@ zp<;Mk5Rhg(G_DzUh02l7m3{NC$mQa9TrS;%I8sW8A53D$;SN8UPEEPRx61YLncizi z=rV7%IgZM(1~hMKc!eELGw$`Uugq(qu)|b3OkvR9;pE$pvlsjUeu`kHHjc@Sl(wS} zc2eNeg#yoy)6|*N9}dqsHqv6?ypav$bAUEN-2yzGZvj3n9Co~p0m)#!^@&~>aP*03 z4A!BE>8vDOpP0c)GW3a=tRz#P*pHR;(z@3ejq zGl5%9d~6e)xzSiu^PFa%m=kGouJ_4n(*mh_Fb#ZG3ALP96(vIr&bC6~2&Pr~x%r--8jy$wDhD(r{YYt+(Z82f(fGlL8~g!`xF=x=pz{w` za~toi`7q*+;Q+hjubqDg=b@e# z*Piy4Pms}M8r#Tx4sypec>hMZtsl12s0#a7XiL^PTWDBKhU2d2tVp)*;DsP(aFQW3 z)U$LT(b;y<6_S%Oo9HFkV8id&&pYnb^J&&Ebjq{h0rrl<-c^mj`R!y)Je}7Vy^<(R z_jw`Ch4VG-wFCT^%Qt+$L#Mh0{M;E^Dfk3-mbsGW{~^U2zadVa{2DC$6N~^#g+_Sf$~r_U z`gpI9#{5K%zXwcE74Naf!S3H}pQO7$3Ob`r(*KuguUN=m)b zBH`q&5){2mRB1jAW(4z2@yv!|Jy(9kJO22ltiU3IAsgb85OyFunSK{Ve|yION7UOFr#lc^sMTo)mAr7tK|R>{lMAg@^9zJ;lDwY z>65D!+$)gGmRCa|L7#vg9I}}e$i*-6{2Y0}UH-)wj0U&ZyMZPS zulH5t1ZLZ>kSpkDZf1kTLsG@c(n;1;_wOj;rH6X@RMP4aK;n=_bSbM{On@ zVN~wlBKqfNzP090Vg2*#zP0Ejq%QO{(&1mDe=tf;V29volcSF#M5vVk;BB1O6B_2h?u9q_!?WzKoUcOdbolC|I-9TF zBt!o68C^F>V%!Qlw!!-ssR$=Hlj%45tW6)bhC7Bs0sWR6d|``q7>vUwl{W~>)-wEX z`o?KbVzH+}XW9e(^|9XT#-;`O0k3Q<0S+rtYADH5ez(le11MZJM89$AH{2e@v7qX! zNg`nVK|3wZ{Lo)E5$R*Kijke)nib3g?$IBEi@j+W6{FOKfOV%(O%DnHo85bJy5KNDX*~rd;J^|-n42IVM)Ow ztRU}oIYtQgz6738b6RqEf`=Exf=z54)?po7@KN9!SkD0_Ad7wmA{X+@C0|6ZSzR&v zNNi8_)03G$J57FZE1Q&^uCQ&b#-|U3<$O%$5_PV;6ynjEU{2y~GP{%#x$e$KcTe+37T$)T`T19M6H; z2E{augo`uqBw5_!g^eh2^qp=TA&u&0qwq36`<%o~zwi$E@w#v$z)zDOkDxQ@S#_0D zvQy=X-vDQdemk}>Qswb2SY`F3UGx*? zpRtRMkPllkkl6O7pwIKU8QDt{I@Ra72M6<76qc&yd>VWsaAZ^D5=H$lVln1Ki?nAjNR^ zn}Z}wsx>s7l!jD#SOZau;A_Z=G zsy_80bZ@d=P%DQ`w9LD?7ca&*TZVhP6wZ<> zUItKwi-NPq>7xd60|)Q6T=5LDVqfz%5Bx*K_PUJ^SIgAiRI~?L>5ewBZ4_QkEiA&p zq)j;AxY@&Ngk;F0GYqW8QgT5LkDgg5mK)SKVIboW1u|;OxV} z7QxxC8pb($(+F_(2mV2vP`W|)4#bxEQ#D!Wfqh;J^5AvkG&R(qk9p#CRIN{b%2=`h zo1NgAN=_5quR-VcxRyi`9!HL0Ejj4!`tPa2M&tIMaysqYf9qQap2Y3XrS`YHMD3sd zziK~lDQ`Q*FV1TJ0nt9j0ecZZH~X?+Lv?iJql{^>7un@#p+R_{4ytkYgS0H|uN+@HLay#dsWc#}xq1v7Q5F>x&o= z2(G)Z?G8utz&NWg+*Dsj;degi{c9LVhYL9hrr<<&@(Le1@*t|;tvg^?$n;=sXqo?5ea zsMQl{@!0D#N+X8=r@Zy;^BwIytWA?&tVi8KU(gVKT03#Z(Z3MJoh~PigN5++5oSlU z_gY-(6mD~cdH&AfPUTG}{ivMLqiLiEH=d2GUDWNUCJ(12a*=dYo>I$0nq1R%J#|LF zCvwE`E00Wh8pRi-e$9*Gez_?rm5AU$Q5K^X&o8pY!&|pCJcd4 zGYta|?mrsecEKjouuH*Omt*ug^asd7DOZ0)`5{!kOq4&C&CAyeMfowE%iHa}558S< zpUA)2mA^-V{08NpFY-Sw@~;J$=Er~S1fO011j-*2`AbFqCn*05o%3^kGugJ1((&DX zZpFnp7DML^{{gDDcjJM9|H(cf_m@BGTvCVgyP@`!V5#}$pW&hAMLSrJH{d}g>rH0C zUq}ti%*G`)gE}6083B$Zu8)cNEwf*82g45>`gP>bH0T57NYn(O-S2WBCnS)gUBU;e z^fDl)3dx=K%lI^OjW^*7SaO?YeQnszgI2cz@Uo`7Mu>h$3S*&%i?kJj?qYsZLY~FE zw9e%<#oY$aI-lwI1!!P<7B&dG1c&?Cwl|5{n73hAJGwI5jPvrKRp>!-d~HnDI)Je$~ysh zJIoiG9;Z_NH6s7}gLu8aE*su|N9ufn!kwrL6QF; z<$t|%{%X3<&E@X^No8vPP5mDeML$?S^XGy{W>SqWiyAKxHC9uN_n}7DddY5o2<5I3 zxsPS>{ym54%rTwYxAT7v=2G*f$iG?Sf0Xj~=$yYZJ(9fOEG%@gec84CnY9o&E3XW- z_Xre(+U3BgPwEa6 zLDG%JsBIcMUt{Cb*v;_ztv81feL!RrJ#~iXUxl6VLEANF1UTrZ5x+zic4u3%^khBPzy98k{o z`iyOvyEG$OT)*oW*eIP(UcFhk! z=d-{?YWiVc0Mxr|04Jo@<2elNwapx>b795_%nlh0|9 zBd`CB{@d%6j&y8>p2Z><^P_?vWsJUU_us*b#_9R@gqIHV;G7--pUNte=cl|4uH>R* zHM?J41o}($9Y9Tknw@b6{xH4D7*2c9X1e)T;2JyIH?Yk#>jnS{te0%JJuul1`$MRF zWsU}4=R41Vt7(4|N|r;~Bf(k8@F~0us?1l{xcfn5zK!S)bq@mc(OUB-Xd*s77+>!H z-jR+~zFUl)1+RG*kc~SUy=>9|m?vO0 z%t0Koa~$_^`;&5d6E;NL?#30%&>_u*QS3~SdSu&ux(Z7e%`rj$ZhHGZd)QMn)y_T7 zU=NEOxHf%y;SYRaTz&jkhzqP+i;ez2Abk4RA+i|ZTALSWn&A3HEcy@fttH$ay;(+F zht)OiHw>2jvKhC)z6T$%UhD(6iSNr$ zLlR7AudvD0Z24>EO~AdXPk0SmLA0H(!+Zxr+AF?rm-}-tqb}HI~Q?An( z9lTL1Z*52YeRJCU1zUrk7aNnZu@zUkHgKcieVlq#%yz1JVR9!J`LQ;BN)BMWW^To> zQj@P?9Vq~yhNG+P^^!hy4URvN=}T+y(&1&Wv`@@FpbInOw}MoEW*;72>o;cAr8(uU z!@-C&^R;I%Aqqb2bgx?wcWab3^Hsksjp$Z4XRfA`VF?G9HQ`!MZJU1tn#|v!GMeMO zLD(Xu0f0{PSuR8W5;B-*eWsC|Q`ETY8uTbc_Vi zX+gg(e&4qv9S*-9qLfq6GEmS2BmH_ohu9`2^D*2Ix5+j_qtj8v zcp%BojHgglrLhLT?DgmIYyJ-S#%+1@F0bbaoMJdUex2v{;mkQJYz|zB%@MybMUd`! zaen2%Mf6*FBgj|nBN6@X4t}l~CAcKv8R|e_fla|0E=bgeLkDtqD0~f=IVWHMN#LPV zl?I3KG$;h1(K`U5v^azWmsN_Qnh~z%DI9|iy}nH7#E#eoC=;~)AKVw(M1!}UhDF1@ zk4TN*mf5v@%(G7pg8SGKBvC<4f1PrebATfA#IFRMa-Riqc)DEEpP^g|4uCt8#HJTr z%#+7Z4Q_lBD zI4Ejfh?efOp~gnukH)|vCdsR>17gV1_g7%hx)uRvHlD%Ows{PN1pnFSwVpzZLq9@Z z5Ey1JbRDt+TWxT!`sQgu!CAtB`&%P-2Nk4^O9Z}J{!jY*{}6rXc;QJ0fB*B4Tvi2p zV>bHFvHKP5^Nbnn zT(%E>Tudb))A>9Ew|fAzu>{%y0ou=dan$bY4bXNx1<)F!&k5oy?>F83oD*2`lQqhRiBcYsd~1Oga|^LDd_>aMLn5<| zReprryvpu?KsD}6kTH0fRf-Ha&uk{0tDcG}NL4~n4_%kN+gI>ma2GDM=B`v4=Xq!b zm#h0W!bVY!SLxiqSF|A?hF5{Z(#OCDK^E=})Wyb!MD!jxoQ*h|I<+lX=%QS4(CNnW zcoCT4+qqS|9lZ9(X@HO$nH4ZHf|?$5#RZ30eGtj{MgsU?CL#FHX7FR^0Yj~Yyg-q= z&5o7AV}%;xo!TC3M#*zwCDy-lk80p!CsCPPWh z%vM-W^LZHA6#aZfFU$_LCCLxNSxE9U;fRA#bOyf0xcgo6d;-5V>V-!3eoxCm_YO z!(=9bbGvaPd1gY7>y8r`LqZ#q@{Zf|?Ws4sSLbbUJRU`spyg?W?@OSof;lv{-kUsv zow`Kr-A|v?yT9SxhzsUnPX}2IbRW(KX@K9djS$`XsNTRUZUKOU`(E?N+qAL`yobdO zZc<40>Pc84eW3d!-JjfFSCji0qiU<5IHsuuU#Rj}_{Fz~WfZ=HFc<;H!vqK{B41N6 zuaoi37Daw+W2o(3JZgPuTZ3IgZS&=D7fiW&x}O@Im%~X2@ejT^^O-~n*bA0va(F)t z-XNN`_+A69Lf|7ZX|ge|xddy%kwd|%M-JzPC(CaXj>O=M^y2F#BjF!AYb2bU4-M5< z=i)oJ?0g^Vh6UEhTp#nmyJBQMR`SaYZ^ZD1Cte|CM7x6@WskW9uZzprMm@7PsN_rF zyv<4+Dya!Gr%$z8)gPDy$dqJuJ<~dSfhx<-&DGX?qD=R_i zE>vd-I*j3a4y)HQuOfUC8q72gv3ER1Z?V&0#lZF5I_!T~tW$xcCP)-Q$&psi<=Mv(FqVDW0 z`ih8CZOv=Ei7x!Xf|8(my8+bg3}?LVpV@Wejw4jV^V?&JyqH3~Np)lfKTDv{X!b_o z485Pz5q7@9=3)l*&lVpx8I20Djig<@`_l{vWJ%#F%=yn>$Aqt(EB3JwvLXd5* zUP)P3?fV@bp;On(zFNQ^GIK-q$!xo7^xuqlsElJt1VY0~mzDC9BjulQwUe#p*epMJ zjl7zSQn*IGdy|6O0V*g2?Kt|Hz*C;>w~q6U3vF2{qngEe3a-oN5TWW?1s^^uKUuJ( z7wUm@J{oOu*0<#+r!T&}{AAhU@vKe^VQm!N#m@obI7Fvxn1be5Effb#&c0dl`X;5C zkACl(+)Jbk^9n4L^<)>msDVF25t)M#D?eGZ_|N4h$1nLK#Wo`LHpGfnoc38AZ;u?Q zd3)ry8*6WOd)w`*d1vyYa+QGz^8t z_}d+LQQ0;yoaaZ*y6rTZK)))Q8#oCAh`Gr>7d(q02>XU{|WSKZqh53Tp5@_qGlfS7kev5J&=}-9zK8}J5P{g4Oa9p-S zpVK#^hQ3`19_)n~{ckSwR)23X~{8J68}<; zLJnJi>+yWZaDbNSt7s3(iXI+L;RvjMAVpyY7rSCy00J*?5<~rdW6WJa`fx5hf7vIP z&HS{)^})HuBH?TZ8ymU2n}b4a1DD*cv}eOPvmEf^l*%ReEvw4;${2q}DL53k6kgAR zY2@~kv+7~BQq7i0u$dRG2gXrNwoDQnz{8sQmS2T{}U5d6Y;upQ-rdpMY3u?Z`sp|yYk)q7m!b z*JSvvE0vbb=ay6)*G>+d86KcJoNhr3TxSo0Q{%`-Z~d3j#V^ZPoz2yMNe+!bh307v z9rP>>Fdl&qGwLDR9kMbrImF*Rmjz^Hoh2a7HQ;Ow8t&a8$uDMPEUw zwDL3l@gRG?aOX+nGWTr3$Wdk1T}0nbo4K(JzuM+xxE2{E8^g~p@mO{@*(23w+U0_G z78XY5i}AEO0q{$msycwLhp2?z3E-h%^PCXEKvffX*76qQq!?e zo6O#EPF_Nv)}KrV%TnTR0NkGEbI zl9FGR{b0_}YM1%!I&hMi!y&ZSYP&k|oGY1^ppN(w!F^nS&ugrZ*5KQMu1c`>i$k~0 zu1-9ClDQMNa7AA%t71o?lJ-Sc)B7qqn6?KC+hm5De-!W_smmKVz1f-;U* z&|y9voD$f7gON^Ow&)27CRZ594r&K4#)uf@RhW?oax>=rKI4a;Xcy2k7y?XeM<`z< zW%FLicAdLWaHj&_oE6u?xLu3S-u>_lvT;U|It9F=8x9>V9_TrW)cPdU7ojxdKoXKu zyTQrpGgwvX>=W)We&?9Vrvyt?TuO&5C`4TkPDZz3n(brru@3$2iL+@qWng#vQ`N{k z58XZ=0&y^kQ-?!sBLf$O+Aa^AkFRHCajWB&%OR<8%%88{eK18tyOvea(uB^KV2x4> zj#25wwGZAryAo`E6cQoqhfW zx8Ur={4s8hK$BS}Yv6(Xd@Qx#pd5M@EZRq3=o?)=Z;*7eF1+Ln3x3!~(e763 z;aGj~o`SU?77j=>(T)Nxx}yjvm=f4y{VA58Z@6NN1sAyq@pQQ#tTP(cq2|w^#%pA& z(e(6eV9ELf88{y-h{~Y>2w>{S;Y_@61Yyu2HEj$Pe2kB7LJ2{Kqy6ac0R|_;Po zkYh$kJHW#D@iDkO_yP1Tvf>qc+8_<3!YM%?igF`6pY5CY8890@vXEq$`=I-~fdojw zUy`jUgKDt(Vc|%*Vh904bjiQeM&r<*bR^y%vOl!q;+t(`fbbdj;`-K`VLr>{N;wG} zSUpnHXnR3_Buj!eGl%vVHiC1MKG+-xixIb30IeRXavA=z=Es{f7}RB&*5Y^C>N zyIStL3`a@i*e>#MM?+!*C2npk)$W>QLrsduA-k4I7!ik_?JU7h+dae}LjsYw7eQ=rDi ziUX+Lg<+cp^q!&Bewu}QUbL>wF2fKMv@YQJAa%MXk2Idp>Hzxdu}0t>`<0EsLKZDJ zxTI$k*RmE#1@Gf4)zn9mMUA;0rynL?FKwl!qQB(&eH3_&uBs9+u_)}(?WiR^dbOZ~ zg7*XS*jFgdqF}_R2`bq&bleliI61y?Y*LITsYt;l1zAxejLxZ-cj%`b=s5b_I`-Z= zP4g`ptzl8C1l@A^*LKvGCXv46Pt8uCFp)2m%IZj^0>d9l-|}Q#h2jLkA5)!vV=E`( zITgF0{42L)kL4?}p-}AjcWt5F;9QSwsm0<<=xzFWKE10`8|&+1Jrx+l_#7k?Sej`z z2+GJnVN^l(E>X1RkJNGu4hq?&&6iLHL@*RZ-WY`Oi<5v={H}Yw1K%puSlq1OT;{TC zKzF$Hn9kVl#76At5=_<6Sz?{u*UVdurMaGp1tT`=zCoP|8;Gy7&ypW`g#tz(`#U53 zs)Dx`WgFwXxTFbJwPM|e%MQE^YM<|r1s60eIozP8@OSJYvb~7o`zd^SBoW>q$!8h_F13`?|OqyuUd{%CU)rU0qz8PdXIi?Z%efXq@SZW!|`lf+f zT_pwq-6Y=&(qrzvkoLG7}8jZ9KEVYl+0m$Q|nlELe4&-Rnb_V2=%ChRSLH&gk-E;Vfr-ZSz(<&WnCK=&$8De3`RJaB55jiO z(7WgbtQXp9W4NT$bg{XkxEOsw=2mW2k*nf=8P)AmiWiF`_Yw2oHH3q zlTD{r4@*K(8UhwYn8LX~g*P?;OST1UDfkL-H zFME>G*O7UdUieb7XwhC!W@ej<;pFPqGqd@kQqhwX52kA>(8RwcWLfBfq(Yx5IHLk7}fSmg{=s79)9e8Rl8^L8qSgV5a;OwZ;ph(msL1XV#7*|;4gtt|XF>jBj$YXQp)T$aUe2;xQ&XfqJYuyZ^$Q_8s6 zm~%{V(LpDm^q&B5?^#MH#X_##E0 zAPFc{#sTDRY`nYyuT;9S=%h1U&8=-f<2$kWEbd35&1%R8OcwSRV3E!z?*yo{@=I|o zbcH>X_#o-;&Z-9{$XF)Oj1=7O%lSrmoyw8v_Z}=I!)u_E=u=W89GlIA4iUQ#NS`tQ zae-{LVAg<);1NAA0GE;O!_|gF(T8ErgfVvyX+FhWKfVh`8=MQ5V(_!K>GR0AX!&W# z8{rQHC%th-`Y6DU)yn-hRbqIC#ixZ=LR6Zay3dhD%K8VsDoha13s&7@yLS2^D-e+WW}9X1wt z%-~9A@Grg5m~urHTnNORRM{nFKF|gue;ifdJI11?KnL(UCn-m`tve1fz&Z(|ioadTT}?)(($)3gMBlF#lwRYz{;$_8sZ_ z8Ds(KTd;AV7p6y9e>@E_iZLnkOhFT^Cy4>pRHb8wV-G5(*#+VR0_woB$iBlbo+Z9F zpBwyL8Ek%{RKo`tM^da&_ISpS^~PEl010EiI0l|UuBDyt!+@z^@{e!8tLg416~Pa-vLCscPId*8?2jqoLJ{ za2<~>D&2)9aSclkX;p0%Y|OCB9LK@=(Ks-DMJ#_h0OKaLb7l;Fa)U7{Y1PSBP+Shv z#-9%-Q4Aj@?B*n6Q8T{C0(cyhsq6(FBqIa^qOe})J4_pTq01N}Y-{()t_ch#(}(G;!Ggg!<&J1ME<)CC{ZMU_2A*z&Rc)=Fqt zf?mMl!}O(0v|b>ueiv_?cl+1@WPEQHR$@H)6cFG{rV5`hmD2Jv_dYlDaBd&Nrm^&C>n|j{eTB)fDF$<4(c;v?JD2PVMY6z_muw5QX9RnP+R9e;47E*P+!Z_5DEsH= zMks`%qCLo%feK(#REJ=}w=>kTSIPM%)aDPM%w#$I9$*qc0t^WZYFoJR{%-LYo2K|~ z7Bgt_Snpw$iH&ZI5GDZ|mCd)8&5XT}L)fUHubzj_z`2d~-Zew*k&P{k9=SC`#iWVj zM8l+28hprwshvwX;WYBa22hC9AQ86ci&<%AGY&+;f*KZT{RByQm1-hQ42H)yX$C9e z{)MlSKztVM#Vgg5Df-nQe#zgJ2nCK|ATMlx*W}VrjUg!8mdh2ilyQ;Q3OW2NM$ww; zjTWkFafOs*OBT*8Y)+CKO0Q;4=Du=@`Js+5Zf

f{r^yj<}fn6{Dm4&H6S@3>&4nYTUxYN0(T-X1=>g;v?SFqmZ39`FL(G@dpq zG9}Vtp&!1*g;&fB+}?yRc>MX0lDL4Yn!wC!EC^GlWaDRuB`C3ie2xnHh7HnrQO0|X zg|njf)UPMYdT9T5p2rDmMq!)c`M}6*HN0C0UyOI%$4sA!(tF8St2Zt^(~g$A$!EhhR_g-7QCJue9^Uo{q;TwJf#lUhmC* z-R!0&D=MG@T9#s(KT;7D&ta7xhWtw5`+9%QIlBwm{p0%w?3{C+^PK1TJfG+D`}28- zAp6=j=W#c8M3Vj4lK^|PPk+P)cCYs}ENJxmx$@3Ei0>~yZz zBE{pldz0?M0u_21q4FW5uxx^Ea-NTZ}|&MTi6ahJF? z|1D(0oFdpNtI^3)jxanNfPf@n{~YV!-S7LoylN&dK-Ia{u{{~&Xl=8wvCG&vH5%sn ziU0|?2#J2}tEs+!j_ePmK0^5R&vcP-QMZJA0#U63J*Ep=E^XzuK@KgmgX$bm0~YUI$|L-Of@24AbWQr!VHt zLSUkw@?LB~Uj1lTXH3PZGyOL7e*|JBdEk65I-?y~c{x zX#nD^t@oXA0@0c~8rZv)P4ws@lYk|iiNHDV_yM;1TY72Dmg;QVo?IJ6$`24L)tT5< zdM)uGZ{87@V4fe7M2?T`!-5ZD}oWsBK3KwIy7srpvdj0LuQg95^>1 zR_p6)?v0Yrg1KUx?gyQFLkMS_dj;W~Ks?iH3}K9t;uR*wFg`YhaRC^&-)Ur|rfa%@ zJlQkg^FU=R?-VNKoO{I&oa+U>(%zAm!b7Kj_Cv>45zobtTT07nH$j1v%i_*Mu`^1; z&0XBI;P@KHs{(m+?(~mU^d!m++Tko^<%*Mm@fJU_8+vc2yNGV6c=&_>jw(Gs|jsq;3jfqQM5Qu@m3xrA+wJ z2l`*KlQTj{1pmuR{SUr7sJ9;sesJxe2i^bRGi~8#PN26PjIHXBvB~2rh*|zee~ZE2 zYx@V?o)dQ4(f`um(eDCt4U7>y2Bsfli$TW9D8|DYJeNEE@%vT)F9MPmH=9?x%emgj zPggCz`q~|EO*{-%@?XxqFx`T2>cpzj zw5r0QnWbeX?xJ{1?!+C%j)@y}nFMRshQldNaVNOLoE<;dvrh*5JTk)a17LDD$scPl z+?{$My1H$vU=2(n1QWxqa)-I(KklIbAgM{Uw1SQ__r5+RqAmoshor>+2wt-FQs9ir zH&}pejKHTJj=<;fjbIo5J>f@l)}2FUlq&xReGQ(~CGVcqmkycLMSMM+RjQ&$1kJ3X zNW`EEAJV`kSqh>hIakapAb3$xb&X?UBfgv39mRij>r%glhZtVmiR$%Uut-%-SGR9{ zHiE~W-wlshe>@Z(A7IZ8>WXDe{kk74K^Gs2ptUy=r11NNv@95}hqy>3d+d2E92&oq z(c`A*UG{;5B4Hnps|qVLMiY5m{3z}MqmO1csEbGSIHXw-bp?0h{%?;TBJVhrTX{3M znOni0&+y-y{CB9mF6Ui-clM)mVAk0C7tfe$gbpQ%OHc**MS3wNK4C!_c+Hxsykn>n)ox*%^V#ioB1Th7%YVtpC_02M?a_b+xy< z!?~Ar5?-O{!jQqu_siM<@-s5u*IxJoGhiOTRvv>XA-^vWiRA-G-1r0JM$)hwsb-t26f<#e^f z(ss^r=CwEW-b$?QEN5K%to6C}WO$KlZ{V=S_6h!1zRa#88u>N9mZ?Y+AbY||q0=t9 zd+BVrcsKvuBX>W-+}I`j?Ml3iwJn*gNlwmj(4;%Oji~$8Deu2n@UW-z9F4j@Q4?M+ zCeU3<7h(dbBCicdoWVcy{!Y(nvUy(ewbe`M3dtHg5v)*5%ujH01j) zYOey^-~o0))IN7ud++w8V7$MIwzd$#GPPX+5@K_}&}L;VPu~pQ4VS}m293?{L3}38 zk-ua=%J!^BXZxevyd?W6Ak(b&PY`Jm)pO1{b$I;i+f#Sp!78L1$o9m{Df<$M#RWSb z2z47f-QVqdZ2@^{&5sDC z{K|#y^?6Tm?d-RH`9%1Zq_SVUDs#fx&NW+Gv(6L6AL}!Bk;nM=L+x-w@|o?aZ~iCC z<=#6%@>HF%)!#ZV9{R{G9IQ*>hf(@Ud z+$tt>7SOg$w-VJ9im{XOxZy%b@JqT)egUFr@U#}e5r$qllsac8UZ~zznq$e_{~^&P z!D%3;;eGGo_v+Ap_2H;H1O4XK;56&7Bkr$-x55GVy)+G;he2C^mQPmN)@mshQ%Klb zHf5ZmXBJOswM+{O52rfo1@u%W_u%irxx7P)#GIxV@&TxCLAM zqzP@0$oTF&2_@^Xh)E}z_KKtMl}c}J^nV4%mfno@26~q&zh%@enN|*=*E|i4N6s-P zH;stjrwRYX^W5N8ug^_GRgrO_P|F6ZN#dG!7Efy;ba+}bjT;qfvCRaGJGq};hj88vB*1BGk=(OZnbwY=dM`L@0)UCj^t@|e-v=8XXG%VLWcts6r5vv znlg_TZ_d_??OgL(E74$Y)leyQUGh{>)k7n*nZNml`}d2j66*;GV@0)CER}Ns=tg-q zsu@|NW0>eaxdw`!2ukk&qbmTK;m?2{wRyNV`G4`EzTxaR5#+l98t{dUp$~OyD@TDl zYug@qd~4#7HCu;%VWas_9}9CYLOk>?mZQ4gLHQ!|ywN}IS)m7I z)r`;C5&Tb##RK;8>_^GBHUzHk49^z$i2LowP8B8lyCln13|!dk{V3-$wp_~054EdOi z{rk;4;P7+Iytwy{>ihV>{O|q^uxC-$o?O`FT&s3yv6;2Ut}bn=mOg9K3l0Fks6X$H zv>2hmo`IQv*#GaRp%MS4o;LK|50@C|KaQ6$Ugv%KHVDS(`H+jz3v`SDQPjl$P2j5* z4M{E-hQoOTF|oUMd+jDaIeYt>2m0&JFFhUG4X2v`xYvP5D?6BlKe~~?_?_^)OJ{U> zM^BiEll5SFqxdiL+T&2Ozkxwb@jtGD5yLhMR>3hwXO_w9l)({Dp;4^ZX4T zlMHeu*NO+~^jp59>kFzJOxx?RNgUnGKh|SkP44KX9Op=6)?aoqFOWtkj`y{0H7D(T zcw$~{vlR^(m|sM6UwsBaVpudnHKyCzW&#@b+7Kk_H{&N-#R%PF`ceb$i@qLX`3v|W zG2AU5%=d~fv23M%V~d3R%|wh?jlf|9>Rl~UJx_mIm$GW_4%)@7TRI2>Xh$ilx zlAm>tkcR24&aDG)a6BVq}p9-rO4h+C#sCn}dY(ir(t&QMb`2?05esj*C9=9SB#iw4gyV z@U!%2Um6%W(X@QNcSSgIP^KmBSGNX+z79oCL(kB!y6CW&r?7KI7FyX}LMgKT2KtX6 zb6tP`$+&;r8tDJ?QUA}N1#?OYlay+r3MRdf7|p^4uHEnrzM>#EG2>B?Yh-;6nJ0RW zd-%D|q*TPHMv0tw-PIBNRy`;-2tfcB35s3bIhK%Wa+nwdede5_7_w8{t84#Rkxk}0 zhq36ZQ>}%ez?uH1zA$)=w(ooQj1BdAmxeQrXRFJB*)EN~&}U0LueRxIulahcVohhe zID0h8M(y6(#pFz*)!9&Qh=+PCL(Mtw>(vea^r)ww(9^`-0?*sGFnaHjz5M2bbNyAA zP#ptA@EhAOU8CBesiQhfoCL60X9jJlKN0S+(87K;e9_G57Tr*<;D)T5Awz0?-D(X) z4p*V!7g@EngxxL1DNMjp#HT8hi$h(ceI_>}D1;+iNfGYoqW6 zV7G3y1`i9Ru-1kq!$+BA_M-}Oc_gctB2G9WstzUlkeD9 zsoGm13RNqGD(5y1mr_;9(TSD#AcTI@3j3A1QgwQOtDmM7d}?@-uTbyt#SjuJ$66%k zBmU+05ZmeI#!Q}w!@4lUS-(CxjW;PB`D!btFesW0Nln#uV|gN4ESp{N6UudZM9a}W zd?-hqZV19CG12eUHP%#5QWXNLVAaIGHgFQnBz-~C=FF37(o@4OBrXE6!a8Sz_@}^# zDp}bA(rKFI=lP-Kew@E?C&7cdaF>mlOxI^dV|N}3rt`V@_A&A8M}w2NO|(X^i?^Id zCmsxr*03JphYZ5F+kml^o?W)I-LaqWzb^C0uFrzbD(^cPq@ntHJd;A$Y8;cC53Vr(ycCA$J7K}D# zoNXLelN?mRLFlaR{4S1I|p zbI2pJoSfx!%qK1F5J83Ti0MN<$XQ(vbh?xG9Ne-(-=d=M&|=-JQZAV!5WbqvSp0Oh zdsX@eY*$$FLqwQF@*Kya3bFNlV03j_5J3K7C@53H?rf$jIkIqx^G8zVQswtCBjP3J zc#D&0O?e{w8dK#*A#8wka#QK7I`X^d+^N%7_pyBH(-iWD3)e;;DceUf^{L8@2pMXi z5qOOc<9o3$PRlipOjT0wXFi4H247}Zx)Y;K-d&b#5Kn6Def<~-6Z`yMK=}9;(rpxb zY3Io3C1W+bl)Ya($A2FN-K=|uecPZNy^?h%C*3I!B})Bj@+AIGPG+4#vca7~`OL}s zi4|kF?sLdiA=#v<9mmv6WB0ylB}5C!W?iuq5kFhKXU;#Krv22mo~ z`QErBa1aJD=g%S6S<2h+Xs0z`L(!M{3WIhQB%5>IQfd*c)tdhllf>a&dvwjbBX|i8 zsq#Z~mUZV%=G~bnHCVa(@gCtf+?I{Wei>OChlLm-`0pbdcm;Ez79E1JZDDPzRQX1p z-mP5wytA(FV=JuTYij5`pGA?LlXx}TeOVQhaw9h>Q-d+|29yV7poAYxCS$ut_&uu& z4kXZ~nKOe4%|%)7lLxIq;iiGE`~Fg*WJ%=*%puEH~LsEdV2r?*hvy%x9K6uf3Uiw#}7|U%NA}=zupmT|S0kk#F#0;={t>?|^Et z9h2x?^SK#LI~-}Wxiv=(tfzy!X%w9vW-D2Fg&W}l?O7}BE+!y`mBE*V{7*a2grjRt zM*T~Os3=;)`}h8e9m!-ni195DLnL;4NMbY6R3NTVVUWtTd`;Iz>iR2!&Gx#IjbJr- z>yV8$rmW>j1pi8FP)8Y~9sYa`52IH{n9GTBq))lm8D)`Ox5Ri9Vtskmn?q1;JY+qJ z<(hO=57X;?~fLj9pr`t~h+(d^IP=SQ$zXtkoBnzN5ZL5!9+jzIR^{M$kF837fjh{1F^ zJB_tCb-~Z*Mi9Q%AY9Js(wkEgPbHb8d`<94J_DZTyf0MuSNVnY#+LMOcI6Xn0(1Jo zkWBWi%`>5XvY;6hzAMb`&@i2cNNbfOLK0{;-08Cu?--_#N_z@#_KH;lKBajUlB9$_ zNm=V3tpY}4^>H&K~J}{f8(dc&ECxF zK=~)y)NA=`wFHK&4R-Ek6uERe=D!`_4nib`4F(*=@YEYB{o}nBe4kNG+!*|vZfyR{ z2s!jz^;)b7DH+!vw8sww_wd)q31S(v1R2bE#Jm7QAnL(FJynf^A#VmB=XXfKMV^Ca z0HsmE0r{0`9bt8%*3jrU7LB*x7lb*9TvUp1h@U#c6xs@+~R7{eN; zaCB12uY;}0tw?g=7i0nJj}D^J8(T! z*InwYCA_KYPW-J?mPsm^FNtMw4gsHYL=fjC;&)K9^_$ldEgZg(c_ww`Ib3;J@cQ?* zb#Wl|7onB=h;ptFcdWEeldY<~eRzXnI(U#SOmBLx=L9TJ*33+5xy-W{KiBqjVs+Nb z)yOe?#yq)v#wG}uB5BdY-vw=tIrS1*JCGvqOTyK#49t8`Sh-ALU9=Z^xb}X5w!BJo zDP;)Li?Yr;&a&DD2j6@y^W0az>R@FTbWlle1d44-zmM+7&>Ja<_Md?mr+6Tl5E2Ji zEAi9Sn0|38>Y@t5oBOsVU1t8%9< zu4Qv9CX0o!F3e3EoAT`RC$4zRX)!|EL7G=TzQ^@!4@ZGi`MdR+4@2#v5bkrur$~Hy zA+bBy!EN{xczH%nILL9H<#Z?P2!vNL0V6ay?;ALnE=YtZX%oQWp?%MQT1r(318Mj) zgbY*8^-OTDk4+f_)gikbIDv75zs97>w}HFd!|ZW+cn`rFGa6Fkm66bCc?_xYIXu=E zK&=KT``6T&Ysv~t5%Qda>_E2mh?C4Tzd303uP(f%dqTY+a3jlurA11D5(BWKC-(3yJDi-^7EHYX+ zU*}PXiDE*Qr3F~DpX&>K1DLSjp(#fM1+Qop2+*!rro-Q*aYU!i`< zG1)WS!kDBLXOgEpn|Y}CeAd}MGqZS1L-7d(op6Q<&ck=UYMRuVPUrdiq$=QY@cPts z;F?g@%O_7Qq!$s+%;R;5Dst;ZZCC^w_@7vE@uR8k3`ErH`CU$T(^qH_8OPT|VEb?9 zoUtxm6r`92r$0Iq-xtZA%zW| z<2vF)y3H2=Es+;MJ%<{m^)*08FlOc5hTud{;`1vE|8L}dCCZUSHIIZ!PDAP54?Ui1 zoA6EO4%-HDUmd6h46KFm#FUkdU|sx{Z|J3pE0A`<*E5e^^3PfC0xUFuAR@to09QDp zua$Wp!k-2|K8Ab-u}SWJe+X__zL7h~i^;F*w!U>el#ZF*Z1RVEx#0V#7vT+mY7$J{Q7U zG8Cv`)VK0Y+7J3bh9hXU_YdGY24LS5q4US}e>Zj4D@wYlOhZozhM*ROe8~Adg5t9z z3csJPq5s;R5#6|4np2dxx~`5ul}LDzSk;R75`2mVD+CN`2`oEf8Dj|1k%&4!pW$V~ z%sxaih<%5r{se9Yv+c{WLRQj@WYAi+VipQncF?e2v*^l6`cd1hxs;%+%C%Rl#X&XDp-=(W2Og?H2nWjbfbtU%%5NBMLh% zxD^B{JwVjYa~B`oH%|P7bAGw&k#5unDa z;jNQp82UFzx*3K(&5ykM-(f%^xG@tUF6@^#k#2-o_~0dgVLeGwnznG(LiuOrI;WRc zBZ&m5tNsO=6gy;Wx8&U)O#s<&0@az8*I_4cJbGr*De|`bu{#NMhU|-;X#UP>!HU}7xw@tu@6#xeXDQTxw5*>U zZUfG=ufWkj2m(?j4`KLu4WAgZ1bJ+QxdZFdZ>PsXbj;aa@|!wuGrN2f!?^;&247r# zXlV&<99CN*+qRlKKurT2!3M`P{0mlrLZNb=DlcK`bG&88G~(qtrX^dNF~VG1sq)Wx zAP{$ub>)sw52dxudVR~Y!az((T*x!>kWJA&)t%r3{>o3W6Kb;V_jWP&T*7yrO5OE> zvu4e<7D)*`laE9qwoLyu+nT~lvoQCJwwq8# z-Fo}ge55zG0c5!5An&tWoN0NCH+P8c9MGNBLnZNnFWl$m_uk=Vwx_u+>s}d|VhtXK zDNMbQ(x)S|u2YEvTG};m%0v_gl+FC%tD_Ox;gy?0ENrd|aZ^`@<$vW-n-4~G2Fs9c zL;SV=ttg)Guu}-r8t$v`Tn6^LsdWs|ItgNGVPA=a!u7TY%r75U4+;T#5-GAY0%gk?AZRc71?{H!TFNrhm( zAMoe~5Sf|_oja0fSP+Xlm!+qNZo(e?o7>~8lHhiRk9^dH0wElp%)Zq(xY23j_b1+r zc=Ka+nBc`6HMLgG_`@WddHj+Q#uV93$-2_s)=T9@$WPYqXe7vmC1AfDhXGYz&7e8P}3>`{s1MW<36b4`7UiKx)0$CF{mJyw{p{(`m#aYTRE? z)%SDekNH+)zyGbO;O2dU_!pkv@mTF}&dUB9nhi_~8Xx z^#7)UkXF1g3KZ`!$~9M=H)ih^eT`7hHD(Eiv|;9*#dS^o&mI?oJs2nwYz6BX(>p$c zY4)l#pAOE9aN8sToa_*Vx@>0hS*f!8R9GMkE{Jba0G9P_IMe$&m>zw40O9=~GMNbB zuS3jZ3gjYDA+A53m{+{pS;~X{AASY1<9YD1A)fF~_R}yTq4z?;oX6T+f*kMp|MUZ! z&g@k0>#f008IHltP|y}i&XNF~TWvqhNP>T-&7s|{7}RawPr<;2Qq)`WZdY9cKKQyO z@7Ee!-d%hq5e9`bHAR;E^c-_My@LQN`E;C`a9}!>#z`XhEKmr=h3WbJBBBbVAE+q4 zBDgg+I-gh9=+>Zt<=q8!jj6IM!FDd&k7#BAThx{iEo}i#a*Uxb{Taf*w}VGm1PyU4 zM>vo@Y~=|g7*BAzrbzr-pPOPK0yJs$fA$?A3lA-8yAuZpGR~T9t<)pX2F#6boSDhZ zAQ4*CTD^}@T>|M8yoIl`yX&VWN1$Zcqgp+xJ?v2{k4g{J!L#{C@e=B|^4iH$lcQ6W zB+qhgdi+dxIbt87ZV>tAj>RN8*Co*`>d6mGw8ANi<8xM$)SE^<8Y60r9 zLx2Pz&0@`Sq2@_Up?C}+UgTdy?4#HnEQbe`)tco(A<5!Yc{J~by=k{B3N`>*OHu}u zCZ(PMmI;051Jy7m3*ra1cb!SjLg7p(POh%u9RB0rqTK1tOs6VA5j2$N#Oj<5X4sHb zQKlg4`|3`tqNxu#5Uw8SEy!~y}U-w#bh|Q}RS-J-Wt|@VMH~$w>&_BuF&820-TNA}yPKouUCwyct z`m^XgERPAg6aA-0S+6m9pHF!&|G(aZ>Hb2#d>wezz@fvDe~f~91lOfmVTMd&c62%LO+8y!3S}d0sR2|?Mhk_C#g_33h-E6P@>ko zJEq;r)bOZn&RSk0P zc+)X-vnksapjXx~BvCRp4hHF(`dpizWlwo0MBnC^(_Br#8LI}kSV6CD@`6&8b9wIg zFa@A3QvY1u`9Z~ha zKdS!U?l5;{TWi}6O8@P6cj>bntf|Ts>d2e$Ro+ny<|7VcUjbZ zR7Wv1jIcBKR46~#g6F-jD?cK}+#qYux|tpMXP6QwiNlbwsuzcWjdJQ_`77jDBw#H; z-f@rAc1h|U`>LGQ%Qz~jt&7d$4l_v;gISo?SUS+cxrh&9TLGs_2S&i{LQ9BBI(2js zS7NV17;y9mI!-;G=m0J=9rkw@x3Iv}>ARhw0_*#&;H7)I<~0#cM<1`P! z=GRt4>jIDr=^|QD4TfDZHn_p;@wxW@htHkXWdmr)Is`)go@X({yUR=-b*OrR_)wppfg(*y0;rp2oz3dV1hvVgDut zsG4*XHq>5274;LqCy-^mfoXdpIEvvxn)0~zABz3s;bY1>!nL+#y`G&(&f3{sBPx~m zZrPzLoeKIwp3~ZQCx;Py`(f~ay>@!4ye9nhFR98WQTx}`{Y%{W;6dDs$VX_=<3tw) zU*m-kKB}tUI56B~jY8pGV#=Dxw||OAk2C^B7FEuc0$GB3lEc^q5b?oV;4E5-J`nvr zNi3=2a>Ib}IerMXSVP6Cehjp7Zb?D47U@VG`C;BQ7D}t*NQS{NsvvZ7UzYDDSh;k7 zfXP3hf`sFhZAw)qd2JGv=1)nLZy2t@t}a}_<@nQ5Pcm_30~0d%f0!RObf+O4r~99h zrq0el{yABJr?6F4jl@BM%W6|sRRF)(Ed29cwdAo_ZHV9M3ICb#ulewkV47)2_J#QV z0^J`I-UoT?Fk8-FP@r&S8T*}W0O}we5M_Je-Vm@2*aNhyfk~%xb$SKOy1cUO?$`yJ zbr{Ok>25vJw(zTd5SsWqI*HQO8zLD44n4YpBV=(O-i3`Jd~t<)k1$U$cvF)sw2mgIBDE{)-M$F}7_-JjG7$m(z5U zu+|7JWU-=l8a6Tgx&F>`w3EOj5Wn zIKcD4_b=4_&xQBn{apSnvXjBV4#JvBInmQnJ++I2*@1U&2LX|E|A99kTz21`oP2!L%JI3to1JcWD5 z?V8pCK5h1u? zQ)zHE=sd|vFB8ZSCqrISW=mnXib)%xf}TKa_B7zfy=N6Ou1b|_i2^faZCywnkr;F` z+_3Sv%$vpkz@>a@i)=$T%$BWflf2DNU%woPFC%1<>j~kLiG`4X>8--Lv5dg2OaNsh z9!ymNqg|OmA12ibI1AbH(X|+5(}JsYfBD;I@Opub5puZT5+em=-sIi8G7JVj^o|&! zaS>uxt8f9Xt2@2_jT~=i(1%G39WhDmml!Vlk+^;+F?1X*F$jeX6*v7Y?2bUf0!IcD zFToB$Q{f9sNK7l$B}^D|r+VinoQ7#frYdK`1=!d~@6{30mc}BjBA7>Kmg?{`ew^(t zo5UKU4&2C<(c7=`10GF)*rcTUi&kxX_$CXq)VBM8uvd8l?P?n2Zk26SiE_5#VeOAX zDRN<6Th_bmV1(qwBUM!bE)LEji?kYqy1Z_^#Z;C;ey*C#z&oSOf37#Kh8hZ3=C9RS zS2iwf_mUeA)hJDz z>t9i3b23p|knkDoP4>19M(&2K7`&D}B&X*jf+VWAX0j-fFmf)I3|tDKuo{ybKwIFH ziy+b;O-Z!9b{ZXtqXet)@~x{Hub2pW3PChJ$V!5-Afz`EF%9`HE#qY{7{(N~)4SR@ zj&oEens$f(<6||nP&n^|>w~uYjM9q0t5^3ZeR(GR4e&=Ia@45>IXF8>l|Q43OdY`1 zkF*z6#qq=why||}FG|UeQ_7v1ghwE3yhF)=7}!Ke2A`1J=x{92TLUx;BUYzw zi*JfE;W51_eG6aDMJklcT?^5orY#k=Esez`JtVHf zWVO)eVkJ*XTuH`9Vi-GG`@1m9J!|5MdUBI?4&UU11*; z_FCdU0-7XOhZEBmEAWhfo_?%;^M;rd1NcrXT-pRCpLDL--iijNc@0?J++5Nhv%DG){rmno0X-6T1jWwlxtl)?E z3JXQxoaOGA2wkp7W7$*VeVHCU%&vT>x~Fkk&=%S&l!d$N4Q-i-n=&3r&nzB8>GJv& zXavdm{^{S>8jeuh%+gSprV&DP@b?`IUUcN_>b!UUfk@0j-;iP`r4Xs-6lw#9m10bA zkX@&=@04OH?|mA&f*HTN{r%$$pY0;zPOAd*J2kli-bhFVXB_fQz37v2nDwf&4#`mx zw6TR91lctbM)_cYGm~i*cfJ~W6^fq3;HWQ>`qt;XCCVLw%jk?vIOQpaYVG5L14xk( z28C*^>@&eh;tL`zhhPgZG72KeYD7OL<-n1RYhJ4Mz9T#L@-=d(hphC3UG^WRoK{7cqMIKC5Z*NQI_qr-<@YX?2?~QcR@911{p#$^MhqhfC2qQrxcHLe`|3qL`eJ&>Z=C7q5;9eeLsw?d+ZEMCauVDvMDw* z?GBVqqS1)G;Wv8^ZE2MajHWbMli7O7MGUYy)I7xsVnIq_`ak6Z#?B>~L3#)Q$14Bz z1Hn=s42m@N?#zPXQ9KOKK15e9UjpuGeDmRW-5FG+k3r2dPhR{zBQ6N0#1K9n$)mxg zAR}}gH`LKkqJ9IKZAF&7BRGo&*z}3jW1}9F+Q(Wjs=DCK*CZt*g1>@sU;`3z2y~Fi zz9fTyxOLlGu>?w9DW9J^n3fx#!cQBCrVmb~FFtFcY5009km9SC<}9qtDpD$1VF`@_ zjo`A75uw4EIV9KskTedQEi717a2*fzmWE_DA=}BGdmhC`iZxPqTv zrcEB+lgUDjVF__RZWGw_Btg!B3VY_S15O}H`#FkWN6STYH zofQTL$XKggHIB}eN@!=qv`;#v*cc`bg7xDIBMBELiM9XPjxcRd&x)^j+3H{u#3uyz zv-A^#r3*0M0;CwMT)5YzR~bmP%6HrCs|}Fa!UDGc!j+mvcp)Q^plqT^yjszFCZL49 zxlPC^fc~5RB&%qM)4|WtQJft{S)rW5S3s=gyM+!zihOn=_~5IwdL;OBq|kKAOvZEh zF((}=5`MFP;Y7n0TA{89Z0|uLp`bf;kVq(5>o6lc&SDX}&3r+vo1BK=b5P*H1O2)< z;GqM}R|nsD#RmEj^y8QdnhqcAf+fUu$Plp#BL>{LrS{=Kj|3Bak)hhyV;AFljn}QR z5l7~9dEn!htdO?WsPmEydx)Lu5{)I1w{YS1Q z+tb<^)9%rJUhembOiIhANI>voWHptIzGjDtF&#&M+j~ptl?a* zYfOO%kTFZ`96ti^$BacD>2!amZAO~r$xECO1lq`@P0{LQV+ha3FPw8yx@cDl3bG4P zmu+iPJsXfFoGH#z4vDreQWjHVBQAntHyJn0x;SjP@N2=7UwQY;yh|+zY62XE88B6@ zhFfAwbY~bI}`?pRp>P`;4Y+Z?_!kmnF*qYKbS2Yq}t+h+}yJnpDrY+*OHka2ZNHA|KT1QkqXbE<@QvU76j*pNQ;G7IVmj zf^Y}mVUh^kN{<{f*FpT^INUi94VwACX$r&iW+O&$RKl3~VFk)5Iqy?XhjKL=XbjpJ zkgZk+i=<0;ih%0JLj6!OJ2ge{5{Hy^`Tlj>O?_MBge74BsBVs#yCUa_Q&3dHTK)*j z6k>vb9+J!;_2;li6N-yAxUNN;bk*P;e@0*KqI0#h*c9P9ctW}fu5N$S3nG}pDT%yj zx!f1uoB&DB)Tv|_N0x5j{V?W5FJs-pCF@=GcIl0gBv*2H=BX6zB0}T+)Cp~_akhF{ zA_9l+wG{E1z5L{epPIMPE=mtI{(}aY?ZxNRh**}+!~FOIb+6_Fng}Q^HB|qPNQ191 z;82+z-giQ1r-|xd&Cyg2k24TlSKed>LB$zhRTq4k{3T05vfU!E#52a6#Y{EN((3=O zc?QFgI{Wv(cjsI#2O|IYKFBt~|8s?f;YaY@P!Gnp61)?+dRuMFI#bjZ5#IJQx}AS} zZT}u7-24JOZByJtP$&0p|M`{CIyx^J3J4Qh!xC*@<>mh6=jbFNR)ZrT%CUbpu|b<4 z_&vRGqB_Tx250kgh5Xa2jCMa9+@Zgm2gR`+$AWPoS<88!zs(LRUBDJQd470MB$5Sm z?Zli^EJohDkYY+4N4pYGP|PcLGCPgf$EMpvI?sd*o=A)@rBr;vZU0LD7!3&t$a%?$ zbmXtZqDC`r=De@=_!lkHB@we&mabtK;cX2p2hnixEE4np1Ml1KyLYp>c^`1 z|G2Q=>2{~aU(P7p8Vj!)sIYurd@9S!9~U(!lAvKd?7Ge_dtEzxum5YUt`&IiyEV42 zuD9n5t19>^a}@l-(JUPp&3s1Fw=Tq6#a{_S2&<#;Si~tvpds$+X-#e(a>Vzwe_5Ty zq8)|wGFixbq}RL4Qc0}yx6?2tG@=1Y3SU;=NEoA3xvZP3Zvnv<6M#+TekcJ9;;gO8!1N6I8Hz|JneUY!MGp~Lmzoj=&qhy%#EFFw! zY@q| zxpuZ!9xWMvj(5lCU-GxKw$&j5DNSZYIlX}!YM@SaOfxKl?4Zz4t>>$`@2~l(5dBDJ zy;@q79Z!0A;!G7>b!HLP8nfyG zZ%jr%8sa+wy*;u>T5<5Z36C!S6Q5x^iT!I{s!i-$;eE3^YIdvogmbBrTjKsTA?rj_ zwjY9l{kS{+aYy{)!T7D!@sG#iM}LTa2vYXCP{MxvIsWlV{MM%U$By{X>+ugi{;@ay zu`B*jj^FBzf2@cfT^;}EiGSRnAG1kbyDsGGK&B$Uq?Wy#M=b0z)XYWvWW!m-VV6qX ztJz!gy&v5`%l^Hy%2u5R(7bt6-D3l*_u1Ym!;?;@J+0rjanEEv@4gP`1F{~K1(%Hm z;>*$<-hG|ny-x4G9KW=!^@8?vH-Bl<<=xkyHmlNtw;J5dU)4tkMHgu*%^9+cou<^c zTQJbVixv$d=#oh+q+JzqA$OyxXqFnItmFOh-~jhwTCXjim<hybzWUZE!8zgZ^+$5oVnK9liFFBe>#XDlE-Y|VD6zmA*X zN>Y$VgP7~jJXy=x9!9I5=XFiNdBZW*iC8;yo6|KTko~muM>X`r22eyxo8?r)7TG`E zB8`bbE~B!;9Os=m&Ysh5(_RgA`o56v^I4(;$#0nHHJ{YBGuQTJ;#vRxlQaYil|}?( z4AYaHt}>Zwjv?p^*9pagGEZ^PB$Sttgg*Ge11QwCD3$3dhDRj#^cMPOdxq|Nl1ZjF z`Bx7SQHh-Q?N})Z)|HCYjzBoDfauiO(5IjC+AUO?C7sTQ7Ef<>``1nPP%jV}-6)=p z??sWn^xKhGlXH&I+WW^`8p2lAEtQa67aB+BCRj>mG&63o;c2U;9O=oAP*Axp!eV1 zTdI6iBV1`)0%-5dtSdfc`|WL5xK7m7*({@hqfxS$$d#ZG3D8ZHEiBzB0tP(h+YtjK z7pBOX`ytj537YdQ+JFOKs!9-?M5?k6iXq7K07aY?E)~ltoQm;$b>i{NBOJZ^qp)a^ zxX!iw>`%Dj$ajGOL$)%5i+@!otLa4ey0rId*pRyGs&8h!BpCR6{#EE!PIuFY+I*0; z_`5>&`IhluGaJ}Dl3|)%l@?O8PWg0wzgll?ppSm$PU6!|7HEc0HNp^P0!7*RO|8 zL@4o)EGGgI2!?x!gk)fQ4tje%P0gjnWlv*$>8!-%oo!D<<-9D91cM6FW!u9XB@ym7 zudxZ1!pSOGZ)6ka6CZ`1E@v9ujU1it8L6Cx_hpW};x8idOLA^2R)jI$IZ3!cyr8Md zj|nFcBm^^(mK;sDNNe|jksmgJDxU}!I;y>jxPZf^NdmlOgWr+40 z4uz{>AyDbIor&K&m+@;Yt7$2X#~cqWx{M&@acL6DG_{6IQ|jue>?oUO)@`4`Toret zdV%pOQwu1kP^-XYn)B*mFv|JuO6<)Hy`0EvsEvDMLXHzNJTuG5Q#yJkcwbFqKA5`Z zdrb_c?WJ7XmR#Fw7^g${v%tq^6|0U1(i?da=I$iOrf%~+$$FlioT& zYHw~b?y2xIz0}mV@$)Mnai)T>bCVFR`{=MLIEcm>>BTH9D|3^2{`e3l z!O2~7R1p1Dnl99**GXS>9yrgNJo-E&He{94l@o(qWpdgXT?3mq$5}kO**!*_#CgE$ z7|Ci$tWzF&y*F!=c+Xhwanchva_;GPr-mWsE6-l&)ild(oD!O);k?ps?qb++MrVE4 z1|Wl#DQ^;?YAlAaE&t1J9RL~WA>>w7!O=XmePVKkNM%D9h#9Xxjh78rFX)K8MKIcL zE=JN;aD!mcZ+{T?3?8&zwSmcJ1mCv^8{S8}M&AAQ1aw(tlAQEz`wlwW2vgVA^apiK zlRPeK>s&zGa{6i1SS@Vkeqjmvu*mdL8juFZcasg%-XccnYIS zh?ncN;8nq=EJP|N(cg`bEXX3`bVhkUyDcMQ}1T=PIVMs0m z^Vmy|rTv7j{K&}pCKG<9w!t|QgQL)m# zAtJ|JBxoy_-V$i>4y?{F9C%kMTiR4pxWZYlx~r^5b_MqIuBee9Xz?C zXR460bnt{iSH8Tuc#euwZBZN*mA}hp)5s10=!0(c{gQ&S?y;f^b2+j}!j>sZ1ubiAl}&8td&fg7tVSvnN&FjZ9lQFtj*?siZ2tT`eg7nyxST z`GA<%PJ|ft7^)u4OIHV9H+(IvsR@~Bcl#6q{JsY7LRei}J@~D{v)+emf^%tapXHl_ z&NXn#*ro=;Z;@O8g$2?3B5TUjLpDAS6{T-DMAuk4^_uz~0f za3ow|Hf?wNh@r)F(89xTf7_Bgm|$dJUp%rALkqQBT)NqL-j2RP?w`0Da?+8yZXKm0 zbx@|zp~W2!9^3?ljTD0S5}OC4WeMXZiefv|>r0S*V`02OzgDyQCYCRa`D$yV7%(z;H~i%30^{Yh`x`mD&wxEgoGIi3k1Q! zC{@D#nkP|jWNL)aAvsx%Ire1oP>m&3`M6drv6K2d5gB<`i!M51$W|9$@%54hmt@%u z2k?1rGtY8#C4E7y72Jpwb&b^~xFdZFb5l&2^8&Sca&9u+Sz1S63O*l| zY3r!+K4gSWd$f=yBrcbED@8Q9UP4NmoJwqq2~hJ0N+%Wmly`ow+<+$UTT$+lFuAHY z%IYee4cFv>Wa)6@Ba8ip5g;LoT$gv#@yaHm?9o@m2`l5#ia08i$#AY+LV>*Nl2aDI zTT&k*(}mX2eE(+i?P(s34wFqh6I{TijO6%aTS)K@16^UL=`dR}+ltR+wxzy(Jt%L7 zFo$@5s0v*;p2k$2ep5IlPAjl*TFWyr{VI&t_$yy#e!Z_#SUWavK&B0k5U>Kyr@P zOoTxlgamQvg{<>IMO~>=`GLmH@vffH%>@oj(ReKIGa7ndN1n<%BWGYHnvv8+)}b~6 z-|TW4)Bb_Ik{9W`3w=#~Lu^H)Y6>-7>`xzzR_WK~!&2YKJtR^633z4i%r#+PCy8C2<@jqYGt;YK-S7{5dl#lBhqtPs`4M)V4;H_ znrztde|@5GGvblF&zPBTq`k?f;m+Mt>Gsy}TU4Mj-kq%P`(XqJ!!1KOCLFvB0kYt2 zmC!JdzGEQks9O0U;oxti8`=6BNm$CDr0EB*h*#Tv=gq#8wC}TCE^(ku5m)a)m&)Iw zJ)Cf>6nI3}D;^J)a!2nOK?^SG@6Sf_H(+aF|B}Dh8i=@K*eO}>>U6leZ$t|`rhj~* zn@PwK$}=XKRHM{qnUPyisKK%P=Bva3$eHzEoe ztVN?lVrT`K`X+|!8wM=S@g}S6e;sE8ERskVYW_m>p@mk?1ij>o$ah)qQwO8kS?_Rk z$SH*f)UC7f`NCL*RA1}opSlPrC{@uag-)FNHX?Qln9dt8B4@22 z_e0zL_bb8UzQ=e>eIMs9EDeV{kQhk9i~^O2viWoWdb6_-MGewzYy9Jmv~}r`ozopo zu_gXy6AvZ`+ggX>#g$Xj_Xp7&IgMZt%G(8*_)K)tK;*QxecSf^2tn%;` z$M&5W?vHGu&K=gaM&_-Nf;H95jv;ToW`t(&(S(BQ36Ii+5gtRA*>EFiEfKRAQ&KCRsVCn+CoG=6M?Wr#M55o;rgUb z2cYmSU$%Q*m1-o-upZ%-Ddy8!?dT@qbL3oF1Q-bAD$XaH#P*kMDjkwt1QE08~aQB9+`cg#q5Vc z031T-qd@e8;9|*4#+U3G{fqA?DHKB#h{A~cCwi zW-tY3Sa5(p%0yWP-x9VB$ajaFFUz7XMNAWE2ftgUZ}>?^RjQoDj!&86)Rl_Eo1Xk{ z-TM;vQdiy&CQaYV; z;hEggWYZU*dYzPrYjT@P`x{c_mzhave{IT&4fYl|>I4`n&;}*7!N0u=fE#@fpCsCK z!6=g6=Z#A0C{4_oFR7)=$p)P~Y3%Lc_3ZkZWZRvo?D}e5-KXDqXKc;3ug&ySt6I17KBW)zoG$;WE;CziM(oI#^s&y0B`gJ9ZuXz&_~{3 zm$7h)))ck-FRbAVuHM#$CE0Il!y@hEhx0=3SYoIIKrMH=#UFkic3rJVxDEsB)M8NY zZMWtY2AIe0$#>MSzDf;rJ6t`EOktIBJZjbRCjW_(V-RXJ2$AE7mSL<`$wCNW zSa=8#+gLzZGuN^@Mr3*y&~-Sh=#w_2^;NpB7B&yqw?64##D~;h3(zuT(+V}MuL5Doi46k8?nmH~%p$ ztu1MqMQ7Im!O_sOuF>r}Rn-3!=UEyJWf|q}W5LD}%a%9y|Nfja%{JRk{~>}GTzFKz zDzO3a)hb%{)iF+GA?VJ#3$PboQF#F8;ojShj<>By%HN3$x$k&JNzeX$r$GvD425`c za;7o)KQxUAEllJ4mWViUxAwv%G!kLzeVyJ)+gknK(hracKE(sZF@3UVU1b}E05tuQ z-%4F)D6R~4Ha6;E7KU;D*WT7tWe;9#xfTz7Tzt82>x${QZ_-cs2=>-{M}i zNInbab!yh-ynE)uQrIC=OMQrHdqviCoCF!AIqDyB&@G8rtLnufWZ#>>iq{q-sCqZm zY6TdrMexw5wukFED!OoWts)C_e=Hk@pH-n-V&ca2^?dDM@I1Fd{)uX7+HLACA_u&y z2G5}Qa*hb=)pG76DxU+h=v*n zj5B{MJ{ir^iYfxU5dVp5OO^k^gbj*X`4gNSsfy%rg3NUUsl|06-=e#_zq;jfvL5W> zlR67T(=hwc4*=ca(KkpfiLIfee{|nB;_r2qwx;doC5v+IDJ238D{mCGO6rlM2&JIr z$M)Xw^e3|3G}F21j1}q}yesv!fL)w8b<-I)aqC0g9cP4g^WpyY{(iuiB>d4~#DAwE z4yzGK_->^c0YSY7%J2*E=CJK}2wHG1qns*FpkurDTCyL0>xZ}^QT^yfw@#A&6gI4U zNp-<5c`zU!QPO-5u-TrvD`lYF1*vp)bniPWRhh_7V4B5yRk>NB;?0ZMM?h9AfN+Rq z1a&#PLRq--TsZ1fj$xB>7vh^h(wc93)evi@H*ajU|I5om(TyxFo?)F;XARv`acbO1 zFo42*$_#ZD#~-oRo;DfN{Ha4)gn;sQI}m3NLn`y+zm0avl9VpPp(MNBrTw z3iWx=DWp9VlbpR~ORMwP>>=xdtmRO4gJi&Jb?^~(;7W*SRqq|fl7!m+J*I1=%1w%FTAjVG zmFGI#PVXlM-iLLS?iW8wq^{YDb>975lyzG9tFFYERz;l2nPsEVFoOGeX#6_djk3Oq zg=D?UAHxJ>K}t~I=_JhLrcb5tC|qT_#L>LdoK~UqL)cUSih2l7D89tTD72EbZtkM@ zpgI*%W?tefft>sP2=Y~=)&frqA<(O}p*JylchHGS#aFT zCFRTpTA4=*BXjP(vLUPFARmb9qNmCSkdAWHUAP;NN7yC$yVYN{0B8*-nmJusc61{r z;9j?0N+qtq?8No>A!)pi1B^h(U@<8Ef6!B65f5S+B8Dxq0XW)!Nk8O9+6@ zRRtj*EU{#UwB^i?Gw<>0EE8@^NRmkNeZAs|$ll{m4C})(*!!7iD z-5M!+?1%wHFF2nJz-T`Uan)eZ)1Tagz2`md4=Kpf_!t6q??@vv#;0p$g!0<2umw9$ z@f~Pg3%bUrPJikSS@GHNlCp7|XNeZx_8Vx9%VEbqQU%S{1hqNfZEbEAb zh0v-#fbGwR_YRS!cCg0mufzHqER7UjR*jF!-Fo@!7&9noxszH~0Y*j~dxeRmy(c(( ziz9+dk-_`^?s*?Kdo2vzv`e}CcP0vXASf{2h(*#@{l{Nv)L0a3A zb0)c7L3<5c!CIMf?$njEx$J%V1{>16}$Ot=JM-$H8ryQFg2^}~LvvR_$ zO$6lF9JDJYzq`?cYIF~cddD(((F)mBP=3XG{RaVDxcm}_74g;}3Kz31^{Rivr+_ZPX)L%Zv;ZWB)uaAw)HMCV=(<6vqsX*qw#m1@^dG5mI3b=0?R~ z?cK^!ZU{T?;fe=+jhxtK7WtoZ!+8LAhsIVImGqCUwe+hOO?1pVn-wUFQ9v(G#I~c` z9cEea|<-NXi{G~pLC4;~83)Y*wuNV1gv=FkqPSVGmAx{Noy^gva?LYr3PaQZIo@CJ}Rm$eaxz5ZZlxJsh2uhW6v!<(xkK43rq4jTq+3Nh8 zQRZyT&Hf{6oLQ6zB1WQP?S)8l**u3L(tw$Y*Vxb!(IZRH`YJWo9kv7}rN{{MuSbX9 zp=N(*vf_!%PQfqm#u*wgRewAl5GX(}8Wel4ZTtsqCud80C#K3jg{tuD1H=IFtDi>qmPL89@K?bJ zFO<^d$|W^cmDjb^i9eP0k;UH0Oz_07RXB>t5MJ`i%>Lr*&RUrguHaa#pKkcK=a+A` z3z%QxvH!>3*}%tHR15#fN7K-hO@LB@6ntn?NTDAoE!dV~cj=~0AT5CwC{Rh#WYYxl zu_l`~#a@gi4PDce$SoDUT#O2ciWs%Ggn%VLrBw??Uc?HBLAkn1L4zVxtl9T}X6D)5 zY!W`aUVpFe&;8}edFITSGc#w-ocW&Tv7-|@7or3`Y!ghqeehh7-s2+CqRyhzmwJLH zNa@S)T|Q%x&eyy>!9zvd(UH9>_23A7A|ldHfM3g=~+#`mpNPxMamS2%%^)g z7RU~PK^YYWRsSw^w!!v`YYQgnvdK1>RDsdK`Wc>-XBS9wwpXgv|va@&^Z8FT~v&P2# z{u8o@3-8n%9cNx>5+4;%apw`Y8fwdjNExljSR1~Jf+^vnw8D-e$Z=Y!gH!@cY3Ne2 zs7CAaWl%z&QVqSKQA6`k(M!^IRW<=?;g2o9HB}kGsDL) z2w3%S8-!wj+|dRjuBE7XSvV6_co;GkxoT(!9;0>KPORf6_6bT`!QaW;gp_^w`1mk)j1D6x9i}fD z=I8XS>EKlX_RS>n&%Zq!s}|u`;Hc)_``V((*F~PaiZrWsjA9Ngd67Zi?P4)>BT3Ws zHVaR>5KfaqMIT4>p*wrBsgt44uAopqhtjEGm)I9cAfxpp(XP;^*$OJ^!q^Ni)(iP4 z#!GCY5gaQ|%$G^d?bv+#;!c@2%j|rFCOxR$!{6prqUXF9-2sUJ&6qPlUe$DOA=fdn zSTQ@uSe3~RnzPW3xhCnX?#t)QINTyBnW|v)GRNHI*$ntRYlYcpfJwv;Fhel zGKuUxnVI!pd4kvxnt;$ECYn^Ai+PqYDb+KDEY)EnFPhz9Ww!MpHBay)AxW1ny=MjsiHpzvJ@)71qydp0?G`sL z&pIgEQRUnh5}VdBsY8~_^*8Ppc{)-s*B9k_g2x4up{Zg@S;U;V{b{)8cbuxegNOW? zhAa%eCc7t!y}@4`akbX4te(03cBopvpUzdqNxzmo2Z7&;)hP=8R&47!$zSM}*+@G> z4C^|+9|Oh{oSb^(QArw0Uz|q7LZH!RuAhNpYTw;wiTl)gL$;B|v4c&xA z0;LQ?=yjTBVPju=jg)^)$3$r!O2eDwvqHBqy(luV z)m*2{&2^-QesQi=*Q~H?ZQ>(~e@+g67hcivr{`*OErGZ5hE)B5n9c`eReeoCXWP8H zkp&m)aaqB3-uO5eg3J~VaUS5&6@}?SnJD3`vvjDLDPoLQBi5X`k=MC3jKy@X)LkZp zQ*(}-CoAx+@62mjQcvyp+*pFDiha8=S@73D}W z_M~zYqnic`cCr>h?A}?=d0HQp2|?D4!ofG#XCS??#RJ?^&x`D2oz8j0N2Co2%h#qk zucE@M&;)@2w>ov)(n5Pd?b-PTEl)w`zZG~M7K{{10UPclr=|J9U(kC{v-GA4uu(&) z_>n2h>#$j9=@cg4rU;vQ*znng#g8?GI1{`yT|PecTk~l{)z?ROZxwbDPxLrfX{>aYis>$ioC{R7$>($CXhj}}9hY(Fa_cgbg+!^ZEOJ1tgD;FyyUl)V zNn|NR^EejC!7@+MPxay-J;f6}oy$)U)lhpqZ|~3C+b@KEK0?C81JniH#i7hrIamh6 zMJ%{6R6%;uRXoni;#BLOmu9yA4uR6wUHq#0n!H>@dsv$6;DC(7RwHK_y-_Jy+vqr@ zuye<}9dHOH$(q_51l40Zme5hUOl35R)MR>OPB6n03Sl3v(3dzmMt=#(tB zL(Y24%O-8l;vdkjCz>MJ2SRwc+a+Cg63>v1m^V0u8v{5y$Nk_}%YjqAsbebUUgp%1u`XvX|$x8iClR(QBT-11^pH`hl!b4CpA=QB5_Sjm5<~UgdTWN zcfA;s3yojjaa&aw97thvz4w&#b2CWPDOsL#k;b*xFMe$6MaTxGFbmE1u&-!NbYGF$ zVD>6nli%@GwUEs&VGe?RRp#kr$MA>QYsiHiVu_ftjm@h*A%-*S2+NNc9F_|E_N$wL zBZQr4bLji=hYbY8N zegiuSZdIpuUWKRgiV2#nEVwWdv1XAO##Pd;Qzww=i{;V-7Z>7`N!mqHNO{7FyR197 z#p;<&vY{(o_A#@YH8|9HNs_3LJaYPHRnk#bp||Gbb>5s5T$P-~q{C+gRv-pR6Zt8PX0Ii_Z!3Sgqf$WbJW#X=b@a58depXW7ZO~w3% zzeazNAbM5P^Rb zk|tO93MgdVuC0(48Yc#ss=U~d%-t;FU`zP+bV_&gVeI>nFR^@%$cmEwoVoV|41d#d z5s-w@Ez54$sJ*QGU!TKea77%Zrn`_Q|C&R)85M}~_(gfPih?)8M+D#c&N-Reo?%Wv z6tYShL)H9q!7j$ANWLfuN7_%W=MkmM3w>h|`kNvunJ3Je#Xh#lw{fElF`M)oaEl%k z(4plt87`Ld7l+htPqyIP_E>lbxl22)kHqLqY*IS)Xbw${#XWAB+iH>Ph1BEBwod99 zC$){{$XWDEZwliQQG(^_;K}r`On`TB+o_zcL-UuV&=-wIiY*vMYU0;?e?M_AT6iodA@4P8k zC3><48QqC9OPs2$6%$mjQPM>2q#)IIrc_BtqsP~RXzkmcCDK^~9C*xZ%a`~$71EiS z%*n(F-tFmp2_9wQVInk+_34l~hE_6HZB zh)PaM1x3@eKBwk{&b~l@5M8B-VVdZ<=wf&?Ty^oO!aI+IIvb=Ys8Olll+@y%sFJ4A zPJmca#Kv9D_-m6liTlEX7;u?TM2NwGBdL6ld_ZP}QW@wo^P2jR;IO=HPyGlVEB0~? zIxfivev?1axj9uXN+5S~38A3*Q#UCBGSV|9F0<_*>+n*4Qo`r6xg*}PWwuR&az3V3%(LqLC_6S~qHG#_hZ&XD zcd&AAsJYgGBNK21PLOe^xpHC3DXa#+s`^-mp$WgN$Mal2IEjh7&1V&Kp8V>UZEQ*E zle?dTS*$WP!<7L8l@YOpZ@?App9c>z zLc2kB@p?Nq9hPrgt_r?+CAZWC-{zJzSuSHQS<&fo`6h$uCgx!lduF}uVTThn^5(_d zO?Q3{O&m?^5rbwRzYt3>EH?gNmRI=VVCr? z`dSz)%FW^E(1Cn09Wt%RH-cq}Nk)^!q5S{DoD9{Q*nc1Doglly!%UuYegH|Z55jY$ zw{y0PWG&BH<}Uc?XX|T=g15ej(WVxrhwk~Fvy$-%y2GB}T?6<)C?6FLM*Ws)ze6#< z+NfWO_;s`kM*_j&Aa9;toBxFe+Is*J`#$z+TDW_So7aBxO4l~cbD;ed#~Ey&jOhi_ zBU91@3k~Kn)A7nYHxt?lDGX7lLU#Ls$)%YQGFaMTv-yFQ&zPE5WyyID6{tIr_UbIE zk8K}lm#HB3|5>4P*>~pY*sJrXKB|1G#z=mcTM~&(1ViJW&RpIOmF>GE+w?!Bzr$Yd zBOdu^6WvhG;xPZq2$I8ko?!cWsE(YW=7sZv`y{7GOptglKD=p@r*%JMKfkPVwkw~} zfc_o>Ryd6>oSX(nz6{SsSS2Df@)2+FuSfP7{WGFRMMxm*`gTobl}4nW-!UzXi$kT! z&kC(tAh}aP{qO{?F{5*6i@)!R#vuy%(3!f-YZuL?;36w|8gEh@S>~3yPFfetB{FCblr|u$mp5R_l zM^A8fmI5kRX!et`XQ3Z1g3S-|IchpcY5K$xFYH?uX?fFZ_0q9hHV$z@ByF0fbsxj- ztmArH_)m=$=3H_Gnd*n~wL9i3wobK=Yx*Ne&Bj+$kL-kcnb)ME>|@bd;W~Cp*!+&2 zLe$BPO`+Yz2&we}$r#68RX#-s+t`Ll!R+oAavAN*Js*UtQYmN`1EbD>eGxP>{ipV~ z4u&Qai)XN1X!1MSWrL|KY0dO>?5hFAMz0T%cnK<#3$?7yq8s9~NWyg}114p!HqP!A zbEdT5S42VaA1QI_zw}g8Q=O{zZ%(1B&7x)N(KVU3e3*B>QT*{+Wl(GG=OKBXj@^FZ zh)-qe)bKhgtlB51VwT*Coiu88e3$4~Nt}Moo+|rWjV_pdl)BmY^nOeT8mOd)u(o?J z3!aYIX`Ws`HbU7ZN+cK#g$|5R$uF5)(?fx;v@DJ1gbz{I( zI`qd&9J&$dJ>JTaC9|Egg_5DFOn%`fP0yRTayA*oYxm>YcMxHUavW&iMe&F$w2LcC zg5Q_*z4Mg;e4q;-Chtg!1Y!Iwk|@Bex6uO8oji}+td zB85NV-b#6kTz~Qyy)9Zbsod0_P}vod-Uo~~lD-oUMp&47}zxjqt z$|4VBMRykj@L z%;2Q3bIJvr+sN1TR_?&z%$+4 zXIK_6egEIu=LYdiMOjiKgK6FBpAxy1BK*$I?2GP%z#tr+iE9^6;^do zcI&svwQMHLKA4dT@lL?KNUw6OQi zO{b!&O}`7T#coB%i_q7g-NiiNom86d-6z|Trb(*!qT5w=9jBf4+Ks#A~YhEGT;{4Md4=Y z&4}SoFxa`I^2m>jJc9>JeWQJl99u*ddhT>)v2mP90fY)!;bBy~X#QCDcXPMb+;mCi z0m@FQWxFV*tShDSRkYBYZ^?)lhggHbbVqH}Pr!Fyizm z=T5_h|e73ETMySl^7Ra49ljM^6G3PT$EWlpW!mWVi5VPe^EN$BzDta) zTc<9jiuPZoq!HBA$%xLWHK2C}5!?+4;V2SmJiWoca53r`)AED&5<6zadxk9FZu=D$pE)97 z{2i(ex2>FEi{l;~Y^RaeFYp>JP~5~GcI=g&D zV~Ip@;*%OuUEWGfvoqW7MlxhS`18K4@wxAtPVToWscHKy7N#5B?UR4=U*JCNBUy3f z`8n}txu_#`qDVyDlJ1pBX(d z+`(q5rU|CF?He*NXs+TKgWYFfC)2(*HiCO?Cr*~NUA?n{3(BOPRZ`Cs1>1ck!Say? zac6sH{jno2`18=`PC>H42PM5KVjLwEdvzf)T8bj$kdW(X2xsfg@6y#}ui$^5*%_HY#a;=ZZ9D zP*F%$n7CIukl(Rzo(Q<@TNJBmFZuQ)C92k{+2i!X!p`;cXuK$GYPPpyMhDApFNbDL zWv>1-ZveDCljfyFPo-xQNHqAxn4ByMCRSGB z8Y43|+|O(UDeXlIXjIS#w$ReN2QW5ruEOZGR#&)b)q4fW7#&crqt*CC_{#la+ajO5 zc!buzHbTVW8bf)WWkeIsRJFE6q%i;WAgjW^^L94Lj)c(3Q;_%Kg*i9hGlF$!1Z#1P z!Fmg!gj86oIVyV%TY=?%dJizYp^@K^pAC6ZNwFeH7p zW6wgbpN_AgtcFr`+)3wzufzXxdX=Nw7imSZMQK7k1eQi5Tju1#e~={)(|Y}&ZwgU_ zKRhJdciN;wO+@pVN!4zK(tb-+uR61^%Y)K+SHp+UYrh%kL;oJHTsVY&f*04<&t)Y- z4L+9B`B$?T@-n5LLY0?nSr`#At~^&G8F`-;-loLxV))05%j0@ijP|5crtTEpchvN8 z3v{ca`p0@OiJ`<&9teNu4JqJ1(PFf=EA3 zYB8@ettGGFcPKiK{;H{TE4^GNOrNoDJ;6+aejJuqTDpF^$ApxgpJMW`&`3h)yNN)< z--1=26$?1PFp5nd8PF^;(aG4MZ!#pJ**!7;h4KE`#=mPE{~Y7*SN@r8-N=@r(fJim zb=MlP%B-f!7jVrb9MV2Q>gRG0N=)o+@48v@BJTsvR{}Mfg{eXzG z^+2*$?iY|Na}k$J`8~vNaCygCmtv&WS*E0g@0KvJrK9jJ+9q*QX-u~Seq%yNPpV^m{OZO`GHyGxjrjGwg1C)u*ocY0}X&3}~ zl_3W=?oUl+o=lybCt)sh%X*i$LM`S$*L2K<))%UCL``)1F>BGu^d=7Vk z>ON^AF;RuVcCmTkPvD0XC4~a|1bUO#(9hU@jcm8myf_l- ztAbP#eIc90#BaOud*BYxq8W!}72!a8sVN!yE(k6M(Q=SkJ|=PoTLzR{c$`8HNT(+K zY-x48gpxNBnoW?x&eSvZ2~G_^__jn)Ntloj93_FwW=fJn^S*+%1ly-bG$bjTG_YDF zY4C6`zE!3YWb*|z=aB6A%|6n=;A{yQ)g3H$60vi+DCvzSlhm$;+|bjkipb`LTy*Bi zq)Aw&^E-ZVpPDU=Etgz>f)+yA;QM@2o+Yw3|s)T6`q4wMdPYUhI>_VjW+o zUKU-RAgS8|^!(J8C^PQ)l@f>N+})CR)g<%Tb@tZ=cUvL{)h=fvAtQ=Dc^@s0-*fat z?UE27-$pAPo=iNgT!+e;0FMj|*twJD2@Z_NK+{X%k3y!J&NtC23EafjiAZPL$5rhz zO`mv%=MNfX{&`<7Zl`acZQRrJXrzai6@H7pCYKKU8x{bYCDttL<{e9#(l;CZlt{94 zB-`?l6!Q+*z0{mc<~!dM@UT#MJ8x9YUJ=`;*-hEjsM^9Qb3H-Y!0undFV?n&yKwh4 zYu-9J-}-?uxgzrapd26<6Q`?*kcO`#&=}@x0vS!Lcvz+93FblZl6g9OEYHJA z=>G+QY#3+ch8i0k4>D|3*2_EVhn@>}OHIt&(Sa=c0$MxN3`?kQzf=;n9C4B^O{tb@ z^X1$5!QC;-a5tf3&zdAn%z(HPD%?&E+Q{}bX_~hGCxyW@*coh6m7POLj}4}Hlln71 zE&Cc(wd1sj+I`OsYj)GG3O*&3(DnwOIFix&MEc?*_U+I-zKkjgd$ZCL zm9g+yn1+=d>*pS$mh>&vvPCQIM*wC2{|;T;I~r!-5P2|>B1SVP{ zpZlP(+^H@Qza%2tap||Q|9FPfgYWAr#=}p@Fg@C%2|W)ll{AxF)?NEmdi(a1hp4v9 zAibXJj5@AU$Dd+Mbg_3ioX9oIE{`(0FP_o!--tx6FHyBTd^$xK;}W{eVK6EwHSrwo zfP+ekNbO_cTCw}l{OF`ifK%Ti?^Onu!D!vJIw@LXR2PCPwAE$o;cf=!QO6D(M$WO= zLU+DQN$BH)7SWOOXtqa|_piUMQYlFm&GMp&*O!C`8Q3vv9h;xg`wgG#v-}uGeZe!A zezA@^lzHXFowM%|J&?_Z*`f3PeVC5!_qJ!y!|6DA7Z(i{c5Z7CSL<(&7IdEfX)pz| zjur-QSICZ&Pvs1H!K^1I^i1QRdng5u+*}p*F!R^J#|RDYtUngq16PL1Ty}Z>K761P zyyDt%a*pOId|)e{%|r>i;A4c$58h+V5yih}h&1 z6SN9DT=SoC_FJg~>g;x(ukO2%8nB&lCL}FO=W`mqu=UCGLI#h8i(hKmFOl4Nn_7Is z&M}MftLs30Y@ejvv)=PD&-I>?@Lzt4Z4cyNIe#B|6p?d@up~t-&8Vat>5b*4vg?nT zXT0ONx~TJ_1vlD!@tJE?q!j-oCjpOLSi8yk-xI=vehMP)_Sg3Yt`14`7Oa-x!}Cq zy7~%Vi9gU_pKC9iWnXlWoo8*Ru9I*J?6c0Y<$bBWAkS*7zR71Vy~xg;Z!cXc=vh{t z5KQ+sRM!P6?YjDaEot!8`sxC{is{zOx$`gZS?g!!EvUCNnC5&z}i%)FTu71m7t zX5hi!jAm;le@#|>O+|?lO>J4Tdbetu>Lj@{%dOh##>VQpjdo>yLv2}LiGB9W#l?O+j4m+I ziX=w|)v@Y?kM?a0G*F`T4TeQ^{kx>Cvb=7rgl|4KrX8XWGaC)Fk2ls+=A(+D!MD-Z zY!fl!TVl^_bfgBpyms6S=uo4WX$|((Rfsku>K0lQk1D)2-za>YZ?i62q?g--#w<9m zBrwatT9#d2Rb5kIS5*7>*W|MU^>$A?tbXAU*t_G@t2nRv=8Y;`mePc3>@>S|zRaRF~GajMN zufHr%RbF2=sTMa;n8r1$^aW2uky9+|oD}TLf+V zjn0qGh4HW6*ysyrAqT3e8&%mi)s7}N{A%j!Hr_Cn=3@04Vs%!jOrtKg1U=R{uJw~m zr8kIj#INOZ!x4*T;Pc}@hj+*P*2TR`m~7+jzCA``^S-&E%se1_iPTUowI*hcf|Gj4~iLsz0LQk2eEh^X6GvZz}d zkQiTWiQ?Q1K9v-Qe}k{Ah60F&r;!t9)Lm=bwZ2-~x)SB0;d7E1gSPX_m7n8?!Gf%j zzqaVl;6J5)Nn`vp!Kc+Pd5oX<+p(1VKkzoVoJ5qwCuANKc3yeCKTr}te@fQH`^o#P z8M*HInwqlmxnzCcuWN;G%#ZRDo3L*IPsHDK;(jx_~a)z`Tjs2I0iH7Cpfu7o&Bxqh>aj+mRhbacY~93@k^38*iO17F8N7Z@{14el&uq&&`Nlrb;8HfgH}I>UK~Py8jq7N z!AW=t7ypyEoNz)f;Uqo@mq?$OE=Ux;=x<^?;wL|)yZV*AHu@)ZK;n{kq~1C*;8p!T z%zvBbOy$zF=GB_POAgOWp0jw)=3!#mn#FSt&$&FadFJrU<(bEm$1|VjJe~zS%xPHX z^IX7_C=XCkdC0rSLw=IKzxB8HZw>e^;T)UwE+p^E>vX7?+p*+u-V`1=PABWVa;8hp z_9gy4D1Bmh$2}f@$KQb;ByAGr{pQ2rp9nu__zz0&#P_#`8>@Vzt&%o}p{P~N(^9=L z@*MV+dBTXe;~(*Jo_PG<tgnzl?VsqyF#2ACLQ=zDwCJG4TLcztDXLk#XWr+7Yo4qAP#zpR`j_mX56z z*~iy4DHCZsMMtF_kv>Znk7L^s>$tRc($-0TM}CgpI_;vyT2@126W#NgdDZi3%9?7* z>nzJxp>TE8^L!OeH9|KoOE}zAArRwOvn`CIX|m0l;OIxa)j1)wZvenJIsxj~S!Q0lQ)nb4L;nKT&;)`R6&+ zf$EByvbuV4SL60GcV=0QRSkiw=kQw1tG~Yd>N$13TGH4Uh`n2ZnzE~fPtC@LGRDpU zUs;8pH27p{aAtjVfN2!FuA#c=<7IZEuc6F_MH9RO$aB>kYt^bb_LZww+Qr4o8ykF^ zm`bX)CN)acoKs)bI0w;hZbX=pu101H%d2aUlO-}#zp_nrh0I3Q5KVn4fhV1ipvT<*W0()|&i6UcJ1o=5_hnD=#at)?QgW7H+JtFfHR*V%bZ`uPxQm zM(V2rO@1aHEA85{I;3p-n3wa}6~5{!%En9fL>~1v@*t6fsk8k4a-daT5uiM!ysXXk zW%CL}H|px`28!PX?SJ36#+fr_AZyV%yJDs-@}rn%Qfv*mRsJ%cJ*%;)zPzr%Co-?_ z0h;QnYa1$jvh>hs+Z*ecNo=SuYbdLNro67c+^#E=v{9HJfcETj=9Q9V+pepws;yS`0FUE&2#GN zeSzw#@-ly8Rk`geM>yywv%FR|t3A0az7(#pW-Xd))s8#4StWc z1z6W~iB-e1vB_ikeQT^h`DNCo`qfss&+9KQFQ>R|dkHxR)Ynlh(4Z}K%c!pi=gjGi zGp8#tS<`_PGh^-w>IQ|3zg=#UjI6{%@PmUtDHM?scnC>@ti<) zZ9Pc{FoRX;XFUNM>9e<#*NOcz^+LLF5|@JSx4g;k44eFl?W9!eh?d$|SzSja%W5%` z^$q1DvyRzou}J<|5DqhRU?#;9@z!Vo(wwyuIji+=`x zx+XKKuo6^=GVB4(RGqJZ3R6#op-R|P34|a^sEyS=DvU*iiLWb7C@6JKnhaZ3FQwg+ z%HpT8_|cmHM%A&Qme^1tWd6Of6kW1tubsY8pjj3jD(z~F(+vCsPkJhy^i*%Mk#0@B zhgvITAQ4tHlu5tN!j{gMi5~IVh+$Iw7)U%7_HxqXQ#MxSaj8t3#U21J6j-+r^X60G zgyksuM(8a%YpfK^K;P*=q0F@G<>)4Tzj~S)`aJN(zY>L^$_D5P&LADWvf5m#1wFJH ztThG+Tm?pcHt*6mqgqf88jiXS664qXN5 zq++W6(}sq!jka$i{eeIkhPRF;wUVmE!iesV2@h$DBpuQoCAPPcFHE}+0N2WDvRWzc zWVLZr*+E=SfngzQR#RY&NLMt(qQHa?+4PMkOYujRz7HzP#573XoFr6^r!!?6>YB<~ zx~BIK?Z+qbkUojDXRw+9t7_Cw8jXPHij)WHr^+CHx^d6;aAO@3d9>NcZKL(jVG_J*tofpv;~X zfXZnLse+}1w-)5hTo0h%6YC#J{V%8fThyJIOXyqMOQgO{a^7ul@LnsteHdo+8(pSJ ztC^WAePR(7NoiDZ&D~PxtM}UVtQ*rn*UH$4Mqh??3Zg~Txi%`*P+hU5hAM_&D8p*$ zqb-}Yg*r27mc%FhTY>f12XwcbHnWcIvn~B8Yf?kKleW5svdv5A+mc>8KF#v(^bx3r zGjTIbV9y55;;}7jhHcYW@NPMf*GYv%CH(SN3*O^Z?`!3~aD{p=QuvEYN>-HQuPMnd zD#Tr~y0E0gdu7q`{GyWllA`>p1ebqRNy%k}Yp$?L@LsFJu9C2;JtZZ}OA6PNloS_> zo0(d6O%$GkbqNH@ZmK><#zy?e_Bqx$l|Cg4L6A1*{r$+NzSg&jj#ficSyeN#!wy+< z*WbEqXyCJBKP@}P#*at;LGZ%cOWeIXmkqs^5PwxdnhH8&=_pR{lQ^ds+>XB?y#eA+ zOn0DTG;Tfd+zsA}i(?A7X}G(9JK&QJ-1DVnL)l**{oD=F#4T~`d1%?tL7r}&7kR8c${)D(G4$+z@j3SBX#Qj2 z;?vO6KRQgj|5)!;gn4cM|L*h16QlW$g^N!|#ov%7_v6ck?)$;Ap%Blp1Nzx@aM{pg zgR25|AJWfjKU_AnFvUGIH1U7$c_i6Av^F6Q!M$6YdH7eP#h(4V3;pDTbPE2JT=!7v zx&M1l#W|yS3$BZJ?~jYy9hZiq;8lxh{++*I?)>KS7teKYW%V_cbQuEG%)m0-tn+PP z$CTYjmnl#$b0#uckO4VU9+fh8K$9%(Cr@)8I|K5Z`A7*?O$T-iTFB30IbrKoRu`7C zy1??nMHlg$$%Ff%j}|O1DY>%b3eQS9nI&G;-zahTGTl(l6kQp^O9lyz#KCZc^uV-o zLsNal$EAB7sBfYRT0uUT)Ug|DNW4t=K+Np*3|r0DkoZQ^pKy3HtcRIh=lEOrmj%k} z8N1cU1cK_1GbjkqkN2?`S9sIKlQ4k|j0h}WV2j=Ct4d5`1tii9l(7Ya5xVvWm;pX% z_67X4BBLz{^0aPb?kr#i0n+539^j7sI8M(20ku=md_--OOwuNBE!|y3_59O?W_vaC4nx_MGdq2t-lW0zq^dG6zRjVE^lZl3)-gFMH0Sc_RBb8fzx4Q0Mf z3>0fBnY*?(H+fevim&j~_4ly{SmwS1GQYuiyPQ3NHr;zx66!0P7}RSzOVNofC}Tm5 zX~94P0|BO6wlJD%V2MKNZN{JP=DS{6Fnf%lWj z4q%9d=PqDQCjQq9M`UAL4=@MlzjioM3LF4#758<+k#6AN^}~@@fL$fSkyI96^Ek66 zUk@4t76a|_;m97KRRJBa8)zSAS#IBOWU0VP_yT)sha+9ULEzoMth(VyulUywM+Skm ze>jpZGwvTBj^qK08-^q6fd0neNE@&Rct5Z!FdTUn*bNK;2Y|_4=+fnH$GCkO}Z-#Q$* z6PR`LaO4nh=##?{j^SE)ErdIsbO9Fu{hu0++yQI>-Vf{t_5+JQ&7N@==>>8v1Dh$4 z3$P2=FL>Z)Jb`Xt4X_KyCrYhu;4a_*@DXu$QjWl$ox_pIY(N?WE(E%7<=7Lj zAGjVk1oQ(-yC@&v0PqfA@n^|5Fpo1@{lISEvp}0;SXn3G51b8b0TuvzI54&gI0$?M zI0PI37T->}0!x8Yrho?)0K3>b9{^^t|9%h94Lk_+178&XJBB0flSwCVEwF|C_ICp9 z|3r?!A>cGNSmoVCIRou4QVzgDAYaI~vc5#Q0*miPkJvEK4Rixb?-`CX1MPd!U!Wg& zSp0#n0rS2}`Lemd4V(fj2Ic}wflGmYU@@=-SOM$;HUqnXJAggFZeTxf4{!*05NL6t z{6%0Ma0uuIrc$r{z-(X(a5k_9=mz!!tAGQ*tw8H*)H`4n@NS?R*bDRn4*|P@gTMhG zmzG(BUq?P{h!_HLt-NJ%ErVC!{qP0m0k;B6fnC5Z;N8G}U@ve0cnFyFP4o!p1|9|a zfs@%R(gL())5rtpB`^zE1hj#rz&v08SPI-O{yoS8*bf{8_Iw*Y(}?Fgga>wg7kvf} z0`CCYd(b;z_g>@$wEBpT%_&*Hg+MoOJ#Y}%0<^e#W*5)~-UloOJ_5|**z;jv5AaQ3 z_xI4>GoXJAy#RJSPC9`@oC)m*mVTdfv2jw)f3E`$`~W=$7XJ{tW|RIy)E8j)Q`8q= z*VBXpx_^xR2pk|k^u}9&MFP1Rs1(@!4DkR5e+oU&f0%e!oo)F!`VF*RARb`ei6p0)bczYyr>|EmcawM{THuC>UByteg@}o#(Xb%2Q5&vBH z1GfX^M|D@fq?@j=lA5!UPMbV2y(@{ZV5R7*t{9HY6AJIdEWzdRw1Jx-IDUx1^78nL zkYOq>uB;WV>`O8;HmA2(%RY4BISX<`!fMY@4KRJpaO7%1cwO0>UG{aZbn=OFJ5LdQ zyMUI*mDQenrK{Uc-aN^b<#DBZGTfl==Q#+CKZTczU0FMm^Ih4UDfupYN2#8YjW~slOzJ1;xC)^ z+pZptd?DulX~&T66BiZB1ZcXvJ?Bt?Ju57Q03T~x%uZMO!v$(4trIVGmGT|5Nv=g6R~}ipI4<3V83FKQEdlSz zplGdr;;6WGIPw$TktyjZaAmirEO*(hsmbNh6ctGR7V!*0Kjk{=xzLmT&SVN=M@oUB zUje-qRzb$v=(~~)X49HYKAH);Tf(k%WhEDD$=Emx@H>XzQSnpdS9p9{@^>boPDK*8 zq_qZ`!|So#^o61{7vGvvxHGkL!j7~{TPLQ>OqLLr>Vp+`LZ4kR9HHu|yovtxfLjO- zbyh#ozy08f!JSFoG~X4+r!C)+f&~6z*eN}I4Z3yosg$f#8l!aI6}sglRQOFnzq06a zy%*h5=ng{XiN?F!#G5iT$uJb1seo>1<8b8Ecsg%q%8pcT>xASVI7w7-cR~9~)o|oI z!o}&=r7rtpj&>=!Ug(ZN_ikwvc@09hr#e<&1@|Vn9&j@x4s=Fv>D1jr3AkzCLf{-5 zA#{1*-ULUtLj7$1d%;;Zm^z{4iX4)^Ao;pj%3i`%L9+uI$8Ol*wu0LZ?q1$?xkFQMGV|_C=}gV1{lN0d~)4zy|q313g!HYV*;QCdmweb7$xkI*%-JD0h-lT$J<9NEYnL#gU{4)lkiU&=V( zXYsr*-jU*MO-=a^rJR>$2%VKic{U737RYYu9#J0Dl6uRv7D9Cc9AW|V0;w_g&z6k9ngtox6W9=z0 z#cE!o^@&FFk_=eDDqq@Zk#QcdqL9yCNVo(Ut30SSIQgpyGFEMf=&_&huMqE-qH>}> zn|gQ2jx?Hp)kZsYI=dyl&D@b8@hQC{K_;D_j3zTbhY9xx;nqn!F`bN+ zC2cRVUYU^26&cBHP>778A(-knNIl6t4*hB#j!frW%a(SwRoczfPTf;>xfr@#3Su|H*{}8_ipWh@HhzFWX9ovcz*5DFKJC( zLG`0**}5pn5>~>7?igX#5#}xlqtYt&w?piXDleh2Cy^g$RDUN*^EsiRcIrNp7n;(W zh9j5b)_G~fHe8xfjM7M5t-xRA0^)6FGq^+GR!A6rLbn54`X^#-gvh-cTq-!#2aU;T zrIIK5KyH*g4?;H?x+jI1lTO_S_=Y5Q1&I}YL(uJ!IHLMTo;BUW@pReH-?{bO%SY1e zhVE|Yu9SHB32rU8A#jZfqj6Q>*8kgZWM&+0E4XHG6>+#OaLi?KhXIk_pmUcpP^T}zm5!rT@Ovs`Qdtw-`r#H+Oy zTCt}s&`x1KE7s=3#x$zU(e{+F#R!A1%1HD;=Ec?$KE5yaEI5B0t`xcuxE;TD3k!O?uGpU@S6n+9%j9Bw_h>;yVLxG4!Z`S@T~0`3lQlN0#e z4=z1{t{+?~xU=KpeHNUgkM6MgN%}(IBz?+G;1=95aElV?vQDJm1@0UbQq$#tD+cG- zRtdWZTu}mD5xA-Zx>9gC%S>9(00|o~{G?uptrgsM!!O>B-D&uVn#)hM?Bqr za4iYA!{F{rz`X{pHx4KL0Xb~@EI66>iQ1KX8JjaSe^m6YAVcEKh3=8A;fPcd`3Y_* zxZXIN4Xzm69&pEakMc{t*XdfQZ~mv*32+Bk;V(#P_;+|uYv-y0uV0|sEiznL)8SZ^tm zFe)voZ$ejnlWsWFtS4oK_ubIS8qIk^tJ)cr#}RWvV#{T1W*u}Nr>vv-^U9pYYGcav z^qMqCLVpbU`#wJ$xlRf>Dvw)J*68^-O#jnrI?id|XS1er_|BLul(f0QJqvCg?{R4x z(LcBGs)FuC=*Amsh|cVQX5D|r=9UE44Xz>qw+EaboTD?+E*%871KfkWNAtp~_`QOk ztX17MhM!#Eum``Ps2}4|-X-p7_-+5fhH(-W zfS;_@$(r0ZL@%if7^Bq;4gri1pQw@-kLpA)M@0RQ|ChY4|7B2KmXZ9N3Xoh0@MJJV zd4gyb^2nOs(XYkE#GT2PM#nyvxN=)3T|d?ONSP)R`lBVhO4>cqFIihGV6D#?!z}_Q>x@&rY4nk}&HOy` z0`0QK(KnP2Dc|K%zAMQiYanARP0-hte5kd}Z?X0!y!Z)j9qW~|!M&|88ppS) zt?VAw5=E!@Dg6hR^X=it5~*V<9kKC2Y>i}vq@&PPoYEsA9c!$p^k4Yz;pXCKxiR-* zbasX0iLx;3EnZha%EyG)rK2hU(~u-3`!w1=)<5N5fjIdvFB&f&)mLZjCV7u*5dur7 zO3eh7_1K&TxtA`=N9B+Hs^O#Rk>XQGQ_)9~E>VoIC{Q91+KfV3jakGjYC;5;W|V** zy);DIDDrrbxO01lBj-lrMjv)cf4nobK;*%g&&cC);_iSK7~+VJoAHnE%AH1k^daUE zqOzqf#oL3Jow^2je0@w_=!@_Qz{~xxSt}Z=%vHM7_+=&Ol01&CMevgGv#e9U39n9* zM>Eb-bH3!HUDnuWt-qLHj|-&^N_e?+!TUWk-$GjA=dRlxzIFg_*;O*(IhHP`zlyW$K=E zR>&TPpAJVJ8_7%A5|yr4dxEV^c|_7Ry0E=!Ub_cg&;E=)$w+;tPMftB0;2D$6ZEwp zBY8stO6SwE=^q`&CXduZH9wQk|5%G2ZW~i%=!n#%B6#(_#2mTF=T2GgHtX}3MeAb9 zB=TowUFbkz-l!7FF64{mD2~K2=@9>c;mkRNGtR>PbpDK4r{|B6aE|&wk;T8i{O3 z()`pOfYuarH6}1| zImNX-`36^4@)n>6S|zLE>F}Q!(R)Eu-c*|t0t=H#8Vn|NL-Z7T1DQNa&1p4le%#gFBD4BD@64Q@s?gnzOj$G%$5Eol!?+`FZz}&`5SE) zG2N?DT)j!FT>VMc0X?FcpFM68ulb-#Gm^hGX1F3*z8pg=E5^a+XQa$WYkQMc!}ZdP zl=dXvuj2g*V4*}hIN8Lx9w^BmTjR7HJ>#_<|1mq(c1XQQXJKY(btLlO$U3QHr23Ak zUaS;7yMnZ&SgEdqNgs0!BsBs(V3H-5V@Zv%FZ`?Ee`gaH>`P)^wiToE^rmcw};8=UF$ZuO4qp7d0fTF0shYtm+T2E7vm7?TPXVyvsX&b zytIQY8Lnm@s&cif*@N>osga}ml!X~76O&xct0COvYQEUzPkurNTj^>paQWG4G={ET zl96)y@vi2p2((rOx=}k;D@V$AC%Bp~#}6zFx4N2(a2UUGBD)mlDwV2YS92u};*yxJ z)aihdn0?xz=_=!Ws^U2?)>MgKulOljb?hw0_x~A*?1|bIRWD*~ysD3dQs#{FQZ7R) z7cu;zji*V9w(-ggtNHyRCSi}>718T&E2NB7{f^mnr9)1?wr;F4R(+dY@Ug!biOxe) zivRlkO9KCrz`rE$FA4lh0{@c0za;Q43H*O10sl0&%8}c^(^@>ry|VU$!7qIBgVBFb z{{LI_PP*++>GXfr>+9bN-6nj0Q1fx%LE|1sz&rkf20t{8 zzeD$4&>AOxCtOy7zn$RDOK|rax2m-KYx%0qSI_?t-eJN!@PEqh9~It7@1-XFRpZFP z@ps^r_iDL0?!OiOz4Pg$!{O_=-wQhQe{VQ+&)-MCK4`j}{5s(rw*ygq^}D6lt>8z# ztKkjCeW`(G8<=k3kq0&1B?i8>SGzxC;L-om?(Z4*PmTNQ2DTcw+(4Is#d~zP(+qsj zz`Z72#|-?1f!zi+8<=EZRRX-uxUF%1r8{-JZJqBAx($7|fqCx{z9qrGC&B%G%p z$D#jcfw!CVA2MeE&Pkvg<$&s4_ueo0LTmM;M!TU`A`=uLC4hu{FF>

    <)EiqY)i2$^4;gre@t3V8@^k$EWVRaKk?a<pIcIKu zDtoHaXaZQ&}7ze z24)+`cdhE>wfA_p!tj|Z<#ys7GVZCyUlIL3@bBpHT0V(MdCrvkZw!3Pz_h7uMLN~M zvkbhzz!e5wWniU&n+$9>aJPZ?8o1ZMCk=egz~317mVs%fnD`Am%fJf^Tw&l<238ul z$-s64cN=)GfqM;n(!l2o{EdNc8JL!B;y3Ut11~Ueg@IQYSZUxU1KSPUZQ#8I?ltg9 z1D`YSHwM0CVA`oBegn@k@B#x@73PH?7JN!FrdcLG+vx0h_K9TT5o1;)guT6c_zpJ4TmiBF5#FDvesf|VJo z-lt#<9eWW+PCAdX9J@0TKgn|J(@1=V<=E+w_{mnkskbBX$6H-vltT)a3Oe?EBz>ke zXzcz-JRcr@T(<`!@h4d6KNt&tVzj*&Nq>^%v=bxoQ><>&evHJQY>j2NQux~G;mpzY zEJdulX$MB~$+ntL9E<)`t9wlRhvI{)_ay$OT5m)WJ*2%%wvM-2%sST9hCtfEB)%Hh zlB45Q`;Ea#yDRjAhJKf!&olJ>COt`6+GCNSZ#mtq5b7>4-Y(`zqE*~(=w*wg{8sTu zyo1wqyj_xTev+;vzINFAIbB{(J6oslr&{|By~C%?;Qc234!+ayX}Lr5G0C*f7oSZ7(6>gQjPpJRggJbBs4Ihr? zs^7N^z9j+wq`~JU{*xe=NbGIgI{d$*#_^F zSFypTC-C2B@I$*jio*$p&&>uuVDL_UZ#Vc}gLmY7zro*U@J_r>7<^X(|K|<9#o(QC z95VRQ1o|`@9#vij@5pDG!MhXi=NWvS!8_?GFnHVGop`S|`1Az&fWaTVUCYOb_cI0` zGI)o7x4|Dypx+CAEc^2)c+t0>Pr8-lowJ)iHu$VojaTP4p?JaIyW2Egox=qGy1`rR z8n4b&g8!4j`)|?sKJ-j}a!^{;U$ZW$&N_m3VJMQgVWj1+Ws2^w`fpjb!MhFKZSd!T zSM{YsV*&=h(%?&XXuLX`h~HI)PigW7MS0ZF%YAFYXJDtMf5G584Zi1AjUO`jdkwz3 zOXD9f_C~UQ*^%a4E<$>e&}r-lfX;9ioc=h)wwJvPIu^&wA?}}6yHrY^t(T# z>4{GLK5Fniy&A91PT_Nj!4LImygCO3{z`-I|DMJ_X3|q)@Ll~Hug)hyU*+(5Oyiw) ze+ziYS9hvT=Q?QR*J0?h4!V_Foh9O}+u+?l)OdA92z-y>Q#wKOarESIgSQO6SaD-- zyy0X0RP*_n!T-_V2Mu1G^}%l<17eZ0|JRyco!J3@lEL@?UgI~Ia-47Qd2eXEI%fm@ z67Z5=dy-D)VeEzcRvG-@aVGs5ZIv26JySgjqt2}GR%h_VS8KdFuK@m22H%yX@#-#C z@SivM(vvk_oudK&fWv=*#;Y?a;2$#htO|`+=M}*3H~9ZZ(4S|)OTOIcI{nhF%kQ@a z-<>uR|Bm5f`!s)bMgjUHCK{AJn0{|}vSMSMr112A?$Pu;WEC(<5wM&2UKBr%5Jk~4x=>B}G;p6P@ za`@b;=tqwW#!LSLiv9%a{vn-ThmXLq^7{z%mUZH&@x@b$&**W)bB5lT*OJik3oHES z@y;>D=af<7ixZh3IuSV!)wor7qvqC`248x$#yjo)JcI8y<1EK6EmL^KV#L4e4Sn9F zn$H5`TVwFu27jKxZ!!3u)tY{u!3Pb#zgpvQs^47(Kd@ZmZ!!39ICw*Uw!!Z+c&k*? zpKtI_DZFvS0lBB&>HEc@)m?mJ;av<&M4nlNZbjZ{0!=gc!GOl^HTc;EU%F7^PfgMu zOAJ1*Oyl<$`T~VFjyO;<4!&U=eAhVmuPFTSR{za9UZ=mYXB>LD$8Rh-gt9ElW_*`8 zZhaB@6R3~f=V&{l)Rlbv#>8u_)A8PB@^;kV2d~ihn+-l4`yq1fzChz0J)COr#iraH z{%0G!wM5gaJ7?kb5rg+{)cA+M$xjZ9kCm@$4SmZ}x1u{o{pUK}ap-S0^jUsQ@6@l` z48F&te}>`nMT2)&YkDVN-!%B{Gd2DThW>j7?>F`IR)hbMLw~WRf63rqP6=b^PxJZU-IO!>8FCvqTF{R%uAfE=+Uc-G#_<`E}Z6!!)LjnAM|Q^bx$kw zmybhVVd(8^G`%CwO$MJ;tMSL+A;0YgU%Jw*-0FT)-tKVlMH+vX^0ln5D!g&Tfj&du z)v4|L9#en!8N6lUb;|uIgD?Jw=I`{|pEvl@f7AE}O&no^?_RC(jy@bUc zMt?}Q`uP>!IO4z#L!VdWR@ha>@AC$4mutMb{|>*ejl<_*L+>}~arEKPIP`<#;QwIw zxlq67$KmrkL*L!xR&<4$ z-1>{b+os*Q&ESvA)N<}=*7WM`EBvwzKFh@Gl<&C)pJ(ckgI}!hhG`sFW#|VQH2<*i zTW|0!Mi0+4_!|sS zfyR4`z51rY8>VsK2}9qK5bsYNK1R-ljrAMw(%vQZbN)CE|A{AP`S>r@>B%#3pJea@ z*J^y9!JldHZX;(Wzw;H|5XFHNhCa)*FH?-)|1It6LoCUzdf7zTki^WoZd}JG?N<^A z`|@6Q&rYui=FR8sz2B5m7G>$a!r5 z|9g=$-nDX`U9p0`D)@uW`s$nD%;cYko%PJ4z#pdlsqAZTTZ|8SmnP94$+$c&_!{F< zXq=uB`kT@(T|YcCK)(?BX~+IAzM0xRdF&0y`MAirJD)Psbz%L@0s7w&`lAn8`kxZ| zR|e?+O6aE&7dpSwJ37fe_itD^{GM*e`cJ`ciai67|0X0fqQCi0OaC>&PYeD);_H+I z*t;1QqQ>d{LZ4+;&L@TbhTwNQ^R*Ftb!zGVQs^VWoog2VthDhHfED7Ezf4&h zwf|oWzWQE^>;CZ@xIadAJ34Lge_}4j`Nx5F-|(oVpPsk$KPvREh(0fM^m&Bog{X0Q z#{m9AB0sxj<)^}PMev)Q{n3X7KQ1i2_G?G*L-7;!w*$dXiG4mL@_$zF)!fSY4Z(j| z@VmDyuHS3WJ5p&Jk30SSoY231)6(A&Ils@i6dI>L7y9v8ORs+QcLVfa8Nk2gZ8RxGyWcALK*9sOS(kn_a>oZiXGetyNu=iljoPX8|Wq2wh*jy=Ak-=2>!j{LuQ zj_LRvN4WYP!B1VEGX7rv#PbG%-@RyYou{4@e06N`?-l!B7Toy}i{BABTZ&6u_=5Y4 zOQCVv75YPom+uz&9~q$kgwWsLnzEEbk@XqiwEnr*S^s=q=wEj&J--_sJg*GMe<1Wz z@i(>4zbY>62GZ_-3I5s-Tlu=~ee+{>9B;nM;{4lQ;CVaa!rVBGh2D{Q@cX3h{eqvm zJZ0n;1iwBY=dREnb=EnV;P{PSmO$Sh)A7@SABsN73`0+DSE{`qj zd`{)xu{i(61?v7t<;Z&J_k{j6!5@ep{;}YH%eWL8r*EeDbmio8P5(APPrqZyc|+D4 z9}roOFy0U>mp>@<_rwlADfouqV>4ysPX)gu__5?qwZrWJ`S}3;i@^Clt@tgLD}4O= z0R8U{;9p=I_rqo0S2<1;&O8&wSv2yTBHT{g$SmB%kAhr_UYeA_eu-ZUPkb{A6XS=u z6XGY$%{+_(XPZwZcK4mxavmgp>CPNuZr-}Iwe=x$`OftVTUTyeH)gc9=6K7ZOk=}s z`flkO*Y|UvxhZD(PA}K`hU1k7SEG9d#TsX z_QPlT;f;QHy%%1eIP+*(EQ}jPy##BMet4hm94HgWn3zjE9Jw8!wGB;|Fs? zuJ6p3iDxz@WBViB^bF&wg3xr$}D1!5zi(gewws8fvA}~SWxrni=1&F=HWIP_P zo!K0Z*4jwmjo_m;-iz?Lz#vhWIQ2<#nTOlCn=MS{WlgS$x4t<#0|Lqzp&JpKw{Q{h z2TAGfkC0u8GRxBpVLLbe61{QrZIkp>pqq)AbZW9jFB3NoI@Nv<1!aKrad8lrqL=1-#3+Zs@6f8-z-HA8b7$I*p zl$!)D9!Otz2iN?*&tu%!~fpC{&lC<#2XUYKHk5Qjv@_oip5S{w@$&F2OVnFcU}e! z>1CYpN>6LKnW}9_fpQe&(aGlBS(=x1t5zc<>?B3b@>~khc5URt-P@2hYm8eI0fus! zz}FjnA*p!~r@NirB+HoBl|`j%rDcU6gc9gcm6x$w)FXxAj!e9)4GnS(bzLU2@A*zx zxMg|JuQph)KE-O9Sp9w)h%xibGhUHbngrf%trnZbDS~pD)vM=<6qzIrsuIS7axP5b z`X>!lTN7RL!(E3QFzo1M0!{%+3)M4PpJ#5lKx&=$cVeDqLE>JVO2ot^5QzaY$pqZtb7Af|XMU2lhi5i5c)svFp-h+CsMx6$ih;va~M7^|le zvx!q2AVtTuM2ZW_HEl$VBq^(E)g~S!mU#u))rm7NVQU0QC%iC+(F&?99qqLNZLSiJ zTtV5epNhAE%Hnz+<~^9q#(l?L)H|h&t;cII*bhr54q}W`e=~b72$UKQf_0FVf_(&D z?Jk&*y2PWUJ=xwkMs8Bo$&rlP!*eQIW#&(=0Rt>CQc&=&p#Y%5uP`*fI;aCZur^v_T zJXvGf;T^RNmbM60iJiNa(VSt}dXZgrm@7A+q>o!Y%Oa>phz#O6BIX21kcT0>?$tcq(-NPzgg^+qxVeYr5IK**P2M0(fAwcW@sZUu>!D4)x zRCpm3kXMzVXR@#sM*cxTAMen_FyQju0z3GseUnE%?TN9p#&Un|dbKpH_p=;ZS?v?A z?Wz(KpSLD1xiN>HpbA=?Tz?ufLt3*z2~}mQh`objy`*hw47Ob>v|-$LG{oHUR4f4M zRKhWZ&4C$O2Wy9HI5}*Pb|bhkIyje5?;3;4iySzvS6N1^UzO+RM!m#@s&&G`N*e)D zQL^Sc4y|K(f~&I;H3~05K+@)+t*my31IHm(YuD2#6>Z4Qv~5hq*om7~ii%LMq41*#zukn2LX?LQ-{xVV z{X`H$(~>b;*DlD;SNZ2w7l`@ae4EA$n-FD05&x>6j1P&3dyl)7lYd8le-6O8q;Dr|RHRS}M_vqy#TY@zgaKj_dxudNXKOdC=j z#6P0kp{cc>z@~w!L6|)%X!KNoT~pQf1b7ahjczTD?*7_a2D5GjW?Y0(O=>sGG8iYb zr(I;W$yE{RWRyA12shj4>zEM++nyJC#rZvRMhW%~qjTr4JYKrnQrb?IquDZy{KrGz z8BuBB77J(OA0&`x&u|{D*$r~OGu12@)L~k3i9xQisB}g=%Z~WFq!HZ(LY=+UGzu1S z-)DiZgQ}9{us47l=Fn@(9Ml8^usUuWdeA3DBls9`YrKOUVTN&VS1jh6u=3s6|L62w zV5YC2S47C>%9O7*1$evQdXlfJwdm0E0C-fT;@?`CqU7K`6MS-3?Wy{FLv>{@CO9?u z%atitl*0c5T&h31{1;L6A9%Nn>i@#Zl!;&H@ayw7)%S!<_+neyG{KqR(lpMU@ zf=|vNDTjleL!!PbKfZ?L;~9L?cgV`G@9&w)14{b79!qUy=rx^x41e^l9Oc*dWV}rt zcsL>=9IC(4>3Iir^zI!k>-#ib68=MC#zFcMjp|Pr9nay9Y^wbF-i=K>H%-UW_Efd6 z{M!GYK|S%G7dm}E$D#1Aiv37`JUURdulyecMs_9r=s0?GDrY`9F}**I1k*L3+J{+j&yK9W;^Xxsm)8dmta_WOK?U*B8u z(4ScT7vCw2a?3|DZm&1sXb5`Lq7`GA_wP%CGNL`Py6Th&-^}sQgp)RzLU`@HX4m_pf~Et(ITu zv_<9D^H)0j)q7e_S^j->3=yDwdj3X-U!ND>|2E6`?b>jMU*Q!fPqMWCNAg_8FA4v< zG*E?MRT|G%F4Kknel|LzV>v~)Djoi1|yOVa*h;(s&`{TlwX->TLdfvN7yC?BuU g3p;T94W1Ke9@?&A596Yb|F>^jetlk8>AU>@4QkwcuK)l5 literal 0 HcmV?d00001 diff --git a/ido/ido5.3_recomp/as1 b/ido/ido5.3_recomp/as1 new file mode 100755 index 0000000000000000000000000000000000000000..8905076290aab5fa7dc320e83377ac671f316f6b GIT binary patch literal 904272 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